/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace ApplicationAutoScaling { namespace Model { /** *

Represents a step adjustment for a StepScalingPolicyConfiguration. * Describes an adjustment based on the difference between the value of the * aggregated CloudWatch metric and the breach threshold that you've defined for * the alarm.

For the following examples, suppose that you have an alarm * with a breach threshold of 50:

There are a few rules for the step * adjustments for your step policy:

See Also:

AWS * API Reference

*/ class StepAdjustment { public: AWS_APPLICATIONAUTOSCALING_API StepAdjustment(); AWS_APPLICATIONAUTOSCALING_API StepAdjustment(Aws::Utils::Json::JsonView jsonValue); AWS_APPLICATIONAUTOSCALING_API StepAdjustment& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_APPLICATIONAUTOSCALING_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The lower bound for the difference between the alarm threshold and the * CloudWatch metric. If the metric value is above the breach threshold, the lower * bound is inclusive (the metric must be greater than or equal to the threshold * plus the lower bound). Otherwise, it's exclusive (the metric must be greater * than the threshold plus the lower bound). A null value indicates negative * infinity.

*/ inline double GetMetricIntervalLowerBound() const{ return m_metricIntervalLowerBound; } /** *

The lower bound for the difference between the alarm threshold and the * CloudWatch metric. If the metric value is above the breach threshold, the lower * bound is inclusive (the metric must be greater than or equal to the threshold * plus the lower bound). Otherwise, it's exclusive (the metric must be greater * than the threshold plus the lower bound). A null value indicates negative * infinity.

*/ inline bool MetricIntervalLowerBoundHasBeenSet() const { return m_metricIntervalLowerBoundHasBeenSet; } /** *

The lower bound for the difference between the alarm threshold and the * CloudWatch metric. If the metric value is above the breach threshold, the lower * bound is inclusive (the metric must be greater than or equal to the threshold * plus the lower bound). Otherwise, it's exclusive (the metric must be greater * than the threshold plus the lower bound). A null value indicates negative * infinity.

*/ inline void SetMetricIntervalLowerBound(double value) { m_metricIntervalLowerBoundHasBeenSet = true; m_metricIntervalLowerBound = value; } /** *

The lower bound for the difference between the alarm threshold and the * CloudWatch metric. If the metric value is above the breach threshold, the lower * bound is inclusive (the metric must be greater than or equal to the threshold * plus the lower bound). Otherwise, it's exclusive (the metric must be greater * than the threshold plus the lower bound). A null value indicates negative * infinity.

*/ inline StepAdjustment& WithMetricIntervalLowerBound(double value) { SetMetricIntervalLowerBound(value); return *this;} /** *

The upper bound for the difference between the alarm threshold and the * CloudWatch metric. If the metric value is above the breach threshold, the upper * bound is exclusive (the metric must be less than the threshold plus the upper * bound). Otherwise, it's inclusive (the metric must be less than or equal to the * threshold plus the upper bound). A null value indicates positive infinity.

*

The upper bound must be greater than the lower bound.

*/ inline double GetMetricIntervalUpperBound() const{ return m_metricIntervalUpperBound; } /** *

The upper bound for the difference between the alarm threshold and the * CloudWatch metric. If the metric value is above the breach threshold, the upper * bound is exclusive (the metric must be less than the threshold plus the upper * bound). Otherwise, it's inclusive (the metric must be less than or equal to the * threshold plus the upper bound). A null value indicates positive infinity.

*

The upper bound must be greater than the lower bound.

*/ inline bool MetricIntervalUpperBoundHasBeenSet() const { return m_metricIntervalUpperBoundHasBeenSet; } /** *

The upper bound for the difference between the alarm threshold and the * CloudWatch metric. If the metric value is above the breach threshold, the upper * bound is exclusive (the metric must be less than the threshold plus the upper * bound). Otherwise, it's inclusive (the metric must be less than or equal to the * threshold plus the upper bound). A null value indicates positive infinity.

*

The upper bound must be greater than the lower bound.

*/ inline void SetMetricIntervalUpperBound(double value) { m_metricIntervalUpperBoundHasBeenSet = true; m_metricIntervalUpperBound = value; } /** *

The upper bound for the difference between the alarm threshold and the * CloudWatch metric. If the metric value is above the breach threshold, the upper * bound is exclusive (the metric must be less than the threshold plus the upper * bound). Otherwise, it's inclusive (the metric must be less than or equal to the * threshold plus the upper bound). A null value indicates positive infinity.

*

The upper bound must be greater than the lower bound.

*/ inline StepAdjustment& WithMetricIntervalUpperBound(double value) { SetMetricIntervalUpperBound(value); return *this;} /** *

The amount by which to scale, based on the specified adjustment type. A * positive value adds to the current capacity while a negative number removes from * the current capacity. For exact capacity, you must specify a non-negative * value.

*/ inline int GetScalingAdjustment() const{ return m_scalingAdjustment; } /** *

The amount by which to scale, based on the specified adjustment type. A * positive value adds to the current capacity while a negative number removes from * the current capacity. For exact capacity, you must specify a non-negative * value.

*/ inline bool ScalingAdjustmentHasBeenSet() const { return m_scalingAdjustmentHasBeenSet; } /** *

The amount by which to scale, based on the specified adjustment type. A * positive value adds to the current capacity while a negative number removes from * the current capacity. For exact capacity, you must specify a non-negative * value.

*/ inline void SetScalingAdjustment(int value) { m_scalingAdjustmentHasBeenSet = true; m_scalingAdjustment = value; } /** *

The amount by which to scale, based on the specified adjustment type. A * positive value adds to the current capacity while a negative number removes from * the current capacity. For exact capacity, you must specify a non-negative * value.

*/ inline StepAdjustment& WithScalingAdjustment(int value) { SetScalingAdjustment(value); return *this;} private: double m_metricIntervalLowerBound; bool m_metricIntervalLowerBoundHasBeenSet = false; double m_metricIntervalUpperBound; bool m_metricIntervalUpperBoundHasBeenSet = false; int m_scalingAdjustment; bool m_scalingAdjustmentHasBeenSet = false; }; } // namespace Model } // namespace ApplicationAutoScaling } // namespace Aws