stratosphere-0.3.0: library-gen/Stratosphere/ResourceProperties/ApplicationAutoScalingScalingPolicyStepAdjustment.hs
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment.html
module Stratosphere.ResourceProperties.ApplicationAutoScalingScalingPolicyStepAdjustment where
import Control.Lens
import Data.Aeson
import Data.Aeson.Types
import Data.Text
import GHC.Generics
import Stratosphere.Values
-- | Full data type definition for
-- | ApplicationAutoScalingScalingPolicyStepAdjustment. See
-- | 'applicationAutoScalingScalingPolicyStepAdjustment' for a more convenient
-- | constructor.
data ApplicationAutoScalingScalingPolicyStepAdjustment =
ApplicationAutoScalingScalingPolicyStepAdjustment
{ _applicationAutoScalingScalingPolicyStepAdjustmentMetricIntervalLowerBound :: Maybe (Val Double')
, _applicationAutoScalingScalingPolicyStepAdjustmentMetricIntervalUpperBound :: Maybe (Val Double')
, _applicationAutoScalingScalingPolicyStepAdjustmentScalingAdjustment :: Val Integer'
} deriving (Show, Generic)
instance ToJSON ApplicationAutoScalingScalingPolicyStepAdjustment where
toJSON = genericToJSON defaultOptions { fieldLabelModifier = Prelude.drop 50, omitNothingFields = True }
instance FromJSON ApplicationAutoScalingScalingPolicyStepAdjustment where
parseJSON = genericParseJSON defaultOptions { fieldLabelModifier = Prelude.drop 50, omitNothingFields = True }
-- | Constructor for 'ApplicationAutoScalingScalingPolicyStepAdjustment'
-- | containing required fields as arguments.
applicationAutoScalingScalingPolicyStepAdjustment
:: Val Integer' -- ^ 'aasspsaScalingAdjustment'
-> ApplicationAutoScalingScalingPolicyStepAdjustment
applicationAutoScalingScalingPolicyStepAdjustment scalingAdjustmentarg =
ApplicationAutoScalingScalingPolicyStepAdjustment
{ _applicationAutoScalingScalingPolicyStepAdjustmentMetricIntervalLowerBound = Nothing
, _applicationAutoScalingScalingPolicyStepAdjustmentMetricIntervalUpperBound = Nothing
, _applicationAutoScalingScalingPolicyStepAdjustmentScalingAdjustment = scalingAdjustmentarg
}
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment-metricintervallowerbound
aasspsaMetricIntervalLowerBound :: Lens' ApplicationAutoScalingScalingPolicyStepAdjustment (Maybe (Val Double'))
aasspsaMetricIntervalLowerBound = lens _applicationAutoScalingScalingPolicyStepAdjustmentMetricIntervalLowerBound (\s a -> s { _applicationAutoScalingScalingPolicyStepAdjustmentMetricIntervalLowerBound = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment-metricintervalupperbound
aasspsaMetricIntervalUpperBound :: Lens' ApplicationAutoScalingScalingPolicyStepAdjustment (Maybe (Val Double'))
aasspsaMetricIntervalUpperBound = lens _applicationAutoScalingScalingPolicyStepAdjustmentMetricIntervalUpperBound (\s a -> s { _applicationAutoScalingScalingPolicyStepAdjustmentMetricIntervalUpperBound = a })
-- | http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment.html#cfn-applicationautoscaling-scalingpolicy-stepscalingpolicyconfiguration-stepadjustment-scalingadjustment
aasspsaScalingAdjustment :: Lens' ApplicationAutoScalingScalingPolicyStepAdjustment (Val Integer')
aasspsaScalingAdjustment = lens _applicationAutoScalingScalingPolicyStepAdjustmentScalingAdjustment (\s a -> s { _applicationAutoScalingScalingPolicyStepAdjustmentScalingAdjustment = a })