module Network.AWS.RDS.DescribeOrderableDBInstanceOptions
(
DescribeOrderableDBInstanceOptions
, describeOrderableDBInstanceOptions
, dodbioDBInstanceClass
, dodbioEngine
, dodbioEngineVersion
, dodbioFilters
, dodbioLicenseModel
, dodbioMarker
, dodbioMaxRecords
, dodbioVpc
, DescribeOrderableDBInstanceOptionsResponse
, describeOrderableDBInstanceOptionsResponse
, dodbiorMarker
, dodbiorOrderableDBInstanceOptions
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.RDS.Types
import qualified GHC.Exts
data DescribeOrderableDBInstanceOptions = DescribeOrderableDBInstanceOptions
{ _dodbioDBInstanceClass :: Maybe Text
, _dodbioEngine :: Text
, _dodbioEngineVersion :: Maybe Text
, _dodbioFilters :: List "Filter" Filter
, _dodbioLicenseModel :: Maybe Text
, _dodbioMarker :: Maybe Text
, _dodbioMaxRecords :: Maybe Int
, _dodbioVpc :: Maybe Bool
} deriving (Eq, Show)
describeOrderableDBInstanceOptions :: Text
-> DescribeOrderableDBInstanceOptions
describeOrderableDBInstanceOptions p1 = DescribeOrderableDBInstanceOptions
{ _dodbioEngine = p1
, _dodbioEngineVersion = Nothing
, _dodbioDBInstanceClass = Nothing
, _dodbioLicenseModel = Nothing
, _dodbioVpc = Nothing
, _dodbioFilters = mempty
, _dodbioMaxRecords = Nothing
, _dodbioMarker = Nothing
}
dodbioDBInstanceClass :: Lens' DescribeOrderableDBInstanceOptions (Maybe Text)
dodbioDBInstanceClass =
lens _dodbioDBInstanceClass (\s a -> s { _dodbioDBInstanceClass = a })
dodbioEngine :: Lens' DescribeOrderableDBInstanceOptions Text
dodbioEngine = lens _dodbioEngine (\s a -> s { _dodbioEngine = a })
dodbioEngineVersion :: Lens' DescribeOrderableDBInstanceOptions (Maybe Text)
dodbioEngineVersion =
lens _dodbioEngineVersion (\s a -> s { _dodbioEngineVersion = a })
dodbioFilters :: Lens' DescribeOrderableDBInstanceOptions [Filter]
dodbioFilters = lens _dodbioFilters (\s a -> s { _dodbioFilters = a }) . _List
dodbioLicenseModel :: Lens' DescribeOrderableDBInstanceOptions (Maybe Text)
dodbioLicenseModel =
lens _dodbioLicenseModel (\s a -> s { _dodbioLicenseModel = a })
dodbioMarker :: Lens' DescribeOrderableDBInstanceOptions (Maybe Text)
dodbioMarker = lens _dodbioMarker (\s a -> s { _dodbioMarker = a })
dodbioMaxRecords :: Lens' DescribeOrderableDBInstanceOptions (Maybe Int)
dodbioMaxRecords = lens _dodbioMaxRecords (\s a -> s { _dodbioMaxRecords = a })
dodbioVpc :: Lens' DescribeOrderableDBInstanceOptions (Maybe Bool)
dodbioVpc = lens _dodbioVpc (\s a -> s { _dodbioVpc = a })
data DescribeOrderableDBInstanceOptionsResponse = DescribeOrderableDBInstanceOptionsResponse
{ _dodbiorMarker :: Maybe Text
, _dodbiorOrderableDBInstanceOptions :: List "OrderableDBInstanceOption" OrderableDBInstanceOption
} deriving (Eq, Show)
describeOrderableDBInstanceOptionsResponse :: DescribeOrderableDBInstanceOptionsResponse
describeOrderableDBInstanceOptionsResponse = DescribeOrderableDBInstanceOptionsResponse
{ _dodbiorOrderableDBInstanceOptions = mempty
, _dodbiorMarker = Nothing
}
dodbiorMarker :: Lens' DescribeOrderableDBInstanceOptionsResponse (Maybe Text)
dodbiorMarker = lens _dodbiorMarker (\s a -> s { _dodbiorMarker = a })
dodbiorOrderableDBInstanceOptions :: Lens' DescribeOrderableDBInstanceOptionsResponse [OrderableDBInstanceOption]
dodbiorOrderableDBInstanceOptions =
lens _dodbiorOrderableDBInstanceOptions
(\s a -> s { _dodbiorOrderableDBInstanceOptions = a })
. _List
instance ToPath DescribeOrderableDBInstanceOptions where
toPath = const "/"
instance ToQuery DescribeOrderableDBInstanceOptions where
toQuery DescribeOrderableDBInstanceOptions{..} = mconcat
[ "DBInstanceClass" =? _dodbioDBInstanceClass
, "Engine" =? _dodbioEngine
, "EngineVersion" =? _dodbioEngineVersion
, "Filters" =? _dodbioFilters
, "LicenseModel" =? _dodbioLicenseModel
, "Marker" =? _dodbioMarker
, "MaxRecords" =? _dodbioMaxRecords
, "Vpc" =? _dodbioVpc
]
instance ToHeaders DescribeOrderableDBInstanceOptions
instance AWSRequest DescribeOrderableDBInstanceOptions where
type Sv DescribeOrderableDBInstanceOptions = RDS
type Rs DescribeOrderableDBInstanceOptions = DescribeOrderableDBInstanceOptionsResponse
request = post "DescribeOrderableDBInstanceOptions"
response = xmlResponse
instance FromXML DescribeOrderableDBInstanceOptionsResponse where
parseXML = withElement "DescribeOrderableDBInstanceOptionsResult" $ \x -> DescribeOrderableDBInstanceOptionsResponse
<$> x .@? "Marker"
<*> x .@ "OrderableDBInstanceOptions"
instance AWSPager DescribeOrderableDBInstanceOptions where
page rq rs
| stop (rq ^. dodbioMarker) = Nothing
| otherwise = (\x -> rq & dodbioMarker ?~ x)
<$> (rs ^. dodbiorMarker)