class Aws::ApplicationAutoScaling::Types::StepScalingPolicyConfiguration

Represents a step scaling policy configuration to use with Application Auto Scaling.

@note When making an API call, you may pass StepScalingPolicyConfiguration

data as a hash:

    {
      adjustment_type: "ChangeInCapacity", # accepts ChangeInCapacity, PercentChangeInCapacity, ExactCapacity
      step_adjustments: [
        {
          metric_interval_lower_bound: 1.0,
          metric_interval_upper_bound: 1.0,
          scaling_adjustment: 1, # required
        },
      ],
      min_adjustment_magnitude: 1,
      cooldown: 1,
      metric_aggregation_type: "Average", # accepts Average, Minimum, Maximum
    }

@!attribute [rw] adjustment_type

Specifies how the `ScalingAdjustment` value in a [StepAdjustment][1]
is interpreted (for example, an absolute number or a percentage).
The valid values are `ChangeInCapacity`, `ExactCapacity`, and
`PercentChangeInCapacity`.

`AdjustmentType` is required if you are adding a new step scaling
policy configuration.

[1]: https://docs.aws.amazon.com/autoscaling/application/APIReference/API_StepAdjustment.html
@return [String]

@!attribute [rw] step_adjustments

A set of adjustments that enable you to scale based on the size of
the alarm breach.

At least one step adjustment is required if you are adding a new
step scaling policy configuration.
@return [Array<Types::StepAdjustment>]

@!attribute [rw] min_adjustment_magnitude

The minimum value to scale by when the adjustment type is
`PercentChangeInCapacity`. For example, suppose that you create a
step scaling policy to scale out an Amazon ECS service by 25 percent
and you specify a `MinAdjustmentMagnitude` of 2. If the service has
4 tasks and the scaling policy is performed, 25 percent of 4 is 1.
However, because you specified a `MinAdjustmentMagnitude` of 2,
Application Auto Scaling scales out the service by 2 tasks.
@return [Integer]

@!attribute [rw] cooldown

The amount of time, in seconds, to wait for a previous scaling
activity to take effect.

With scale-out policies, the intention is to continuously (but not
excessively) scale out. After Application Auto Scaling successfully
scales out using a step scaling policy, it starts to calculate the
cooldown time. The scaling policy won't increase the desired
capacity again unless either a larger scale out is triggered or the
cooldown period ends. While the cooldown period is in effect,
capacity added by the initiating scale-out activity is calculated as
part of the desired capacity for the next scale-out activity. For
example, when an alarm triggers a step scaling policy to increase
the capacity by 2, the scaling activity completes successfully, and
a cooldown period starts. If the alarm triggers again during the
cooldown period but at a more aggressive step adjustment of 3, the
previous increase of 2 is considered part of the current capacity.
Therefore, only 1 is added to the capacity.

With scale-in policies, the intention is to scale in conservatively
to protect your application’s availability, so scale-in activities
are blocked until the cooldown period has expired. However, if
another alarm triggers a scale-out activity during the cooldown
period after a scale-in activity, Application Auto Scaling scales
out the target immediately. In this case, the cooldown period for
the scale-in activity stops and doesn't complete.

Application Auto Scaling provides a default value of 600 for Amazon
ElastiCache replication groups and a default value of 300 for the
following scalable targets:

* ECS services

* Spot Fleet requests

* EMR clusters

* AppStream 2.0 fleets

* Aurora DB clusters

* Amazon SageMaker endpoint variants

* Custom resources

For all other scalable targets, the default value is 0:

* DynamoDB tables

* DynamoDB global secondary indexes

* Amazon Comprehend document classification and entity recognizer
  endpoints

* Lambda provisioned concurrency

* Amazon Keyspaces tables

* Amazon MSK broker storage
@return [Integer]

@!attribute [rw] metric_aggregation_type

The aggregation type for the CloudWatch metrics. Valid values are
`Minimum`, `Maximum`, and `Average`. If the aggregation type is
null, the value is treated as `Average`.
@return [String]

@see docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/StepScalingPolicyConfiguration AWS API Documentation

Constants

SENSITIVE