[][src]Struct rusoto_application_autoscaling::StepScalingPolicyConfiguration

pub struct StepScalingPolicyConfiguration {
    pub adjustment_type: Option<String>,
    pub cooldown: Option<i64>,
    pub metric_aggregation_type: Option<String>,
    pub min_adjustment_magnitude: Option<i64>,
    pub step_adjustments: Option<Vec<StepAdjustment>>,
}

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

Fields

adjustment_type: Option<String>

The adjustment type, which specifies how the ScalingAdjustment parameter in a StepAdjustment is interpreted.

cooldown: Option<i64>

The amount of time, in seconds, after a scaling activity completes where previous trigger-related scaling activities can influence future scaling events.

For scale-out policies, while the cooldown period is in effect, the capacity that has been added by the previous scale-out event that initiated the cooldown is calculated as part of the desired capacity for the next scale out. The intention is to continuously (but not excessively) scale out. For example, an alarm triggers a step scaling policy to scale out an Amazon ECS service by 2 tasks, the scaling activity completes successfully, and a cooldown period of 5 minutes starts. During the cooldown period, if the alarm triggers the same policy again but at a more aggressive step adjustment to scale out the service by 3 tasks, the 2 tasks that were added in the previous scale-out event are considered part of that capacity and only 1 additional task is added to the desired count.

For scale-in policies, the cooldown period is used to block subsequent scale-in requests until it has expired. The intention is to scale in conservatively to protect your application's availability. However, if another alarm triggers a scale-out policy during the cooldown period after a scale-in, Application Auto Scaling scales out your scalable target immediately.

metric_aggregation_type: Option<String>

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.

min_adjustment_magnitude: Option<i64>

The minimum number to adjust your scalable dimension as a result of a scaling activity. If the adjustment type is PercentChangeInCapacity, the scaling policy changes the scalable dimension of the scalable target by this amount.

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.

step_adjustments: Option<Vec<StepAdjustment>>

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

Trait Implementations

impl PartialEq<StepScalingPolicyConfiguration> for StepScalingPolicyConfiguration[src]

impl Default for StepScalingPolicyConfiguration[src]

impl Clone for StepScalingPolicyConfiguration[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl Debug for StepScalingPolicyConfiguration[src]

impl Serialize for StepScalingPolicyConfiguration[src]

impl<'de> Deserialize<'de> for StepScalingPolicyConfiguration[src]

Auto Trait Implementations

impl Send for StepScalingPolicyConfiguration

impl Sync for StepScalingPolicyConfiguration

Blanket Implementations

impl<T> From for T[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

type Error = !

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: Deserialize<'de>, 
[src]

impl<T> Erased for T

impl<T> Same for T

type Output = T

Should always be Self