module Network.AWS.RDS.DescribeDBParameters
(
DescribeDBParameters
, describeDBParameters
, ddbpDBParameterGroupName
, ddbpFilters
, ddbpMarker
, ddbpMaxRecords
, ddbpSource
, DescribeDBParametersResponse
, describeDBParametersResponse
, ddbprMarker
, ddbprParameters
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.RDS.Types
import qualified GHC.Exts
data DescribeDBParameters = DescribeDBParameters
{ _ddbpDBParameterGroupName :: Text
, _ddbpFilters :: List "member" Filter
, _ddbpMarker :: Maybe Text
, _ddbpMaxRecords :: Maybe Int
, _ddbpSource :: Maybe Text
} deriving (Eq, Show)
describeDBParameters :: Text
-> DescribeDBParameters
describeDBParameters p1 = DescribeDBParameters
{ _ddbpDBParameterGroupName = p1
, _ddbpSource = Nothing
, _ddbpFilters = mempty
, _ddbpMaxRecords = Nothing
, _ddbpMarker = Nothing
}
ddbpDBParameterGroupName :: Lens' DescribeDBParameters Text
ddbpDBParameterGroupName =
lens _ddbpDBParameterGroupName
(\s a -> s { _ddbpDBParameterGroupName = a })
ddbpFilters :: Lens' DescribeDBParameters [Filter]
ddbpFilters = lens _ddbpFilters (\s a -> s { _ddbpFilters = a }) . _List
ddbpMarker :: Lens' DescribeDBParameters (Maybe Text)
ddbpMarker = lens _ddbpMarker (\s a -> s { _ddbpMarker = a })
ddbpMaxRecords :: Lens' DescribeDBParameters (Maybe Int)
ddbpMaxRecords = lens _ddbpMaxRecords (\s a -> s { _ddbpMaxRecords = a })
ddbpSource :: Lens' DescribeDBParameters (Maybe Text)
ddbpSource = lens _ddbpSource (\s a -> s { _ddbpSource = a })
data DescribeDBParametersResponse = DescribeDBParametersResponse
{ _ddbprMarker :: Maybe Text
, _ddbprParameters :: List "member" Parameter
} deriving (Eq, Show)
describeDBParametersResponse :: DescribeDBParametersResponse
describeDBParametersResponse = DescribeDBParametersResponse
{ _ddbprParameters = mempty
, _ddbprMarker = Nothing
}
ddbprMarker :: Lens' DescribeDBParametersResponse (Maybe Text)
ddbprMarker = lens _ddbprMarker (\s a -> s { _ddbprMarker = a })
ddbprParameters :: Lens' DescribeDBParametersResponse [Parameter]
ddbprParameters = lens _ddbprParameters (\s a -> s { _ddbprParameters = a }) . _List
instance ToPath DescribeDBParameters where
toPath = const "/"
instance ToQuery DescribeDBParameters where
toQuery DescribeDBParameters{..} = mconcat
[ "DBParameterGroupName" =? _ddbpDBParameterGroupName
, "Filters" =? _ddbpFilters
, "Marker" =? _ddbpMarker
, "MaxRecords" =? _ddbpMaxRecords
, "Source" =? _ddbpSource
]
instance ToHeaders DescribeDBParameters
instance AWSRequest DescribeDBParameters where
type Sv DescribeDBParameters = RDS
type Rs DescribeDBParameters = DescribeDBParametersResponse
request = post "DescribeDBParameters"
response = xmlResponse
instance FromXML DescribeDBParametersResponse where
parseXML = withElement "DescribeDBParametersResult" $ \x -> DescribeDBParametersResponse
<$> x .@? "Marker"
<*> x .@? "Parameters" .!@ mempty
instance AWSPager DescribeDBParameters where
page rq rs
| stop (rq ^. ddbpMarker) = Nothing
| otherwise = (\x -> rq & ddbpMarker ?~ x)
<$> (rs ^. ddbprMarker)