module Network.AWS.EC2.DescribeReservedInstancesOfferings
(
describeReservedInstancesOfferings
, DescribeReservedInstancesOfferings
, drioMaxDuration
, drioProductDescription
, drioIncludeMarketplace
, drioFilters
, drioInstanceType
, drioNextToken
, drioMinDuration
, drioAvailabilityZone
, drioOfferingType
, drioReservedInstancesOfferingIds
, drioInstanceTenancy
, drioDryRun
, drioMaxResults
, drioMaxInstanceCount
, describeReservedInstancesOfferingsResponse
, DescribeReservedInstancesOfferingsResponse
, driorsNextToken
, driorsReservedInstancesOfferings
, driorsStatus
) where
import Network.AWS.EC2.Types
import Network.AWS.EC2.Types.Product
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DescribeReservedInstancesOfferings = DescribeReservedInstancesOfferings'
{ _drioMaxDuration :: !(Maybe Integer)
, _drioProductDescription :: !(Maybe RIProductDescription)
, _drioIncludeMarketplace :: !(Maybe Bool)
, _drioFilters :: !(Maybe [Filter])
, _drioInstanceType :: !(Maybe InstanceType)
, _drioNextToken :: !(Maybe Text)
, _drioMinDuration :: !(Maybe Integer)
, _drioAvailabilityZone :: !(Maybe Text)
, _drioOfferingType :: !(Maybe OfferingTypeValues)
, _drioReservedInstancesOfferingIds :: !(Maybe [Text])
, _drioInstanceTenancy :: !(Maybe Tenancy)
, _drioDryRun :: !(Maybe Bool)
, _drioMaxResults :: !(Maybe Int)
, _drioMaxInstanceCount :: !(Maybe Int)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeReservedInstancesOfferings
:: DescribeReservedInstancesOfferings
describeReservedInstancesOfferings =
DescribeReservedInstancesOfferings'
{ _drioMaxDuration = Nothing
, _drioProductDescription = Nothing
, _drioIncludeMarketplace = Nothing
, _drioFilters = Nothing
, _drioInstanceType = Nothing
, _drioNextToken = Nothing
, _drioMinDuration = Nothing
, _drioAvailabilityZone = Nothing
, _drioOfferingType = Nothing
, _drioReservedInstancesOfferingIds = Nothing
, _drioInstanceTenancy = Nothing
, _drioDryRun = Nothing
, _drioMaxResults = Nothing
, _drioMaxInstanceCount = Nothing
}
drioMaxDuration :: Lens' DescribeReservedInstancesOfferings (Maybe Integer)
drioMaxDuration = lens _drioMaxDuration (\ s a -> s{_drioMaxDuration = a});
drioProductDescription :: Lens' DescribeReservedInstancesOfferings (Maybe RIProductDescription)
drioProductDescription = lens _drioProductDescription (\ s a -> s{_drioProductDescription = a});
drioIncludeMarketplace :: Lens' DescribeReservedInstancesOfferings (Maybe Bool)
drioIncludeMarketplace = lens _drioIncludeMarketplace (\ s a -> s{_drioIncludeMarketplace = a});
drioFilters :: Lens' DescribeReservedInstancesOfferings [Filter]
drioFilters = lens _drioFilters (\ s a -> s{_drioFilters = a}) . _Default . _Coerce;
drioInstanceType :: Lens' DescribeReservedInstancesOfferings (Maybe InstanceType)
drioInstanceType = lens _drioInstanceType (\ s a -> s{_drioInstanceType = a});
drioNextToken :: Lens' DescribeReservedInstancesOfferings (Maybe Text)
drioNextToken = lens _drioNextToken (\ s a -> s{_drioNextToken = a});
drioMinDuration :: Lens' DescribeReservedInstancesOfferings (Maybe Integer)
drioMinDuration = lens _drioMinDuration (\ s a -> s{_drioMinDuration = a});
drioAvailabilityZone :: Lens' DescribeReservedInstancesOfferings (Maybe Text)
drioAvailabilityZone = lens _drioAvailabilityZone (\ s a -> s{_drioAvailabilityZone = a});
drioOfferingType :: Lens' DescribeReservedInstancesOfferings (Maybe OfferingTypeValues)
drioOfferingType = lens _drioOfferingType (\ s a -> s{_drioOfferingType = a});
drioReservedInstancesOfferingIds :: Lens' DescribeReservedInstancesOfferings [Text]
drioReservedInstancesOfferingIds = lens _drioReservedInstancesOfferingIds (\ s a -> s{_drioReservedInstancesOfferingIds = a}) . _Default . _Coerce;
drioInstanceTenancy :: Lens' DescribeReservedInstancesOfferings (Maybe Tenancy)
drioInstanceTenancy = lens _drioInstanceTenancy (\ s a -> s{_drioInstanceTenancy = a});
drioDryRun :: Lens' DescribeReservedInstancesOfferings (Maybe Bool)
drioDryRun = lens _drioDryRun (\ s a -> s{_drioDryRun = a});
drioMaxResults :: Lens' DescribeReservedInstancesOfferings (Maybe Int)
drioMaxResults = lens _drioMaxResults (\ s a -> s{_drioMaxResults = a});
drioMaxInstanceCount :: Lens' DescribeReservedInstancesOfferings (Maybe Int)
drioMaxInstanceCount = lens _drioMaxInstanceCount (\ s a -> s{_drioMaxInstanceCount = a});
instance AWSPager DescribeReservedInstancesOfferings
where
page rq rs
| stop (rs ^. driorsNextToken) = Nothing
| stop (rs ^. driorsReservedInstancesOfferings) =
Nothing
| otherwise =
Just $ rq & drioNextToken .~ rs ^. driorsNextToken
instance AWSRequest
DescribeReservedInstancesOfferings where
type Sv DescribeReservedInstancesOfferings = EC2
type Rs DescribeReservedInstancesOfferings =
DescribeReservedInstancesOfferingsResponse
request = post
response
= receiveXML
(\ s h x ->
DescribeReservedInstancesOfferingsResponse' <$>
(x .@? "nextToken") <*>
(x .@? "reservedInstancesOfferingsSet" .!@ mempty >>=
may (parseXMLList "item"))
<*> (pure (fromEnum s)))
instance ToHeaders DescribeReservedInstancesOfferings
where
toHeaders = const mempty
instance ToPath DescribeReservedInstancesOfferings
where
toPath = const "/"
instance ToQuery DescribeReservedInstancesOfferings
where
toQuery DescribeReservedInstancesOfferings'{..}
= mconcat
["Action" =:
("DescribeReservedInstancesOfferings" :: ByteString),
"Version" =: ("2015-04-15" :: ByteString),
"MaxDuration" =: _drioMaxDuration,
"ProductDescription" =: _drioProductDescription,
"IncludeMarketplace" =: _drioIncludeMarketplace,
toQuery (toQueryList "Filter" <$> _drioFilters),
"InstanceType" =: _drioInstanceType,
"NextToken" =: _drioNextToken,
"MinDuration" =: _drioMinDuration,
"AvailabilityZone" =: _drioAvailabilityZone,
"OfferingType" =: _drioOfferingType,
toQuery
(toQueryList "ReservedInstancesOfferingId" <$>
_drioReservedInstancesOfferingIds),
"InstanceTenancy" =: _drioInstanceTenancy,
"DryRun" =: _drioDryRun,
"MaxResults" =: _drioMaxResults,
"MaxInstanceCount" =: _drioMaxInstanceCount]
data DescribeReservedInstancesOfferingsResponse = DescribeReservedInstancesOfferingsResponse'
{ _driorsNextToken :: !(Maybe Text)
, _driorsReservedInstancesOfferings :: !(Maybe [ReservedInstancesOffering])
, _driorsStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeReservedInstancesOfferingsResponse
:: Int
-> DescribeReservedInstancesOfferingsResponse
describeReservedInstancesOfferingsResponse pStatus_ =
DescribeReservedInstancesOfferingsResponse'
{ _driorsNextToken = Nothing
, _driorsReservedInstancesOfferings = Nothing
, _driorsStatus = pStatus_
}
driorsNextToken :: Lens' DescribeReservedInstancesOfferingsResponse (Maybe Text)
driorsNextToken = lens _driorsNextToken (\ s a -> s{_driorsNextToken = a});
driorsReservedInstancesOfferings :: Lens' DescribeReservedInstancesOfferingsResponse [ReservedInstancesOffering]
driorsReservedInstancesOfferings = lens _driorsReservedInstancesOfferings (\ s a -> s{_driorsReservedInstancesOfferings = a}) . _Default . _Coerce;
driorsStatus :: Lens' DescribeReservedInstancesOfferingsResponse Int
driorsStatus = lens _driorsStatus (\ s a -> s{_driorsStatus = a});