module Network.AWS.RDS.DescribeReservedDBInstances
(
describeReservedDBInstances
, DescribeReservedDBInstances
, drdiProductDescription
, drdiFilters
, drdiReservedDBInstanceId
, drdiDBInstanceClass
, drdiMarker
, drdiMaxRecords
, drdiMultiAZ
, drdiReservedDBInstancesOfferingId
, drdiOfferingType
, drdiDuration
, describeReservedDBInstancesResponse
, DescribeReservedDBInstancesResponse
, drdirsReservedDBInstances
, drdirsMarker
, drdirsResponseStatus
) where
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.RDS.Types
import Network.AWS.RDS.Types.Product
import Network.AWS.Request
import Network.AWS.Response
data DescribeReservedDBInstances = DescribeReservedDBInstances'
{ _drdiProductDescription :: !(Maybe Text)
, _drdiFilters :: !(Maybe [Filter])
, _drdiReservedDBInstanceId :: !(Maybe Text)
, _drdiDBInstanceClass :: !(Maybe Text)
, _drdiMarker :: !(Maybe Text)
, _drdiMaxRecords :: !(Maybe Int)
, _drdiMultiAZ :: !(Maybe Bool)
, _drdiReservedDBInstancesOfferingId :: !(Maybe Text)
, _drdiOfferingType :: !(Maybe Text)
, _drdiDuration :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeReservedDBInstances
:: DescribeReservedDBInstances
describeReservedDBInstances =
DescribeReservedDBInstances'
{ _drdiProductDescription = Nothing
, _drdiFilters = Nothing
, _drdiReservedDBInstanceId = Nothing
, _drdiDBInstanceClass = Nothing
, _drdiMarker = Nothing
, _drdiMaxRecords = Nothing
, _drdiMultiAZ = Nothing
, _drdiReservedDBInstancesOfferingId = Nothing
, _drdiOfferingType = Nothing
, _drdiDuration = Nothing
}
drdiProductDescription :: Lens' DescribeReservedDBInstances (Maybe Text)
drdiProductDescription = lens _drdiProductDescription (\ s a -> s{_drdiProductDescription = a});
drdiFilters :: Lens' DescribeReservedDBInstances [Filter]
drdiFilters = lens _drdiFilters (\ s a -> s{_drdiFilters = a}) . _Default . _Coerce;
drdiReservedDBInstanceId :: Lens' DescribeReservedDBInstances (Maybe Text)
drdiReservedDBInstanceId = lens _drdiReservedDBInstanceId (\ s a -> s{_drdiReservedDBInstanceId = a});
drdiDBInstanceClass :: Lens' DescribeReservedDBInstances (Maybe Text)
drdiDBInstanceClass = lens _drdiDBInstanceClass (\ s a -> s{_drdiDBInstanceClass = a});
drdiMarker :: Lens' DescribeReservedDBInstances (Maybe Text)
drdiMarker = lens _drdiMarker (\ s a -> s{_drdiMarker = a});
drdiMaxRecords :: Lens' DescribeReservedDBInstances (Maybe Int)
drdiMaxRecords = lens _drdiMaxRecords (\ s a -> s{_drdiMaxRecords = a});
drdiMultiAZ :: Lens' DescribeReservedDBInstances (Maybe Bool)
drdiMultiAZ = lens _drdiMultiAZ (\ s a -> s{_drdiMultiAZ = a});
drdiReservedDBInstancesOfferingId :: Lens' DescribeReservedDBInstances (Maybe Text)
drdiReservedDBInstancesOfferingId = lens _drdiReservedDBInstancesOfferingId (\ s a -> s{_drdiReservedDBInstancesOfferingId = a});
drdiOfferingType :: Lens' DescribeReservedDBInstances (Maybe Text)
drdiOfferingType = lens _drdiOfferingType (\ s a -> s{_drdiOfferingType = a});
drdiDuration :: Lens' DescribeReservedDBInstances (Maybe Text)
drdiDuration = lens _drdiDuration (\ s a -> s{_drdiDuration = a});
instance AWSPager DescribeReservedDBInstances where
page rq rs
| stop (rs ^. drdirsMarker) = Nothing
| stop (rs ^. drdirsReservedDBInstances) = Nothing
| otherwise =
Just $ rq & drdiMarker .~ rs ^. drdirsMarker
instance AWSRequest DescribeReservedDBInstances where
type Rs DescribeReservedDBInstances =
DescribeReservedDBInstancesResponse
request = postQuery rDS
response
= receiveXMLWrapper
"DescribeReservedDBInstancesResult"
(\ s h x ->
DescribeReservedDBInstancesResponse' <$>
(x .@? "ReservedDBInstances" .!@ mempty >>=
may (parseXMLList "ReservedDBInstance"))
<*> (x .@? "Marker")
<*> (pure (fromEnum s)))
instance ToHeaders DescribeReservedDBInstances where
toHeaders = const mempty
instance ToPath DescribeReservedDBInstances where
toPath = const "/"
instance ToQuery DescribeReservedDBInstances where
toQuery DescribeReservedDBInstances'{..}
= mconcat
["Action" =:
("DescribeReservedDBInstances" :: ByteString),
"Version" =: ("2014-10-31" :: ByteString),
"ProductDescription" =: _drdiProductDescription,
"Filters" =:
toQuery (toQueryList "Filter" <$> _drdiFilters),
"ReservedDBInstanceId" =: _drdiReservedDBInstanceId,
"DBInstanceClass" =: _drdiDBInstanceClass,
"Marker" =: _drdiMarker,
"MaxRecords" =: _drdiMaxRecords,
"MultiAZ" =: _drdiMultiAZ,
"ReservedDBInstancesOfferingId" =:
_drdiReservedDBInstancesOfferingId,
"OfferingType" =: _drdiOfferingType,
"Duration" =: _drdiDuration]
data DescribeReservedDBInstancesResponse = DescribeReservedDBInstancesResponse'
{ _drdirsReservedDBInstances :: !(Maybe [ReservedDBInstance])
, _drdirsMarker :: !(Maybe Text)
, _drdirsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeReservedDBInstancesResponse
:: Int
-> DescribeReservedDBInstancesResponse
describeReservedDBInstancesResponse pResponseStatus_ =
DescribeReservedDBInstancesResponse'
{ _drdirsReservedDBInstances = Nothing
, _drdirsMarker = Nothing
, _drdirsResponseStatus = pResponseStatus_
}
drdirsReservedDBInstances :: Lens' DescribeReservedDBInstancesResponse [ReservedDBInstance]
drdirsReservedDBInstances = lens _drdirsReservedDBInstances (\ s a -> s{_drdirsReservedDBInstances = a}) . _Default . _Coerce;
drdirsMarker :: Lens' DescribeReservedDBInstancesResponse (Maybe Text)
drdirsMarker = lens _drdirsMarker (\ s a -> s{_drdirsMarker = a});
drdirsResponseStatus :: Lens' DescribeReservedDBInstancesResponse Int
drdirsResponseStatus = lens _drdirsResponseStatus (\ s a -> s{_drdirsResponseStatus = a});