{-# 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.DescribeDBClusterSnapshots
(
describeDBClusterSnapshots
, DescribeDBClusterSnapshots
, ddbcsDBClusterIdentifier
, ddbcsIncludeShared
, ddbcsDBClusterSnapshotIdentifier
, ddbcsFilters
, ddbcsSnapshotType
, ddbcsMarker
, ddbcsMaxRecords
, ddbcsIncludePublic
, describeDBClusterSnapshotsResponse
, DescribeDBClusterSnapshotsResponse
, ddbcsrsMarker
, ddbcsrsDBClusterSnapshots
, ddbcsrsResponseStatus
) 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 DescribeDBClusterSnapshots = DescribeDBClusterSnapshots'
{ _ddbcsDBClusterIdentifier :: !(Maybe Text)
, _ddbcsIncludeShared :: !(Maybe Bool)
, _ddbcsDBClusterSnapshotIdentifier :: !(Maybe Text)
, _ddbcsFilters :: !(Maybe [Filter])
, _ddbcsSnapshotType :: !(Maybe Text)
, _ddbcsMarker :: !(Maybe Text)
, _ddbcsMaxRecords :: !(Maybe Int)
, _ddbcsIncludePublic :: !(Maybe Bool)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeDBClusterSnapshots
:: DescribeDBClusterSnapshots
describeDBClusterSnapshots =
DescribeDBClusterSnapshots'
{ _ddbcsDBClusterIdentifier = Nothing
, _ddbcsIncludeShared = Nothing
, _ddbcsDBClusterSnapshotIdentifier = Nothing
, _ddbcsFilters = Nothing
, _ddbcsSnapshotType = Nothing
, _ddbcsMarker = Nothing
, _ddbcsMaxRecords = Nothing
, _ddbcsIncludePublic = Nothing
}
ddbcsDBClusterIdentifier :: Lens' DescribeDBClusterSnapshots (Maybe Text)
ddbcsDBClusterIdentifier = lens _ddbcsDBClusterIdentifier (\ s a -> s{_ddbcsDBClusterIdentifier = a});
ddbcsIncludeShared :: Lens' DescribeDBClusterSnapshots (Maybe Bool)
ddbcsIncludeShared = lens _ddbcsIncludeShared (\ s a -> s{_ddbcsIncludeShared = a});
ddbcsDBClusterSnapshotIdentifier :: Lens' DescribeDBClusterSnapshots (Maybe Text)
ddbcsDBClusterSnapshotIdentifier = lens _ddbcsDBClusterSnapshotIdentifier (\ s a -> s{_ddbcsDBClusterSnapshotIdentifier = a});
ddbcsFilters :: Lens' DescribeDBClusterSnapshots [Filter]
ddbcsFilters = lens _ddbcsFilters (\ s a -> s{_ddbcsFilters = a}) . _Default . _Coerce;
ddbcsSnapshotType :: Lens' DescribeDBClusterSnapshots (Maybe Text)
ddbcsSnapshotType = lens _ddbcsSnapshotType (\ s a -> s{_ddbcsSnapshotType = a});
ddbcsMarker :: Lens' DescribeDBClusterSnapshots (Maybe Text)
ddbcsMarker = lens _ddbcsMarker (\ s a -> s{_ddbcsMarker = a});
ddbcsMaxRecords :: Lens' DescribeDBClusterSnapshots (Maybe Int)
ddbcsMaxRecords = lens _ddbcsMaxRecords (\ s a -> s{_ddbcsMaxRecords = a});
ddbcsIncludePublic :: Lens' DescribeDBClusterSnapshots (Maybe Bool)
ddbcsIncludePublic = lens _ddbcsIncludePublic (\ s a -> s{_ddbcsIncludePublic = a});
instance AWSPager DescribeDBClusterSnapshots where
page rq rs
| stop (rs ^. ddbcsrsMarker) = Nothing
| stop (rs ^. ddbcsrsDBClusterSnapshots) = Nothing
| otherwise =
Just $ rq & ddbcsMarker .~ rs ^. ddbcsrsMarker
instance AWSRequest DescribeDBClusterSnapshots where
type Rs DescribeDBClusterSnapshots =
DescribeDBClusterSnapshotsResponse
request = postQuery rds
response
= receiveXMLWrapper
"DescribeDBClusterSnapshotsResult"
(\ s h x ->
DescribeDBClusterSnapshotsResponse' <$>
(x .@? "Marker") <*>
(x .@? "DBClusterSnapshots" .!@ mempty >>=
may (parseXMLList "DBClusterSnapshot"))
<*> (pure (fromEnum s)))
instance Hashable DescribeDBClusterSnapshots
instance NFData DescribeDBClusterSnapshots
instance ToHeaders DescribeDBClusterSnapshots where
toHeaders = const mempty
instance ToPath DescribeDBClusterSnapshots where
toPath = const "/"
instance ToQuery DescribeDBClusterSnapshots where
toQuery DescribeDBClusterSnapshots'{..}
= mconcat
["Action" =:
("DescribeDBClusterSnapshots" :: ByteString),
"Version" =: ("2014-10-31" :: ByteString),
"DBClusterIdentifier" =: _ddbcsDBClusterIdentifier,
"IncludeShared" =: _ddbcsIncludeShared,
"DBClusterSnapshotIdentifier" =:
_ddbcsDBClusterSnapshotIdentifier,
"Filters" =:
toQuery (toQueryList "Filter" <$> _ddbcsFilters),
"SnapshotType" =: _ddbcsSnapshotType,
"Marker" =: _ddbcsMarker,
"MaxRecords" =: _ddbcsMaxRecords,
"IncludePublic" =: _ddbcsIncludePublic]
data DescribeDBClusterSnapshotsResponse = DescribeDBClusterSnapshotsResponse'
{ _ddbcsrsMarker :: !(Maybe Text)
, _ddbcsrsDBClusterSnapshots :: !(Maybe [DBClusterSnapshot])
, _ddbcsrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeDBClusterSnapshotsResponse
:: Int
-> DescribeDBClusterSnapshotsResponse
describeDBClusterSnapshotsResponse pResponseStatus_ =
DescribeDBClusterSnapshotsResponse'
{ _ddbcsrsMarker = Nothing
, _ddbcsrsDBClusterSnapshots = Nothing
, _ddbcsrsResponseStatus = pResponseStatus_
}
ddbcsrsMarker :: Lens' DescribeDBClusterSnapshotsResponse (Maybe Text)
ddbcsrsMarker = lens _ddbcsrsMarker (\ s a -> s{_ddbcsrsMarker = a});
ddbcsrsDBClusterSnapshots :: Lens' DescribeDBClusterSnapshotsResponse [DBClusterSnapshot]
ddbcsrsDBClusterSnapshots = lens _ddbcsrsDBClusterSnapshots (\ s a -> s{_ddbcsrsDBClusterSnapshots = a}) . _Default . _Coerce;
ddbcsrsResponseStatus :: Lens' DescribeDBClusterSnapshotsResponse Int
ddbcsrsResponseStatus = lens _ddbcsrsResponseStatus (\ s a -> s{_ddbcsrsResponseStatus = a});
instance NFData DescribeDBClusterSnapshotsResponse