{-# 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.AutoScaling.ExecutePolicy -- Copyright : (c) 2013-2016 Brendan Hay -- License : Mozilla Public License, v. 2.0. -- Maintainer : Brendan Hay -- Stability : auto-generated -- Portability : non-portable (GHC extensions) -- -- Executes the specified policy. -- -- module Network.AWS.AutoScaling.ExecutePolicy ( -- * Creating a Request executePolicy , ExecutePolicy -- * Request Lenses , epHonorCooldown , epMetricValue , epAutoScalingGroupName , epBreachThreshold , epPolicyName -- * Destructuring the Response , executePolicyResponse , ExecutePolicyResponse ) where import Network.AWS.AutoScaling.Types import Network.AWS.AutoScaling.Types.Product import Network.AWS.Lens import Network.AWS.Prelude import Network.AWS.Request import Network.AWS.Response -- | Contains the parameters for ExecutePolicy. -- -- -- -- /See:/ 'executePolicy' smart constructor. data ExecutePolicy = ExecutePolicy' { _epHonorCooldown :: !(Maybe Bool) , _epMetricValue :: !(Maybe Double) , _epAutoScalingGroupName :: !(Maybe Text) , _epBreachThreshold :: !(Maybe Double) , _epPolicyName :: !Text } deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ExecutePolicy' with the minimum fields required to make a request. -- -- Use one of the following lenses to modify other fields as desired: -- -- * 'epHonorCooldown' - If this parameter is true, Auto Scaling waits for the cooldown period to complete before executing the policy. Otherwise, Auto Scaling executes the policy without waiting for the cooldown period to complete. This parameter is not supported if the policy type is @StepScaling@ . For more information, see in the /Auto Scaling User Guide/ . -- -- * 'epMetricValue' - The metric value to compare to @BreachThreshold@ . This enables you to execute a policy of type @StepScaling@ and determine which step adjustment to use. For example, if the breach threshold is 50 and you want to use a step adjustment with a lower bound of 0 and an upper bound of 10, you can set the metric value to 59. If you specify a metric value that doesn't correspond to a step adjustment for the policy, the call returns an error. This parameter is required if the policy type is @StepScaling@ and not supported otherwise. -- -- * 'epAutoScalingGroupName' - The name or Amazon Resource Name (ARN) of the Auto Scaling group. -- -- * 'epBreachThreshold' - The breach threshold for the alarm. This parameter is required if the policy type is @StepScaling@ and not supported otherwise. -- -- * 'epPolicyName' - The name or ARN of the policy. executePolicy :: Text -- ^ 'epPolicyName' -> ExecutePolicy executePolicy pPolicyName_ = ExecutePolicy' { _epHonorCooldown = Nothing , _epMetricValue = Nothing , _epAutoScalingGroupName = Nothing , _epBreachThreshold = Nothing , _epPolicyName = pPolicyName_ } -- | If this parameter is true, Auto Scaling waits for the cooldown period to complete before executing the policy. Otherwise, Auto Scaling executes the policy without waiting for the cooldown period to complete. This parameter is not supported if the policy type is @StepScaling@ . For more information, see in the /Auto Scaling User Guide/ . epHonorCooldown :: Lens' ExecutePolicy (Maybe Bool) epHonorCooldown = lens _epHonorCooldown (\ s a -> s{_epHonorCooldown = a}); -- | The metric value to compare to @BreachThreshold@ . This enables you to execute a policy of type @StepScaling@ and determine which step adjustment to use. For example, if the breach threshold is 50 and you want to use a step adjustment with a lower bound of 0 and an upper bound of 10, you can set the metric value to 59. If you specify a metric value that doesn't correspond to a step adjustment for the policy, the call returns an error. This parameter is required if the policy type is @StepScaling@ and not supported otherwise. epMetricValue :: Lens' ExecutePolicy (Maybe Double) epMetricValue = lens _epMetricValue (\ s a -> s{_epMetricValue = a}); -- | The name or Amazon Resource Name (ARN) of the Auto Scaling group. epAutoScalingGroupName :: Lens' ExecutePolicy (Maybe Text) epAutoScalingGroupName = lens _epAutoScalingGroupName (\ s a -> s{_epAutoScalingGroupName = a}); -- | The breach threshold for the alarm. This parameter is required if the policy type is @StepScaling@ and not supported otherwise. epBreachThreshold :: Lens' ExecutePolicy (Maybe Double) epBreachThreshold = lens _epBreachThreshold (\ s a -> s{_epBreachThreshold = a}); -- | The name or ARN of the policy. epPolicyName :: Lens' ExecutePolicy Text epPolicyName = lens _epPolicyName (\ s a -> s{_epPolicyName = a}); instance AWSRequest ExecutePolicy where type Rs ExecutePolicy = ExecutePolicyResponse request = postQuery autoScaling response = receiveNull ExecutePolicyResponse' instance Hashable ExecutePolicy instance NFData ExecutePolicy instance ToHeaders ExecutePolicy where toHeaders = const mempty instance ToPath ExecutePolicy where toPath = const "/" instance ToQuery ExecutePolicy where toQuery ExecutePolicy'{..} = mconcat ["Action" =: ("ExecutePolicy" :: ByteString), "Version" =: ("2011-01-01" :: ByteString), "HonorCooldown" =: _epHonorCooldown, "MetricValue" =: _epMetricValue, "AutoScalingGroupName" =: _epAutoScalingGroupName, "BreachThreshold" =: _epBreachThreshold, "PolicyName" =: _epPolicyName] -- | /See:/ 'executePolicyResponse' smart constructor. data ExecutePolicyResponse = ExecutePolicyResponse' deriving (Eq,Read,Show,Data,Typeable,Generic) -- | Creates a value of 'ExecutePolicyResponse' with the minimum fields required to make a request. -- executePolicyResponse :: ExecutePolicyResponse executePolicyResponse = ExecutePolicyResponse' instance NFData ExecutePolicyResponse