module Network.AWS.Redshift.DescribeOrderableClusterOptions
(
describeOrderableClusterOptions
, DescribeOrderableClusterOptions
, docoMarker
, docoMaxRecords
, docoClusterVersion
, docoNodeType
, describeOrderableClusterOptionsResponse
, DescribeOrderableClusterOptionsResponse
, docorsMarker
, docorsOrderableClusterOptions
, docorsResponseStatus
) 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 DescribeOrderableClusterOptions = DescribeOrderableClusterOptions'
{ _docoMarker :: !(Maybe Text)
, _docoMaxRecords :: !(Maybe Int)
, _docoClusterVersion :: !(Maybe Text)
, _docoNodeType :: !(Maybe Text)
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeOrderableClusterOptions
:: DescribeOrderableClusterOptions
describeOrderableClusterOptions =
DescribeOrderableClusterOptions'
{ _docoMarker = Nothing
, _docoMaxRecords = Nothing
, _docoClusterVersion = Nothing
, _docoNodeType = Nothing
}
docoMarker :: Lens' DescribeOrderableClusterOptions (Maybe Text)
docoMarker = lens _docoMarker (\ s a -> s{_docoMarker = a});
docoMaxRecords :: Lens' DescribeOrderableClusterOptions (Maybe Int)
docoMaxRecords = lens _docoMaxRecords (\ s a -> s{_docoMaxRecords = a});
docoClusterVersion :: Lens' DescribeOrderableClusterOptions (Maybe Text)
docoClusterVersion = lens _docoClusterVersion (\ s a -> s{_docoClusterVersion = a});
docoNodeType :: Lens' DescribeOrderableClusterOptions (Maybe Text)
docoNodeType = lens _docoNodeType (\ s a -> s{_docoNodeType = a});
instance AWSPager DescribeOrderableClusterOptions
where
page rq rs
| stop (rs ^. docorsMarker) = Nothing
| stop (rs ^. docorsOrderableClusterOptions) =
Nothing
| otherwise =
Just $ rq & docoMarker .~ rs ^. docorsMarker
instance AWSRequest DescribeOrderableClusterOptions
where
type Rs DescribeOrderableClusterOptions =
DescribeOrderableClusterOptionsResponse
request = postQuery redshift
response
= receiveXMLWrapper
"DescribeOrderableClusterOptionsResult"
(\ s h x ->
DescribeOrderableClusterOptionsResponse' <$>
(x .@? "Marker") <*>
(x .@? "OrderableClusterOptions" .!@ mempty >>=
may (parseXMLList "OrderableClusterOption"))
<*> (pure (fromEnum s)))
instance Hashable DescribeOrderableClusterOptions
instance NFData DescribeOrderableClusterOptions
instance ToHeaders DescribeOrderableClusterOptions
where
toHeaders = const mempty
instance ToPath DescribeOrderableClusterOptions where
toPath = const "/"
instance ToQuery DescribeOrderableClusterOptions
where
toQuery DescribeOrderableClusterOptions'{..}
= mconcat
["Action" =:
("DescribeOrderableClusterOptions" :: ByteString),
"Version" =: ("2012-12-01" :: ByteString),
"Marker" =: _docoMarker,
"MaxRecords" =: _docoMaxRecords,
"ClusterVersion" =: _docoClusterVersion,
"NodeType" =: _docoNodeType]
data DescribeOrderableClusterOptionsResponse = DescribeOrderableClusterOptionsResponse'
{ _docorsMarker :: !(Maybe Text)
, _docorsOrderableClusterOptions :: !(Maybe [OrderableClusterOption])
, _docorsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeOrderableClusterOptionsResponse
:: Int
-> DescribeOrderableClusterOptionsResponse
describeOrderableClusterOptionsResponse pResponseStatus_ =
DescribeOrderableClusterOptionsResponse'
{ _docorsMarker = Nothing
, _docorsOrderableClusterOptions = Nothing
, _docorsResponseStatus = pResponseStatus_
}
docorsMarker :: Lens' DescribeOrderableClusterOptionsResponse (Maybe Text)
docorsMarker = lens _docorsMarker (\ s a -> s{_docorsMarker = a});
docorsOrderableClusterOptions :: Lens' DescribeOrderableClusterOptionsResponse [OrderableClusterOption]
docorsOrderableClusterOptions = lens _docorsOrderableClusterOptions (\ s a -> s{_docorsOrderableClusterOptions = a}) . _Default . _Coerce;
docorsResponseStatus :: Lens' DescribeOrderableClusterOptionsResponse Int
docorsResponseStatus = lens _docorsResponseStatus (\ s a -> s{_docorsResponseStatus = a});
instance NFData
DescribeOrderableClusterOptionsResponse