module Network.AWS.RDS.DescribeDBClusters
(
describeDBClusters
, DescribeDBClusters
, ddcDBClusterIdentifier
, ddcFilters
, ddcMaxRecords
, ddcMarker
, describeDBClustersResponse
, DescribeDBClustersResponse
, ddcrsDBClusters
, ddcrsMarker
, ddcrsStatus
) where
import Network.AWS.Prelude
import Network.AWS.RDS.Types
import Network.AWS.RDS.Types.Product
import Network.AWS.Request
import Network.AWS.Response
data DescribeDBClusters = DescribeDBClusters'
{ _ddcDBClusterIdentifier :: !(Maybe Text)
, _ddcFilters :: !(Maybe [Filter])
, _ddcMaxRecords :: !(Maybe Int)
, _ddcMarker :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeDBClusters
:: DescribeDBClusters
describeDBClusters =
DescribeDBClusters'
{ _ddcDBClusterIdentifier = Nothing
, _ddcFilters = Nothing
, _ddcMaxRecords = Nothing
, _ddcMarker = Nothing
}
ddcDBClusterIdentifier :: Lens' DescribeDBClusters (Maybe Text)
ddcDBClusterIdentifier = lens _ddcDBClusterIdentifier (\ s a -> s{_ddcDBClusterIdentifier = a});
ddcFilters :: Lens' DescribeDBClusters [Filter]
ddcFilters = lens _ddcFilters (\ s a -> s{_ddcFilters = a}) . _Default . _Coerce;
ddcMaxRecords :: Lens' DescribeDBClusters (Maybe Int)
ddcMaxRecords = lens _ddcMaxRecords (\ s a -> s{_ddcMaxRecords = a});
ddcMarker :: Lens' DescribeDBClusters (Maybe Text)
ddcMarker = lens _ddcMarker (\ s a -> s{_ddcMarker = a});
instance AWSRequest DescribeDBClusters where
type Sv DescribeDBClusters = RDS
type Rs DescribeDBClusters =
DescribeDBClustersResponse
request = postQuery
response
= receiveXMLWrapper "DescribeDBClustersResult"
(\ s h x ->
DescribeDBClustersResponse' <$>
(x .@? "DBClusters" .!@ mempty >>=
may (parseXMLList "DBCluster"))
<*> (x .@? "Marker")
<*> (pure (fromEnum s)))
instance ToHeaders DescribeDBClusters where
toHeaders = const mempty
instance ToPath DescribeDBClusters where
toPath = const "/"
instance ToQuery DescribeDBClusters where
toQuery DescribeDBClusters'{..}
= mconcat
["Action" =: ("DescribeDBClusters" :: ByteString),
"Version" =: ("2014-10-31" :: ByteString),
"DBClusterIdentifier" =: _ddcDBClusterIdentifier,
"Filters" =:
toQuery (toQueryList "Filter" <$> _ddcFilters),
"MaxRecords" =: _ddcMaxRecords,
"Marker" =: _ddcMarker]
data DescribeDBClustersResponse = DescribeDBClustersResponse'
{ _ddcrsDBClusters :: !(Maybe [DBCluster])
, _ddcrsMarker :: !(Maybe Text)
, _ddcrsStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeDBClustersResponse
:: Int
-> DescribeDBClustersResponse
describeDBClustersResponse pStatus_ =
DescribeDBClustersResponse'
{ _ddcrsDBClusters = Nothing
, _ddcrsMarker = Nothing
, _ddcrsStatus = pStatus_
}
ddcrsDBClusters :: Lens' DescribeDBClustersResponse [DBCluster]
ddcrsDBClusters = lens _ddcrsDBClusters (\ s a -> s{_ddcrsDBClusters = a}) . _Default . _Coerce;
ddcrsMarker :: Lens' DescribeDBClustersResponse (Maybe Text)
ddcrsMarker = lens _ddcrsMarker (\ s a -> s{_ddcrsMarker = a});
ddcrsStatus :: Lens' DescribeDBClustersResponse Int
ddcrsStatus = lens _ddcrsStatus (\ s a -> s{_ddcrsStatus = a});