{-# 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.ApplicationAutoScaling.DescribeScalableTargets
(
describeScalableTargets
, DescribeScalableTargets
, dstResourceIds
, dstScalableDimension
, dstNextToken
, dstMaxResults
, dstServiceNamespace
, describeScalableTargetsResponse
, DescribeScalableTargetsResponse
, dstsrsNextToken
, dstsrsScalableTargets
, dstsrsResponseStatus
) where
import Network.AWS.ApplicationAutoScaling.Types
import Network.AWS.ApplicationAutoScaling.Types.Product
import Network.AWS.Lens
import Network.AWS.Prelude
import Network.AWS.Request
import Network.AWS.Response
data DescribeScalableTargets = DescribeScalableTargets'
{ _dstResourceIds :: !(Maybe [Text])
, _dstScalableDimension :: !(Maybe ScalableDimension)
, _dstNextToken :: !(Maybe Text)
, _dstMaxResults :: !(Maybe Int)
, _dstServiceNamespace :: !ServiceNamespace
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeScalableTargets
:: ServiceNamespace
-> DescribeScalableTargets
describeScalableTargets pServiceNamespace_ =
DescribeScalableTargets'
{ _dstResourceIds = Nothing
, _dstScalableDimension = Nothing
, _dstNextToken = Nothing
, _dstMaxResults = Nothing
, _dstServiceNamespace = pServiceNamespace_
}
dstResourceIds :: Lens' DescribeScalableTargets [Text]
dstResourceIds = lens _dstResourceIds (\ s a -> s{_dstResourceIds = a}) . _Default . _Coerce;
dstScalableDimension :: Lens' DescribeScalableTargets (Maybe ScalableDimension)
dstScalableDimension = lens _dstScalableDimension (\ s a -> s{_dstScalableDimension = a});
dstNextToken :: Lens' DescribeScalableTargets (Maybe Text)
dstNextToken = lens _dstNextToken (\ s a -> s{_dstNextToken = a});
dstMaxResults :: Lens' DescribeScalableTargets (Maybe Int)
dstMaxResults = lens _dstMaxResults (\ s a -> s{_dstMaxResults = a});
dstServiceNamespace :: Lens' DescribeScalableTargets ServiceNamespace
dstServiceNamespace = lens _dstServiceNamespace (\ s a -> s{_dstServiceNamespace = a});
instance AWSRequest DescribeScalableTargets where
type Rs DescribeScalableTargets =
DescribeScalableTargetsResponse
request = postJSON applicationAutoScaling
response
= receiveJSON
(\ s h x ->
DescribeScalableTargetsResponse' <$>
(x .?> "NextToken") <*>
(x .?> "ScalableTargets" .!@ mempty)
<*> (pure (fromEnum s)))
instance Hashable DescribeScalableTargets
instance NFData DescribeScalableTargets
instance ToHeaders DescribeScalableTargets where
toHeaders
= const
(mconcat
["X-Amz-Target" =#
("AnyScaleFrontendService.DescribeScalableTargets" ::
ByteString),
"Content-Type" =#
("application/x-amz-json-1.1" :: ByteString)])
instance ToJSON DescribeScalableTargets where
toJSON DescribeScalableTargets'{..}
= object
(catMaybes
[("ResourceIds" .=) <$> _dstResourceIds,
("ScalableDimension" .=) <$> _dstScalableDimension,
("NextToken" .=) <$> _dstNextToken,
("MaxResults" .=) <$> _dstMaxResults,
Just ("ServiceNamespace" .= _dstServiceNamespace)])
instance ToPath DescribeScalableTargets where
toPath = const "/"
instance ToQuery DescribeScalableTargets where
toQuery = const mempty
data DescribeScalableTargetsResponse = DescribeScalableTargetsResponse'
{ _dstsrsNextToken :: !(Maybe Text)
, _dstsrsScalableTargets :: !(Maybe [ScalableTarget])
, _dstsrsResponseStatus :: !Int
} deriving (Eq,Read,Show,Data,Typeable,Generic)
describeScalableTargetsResponse
:: Int
-> DescribeScalableTargetsResponse
describeScalableTargetsResponse pResponseStatus_ =
DescribeScalableTargetsResponse'
{ _dstsrsNextToken = Nothing
, _dstsrsScalableTargets = Nothing
, _dstsrsResponseStatus = pResponseStatus_
}
dstsrsNextToken :: Lens' DescribeScalableTargetsResponse (Maybe Text)
dstsrsNextToken = lens _dstsrsNextToken (\ s a -> s{_dstsrsNextToken = a});
dstsrsScalableTargets :: Lens' DescribeScalableTargetsResponse [ScalableTarget]
dstsrsScalableTargets = lens _dstsrsScalableTargets (\ s a -> s{_dstsrsScalableTargets = a}) . _Default . _Coerce;
dstsrsResponseStatus :: Lens' DescribeScalableTargetsResponse Int
dstsrsResponseStatus = lens _dstsrsResponseStatus (\ s a -> s{_dstsrsResponseStatus = a});
instance NFData DescribeScalableTargetsResponse