packages feed

stratosphere-ecs-1.0.0: gen/Stratosphere/ECS/CapacityProvider/ManagedScalingProperty.hs

module Stratosphere.ECS.CapacityProvider.ManagedScalingProperty (
        ManagedScalingProperty(..), mkManagedScalingProperty
    ) where
import qualified Data.Aeson as JSON
import qualified Stratosphere.Prelude as Prelude
import Stratosphere.Property
import Stratosphere.ResourceProperties
import Stratosphere.Value
data ManagedScalingProperty
  = -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedscaling.html>
    ManagedScalingProperty {haddock_workaround_ :: (),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedscaling.html#cfn-ecs-capacityprovider-managedscaling-instancewarmupperiod>
                            instanceWarmupPeriod :: (Prelude.Maybe (Value Prelude.Integer)),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedscaling.html#cfn-ecs-capacityprovider-managedscaling-maximumscalingstepsize>
                            maximumScalingStepSize :: (Prelude.Maybe (Value Prelude.Integer)),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedscaling.html#cfn-ecs-capacityprovider-managedscaling-minimumscalingstepsize>
                            minimumScalingStepSize :: (Prelude.Maybe (Value Prelude.Integer)),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedscaling.html#cfn-ecs-capacityprovider-managedscaling-status>
                            status :: (Prelude.Maybe (Value Prelude.Text)),
                            -- | See: <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ecs-capacityprovider-managedscaling.html#cfn-ecs-capacityprovider-managedscaling-targetcapacity>
                            targetCapacity :: (Prelude.Maybe (Value Prelude.Integer))}
  deriving stock (Prelude.Eq, Prelude.Show)
mkManagedScalingProperty :: ManagedScalingProperty
mkManagedScalingProperty
  = ManagedScalingProperty
      {haddock_workaround_ = (), instanceWarmupPeriod = Prelude.Nothing,
       maximumScalingStepSize = Prelude.Nothing,
       minimumScalingStepSize = Prelude.Nothing, status = Prelude.Nothing,
       targetCapacity = Prelude.Nothing}
instance ToResourceProperties ManagedScalingProperty where
  toResourceProperties ManagedScalingProperty {..}
    = ResourceProperties
        {awsType = "AWS::ECS::CapacityProvider.ManagedScaling",
         supportsTags = Prelude.False,
         properties = Prelude.fromList
                        (Prelude.catMaybes
                           [(JSON..=) "InstanceWarmupPeriod" Prelude.<$> instanceWarmupPeriod,
                            (JSON..=) "MaximumScalingStepSize"
                              Prelude.<$> maximumScalingStepSize,
                            (JSON..=) "MinimumScalingStepSize"
                              Prelude.<$> minimumScalingStepSize,
                            (JSON..=) "Status" Prelude.<$> status,
                            (JSON..=) "TargetCapacity" Prelude.<$> targetCapacity])}
instance JSON.ToJSON ManagedScalingProperty where
  toJSON ManagedScalingProperty {..}
    = JSON.object
        (Prelude.fromList
           (Prelude.catMaybes
              [(JSON..=) "InstanceWarmupPeriod" Prelude.<$> instanceWarmupPeriod,
               (JSON..=) "MaximumScalingStepSize"
                 Prelude.<$> maximumScalingStepSize,
               (JSON..=) "MinimumScalingStepSize"
                 Prelude.<$> minimumScalingStepSize,
               (JSON..=) "Status" Prelude.<$> status,
               (JSON..=) "TargetCapacity" Prelude.<$> targetCapacity]))
instance Property "InstanceWarmupPeriod" ManagedScalingProperty where
  type PropertyType "InstanceWarmupPeriod" ManagedScalingProperty = Value Prelude.Integer
  set newValue ManagedScalingProperty {..}
    = ManagedScalingProperty
        {instanceWarmupPeriod = Prelude.pure newValue, ..}
instance Property "MaximumScalingStepSize" ManagedScalingProperty where
  type PropertyType "MaximumScalingStepSize" ManagedScalingProperty = Value Prelude.Integer
  set newValue ManagedScalingProperty {..}
    = ManagedScalingProperty
        {maximumScalingStepSize = Prelude.pure newValue, ..}
instance Property "MinimumScalingStepSize" ManagedScalingProperty where
  type PropertyType "MinimumScalingStepSize" ManagedScalingProperty = Value Prelude.Integer
  set newValue ManagedScalingProperty {..}
    = ManagedScalingProperty
        {minimumScalingStepSize = Prelude.pure newValue, ..}
instance Property "Status" ManagedScalingProperty where
  type PropertyType "Status" ManagedScalingProperty = Value Prelude.Text
  set newValue ManagedScalingProperty {..}
    = ManagedScalingProperty {status = Prelude.pure newValue, ..}
instance Property "TargetCapacity" ManagedScalingProperty where
  type PropertyType "TargetCapacity" ManagedScalingProperty = Value Prelude.Integer
  set newValue ManagedScalingProperty {..}
    = ManagedScalingProperty
        {targetCapacity = Prelude.pure newValue, ..}