{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-binds #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}
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.Lens
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 Hashable DescribeReservedDBInstances where
instance NFData DescribeReservedDBInstances where
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})
instance NFData DescribeReservedDBInstancesResponse
where