/** * 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 DynamoDB { namespace Model { /** *

Represents the settings of a target tracking scaling policy that will be * modified.

See Also:

AWS * API Reference

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

Indicates whether scale in by the target tracking policy is disabled. If the * value is true, scale in is disabled and the target tracking policy won't remove * capacity from the scalable resource. Otherwise, scale in is enabled and the * target tracking policy can remove capacity from the scalable resource. The * default value is false.

*/ inline bool GetDisableScaleIn() const{ return m_disableScaleIn; } /** *

Indicates whether scale in by the target tracking policy is disabled. If the * value is true, scale in is disabled and the target tracking policy won't remove * capacity from the scalable resource. Otherwise, scale in is enabled and the * target tracking policy can remove capacity from the scalable resource. The * default value is false.

*/ inline bool DisableScaleInHasBeenSet() const { return m_disableScaleInHasBeenSet; } /** *

Indicates whether scale in by the target tracking policy is disabled. If the * value is true, scale in is disabled and the target tracking policy won't remove * capacity from the scalable resource. Otherwise, scale in is enabled and the * target tracking policy can remove capacity from the scalable resource. The * default value is false.

*/ inline void SetDisableScaleIn(bool value) { m_disableScaleInHasBeenSet = true; m_disableScaleIn = value; } /** *

Indicates whether scale in by the target tracking policy is disabled. If the * value is true, scale in is disabled and the target tracking policy won't remove * capacity from the scalable resource. Otherwise, scale in is enabled and the * target tracking policy can remove capacity from the scalable resource. The * default value is false.

*/ inline AutoScalingTargetTrackingScalingPolicyConfigurationUpdate& WithDisableScaleIn(bool value) { SetDisableScaleIn(value); return *this;} /** *

The amount of time, in seconds, after a scale in activity completes before * another scale in activity can start. The cooldown period is used to block * subsequent scale in requests until it has expired. You should 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.

*/ inline int GetScaleInCooldown() const{ return m_scaleInCooldown; } /** *

The amount of time, in seconds, after a scale in activity completes before * another scale in activity can start. The cooldown period is used to block * subsequent scale in requests until it has expired. You should 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.

*/ inline bool ScaleInCooldownHasBeenSet() const { return m_scaleInCooldownHasBeenSet; } /** *

The amount of time, in seconds, after a scale in activity completes before * another scale in activity can start. The cooldown period is used to block * subsequent scale in requests until it has expired. You should 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.

*/ inline void SetScaleInCooldown(int value) { m_scaleInCooldownHasBeenSet = true; m_scaleInCooldown = value; } /** *

The amount of time, in seconds, after a scale in activity completes before * another scale in activity can start. The cooldown period is used to block * subsequent scale in requests until it has expired. You should 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.

*/ inline AutoScalingTargetTrackingScalingPolicyConfigurationUpdate& WithScaleInCooldown(int value) { SetScaleInCooldown(value); return *this;} /** *

The amount of time, in seconds, after a scale out activity completes before * another scale out activity can start. 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. You should continuously (but not excessively) scale out.

*/ inline int GetScaleOutCooldown() const{ return m_scaleOutCooldown; } /** *

The amount of time, in seconds, after a scale out activity completes before * another scale out activity can start. 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. You should continuously (but not excessively) scale out.

*/ inline bool ScaleOutCooldownHasBeenSet() const { return m_scaleOutCooldownHasBeenSet; } /** *

The amount of time, in seconds, after a scale out activity completes before * another scale out activity can start. 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. You should continuously (but not excessively) scale out.

*/ inline void SetScaleOutCooldown(int value) { m_scaleOutCooldownHasBeenSet = true; m_scaleOutCooldown = value; } /** *

The amount of time, in seconds, after a scale out activity completes before * another scale out activity can start. 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. You should continuously (but not excessively) scale out.

*/ inline AutoScalingTargetTrackingScalingPolicyConfigurationUpdate& WithScaleOutCooldown(int value) { SetScaleOutCooldown(value); return *this;} /** *

The target value for the metric. The range is 8.515920e-109 to 1.174271e+108 * (Base 10) or 2e-360 to 2e360 (Base 2).

*/ inline double GetTargetValue() const{ return m_targetValue; } /** *

The target value for the metric. The range is 8.515920e-109 to 1.174271e+108 * (Base 10) or 2e-360 to 2e360 (Base 2).

*/ inline bool TargetValueHasBeenSet() const { return m_targetValueHasBeenSet; } /** *

The target value for the metric. The range is 8.515920e-109 to 1.174271e+108 * (Base 10) or 2e-360 to 2e360 (Base 2).

*/ inline void SetTargetValue(double value) { m_targetValueHasBeenSet = true; m_targetValue = value; } /** *

The target value for the metric. The range is 8.515920e-109 to 1.174271e+108 * (Base 10) or 2e-360 to 2e360 (Base 2).

*/ inline AutoScalingTargetTrackingScalingPolicyConfigurationUpdate& WithTargetValue(double value) { SetTargetValue(value); return *this;} private: bool m_disableScaleIn; bool m_disableScaleInHasBeenSet = false; int m_scaleInCooldown; bool m_scaleInCooldownHasBeenSet = false; int m_scaleOutCooldown; bool m_scaleOutCooldownHasBeenSet = false; double m_targetValue; bool m_targetValueHasBeenSet = false; }; } // namespace Model } // namespace DynamoDB } // namespace Aws