module AWS.RDS.DBSubnetGroup
( describeDBSubnetGroups
, createDBSubnetGroup
, deleteDBSubnetGroup
) where
import Control.Applicative ((<$>))
import Data.Conduit
import Data.Text (Text)
import AWS.Lib.Parser (element)
import AWS.Lib.Query ((|=), (|=?), (|.#=))
import AWS.RDS.Internal
import AWS.RDS.Types (DBSubnetGroup)
import AWS.Util (toText)
describeDBSubnetGroups
:: (MonadBaseControl IO m, MonadResource m)
=> Maybe Text
-> Maybe Text
-> Maybe Int
-> RDS m [DBSubnetGroup]
describeDBSubnetGroups name marker maxRecords =
rdsQuery "DescribeDBSubnetGroups" params $
elements "DBSubnetGroup" dbSubnetGroupSink
where
params =
[ "DBSubnetGroupName" |=? name
, "Marker" |=? marker
, "MaxRecords" |=? toText <$> maxRecords
]
createDBSubnetGroup
:: (MonadBaseControl IO m, MonadResource m)
=> Text
-> [Text]
-> Text
-> RDS m DBSubnetGroup
createDBSubnetGroup name ids desc =
rdsQuery "CreateDBSubnetGroup" params $
element "DBSubnetGroup" dbSubnetGroupSink
where
params =
[ "DBSubnetGroupName" |= name
, "SubnetIds.member" |.#= ids
, "DBSubnetGroupDescription" |= desc
]
deleteDBSubnetGroup
:: (MonadBaseControl IO m, MonadResource m)
=> Text
-> RDS m ()
deleteDBSubnetGroup name =
rdsQueryOnlyMetadata "DeleteDBSubnetGroup"
["DBSubnetGroupName" |= name]