module Network.AWS.Redshift.DescribeClusterVersions
(
describeClusterVersions
, DescribeClusterVersions
, dcvClusterParameterGroupFamily
, dcvMarker
, dcvMaxRecords
, dcvClusterVersion
, describeClusterVersionsResponse
, DescribeClusterVersionsResponse
, dcvrsClusterVersions
, dcvrsMarker
, dcvrsResponseStatus
) 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 DescribeClusterVersions = DescribeClusterVersions'
{ _dcvClusterParameterGroupFamily :: !(Maybe Text)
, _dcvMarker :: !(Maybe Text)
, _dcvMaxRecords :: !(Maybe Int)
, _dcvClusterVersion :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeClusterVersions
:: DescribeClusterVersions
describeClusterVersions =
DescribeClusterVersions'
{ _dcvClusterParameterGroupFamily = Nothing
, _dcvMarker = Nothing
, _dcvMaxRecords = Nothing
, _dcvClusterVersion = Nothing
}
dcvClusterParameterGroupFamily :: Lens' DescribeClusterVersions (Maybe Text)
dcvClusterParameterGroupFamily = lens _dcvClusterParameterGroupFamily (\ s a -> s{_dcvClusterParameterGroupFamily = a});
dcvMarker :: Lens' DescribeClusterVersions (Maybe Text)
dcvMarker = lens _dcvMarker (\ s a -> s{_dcvMarker = a});
dcvMaxRecords :: Lens' DescribeClusterVersions (Maybe Int)
dcvMaxRecords = lens _dcvMaxRecords (\ s a -> s{_dcvMaxRecords = a});
dcvClusterVersion :: Lens' DescribeClusterVersions (Maybe Text)
dcvClusterVersion = lens _dcvClusterVersion (\ s a -> s{_dcvClusterVersion = a});
instance AWSPager DescribeClusterVersions where
page rq rs
| stop (rs ^. dcvrsMarker) = Nothing
| stop (rs ^. dcvrsClusterVersions) = Nothing
| otherwise =
Just $ rq & dcvMarker .~ rs ^. dcvrsMarker
instance AWSRequest DescribeClusterVersions where
type Rs DescribeClusterVersions =
DescribeClusterVersionsResponse
request = postQuery redshift
response
= receiveXMLWrapper "DescribeClusterVersionsResult"
(\ s h x ->
DescribeClusterVersionsResponse' <$>
(x .@? "ClusterVersions" .!@ mempty >>=
may (parseXMLList "ClusterVersion"))
<*> (x .@? "Marker")
<*> (pure (fromEnum s)))
instance Hashable DescribeClusterVersions
instance ToHeaders DescribeClusterVersions where
toHeaders = const mempty
instance ToPath DescribeClusterVersions where
toPath = const "/"
instance ToQuery DescribeClusterVersions where
toQuery DescribeClusterVersions'{..}
= mconcat
["Action" =:
("DescribeClusterVersions" :: ByteString),
"Version" =: ("2012-12-01" :: ByteString),
"ClusterParameterGroupFamily" =:
_dcvClusterParameterGroupFamily,
"Marker" =: _dcvMarker,
"MaxRecords" =: _dcvMaxRecords,
"ClusterVersion" =: _dcvClusterVersion]
data DescribeClusterVersionsResponse = DescribeClusterVersionsResponse'
{ _dcvrsClusterVersions :: !(Maybe [ClusterVersion])
, _dcvrsMarker :: !(Maybe Text)
, _dcvrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeClusterVersionsResponse
:: Int
-> DescribeClusterVersionsResponse
describeClusterVersionsResponse pResponseStatus_ =
DescribeClusterVersionsResponse'
{ _dcvrsClusterVersions = Nothing
, _dcvrsMarker = Nothing
, _dcvrsResponseStatus = pResponseStatus_
}
dcvrsClusterVersions :: Lens' DescribeClusterVersionsResponse [ClusterVersion]
dcvrsClusterVersions = lens _dcvrsClusterVersions (\ s a -> s{_dcvrsClusterVersions = a}) . _Default . _Coerce;
dcvrsMarker :: Lens' DescribeClusterVersionsResponse (Maybe Text)
dcvrsMarker = lens _dcvrsMarker (\ s a -> s{_dcvrsMarker = a});
dcvrsResponseStatus :: Lens' DescribeClusterVersionsResponse Int
dcvrsResponseStatus = lens _dcvrsResponseStatus (\ s a -> s{_dcvrsResponseStatus = a});