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

Describes information used to create a step adjustment for a step scaling * policy.

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:

For more information, see * Step * adjustments in the Amazon EC2 Auto Scaling User Guide.

See * Also:

AWS * API Reference

*/ class StepAdjustment { public: AWS_AUTOSCALING_API StepAdjustment(); AWS_AUTOSCALING_API StepAdjustment(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_AUTOSCALING_API StepAdjustment& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_AUTOSCALING_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_AUTOSCALING_API void OutputToStream(Aws::OStream& oStream, const char* location) 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 is 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 is 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 is 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 is 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 is 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 is 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 is 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 is 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 AutoScaling } // namespace Aws