module Network.AWS.RDS.DescribeReservedDBInstancesOfferings
(
DescribeReservedDBInstancesOfferings
, describeReservedDBInstancesOfferings
, drdbioDBInstanceClass
, drdbioDuration
, drdbioFilters
, drdbioMarker
, drdbioMaxRecords
, drdbioMultiAZ
, drdbioOfferingType
, drdbioProductDescription
, drdbioReservedDBInstancesOfferingId
, DescribeReservedDBInstancesOfferingsResponse
, describeReservedDBInstancesOfferingsResponse
, drdbiorMarker
, drdbiorReservedDBInstancesOfferings
) where
import Network.AWS.Prelude
import Network.AWS.Request.Query
import Network.AWS.RDS.Types
import qualified GHC.Exts
data DescribeReservedDBInstancesOfferings = DescribeReservedDBInstancesOfferings
{ _drdbioDBInstanceClass :: Maybe Text
, _drdbioDuration :: Maybe Text
, _drdbioFilters :: List "Filter" Filter
, _drdbioMarker :: Maybe Text
, _drdbioMaxRecords :: Maybe Int
, _drdbioMultiAZ :: Maybe Bool
, _drdbioOfferingType :: Maybe Text
, _drdbioProductDescription :: Maybe Text
, _drdbioReservedDBInstancesOfferingId :: Maybe Text
} deriving (Eq, Show)
describeReservedDBInstancesOfferings :: DescribeReservedDBInstancesOfferings
describeReservedDBInstancesOfferings = DescribeReservedDBInstancesOfferings
{ _drdbioReservedDBInstancesOfferingId = Nothing
, _drdbioDBInstanceClass = Nothing
, _drdbioDuration = Nothing
, _drdbioProductDescription = Nothing
, _drdbioOfferingType = Nothing
, _drdbioMultiAZ = Nothing
, _drdbioFilters = mempty
, _drdbioMaxRecords = Nothing
, _drdbioMarker = Nothing
}
drdbioDBInstanceClass :: Lens' DescribeReservedDBInstancesOfferings (Maybe Text)
drdbioDBInstanceClass =
lens _drdbioDBInstanceClass (\s a -> s { _drdbioDBInstanceClass = a })
drdbioDuration :: Lens' DescribeReservedDBInstancesOfferings (Maybe Text)
drdbioDuration = lens _drdbioDuration (\s a -> s { _drdbioDuration = a })
drdbioFilters :: Lens' DescribeReservedDBInstancesOfferings [Filter]
drdbioFilters = lens _drdbioFilters (\s a -> s { _drdbioFilters = a }) . _List
drdbioMarker :: Lens' DescribeReservedDBInstancesOfferings (Maybe Text)
drdbioMarker = lens _drdbioMarker (\s a -> s { _drdbioMarker = a })
drdbioMaxRecords :: Lens' DescribeReservedDBInstancesOfferings (Maybe Int)
drdbioMaxRecords = lens _drdbioMaxRecords (\s a -> s { _drdbioMaxRecords = a })
drdbioMultiAZ :: Lens' DescribeReservedDBInstancesOfferings (Maybe Bool)
drdbioMultiAZ = lens _drdbioMultiAZ (\s a -> s { _drdbioMultiAZ = a })
drdbioOfferingType :: Lens' DescribeReservedDBInstancesOfferings (Maybe Text)
drdbioOfferingType =
lens _drdbioOfferingType (\s a -> s { _drdbioOfferingType = a })
drdbioProductDescription :: Lens' DescribeReservedDBInstancesOfferings (Maybe Text)
drdbioProductDescription =
lens _drdbioProductDescription
(\s a -> s { _drdbioProductDescription = a })
drdbioReservedDBInstancesOfferingId :: Lens' DescribeReservedDBInstancesOfferings (Maybe Text)
drdbioReservedDBInstancesOfferingId =
lens _drdbioReservedDBInstancesOfferingId
(\s a -> s { _drdbioReservedDBInstancesOfferingId = a })
data DescribeReservedDBInstancesOfferingsResponse = DescribeReservedDBInstancesOfferingsResponse
{ _drdbiorMarker :: Maybe Text
, _drdbiorReservedDBInstancesOfferings :: List "ReservedDBInstancesOffering" ReservedDBInstancesOffering
} deriving (Eq, Show)
describeReservedDBInstancesOfferingsResponse :: DescribeReservedDBInstancesOfferingsResponse
describeReservedDBInstancesOfferingsResponse = DescribeReservedDBInstancesOfferingsResponse
{ _drdbiorMarker = Nothing
, _drdbiorReservedDBInstancesOfferings = mempty
}
drdbiorMarker :: Lens' DescribeReservedDBInstancesOfferingsResponse (Maybe Text)
drdbiorMarker = lens _drdbiorMarker (\s a -> s { _drdbiorMarker = a })
drdbiorReservedDBInstancesOfferings :: Lens' DescribeReservedDBInstancesOfferingsResponse [ReservedDBInstancesOffering]
drdbiorReservedDBInstancesOfferings =
lens _drdbiorReservedDBInstancesOfferings
(\s a -> s { _drdbiorReservedDBInstancesOfferings = a })
. _List
instance ToPath DescribeReservedDBInstancesOfferings where
toPath = const "/"
instance ToQuery DescribeReservedDBInstancesOfferings where
toQuery DescribeReservedDBInstancesOfferings{..} = mconcat
[ "DBInstanceClass" =? _drdbioDBInstanceClass
, "Duration" =? _drdbioDuration
, "Filters" =? _drdbioFilters
, "Marker" =? _drdbioMarker
, "MaxRecords" =? _drdbioMaxRecords
, "MultiAZ" =? _drdbioMultiAZ
, "OfferingType" =? _drdbioOfferingType
, "ProductDescription" =? _drdbioProductDescription
, "ReservedDBInstancesOfferingId" =? _drdbioReservedDBInstancesOfferingId
]
instance ToHeaders DescribeReservedDBInstancesOfferings
instance AWSRequest DescribeReservedDBInstancesOfferings where
type Sv DescribeReservedDBInstancesOfferings = RDS
type Rs DescribeReservedDBInstancesOfferings = DescribeReservedDBInstancesOfferingsResponse
request = post "DescribeReservedDBInstancesOfferings"
response = xmlResponse
instance FromXML DescribeReservedDBInstancesOfferingsResponse where
parseXML = withElement "DescribeReservedDBInstancesOfferingsResult" $ \x -> DescribeReservedDBInstancesOfferingsResponse
<$> x .@? "Marker"
<*> x .@ "ReservedDBInstancesOfferings"
instance AWSPager DescribeReservedDBInstancesOfferings where
page rq rs
| stop (rq ^. drdbioMarker) = Nothing
| otherwise = (\x -> rq & drdbioMarker ?~ x)
<$> (rs ^. drdbiorMarker)