module Network.AWS.RDS.DescribeOptionGroupOptions
(
describeOptionGroupOptions
, DescribeOptionGroupOptions
, dogoFilters
, dogoMajorEngineVersion
, dogoMaxRecords
, dogoMarker
, dogoEngineName
, describeOptionGroupOptionsResponse
, DescribeOptionGroupOptionsResponse
, dogorsOptionGroupOptions
, dogorsMarker
, dogorsStatus
) 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 DescribeOptionGroupOptions = DescribeOptionGroupOptions'
{ _dogoFilters :: !(Maybe [Filter])
, _dogoMajorEngineVersion :: !(Maybe Text)
, _dogoMaxRecords :: !(Maybe Int)
, _dogoMarker :: !(Maybe Text)
, _dogoEngineName :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeOptionGroupOptions
:: Text
-> DescribeOptionGroupOptions
describeOptionGroupOptions pEngineName_ =
DescribeOptionGroupOptions'
{ _dogoFilters = Nothing
, _dogoMajorEngineVersion = Nothing
, _dogoMaxRecords = Nothing
, _dogoMarker = Nothing
, _dogoEngineName = pEngineName_
}
dogoFilters :: Lens' DescribeOptionGroupOptions [Filter]
dogoFilters = lens _dogoFilters (\ s a -> s{_dogoFilters = a}) . _Default . _Coerce;
dogoMajorEngineVersion :: Lens' DescribeOptionGroupOptions (Maybe Text)
dogoMajorEngineVersion = lens _dogoMajorEngineVersion (\ s a -> s{_dogoMajorEngineVersion = a});
dogoMaxRecords :: Lens' DescribeOptionGroupOptions (Maybe Int)
dogoMaxRecords = lens _dogoMaxRecords (\ s a -> s{_dogoMaxRecords = a});
dogoMarker :: Lens' DescribeOptionGroupOptions (Maybe Text)
dogoMarker = lens _dogoMarker (\ s a -> s{_dogoMarker = a});
dogoEngineName :: Lens' DescribeOptionGroupOptions Text
dogoEngineName = lens _dogoEngineName (\ s a -> s{_dogoEngineName = a});
instance AWSPager DescribeOptionGroupOptions where
page rq rs
| stop (rs ^. dogorsMarker) = Nothing
| stop (rs ^. dogorsOptionGroupOptions) = Nothing
| otherwise =
Just $ rq & dogoMarker .~ rs ^. dogorsMarker
instance AWSRequest DescribeOptionGroupOptions where
type Sv DescribeOptionGroupOptions = RDS
type Rs DescribeOptionGroupOptions =
DescribeOptionGroupOptionsResponse
request = postQuery
response
= receiveXMLWrapper
"DescribeOptionGroupOptionsResult"
(\ s h x ->
DescribeOptionGroupOptionsResponse' <$>
(x .@? "OptionGroupOptions" .!@ mempty >>=
may (parseXMLList "OptionGroupOption"))
<*> (x .@? "Marker")
<*> (pure (fromEnum s)))
instance ToHeaders DescribeOptionGroupOptions where
toHeaders = const mempty
instance ToPath DescribeOptionGroupOptions where
toPath = const "/"
instance ToQuery DescribeOptionGroupOptions where
toQuery DescribeOptionGroupOptions'{..}
= mconcat
["Action" =:
("DescribeOptionGroupOptions" :: ByteString),
"Version" =: ("2014-10-31" :: ByteString),
"Filters" =:
toQuery (toQueryList "Filter" <$> _dogoFilters),
"MajorEngineVersion" =: _dogoMajorEngineVersion,
"MaxRecords" =: _dogoMaxRecords,
"Marker" =: _dogoMarker,
"EngineName" =: _dogoEngineName]
data DescribeOptionGroupOptionsResponse = DescribeOptionGroupOptionsResponse'
{ _dogorsOptionGroupOptions :: !(Maybe [OptionGroupOption])
, _dogorsMarker :: !(Maybe Text)
, _dogorsStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeOptionGroupOptionsResponse
:: Int
-> DescribeOptionGroupOptionsResponse
describeOptionGroupOptionsResponse pStatus_ =
DescribeOptionGroupOptionsResponse'
{ _dogorsOptionGroupOptions = Nothing
, _dogorsMarker = Nothing
, _dogorsStatus = pStatus_
}
dogorsOptionGroupOptions :: Lens' DescribeOptionGroupOptionsResponse [OptionGroupOption]
dogorsOptionGroupOptions = lens _dogorsOptionGroupOptions (\ s a -> s{_dogorsOptionGroupOptions = a}) . _Default . _Coerce;
dogorsMarker :: Lens' DescribeOptionGroupOptionsResponse (Maybe Text)
dogorsMarker = lens _dogorsMarker (\ s a -> s{_dogorsMarker = a});
dogorsStatus :: Lens' DescribeOptionGroupOptionsResponse Int
dogorsStatus = lens _dogorsStatus (\ s a -> s{_dogorsStatus = a});