{-# 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.OpsWorks.DescribeEcsClusters
(
describeEcsClusters
, DescribeEcsClusters
, decNextToken
, decStackId
, decMaxResults
, decEcsClusterARNs
, describeEcsClustersResponse
, DescribeEcsClustersResponse
, decrsNextToken
, decrsEcsClusters
, decrsResponseStatus
) where
import Network.AWS.Lens
import Network.AWS.OpsWorks.Types
import Network.AWS.OpsWorks.Types.Product
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DescribeEcsClusters = DescribeEcsClusters'
{ _decNextToken :: !(Maybe Text)
, _decStackId :: !(Maybe Text)
, _decMaxResults :: !(Maybe Int)
, _decEcsClusterARNs :: !(Maybe [Text])
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeEcsClusters
:: DescribeEcsClusters
describeEcsClusters =
DescribeEcsClusters'
{ _decNextToken = Nothing
, _decStackId = Nothing
, _decMaxResults = Nothing
, _decEcsClusterARNs = Nothing
}
decNextToken :: Lens' DescribeEcsClusters (Maybe Text)
decNextToken = lens _decNextToken (\ s a -> s{_decNextToken = a});
decStackId :: Lens' DescribeEcsClusters (Maybe Text)
decStackId = lens _decStackId (\ s a -> s{_decStackId = a});
decMaxResults :: Lens' DescribeEcsClusters (Maybe Int)
decMaxResults = lens _decMaxResults (\ s a -> s{_decMaxResults = a});
decEcsClusterARNs :: Lens' DescribeEcsClusters [Text]
decEcsClusterARNs = lens _decEcsClusterARNs (\ s a -> s{_decEcsClusterARNs = a}) . _Default . _Coerce;
instance AWSRequest DescribeEcsClusters where
type Rs DescribeEcsClusters =
DescribeEcsClustersResponse
request = postJSON opsWorks
response
= receiveJSON
(\ s h x ->
DescribeEcsClustersResponse' <$>
(x .?> "NextToken") <*>
(x .?> "EcsClusters" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable DescribeEcsClusters
instance NFData DescribeEcsClusters
instance ToHeaders DescribeEcsClusters where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("OpsWorks_20130218.DescribeEcsClusters" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DescribeEcsClusters where
toJSON DescribeEcsClusters'{..}
= object
(catMaybes
[("NextToken" .=) <$> _decNextToken,
("StackId" .=) <$> _decStackId,
("MaxResults" .=) <$> _decMaxResults,
("EcsClusterArns" .=) <$> _decEcsClusterARNs])
instance ToPath DescribeEcsClusters where
toPath = const "/"
instance ToQuery DescribeEcsClusters where
toQuery = const mempty
data DescribeEcsClustersResponse = DescribeEcsClustersResponse'
{ _decrsNextToken :: !(Maybe Text)
, _decrsEcsClusters :: !(Maybe [EcsCluster])
, _decrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeEcsClustersResponse
:: Int
-> DescribeEcsClustersResponse
describeEcsClustersResponse pResponseStatus_ =
DescribeEcsClustersResponse'
{ _decrsNextToken = Nothing
, _decrsEcsClusters = Nothing
, _decrsResponseStatus = pResponseStatus_
}
decrsNextToken :: Lens' DescribeEcsClustersResponse (Maybe Text)
decrsNextToken = lens _decrsNextToken (\ s a -> s{_decrsNextToken = a});
decrsEcsClusters :: Lens' DescribeEcsClustersResponse [EcsCluster]
decrsEcsClusters = lens _decrsEcsClusters (\ s a -> s{_decrsEcsClusters = a}) . _Default . _Coerce;
decrsResponseStatus :: Lens' DescribeEcsClustersResponse Int
decrsResponseStatus = lens _decrsResponseStatus (\ s a -> s{_decrsResponseStatus = a});
instance NFData DescribeEcsClustersResponse