{-# 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 #-} -- Derived from AWS service descriptions, licensed under Apache 2.0. -- | -- Module : Network.AWS.Redshift.DescribeOrderableClusterOptions -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Returns a list of orderable cluster options. Before you create a new cluster you can use this operation to find what options are available, such as the EC2 Availability Zones (AZ) in the specific AWS region that you can specify, and the node types you can request. The node types differ by available storage, memory, CPU and price. With the cost involved you might want to obtain a list of cluster options in the specific region and specify values when creating a cluster. For more information about managing clusters, go to in the /Amazon Redshift Cluster Management Guide/ -- -- This operation returns paginated results. module Network.AWS.Redshift.DescribeOrderableClusterOptions ( -- * Creating a Request describeOrderableClusterOptions , DescribeOrderableClusterOptions -- * Request Lenses , docoMarker , docoMaxRecords , docoClusterVersion , docoNodeType -- * Destructuring the Response , describeOrderableClusterOptionsResponse , DescribeOrderableClusterOptionsResponse -- * Response Lenses , 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 -- | -- -- /See:/ 'describeOrderableClusterOptions' smart constructor. data DescribeOrderableClusterOptions = DescribeOrderableClusterOptions' { _docoMarker :: !(Maybe Text) , _docoMaxRecords :: !(Maybe Int) , _docoClusterVersion :: !(Maybe Text) , _docoNodeType :: !(Maybe Text) } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'DescribeOrderableClusterOptions' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'docoMarker' -- -- * 'docoMaxRecords' -- -- * 'docoClusterVersion' -- -- * 'docoNodeType' describeOrderableClusterOptions :: DescribeOrderableClusterOptions describeOrderableClusterOptions = DescribeOrderableClusterOptions' { _docoMarker = Nothing , _docoMaxRecords = Nothing , _docoClusterVersion = Nothing , _docoNodeType = Nothing } -- | An optional parameter that specifies the starting point to return a set of response records. When the results of a < DescribeOrderableClusterOptions> request exceed the value specified in 'MaxRecords', AWS returns a value in the 'Marker' field of the response. You can retrieve the next set of response records by providing the returned marker value in the 'Marker' parameter and retrying the request. docoMarker :: Lens' DescribeOrderableClusterOptions (Maybe Text) docoMarker = lens _docoMarker (\ s a -> s{_docoMarker = a}); -- | The maximum number of response records to return in each call. If the number of remaining response records exceeds the specified 'MaxRecords' value, a value is returned in a 'marker' field of the response. You can retrieve the next set of records by retrying the command with the returned marker value. -- -- Default: '100' -- -- Constraints: minimum 20, maximum 100. docoMaxRecords :: Lens' DescribeOrderableClusterOptions (Maybe Int) docoMaxRecords = lens _docoMaxRecords (\ s a -> s{_docoMaxRecords = a}); -- | The version filter value. Specify this parameter to show only the available offerings matching the specified version. -- -- Default: All versions. -- -- Constraints: Must be one of the version returned from < DescribeClusterVersions>. docoClusterVersion :: Lens' DescribeOrderableClusterOptions (Maybe Text) docoClusterVersion = lens _docoClusterVersion (\ s a -> s{_docoClusterVersion = a}); -- | The node type filter value. Specify this parameter to show only the available offerings matching the specified node type. 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] -- | Contains the output from the < DescribeOrderableClusterOptions> action. -- -- /See:/ 'describeOrderableClusterOptionsResponse' smart constructor. data DescribeOrderableClusterOptionsResponse = DescribeOrderableClusterOptionsResponse' { _docorsMarker :: !(Maybe Text) , _docorsOrderableClusterOptions :: !(Maybe [OrderableClusterOption]) , _docorsResponseStatus :: !Int } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'DescribeOrderableClusterOptionsResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'docorsMarker' -- -- * 'docorsOrderableClusterOptions' -- -- * 'docorsResponseStatus' describeOrderableClusterOptionsResponse :: Int -- ^ 'docorsResponseStatus' -> DescribeOrderableClusterOptionsResponse describeOrderableClusterOptionsResponse pResponseStatus_ = DescribeOrderableClusterOptionsResponse' { _docorsMarker = Nothing , _docorsOrderableClusterOptions = Nothing , _docorsResponseStatus = pResponseStatus_ } -- | A value that indicates the starting point for the next set of response records in a subsequent request. If a value is returned in a response, you can retrieve the next set of records by providing this returned marker value in the 'Marker' parameter and retrying the command. If the 'Marker' field is empty, all response records have been retrieved for the request. docorsMarker :: Lens' DescribeOrderableClusterOptionsResponse (Maybe Text) docorsMarker = lens _docorsMarker (\ s a -> s{_docorsMarker = a}); -- | An 'OrderableClusterOption' structure containing information about orderable options for the cluster. docorsOrderableClusterOptions :: Lens' DescribeOrderableClusterOptionsResponse [OrderableClusterOption] docorsOrderableClusterOptions = lens _docorsOrderableClusterOptions (\ s a -> s{_docorsOrderableClusterOptions = a}) . _Default . _Coerce; -- | The response status code. docorsResponseStatus :: Lens' DescribeOrderableClusterOptionsResponse Int docorsResponseStatus = lens _docorsResponseStatus (\ s a -> s{_docorsResponseStatus = a}); instance NFData DescribeOrderableClusterOptionsResponse