/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Represents a target tracking scaling policy configuration to use with
* Application Auto Scaling.See Also:
AWS
* API Reference
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 TargetTrackingScalingPolicyConfiguration& WithTargetValue(double value) { SetTargetValue(value); return *this;} /** *A predefined metric. You can specify either a predefined metric or a * customized metric.
*/ inline const PredefinedMetricSpecification& GetPredefinedMetricSpecification() const{ return m_predefinedMetricSpecification; } /** *A predefined metric. You can specify either a predefined metric or a * customized metric.
*/ inline bool PredefinedMetricSpecificationHasBeenSet() const { return m_predefinedMetricSpecificationHasBeenSet; } /** *A predefined metric. You can specify either a predefined metric or a * customized metric.
*/ inline void SetPredefinedMetricSpecification(const PredefinedMetricSpecification& value) { m_predefinedMetricSpecificationHasBeenSet = true; m_predefinedMetricSpecification = value; } /** *A predefined metric. You can specify either a predefined metric or a * customized metric.
*/ inline void SetPredefinedMetricSpecification(PredefinedMetricSpecification&& value) { m_predefinedMetricSpecificationHasBeenSet = true; m_predefinedMetricSpecification = std::move(value); } /** *A predefined metric. You can specify either a predefined metric or a * customized metric.
*/ inline TargetTrackingScalingPolicyConfiguration& WithPredefinedMetricSpecification(const PredefinedMetricSpecification& value) { SetPredefinedMetricSpecification(value); return *this;} /** *A predefined metric. You can specify either a predefined metric or a * customized metric.
*/ inline TargetTrackingScalingPolicyConfiguration& WithPredefinedMetricSpecification(PredefinedMetricSpecification&& value) { SetPredefinedMetricSpecification(std::move(value)); return *this;} /** *A customized metric. You can specify either a predefined metric or a * customized metric.
*/ inline const CustomizedMetricSpecification& GetCustomizedMetricSpecification() const{ return m_customizedMetricSpecification; } /** *A customized metric. You can specify either a predefined metric or a * customized metric.
*/ inline bool CustomizedMetricSpecificationHasBeenSet() const { return m_customizedMetricSpecificationHasBeenSet; } /** *A customized metric. You can specify either a predefined metric or a * customized metric.
*/ inline void SetCustomizedMetricSpecification(const CustomizedMetricSpecification& value) { m_customizedMetricSpecificationHasBeenSet = true; m_customizedMetricSpecification = value; } /** *A customized metric. You can specify either a predefined metric or a * customized metric.
*/ inline void SetCustomizedMetricSpecification(CustomizedMetricSpecification&& value) { m_customizedMetricSpecificationHasBeenSet = true; m_customizedMetricSpecification = std::move(value); } /** *A customized metric. You can specify either a predefined metric or a * customized metric.
*/ inline TargetTrackingScalingPolicyConfiguration& WithCustomizedMetricSpecification(const CustomizedMetricSpecification& value) { SetCustomizedMetricSpecification(value); return *this;} /** *A customized metric. You can specify either a predefined metric or a * customized metric.
*/ inline TargetTrackingScalingPolicyConfiguration& WithCustomizedMetricSpecification(CustomizedMetricSpecification&& value) { SetCustomizedMetricSpecification(std::move(value)); return *this;} /** *The amount of time, in seconds, to wait for a previous scale-out activity to * take effect.
With the scale-out cooldown period, the intention is * to continuously (but not excessively) scale out. After Application Auto Scaling * successfully scales out using a target tracking scaling policy, it starts to * calculate the cooldown time. While the scale-out cooldown period is in effect, * the capacity added by the initiating scale-out activity is calculated as part of * the desired capacity for the next scale-out activity.
Application Auto * Scaling provides 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 endpoints
Lambda provisioned concurrency
*Amazon Keyspaces tables
The amount of time, in seconds, to wait for a previous scale-out activity to * take effect.
With the scale-out cooldown period, the intention is * to continuously (but not excessively) scale out. After Application Auto Scaling * successfully scales out using a target tracking scaling policy, it starts to * calculate the cooldown time. While the scale-out cooldown period is in effect, * the capacity added by the initiating scale-out activity is calculated as part of * the desired capacity for the next scale-out activity.
Application Auto * Scaling provides 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 endpoints
Lambda provisioned concurrency
*Amazon Keyspaces tables
The amount of time, in seconds, to wait for a previous scale-out activity to * take effect.
With the scale-out cooldown period, the intention is * to continuously (but not excessively) scale out. After Application Auto Scaling * successfully scales out using a target tracking scaling policy, it starts to * calculate the cooldown time. While the scale-out cooldown period is in effect, * the capacity added by the initiating scale-out activity is calculated as part of * the desired capacity for the next scale-out activity.
Application Auto * Scaling provides 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 endpoints
Lambda provisioned concurrency
*Amazon Keyspaces tables
The amount of time, in seconds, to wait for a previous scale-out activity to * take effect.
With the scale-out cooldown period, the intention is * to continuously (but not excessively) scale out. After Application Auto Scaling * successfully scales out using a target tracking scaling policy, it starts to * calculate the cooldown time. While the scale-out cooldown period is in effect, * the capacity added by the initiating scale-out activity is calculated as part of * the desired capacity for the next scale-out activity.
Application Auto * Scaling provides 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 endpoints
Lambda provisioned concurrency
*Amazon Keyspaces tables
The amount of time, in seconds, after a scale-in activity completes before * another scale-in activity can start.
With the scale-in cooldown * period, 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 scale-in cooldown period, Application Auto Scaling scales * out the target immediately. In this case, the scale-in cooldown period stops and * doesn't complete.
Application Auto Scaling provides 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 endpoints
Lambda provisioned concurrency
Amazon Keyspaces tables
*The amount of time, in seconds, after a scale-in activity completes before * another scale-in activity can start.
With the scale-in cooldown * period, 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 scale-in cooldown period, Application Auto Scaling scales * out the target immediately. In this case, the scale-in cooldown period stops and * doesn't complete.
Application Auto Scaling provides 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 endpoints
Lambda provisioned concurrency
Amazon Keyspaces tables
*The amount of time, in seconds, after a scale-in activity completes before * another scale-in activity can start.
With the scale-in cooldown * period, 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 scale-in cooldown period, Application Auto Scaling scales * out the target immediately. In this case, the scale-in cooldown period stops and * doesn't complete.
Application Auto Scaling provides 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 endpoints
Lambda provisioned concurrency
Amazon Keyspaces tables
*The amount of time, in seconds, after a scale-in activity completes before * another scale-in activity can start.
With the scale-in cooldown * period, 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 scale-in cooldown period, Application Auto Scaling scales * out the target immediately. In this case, the scale-in cooldown period stops and * doesn't complete.
Application Auto Scaling provides 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 endpoints
Lambda provisioned concurrency
Amazon Keyspaces tables
*Indicates whether scale in by the target tracking scaling policy is disabled.
* If the value is true, scale in is disabled and the target tracking
* scaling policy won't remove capacity from the scalable target. Otherwise, scale
* in is enabled and the target tracking scaling policy can remove capacity from
* the scalable target. The default value is false.
Indicates whether scale in by the target tracking scaling policy is disabled.
* If the value is true, scale in is disabled and the target tracking
* scaling policy won't remove capacity from the scalable target. Otherwise, scale
* in is enabled and the target tracking scaling policy can remove capacity from
* the scalable target. The default value is false.
Indicates whether scale in by the target tracking scaling policy is disabled.
* If the value is true, scale in is disabled and the target tracking
* scaling policy won't remove capacity from the scalable target. Otherwise, scale
* in is enabled and the target tracking scaling policy can remove capacity from
* the scalable target. The default value is false.
Indicates whether scale in by the target tracking scaling policy is disabled.
* If the value is true, scale in is disabled and the target tracking
* scaling policy won't remove capacity from the scalable target. Otherwise, scale
* in is enabled and the target tracking scaling policy can remove capacity from
* the scalable target. The default value is false.