{-# 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.Redshift.DescribeClusterSubnetGroups
(
describeClusterSubnetGroups
, DescribeClusterSubnetGroups
, dcsgsTagValues
, dcsgsTagKeys
, dcsgsClusterSubnetGroupName
, dcsgsMarker
, dcsgsMaxRecords
, describeClusterSubnetGroupsResponse
, DescribeClusterSubnetGroupsResponse
, dcsgrsClusterSubnetGroups
, dcsgrsMarker
, dcsgrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.Pager
import Network.AWS.Prelude
import Network.AWS.Redshift.Types
import Network.AWS.Redshift.Types.Product
import Network.AWS.Request
import Network.AWS.Response
data DescribeClusterSubnetGroups = DescribeClusterSubnetGroups'
{ _dcsgsTagValues :: !(Maybe [Text])
, _dcsgsTagKeys :: !(Maybe [Text])
, _dcsgsClusterSubnetGroupName :: !(Maybe Text)
, _dcsgsMarker :: !(Maybe Text)
, _dcsgsMaxRecords :: !(Maybe Int)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeClusterSubnetGroups
:: DescribeClusterSubnetGroups
describeClusterSubnetGroups =
DescribeClusterSubnetGroups'
{ _dcsgsTagValues = Nothing
, _dcsgsTagKeys = Nothing
, _dcsgsClusterSubnetGroupName = Nothing
, _dcsgsMarker = Nothing
, _dcsgsMaxRecords = Nothing
}
dcsgsTagValues :: Lens' DescribeClusterSubnetGroups [Text]
dcsgsTagValues = lens _dcsgsTagValues (\ s a -> s{_dcsgsTagValues = a}) . _Default . _Coerce;
dcsgsTagKeys :: Lens' DescribeClusterSubnetGroups [Text]
dcsgsTagKeys = lens _dcsgsTagKeys (\ s a -> s{_dcsgsTagKeys = a}) . _Default . _Coerce;
dcsgsClusterSubnetGroupName :: Lens' DescribeClusterSubnetGroups (Maybe Text)
dcsgsClusterSubnetGroupName = lens _dcsgsClusterSubnetGroupName (\ s a -> s{_dcsgsClusterSubnetGroupName = a});
dcsgsMarker :: Lens' DescribeClusterSubnetGroups (Maybe Text)
dcsgsMarker = lens _dcsgsMarker (\ s a -> s{_dcsgsMarker = a});
dcsgsMaxRecords :: Lens' DescribeClusterSubnetGroups (Maybe Int)
dcsgsMaxRecords = lens _dcsgsMaxRecords (\ s a -> s{_dcsgsMaxRecords = a});
instance AWSPager DescribeClusterSubnetGroups where
page rq rs
| stop (rs ^. dcsgrsMarker) = Nothing
| stop (rs ^. dcsgrsClusterSubnetGroups) = Nothing
| otherwise =
Just $ rq & dcsgsMarker .~ rs ^. dcsgrsMarker
instance AWSRequest DescribeClusterSubnetGroups where
type Rs DescribeClusterSubnetGroups =
DescribeClusterSubnetGroupsResponse
request = postQuery redshift
response
= receiveXMLWrapper
"DescribeClusterSubnetGroupsResult"
(\ s h x ->
DescribeClusterSubnetGroupsResponse' <$>
(x .@? "ClusterSubnetGroups" .!@ mempty >>=
may (parseXMLList "ClusterSubnetGroup"))
<*> (x .@? "Marker")
<*> (pure (fromEnum s)))
instance Hashable DescribeClusterSubnetGroups
instance NFData DescribeClusterSubnetGroups
instance ToHeaders DescribeClusterSubnetGroups where
toHeaders = const mempty
instance ToPath DescribeClusterSubnetGroups where
toPath = const "/"
instance ToQuery DescribeClusterSubnetGroups where
toQuery DescribeClusterSubnetGroups'{..}
= mconcat
["Action" =:
("DescribeClusterSubnetGroups" :: ByteString),
"Version" =: ("2012-12-01" :: ByteString),
"TagValues" =:
toQuery (toQueryList "TagValue" <$> _dcsgsTagValues),
"TagKeys" =:
toQuery (toQueryList "TagKey" <$> _dcsgsTagKeys),
"ClusterSubnetGroupName" =:
_dcsgsClusterSubnetGroupName,
"Marker" =: _dcsgsMarker,
"MaxRecords" =: _dcsgsMaxRecords]
data DescribeClusterSubnetGroupsResponse = DescribeClusterSubnetGroupsResponse'
{ _dcsgrsClusterSubnetGroups :: !(Maybe [ClusterSubnetGroup])
, _dcsgrsMarker :: !(Maybe Text)
, _dcsgrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeClusterSubnetGroupsResponse
:: Int
-> DescribeClusterSubnetGroupsResponse
describeClusterSubnetGroupsResponse pResponseStatus_ =
DescribeClusterSubnetGroupsResponse'
{ _dcsgrsClusterSubnetGroups = Nothing
, _dcsgrsMarker = Nothing
, _dcsgrsResponseStatus = pResponseStatus_
}
dcsgrsClusterSubnetGroups :: Lens' DescribeClusterSubnetGroupsResponse [ClusterSubnetGroup]
dcsgrsClusterSubnetGroups = lens _dcsgrsClusterSubnetGroups (\ s a -> s{_dcsgrsClusterSubnetGroups = a}) . _Default . _Coerce;
dcsgrsMarker :: Lens' DescribeClusterSubnetGroupsResponse (Maybe Text)
dcsgrsMarker = lens _dcsgrsMarker (\ s a -> s{_dcsgrsMarker = a});
dcsgrsResponseStatus :: Lens' DescribeClusterSubnetGroupsResponse Int
dcsgrsResponseStatus = lens _dcsgrsResponseStatus (\ s a -> s{_dcsgrsResponseStatus = a});
instance NFData DescribeClusterSubnetGroupsResponse