module Network.AWS.RDS.DescribeDBParameters
(
describeDBParameters
, DescribeDBParameters
, ddpFilters
, ddpMaxRecords
, ddpMarker
, ddpSource
, ddpDBParameterGroupName
, describeDBParametersResponse
, DescribeDBParametersResponse
, ddprsParameters
, ddprsMarker
, ddprsStatus
) 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 DescribeDBParameters = DescribeDBParameters'
{ _ddpFilters :: !(Maybe [Filter])
, _ddpMaxRecords :: !(Maybe Int)
, _ddpMarker :: !(Maybe Text)
, _ddpSource :: !(Maybe Text)
, _ddpDBParameterGroupName :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeDBParameters
:: Text
-> DescribeDBParameters
describeDBParameters pDBParameterGroupName_ =
DescribeDBParameters'
{ _ddpFilters = Nothing
, _ddpMaxRecords = Nothing
, _ddpMarker = Nothing
, _ddpSource = Nothing
, _ddpDBParameterGroupName = pDBParameterGroupName_
}
ddpFilters :: Lens' DescribeDBParameters [Filter]
ddpFilters = lens _ddpFilters (\ s a -> s{_ddpFilters = a}) . _Default . _Coerce;
ddpMaxRecords :: Lens' DescribeDBParameters (Maybe Int)
ddpMaxRecords = lens _ddpMaxRecords (\ s a -> s{_ddpMaxRecords = a});
ddpMarker :: Lens' DescribeDBParameters (Maybe Text)
ddpMarker = lens _ddpMarker (\ s a -> s{_ddpMarker = a});
ddpSource :: Lens' DescribeDBParameters (Maybe Text)
ddpSource = lens _ddpSource (\ s a -> s{_ddpSource = a});
ddpDBParameterGroupName :: Lens' DescribeDBParameters Text
ddpDBParameterGroupName = lens _ddpDBParameterGroupName (\ s a -> s{_ddpDBParameterGroupName = a});
instance AWSPager DescribeDBParameters where
page rq rs
| stop (rs ^. ddprsMarker) = Nothing
| stop (rs ^. ddprsParameters) = Nothing
| otherwise =
Just $ rq & ddpMarker .~ rs ^. ddprsMarker
instance AWSRequest DescribeDBParameters where
type Sv DescribeDBParameters = RDS
type Rs DescribeDBParameters =
DescribeDBParametersResponse
request = postQuery
response
= receiveXMLWrapper "DescribeDBParametersResult"
(\ s h x ->
DescribeDBParametersResponse' <$>
(x .@? "Parameters" .!@ mempty >>=
may (parseXMLList "Parameter"))
<*> (x .@? "Marker")
<*> (pure (fromEnum s)))
instance ToHeaders DescribeDBParameters where
toHeaders = const mempty
instance ToPath DescribeDBParameters where
toPath = const "/"
instance ToQuery DescribeDBParameters where
toQuery DescribeDBParameters'{..}
= mconcat
["Action" =: ("DescribeDBParameters" :: ByteString),
"Version" =: ("2014-10-31" :: ByteString),
"Filters" =:
toQuery (toQueryList "Filter" <$> _ddpFilters),
"MaxRecords" =: _ddpMaxRecords,
"Marker" =: _ddpMarker, "Source" =: _ddpSource,
"DBParameterGroupName" =: _ddpDBParameterGroupName]
data DescribeDBParametersResponse = DescribeDBParametersResponse'
{ _ddprsParameters :: !(Maybe [Parameter])
, _ddprsMarker :: !(Maybe Text)
, _ddprsStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeDBParametersResponse
:: Int
-> DescribeDBParametersResponse
describeDBParametersResponse pStatus_ =
DescribeDBParametersResponse'
{ _ddprsParameters = Nothing
, _ddprsMarker = Nothing
, _ddprsStatus = pStatus_
}
ddprsParameters :: Lens' DescribeDBParametersResponse [Parameter]
ddprsParameters = lens _ddprsParameters (\ s a -> s{_ddprsParameters = a}) . _Default . _Coerce;
ddprsMarker :: Lens' DescribeDBParametersResponse (Maybe Text)
ddprsMarker = lens _ddprsMarker (\ s a -> s{_ddprsMarker = a});
ddprsStatus :: Lens' DescribeDBParametersResponse Int
ddprsStatus = lens _ddprsStatus (\ s a -> s{_ddprsStatus = a});