{-# 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.DescribeClusterParameters
(
describeClusterParameters
, DescribeClusterParameters
, dcpsMarker
, dcpsMaxRecords
, dcpsSource
, dcpsParameterGroupName
, describeClusterParametersResponse
, DescribeClusterParametersResponse
, dcprsMarker
, dcprsParameters
, dcprsResponseStatus
) 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 DescribeClusterParameters = DescribeClusterParameters'
{ _dcpsMarker :: !(Maybe Text)
, _dcpsMaxRecords :: !(Maybe Int)
, _dcpsSource :: !(Maybe Text)
, _dcpsParameterGroupName :: !Text
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeClusterParameters
:: Text
-> DescribeClusterParameters
describeClusterParameters pParameterGroupName_ =
DescribeClusterParameters'
{ _dcpsMarker = Nothing
, _dcpsMaxRecords = Nothing
, _dcpsSource = Nothing
, _dcpsParameterGroupName = pParameterGroupName_
}
dcpsMarker :: Lens' DescribeClusterParameters (Maybe Text)
dcpsMarker = lens _dcpsMarker (\ s a -> s{_dcpsMarker = a});
dcpsMaxRecords :: Lens' DescribeClusterParameters (Maybe Int)
dcpsMaxRecords = lens _dcpsMaxRecords (\ s a -> s{_dcpsMaxRecords = a});
dcpsSource :: Lens' DescribeClusterParameters (Maybe Text)
dcpsSource = lens _dcpsSource (\ s a -> s{_dcpsSource = a});
dcpsParameterGroupName :: Lens' DescribeClusterParameters Text
dcpsParameterGroupName = lens _dcpsParameterGroupName (\ s a -> s{_dcpsParameterGroupName = a});
instance AWSPager DescribeClusterParameters where
page rq rs
| stop (rs ^. dcprsMarker) = Nothing
| stop (rs ^. dcprsParameters) = Nothing
| otherwise =
Just $ rq & dcpsMarker .~ rs ^. dcprsMarker
instance AWSRequest DescribeClusterParameters where
type Rs DescribeClusterParameters =
DescribeClusterParametersResponse
request = postQuery redshift
response
= receiveXMLWrapper "DescribeClusterParametersResult"
(\ s h x ->
DescribeClusterParametersResponse' <$>
(x .@? "Marker") <*>
(x .@? "Parameters" .!@ mempty >>=
may (parseXMLList "Parameter"))
<*> (pure (fromEnum s)))
instance Hashable DescribeClusterParameters
instance NFData DescribeClusterParameters
instance ToHeaders DescribeClusterParameters where
toHeaders = const mempty
instance ToPath DescribeClusterParameters where
toPath = const "/"
instance ToQuery DescribeClusterParameters where
toQuery DescribeClusterParameters'{..}
= mconcat
["Action" =:
("DescribeClusterParameters" :: ByteString),
"Version" =: ("2012-12-01" :: ByteString),
"Marker" =: _dcpsMarker,
"MaxRecords" =: _dcpsMaxRecords,
"Source" =: _dcpsSource,
"ParameterGroupName" =: _dcpsParameterGroupName]
data DescribeClusterParametersResponse = DescribeClusterParametersResponse'
{ _dcprsMarker :: !(Maybe Text)
, _dcprsParameters :: !(Maybe [Parameter])
, _dcprsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeClusterParametersResponse
:: Int
-> DescribeClusterParametersResponse
describeClusterParametersResponse pResponseStatus_ =
DescribeClusterParametersResponse'
{ _dcprsMarker = Nothing
, _dcprsParameters = Nothing
, _dcprsResponseStatus = pResponseStatus_
}
dcprsMarker :: Lens' DescribeClusterParametersResponse (Maybe Text)
dcprsMarker = lens _dcprsMarker (\ s a -> s{_dcprsMarker = a});
dcprsParameters :: Lens' DescribeClusterParametersResponse [Parameter]
dcprsParameters = lens _dcprsParameters (\ s a -> s{_dcprsParameters = a}) . _Default . _Coerce;
dcprsResponseStatus :: Lens' DescribeClusterParametersResponse Int
dcprsResponseStatus = lens _dcprsResponseStatus (\ s a -> s{_dcprsResponseStatus = a});
instance NFData DescribeClusterParametersResponse