{-# 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.AutoScalingPlans.DescribeScalingPlans -- Copyright : (c) 2013-2018 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Describes the specified scaling plans or all of your scaling plans. -- -- module Network.AWS.AutoScalingPlans.DescribeScalingPlans ( -- * Creating a Request describeScalingPlans , DescribeScalingPlans -- * Request Lenses , dScalingPlanVersion , dScalingPlanNames , dNextToken , dApplicationSources , dMaxResults -- * Destructuring the Response , describeScalingPlansResponse , DescribeScalingPlansResponse -- * Response Lenses , drsScalingPlans , drsNextToken , drsResponseStatus ) where import Network.AWS.AutoScalingPlans.Types import Network.AWS.AutoScalingPlans.Types.Product import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | /See:/ 'describeScalingPlans' smart constructor. data DescribeScalingPlans = DescribeScalingPlans' { _dScalingPlanVersion :: !(Maybe Integer) , _dScalingPlanNames :: !(Maybe [Text]) , _dNextToken :: !(Maybe Text) , _dApplicationSources :: !(Maybe [ApplicationSource]) , _dMaxResults :: !(Maybe Int) } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'DescribeScalingPlans' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'dScalingPlanVersion' - The version of the scaling plan. If you specify a scaling plan version, you must also specify a scaling plan name. -- -- * 'dScalingPlanNames' - The names of the scaling plans (up to 10). If you specify application sources, you cannot specify scaling plan names. -- -- * 'dNextToken' - The token for the next set of results. -- -- * 'dApplicationSources' - The sources for the applications (up to 10). If you specify scaling plan names, you cannot specify application sources. -- -- * 'dMaxResults' - The maximum number of scalable resources to return. This value can be between 1 and 50. The default value is 50. describeScalingPlans :: DescribeScalingPlans describeScalingPlans = DescribeScalingPlans' { _dScalingPlanVersion = Nothing , _dScalingPlanNames = Nothing , _dNextToken = Nothing , _dApplicationSources = Nothing , _dMaxResults = Nothing } -- | The version of the scaling plan. If you specify a scaling plan version, you must also specify a scaling plan name. dScalingPlanVersion :: Lens' DescribeScalingPlans (Maybe Integer) dScalingPlanVersion = lens _dScalingPlanVersion (\ s a -> s{_dScalingPlanVersion = a}) -- | The names of the scaling plans (up to 10). If you specify application sources, you cannot specify scaling plan names. dScalingPlanNames :: Lens' DescribeScalingPlans [Text] dScalingPlanNames = lens _dScalingPlanNames (\ s a -> s{_dScalingPlanNames = a}) . _Default . _Coerce -- | The token for the next set of results. dNextToken :: Lens' DescribeScalingPlans (Maybe Text) dNextToken = lens _dNextToken (\ s a -> s{_dNextToken = a}) -- | The sources for the applications (up to 10). If you specify scaling plan names, you cannot specify application sources. dApplicationSources :: Lens' DescribeScalingPlans [ApplicationSource] dApplicationSources = lens _dApplicationSources (\ s a -> s{_dApplicationSources = a}) . _Default . _Coerce -- | The maximum number of scalable resources to return. This value can be between 1 and 50. The default value is 50. dMaxResults :: Lens' DescribeScalingPlans (Maybe Int) dMaxResults = lens _dMaxResults (\ s a -> s{_dMaxResults = a}) instance AWSRequest DescribeScalingPlans where type Rs DescribeScalingPlans = DescribeScalingPlansResponse request = postJSON autoScalingPlans response = receiveJSON (\ s h x -> DescribeScalingPlansResponse' <$> (x .?> "ScalingPlans" .!@ mempty) <*> (x .?> "NextToken") <*> (pure (fromEnum s))) instance Hashable DescribeScalingPlans where instance NFData DescribeScalingPlans where instance ToHeaders DescribeScalingPlans where toHeaders = const (mconcat ["X-Amz-Target" =# ("AnyScaleScalingPlannerFrontendService.DescribeScalingPlans" :: ByteString), "Content-Type" =# ("application/x-amz-json-1.1" :: ByteString)]) instance ToJSON DescribeScalingPlans where toJSON DescribeScalingPlans'{..} = object (catMaybes [("ScalingPlanVersion" .=) <$> _dScalingPlanVersion, ("ScalingPlanNames" .=) <$> _dScalingPlanNames, ("NextToken" .=) <$> _dNextToken, ("ApplicationSources" .=) <$> _dApplicationSources, ("MaxResults" .=) <$> _dMaxResults]) instance ToPath DescribeScalingPlans where toPath = const "/" instance ToQuery DescribeScalingPlans where toQuery = const mempty -- | /See:/ 'describeScalingPlansResponse' smart constructor. data DescribeScalingPlansResponse = DescribeScalingPlansResponse' { _drsScalingPlans :: !(Maybe [ScalingPlan]) , _drsNextToken :: !(Maybe Text) , _drsResponseStatus :: !Int } deriving (Eq, Read, Show, Data, Typeable, Generic) -- | Creates a value of 'DescribeScalingPlansResponse' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'drsScalingPlans' - Information about the scaling plans. -- -- * 'drsNextToken' - The token required to get the next set of results. This value is @null@ if there are no more results to return. -- -- * 'drsResponseStatus' - -- | The response status code. describeScalingPlansResponse :: Int -- ^ 'drsResponseStatus' -> DescribeScalingPlansResponse describeScalingPlansResponse pResponseStatus_ = DescribeScalingPlansResponse' { _drsScalingPlans = Nothing , _drsNextToken = Nothing , _drsResponseStatus = pResponseStatus_ } -- | Information about the scaling plans. drsScalingPlans :: Lens' DescribeScalingPlansResponse [ScalingPlan] drsScalingPlans = lens _drsScalingPlans (\ s a -> s{_drsScalingPlans = a}) . _Default . _Coerce -- | The token required to get the next set of results. This value is @null@ if there are no more results to return. drsNextToken :: Lens' DescribeScalingPlansResponse (Maybe Text) drsNextToken = lens _drsNextToken (\ s a -> s{_drsNextToken = a}) -- | -- | The response status code. drsResponseStatus :: Lens' DescribeScalingPlansResponse Int drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a}) instance NFData DescribeScalingPlansResponse where