module AWS.RDS.Internal
where
import Data.ByteString (ByteString)
import Data.Text (Text)
import Data.Conduit
import Data.Monoid ((<>))
import Data.XML.Types (Event(..))
import AWS.Class
import AWS.Lib.Query
import AWS.Lib.Parser
#ifdef DEBUG
import Control.Monad.IO.Class (liftIO)
import qualified Control.Monad.Reader as Reader
import qualified Control.Monad.State as State
import Control.Monad.Trans.Class (lift)
import qualified Data.Conduit.Binary as CB
#endif
apiVersion :: ByteString
apiVersion = "2012-09-17"
type RDS m a = AWS AWSContext m a
rdsQuery
:: (MonadBaseControl IO m, MonadResource m)
=> ByteString
-> [QueryParam]
-> GLSink Event m a
-> RDS m a
rdsQuery = commonQuery apiVersion
elements :: MonadThrow m
=> Text
-> GLSink Event m a
-> GLSink Event m [a]
elements name f = element (name <> "s") $ listConsumer name f
#ifdef DEBUG
rdsQueryDebug
:: (MonadResource m, MonadBaseControl IO m)
=> ByteString
-> [QueryParam]
-> RDS m a
rdsQueryDebug action params = do
cred <- Reader.ask
ctx <- State.get
lift $ do
liftIO $ mapM_ putStrLn $ showUnitParams params
response <- requestQuery cred ctx action params apiVersion sinkError
(res, _) <- unwrapResumable response
res $$ CB.sinkFile "debug.txt" >>= fail "debug"
#endif