module Network.AWS.RDS.DescribeDBEngineVersions
(
DescribeDBEngineVersions
, describeDBEngineVersions
, ddbevDBParameterGroupFamily
, ddbevDefaultOnly
, ddbevEngine
, ddbevEngineVersion
, ddbevFilters
, ddbevListSupportedCharacterSets
, ddbevMarker
, ddbevMaxRecords
, DescribeDBEngineVersionsResponse
, describeDBEngineVersionsResponse
, ddbevrDBEngineVersions
, ddbevrMarker
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.RDS.Types
import qualified GHC.Exts
data DescribeDBEngineVersions = DescribeDBEngineVersions
{ _ddbevDBParameterGroupFamily :: Maybe Text
, _ddbevDefaultOnly :: Maybe Bool
, _ddbevEngine :: Maybe Text
, _ddbevEngineVersion :: Maybe Text
, _ddbevFilters :: List "Filter" Filter
, _ddbevListSupportedCharacterSets :: Maybe Bool
, _ddbevMarker :: Maybe Text
, _ddbevMaxRecords :: Maybe Int
} deriving (Eq, Show)
describeDBEngineVersions :: DescribeDBEngineVersions
describeDBEngineVersions = DescribeDBEngineVersions
{ _ddbevEngine = Nothing
, _ddbevEngineVersion = Nothing
, _ddbevDBParameterGroupFamily = Nothing
, _ddbevFilters = mempty
, _ddbevMaxRecords = Nothing
, _ddbevMarker = Nothing
, _ddbevDefaultOnly = Nothing
, _ddbevListSupportedCharacterSets = Nothing
}
ddbevDBParameterGroupFamily :: Lens' DescribeDBEngineVersions (Maybe Text)
ddbevDBParameterGroupFamily =
lens _ddbevDBParameterGroupFamily
(\s a -> s { _ddbevDBParameterGroupFamily = a })
ddbevDefaultOnly :: Lens' DescribeDBEngineVersions (Maybe Bool)
ddbevDefaultOnly = lens _ddbevDefaultOnly (\s a -> s { _ddbevDefaultOnly = a })
ddbevEngine :: Lens' DescribeDBEngineVersions (Maybe Text)
ddbevEngine = lens _ddbevEngine (\s a -> s { _ddbevEngine = a })
ddbevEngineVersion :: Lens' DescribeDBEngineVersions (Maybe Text)
ddbevEngineVersion =
lens _ddbevEngineVersion (\s a -> s { _ddbevEngineVersion = a })
ddbevFilters :: Lens' DescribeDBEngineVersions [Filter]
ddbevFilters = lens _ddbevFilters (\s a -> s { _ddbevFilters = a }) . _List
ddbevListSupportedCharacterSets :: Lens' DescribeDBEngineVersions (Maybe Bool)
ddbevListSupportedCharacterSets =
lens _ddbevListSupportedCharacterSets
(\s a -> s { _ddbevListSupportedCharacterSets = a })
ddbevMarker :: Lens' DescribeDBEngineVersions (Maybe Text)
ddbevMarker = lens _ddbevMarker (\s a -> s { _ddbevMarker = a })
ddbevMaxRecords :: Lens' DescribeDBEngineVersions (Maybe Int)
ddbevMaxRecords = lens _ddbevMaxRecords (\s a -> s { _ddbevMaxRecords = a })
data DescribeDBEngineVersionsResponse = DescribeDBEngineVersionsResponse
{ _ddbevrDBEngineVersions :: List "DBEngineVersion" DBEngineVersion
, _ddbevrMarker :: Maybe Text
} deriving (Eq, Show)
describeDBEngineVersionsResponse :: DescribeDBEngineVersionsResponse
describeDBEngineVersionsResponse = DescribeDBEngineVersionsResponse
{ _ddbevrMarker = Nothing
, _ddbevrDBEngineVersions = mempty
}
ddbevrDBEngineVersions :: Lens' DescribeDBEngineVersionsResponse [DBEngineVersion]
ddbevrDBEngineVersions =
lens _ddbevrDBEngineVersions (\s a -> s { _ddbevrDBEngineVersions = a })
. _List
ddbevrMarker :: Lens' DescribeDBEngineVersionsResponse (Maybe Text)
ddbevrMarker = lens _ddbevrMarker (\s a -> s { _ddbevrMarker = a })
instance ToPath DescribeDBEngineVersions where
toPath = const "/"
instance ToQuery DescribeDBEngineVersions where
toQuery DescribeDBEngineVersions{..} = mconcat
[ "DBParameterGroupFamily" =? _ddbevDBParameterGroupFamily
, "DefaultOnly" =? _ddbevDefaultOnly
, "Engine" =? _ddbevEngine
, "EngineVersion" =? _ddbevEngineVersion
, "Filters" =? _ddbevFilters
, "ListSupportedCharacterSets" =? _ddbevListSupportedCharacterSets
, "Marker" =? _ddbevMarker
, "MaxRecords" =? _ddbevMaxRecords
]
instance ToHeaders DescribeDBEngineVersions
instance AWSRequest DescribeDBEngineVersions where
type Sv DescribeDBEngineVersions = RDS
type Rs DescribeDBEngineVersions = DescribeDBEngineVersionsResponse
request = post "DescribeDBEngineVersions"
response = xmlResponse
instance FromXML DescribeDBEngineVersionsResponse where
parseXML = withElement "DescribeDBEngineVersionsResult" $ \x -> DescribeDBEngineVersionsResponse
<$> x .@ "DBEngineVersions"
<*> x .@? "Marker"
instance AWSPager DescribeDBEngineVersions where
page rq rs
| stop (rq ^. ddbevMarker) = Nothing
| otherwise = (\x -> rq & ddbevMarker ?~ x)
<$> (rs ^. ddbevrMarker)