/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Describes a scaling instruction for a scalable resource in a scaling plan.
* Each scaling instruction applies to one resource. AWS Auto Scaling
* creates target tracking scaling policies based on the scaling instructions.
* Target tracking scaling policies adjust the capacity of your scalable resource
* as required to maintain resource utilization at the target value that you
* specified. AWS Auto Scaling also configures predictive scaling for your
* Amazon EC2 Auto Scaling groups using a subset of parameters, including the load
* metric, the scaling metric, the target value for the scaling metric, the
* predictive scaling mode (forecast and scale or forecast only), and the desired
* behavior when the forecast capacity exceeds the maximum capacity of the
* resource. With predictive scaling, AWS Auto Scaling generates forecasts with
* traffic predictions for the two days ahead and schedules scaling actions that
* proactively add and remove resource capacity to match the forecast. We recommend waiting a minimum of 24 hours after creating an Auto
* Scaling group to configure predictive scaling. At minimum, there must be 24
* hours of historical data to generate a forecast. For more information, see Best
* Practices for AWS Auto Scaling in the AWS Auto Scaling User
* Guide.See Also:
AWS
* API Reference
The namespace of the AWS service.
*/ inline const ServiceNamespace& GetServiceNamespace() const{ return m_serviceNamespace; } /** *The namespace of the AWS service.
*/ inline bool ServiceNamespaceHasBeenSet() const { return m_serviceNamespaceHasBeenSet; } /** *The namespace of the AWS service.
*/ inline void SetServiceNamespace(const ServiceNamespace& value) { m_serviceNamespaceHasBeenSet = true; m_serviceNamespace = value; } /** *The namespace of the AWS service.
*/ inline void SetServiceNamespace(ServiceNamespace&& value) { m_serviceNamespaceHasBeenSet = true; m_serviceNamespace = std::move(value); } /** *The namespace of the AWS service.
*/ inline ScalingInstruction& WithServiceNamespace(const ServiceNamespace& value) { SetServiceNamespace(value); return *this;} /** *The namespace of the AWS service.
*/ inline ScalingInstruction& WithServiceNamespace(ServiceNamespace&& value) { SetServiceNamespace(std::move(value)); return *this;} /** *The ID of the resource. This string consists of the resource type and unique * identifier.
Auto Scaling group - The resource type is
* autoScalingGroup
and the unique identifier is the name of the Auto
* Scaling group. Example: autoScalingGroup/my-asg
.
ECS service - The resource type is service
and the unique
* identifier is the cluster name and service name. Example:
* service/default/sample-webapp
.
Spot Fleet request
* - The resource type is spot-fleet-request
and the unique identifier
* is the Spot Fleet request ID. Example:
* spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
.
DynamoDB table - The resource type is table
and the
* unique identifier is the resource ID. Example: table/my-table
.
DynamoDB global secondary index - The resource type is
* index
and the unique identifier is the resource ID. Example:
* table/my-table/index/my-table-index
.
Aurora DB
* cluster - The resource type is cluster
and the unique identifier is
* the cluster name. Example: cluster:my-db-cluster
.
The ID of the resource. This string consists of the resource type and unique * identifier.
Auto Scaling group - The resource type is
* autoScalingGroup
and the unique identifier is the name of the Auto
* Scaling group. Example: autoScalingGroup/my-asg
.
ECS service - The resource type is service
and the unique
* identifier is the cluster name and service name. Example:
* service/default/sample-webapp
.
Spot Fleet request
* - The resource type is spot-fleet-request
and the unique identifier
* is the Spot Fleet request ID. Example:
* spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
.
DynamoDB table - The resource type is table
and the
* unique identifier is the resource ID. Example: table/my-table
.
DynamoDB global secondary index - The resource type is
* index
and the unique identifier is the resource ID. Example:
* table/my-table/index/my-table-index
.
Aurora DB
* cluster - The resource type is cluster
and the unique identifier is
* the cluster name. Example: cluster:my-db-cluster
.
The ID of the resource. This string consists of the resource type and unique * identifier.
Auto Scaling group - The resource type is
* autoScalingGroup
and the unique identifier is the name of the Auto
* Scaling group. Example: autoScalingGroup/my-asg
.
ECS service - The resource type is service
and the unique
* identifier is the cluster name and service name. Example:
* service/default/sample-webapp
.
Spot Fleet request
* - The resource type is spot-fleet-request
and the unique identifier
* is the Spot Fleet request ID. Example:
* spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
.
DynamoDB table - The resource type is table
and the
* unique identifier is the resource ID. Example: table/my-table
.
DynamoDB global secondary index - The resource type is
* index
and the unique identifier is the resource ID. Example:
* table/my-table/index/my-table-index
.
Aurora DB
* cluster - The resource type is cluster
and the unique identifier is
* the cluster name. Example: cluster:my-db-cluster
.
The ID of the resource. This string consists of the resource type and unique * identifier.
Auto Scaling group - The resource type is
* autoScalingGroup
and the unique identifier is the name of the Auto
* Scaling group. Example: autoScalingGroup/my-asg
.
ECS service - The resource type is service
and the unique
* identifier is the cluster name and service name. Example:
* service/default/sample-webapp
.
Spot Fleet request
* - The resource type is spot-fleet-request
and the unique identifier
* is the Spot Fleet request ID. Example:
* spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
.
DynamoDB table - The resource type is table
and the
* unique identifier is the resource ID. Example: table/my-table
.
DynamoDB global secondary index - The resource type is
* index
and the unique identifier is the resource ID. Example:
* table/my-table/index/my-table-index
.
Aurora DB
* cluster - The resource type is cluster
and the unique identifier is
* the cluster name. Example: cluster:my-db-cluster
.
The ID of the resource. This string consists of the resource type and unique * identifier.
Auto Scaling group - The resource type is
* autoScalingGroup
and the unique identifier is the name of the Auto
* Scaling group. Example: autoScalingGroup/my-asg
.
ECS service - The resource type is service
and the unique
* identifier is the cluster name and service name. Example:
* service/default/sample-webapp
.
Spot Fleet request
* - The resource type is spot-fleet-request
and the unique identifier
* is the Spot Fleet request ID. Example:
* spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
.
DynamoDB table - The resource type is table
and the
* unique identifier is the resource ID. Example: table/my-table
.
DynamoDB global secondary index - The resource type is
* index
and the unique identifier is the resource ID. Example:
* table/my-table/index/my-table-index
.
Aurora DB
* cluster - The resource type is cluster
and the unique identifier is
* the cluster name. Example: cluster:my-db-cluster
.
The ID of the resource. This string consists of the resource type and unique * identifier.
Auto Scaling group - The resource type is
* autoScalingGroup
and the unique identifier is the name of the Auto
* Scaling group. Example: autoScalingGroup/my-asg
.
ECS service - The resource type is service
and the unique
* identifier is the cluster name and service name. Example:
* service/default/sample-webapp
.
Spot Fleet request
* - The resource type is spot-fleet-request
and the unique identifier
* is the Spot Fleet request ID. Example:
* spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
.
DynamoDB table - The resource type is table
and the
* unique identifier is the resource ID. Example: table/my-table
.
DynamoDB global secondary index - The resource type is
* index
and the unique identifier is the resource ID. Example:
* table/my-table/index/my-table-index
.
Aurora DB
* cluster - The resource type is cluster
and the unique identifier is
* the cluster name. Example: cluster:my-db-cluster
.
The ID of the resource. This string consists of the resource type and unique * identifier.
Auto Scaling group - The resource type is
* autoScalingGroup
and the unique identifier is the name of the Auto
* Scaling group. Example: autoScalingGroup/my-asg
.
ECS service - The resource type is service
and the unique
* identifier is the cluster name and service name. Example:
* service/default/sample-webapp
.
Spot Fleet request
* - The resource type is spot-fleet-request
and the unique identifier
* is the Spot Fleet request ID. Example:
* spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
.
DynamoDB table - The resource type is table
and the
* unique identifier is the resource ID. Example: table/my-table
.
DynamoDB global secondary index - The resource type is
* index
and the unique identifier is the resource ID. Example:
* table/my-table/index/my-table-index
.
Aurora DB
* cluster - The resource type is cluster
and the unique identifier is
* the cluster name. Example: cluster:my-db-cluster
.
The ID of the resource. This string consists of the resource type and unique * identifier.
Auto Scaling group - The resource type is
* autoScalingGroup
and the unique identifier is the name of the Auto
* Scaling group. Example: autoScalingGroup/my-asg
.
ECS service - The resource type is service
and the unique
* identifier is the cluster name and service name. Example:
* service/default/sample-webapp
.
Spot Fleet request
* - The resource type is spot-fleet-request
and the unique identifier
* is the Spot Fleet request ID. Example:
* spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE
.
DynamoDB table - The resource type is table
and the
* unique identifier is the resource ID. Example: table/my-table
.
DynamoDB global secondary index - The resource type is
* index
and the unique identifier is the resource ID. Example:
* table/my-table/index/my-table-index
.
Aurora DB
* cluster - The resource type is cluster
and the unique identifier is
* the cluster name. Example: cluster:my-db-cluster
.
The scalable dimension associated with the resource.
* autoscaling:autoScalingGroup:DesiredCapacity
- The desired capacity
* of an Auto Scaling group.
* ecs:service:DesiredCount
- The desired task count of an ECS
* service.
ec2:spot-fleet-request:TargetCapacity
-
* The target capacity of a Spot Fleet request.
* dynamodb:table:ReadCapacityUnits
- The provisioned read capacity
* for a DynamoDB table.
* dynamodb:table:WriteCapacityUnits
- The provisioned write capacity
* for a DynamoDB table.
* dynamodb:index:ReadCapacityUnits
- The provisioned read capacity
* for a DynamoDB global secondary index.
* dynamodb:index:WriteCapacityUnits
- The provisioned write capacity
* for a DynamoDB global secondary index.
* rds:cluster:ReadReplicaCount
- The count of Aurora Replicas in an
* Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora
* PostgreSQL-compatible edition.
The scalable dimension associated with the resource.
* autoscaling:autoScalingGroup:DesiredCapacity
- The desired capacity
* of an Auto Scaling group.
* ecs:service:DesiredCount
- The desired task count of an ECS
* service.
ec2:spot-fleet-request:TargetCapacity
-
* The target capacity of a Spot Fleet request.
* dynamodb:table:ReadCapacityUnits
- The provisioned read capacity
* for a DynamoDB table.
* dynamodb:table:WriteCapacityUnits
- The provisioned write capacity
* for a DynamoDB table.
* dynamodb:index:ReadCapacityUnits
- The provisioned read capacity
* for a DynamoDB global secondary index.
* dynamodb:index:WriteCapacityUnits
- The provisioned write capacity
* for a DynamoDB global secondary index.
* rds:cluster:ReadReplicaCount
- The count of Aurora Replicas in an
* Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora
* PostgreSQL-compatible edition.
The scalable dimension associated with the resource.
* autoscaling:autoScalingGroup:DesiredCapacity
- The desired capacity
* of an Auto Scaling group.
* ecs:service:DesiredCount
- The desired task count of an ECS
* service.
ec2:spot-fleet-request:TargetCapacity
-
* The target capacity of a Spot Fleet request.
* dynamodb:table:ReadCapacityUnits
- The provisioned read capacity
* for a DynamoDB table.
* dynamodb:table:WriteCapacityUnits
- The provisioned write capacity
* for a DynamoDB table.
* dynamodb:index:ReadCapacityUnits
- The provisioned read capacity
* for a DynamoDB global secondary index.
* dynamodb:index:WriteCapacityUnits
- The provisioned write capacity
* for a DynamoDB global secondary index.
* rds:cluster:ReadReplicaCount
- The count of Aurora Replicas in an
* Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora
* PostgreSQL-compatible edition.
The scalable dimension associated with the resource.
* autoscaling:autoScalingGroup:DesiredCapacity
- The desired capacity
* of an Auto Scaling group.
* ecs:service:DesiredCount
- The desired task count of an ECS
* service.
ec2:spot-fleet-request:TargetCapacity
-
* The target capacity of a Spot Fleet request.
* dynamodb:table:ReadCapacityUnits
- The provisioned read capacity
* for a DynamoDB table.
* dynamodb:table:WriteCapacityUnits
- The provisioned write capacity
* for a DynamoDB table.
* dynamodb:index:ReadCapacityUnits
- The provisioned read capacity
* for a DynamoDB global secondary index.
* dynamodb:index:WriteCapacityUnits
- The provisioned write capacity
* for a DynamoDB global secondary index.
* rds:cluster:ReadReplicaCount
- The count of Aurora Replicas in an
* Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora
* PostgreSQL-compatible edition.
The scalable dimension associated with the resource.
* autoscaling:autoScalingGroup:DesiredCapacity
- The desired capacity
* of an Auto Scaling group.
* ecs:service:DesiredCount
- The desired task count of an ECS
* service.
ec2:spot-fleet-request:TargetCapacity
-
* The target capacity of a Spot Fleet request.
* dynamodb:table:ReadCapacityUnits
- The provisioned read capacity
* for a DynamoDB table.
* dynamodb:table:WriteCapacityUnits
- The provisioned write capacity
* for a DynamoDB table.
* dynamodb:index:ReadCapacityUnits
- The provisioned read capacity
* for a DynamoDB global secondary index.
* dynamodb:index:WriteCapacityUnits
- The provisioned write capacity
* for a DynamoDB global secondary index.
* rds:cluster:ReadReplicaCount
- The count of Aurora Replicas in an
* Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora
* PostgreSQL-compatible edition.
The scalable dimension associated with the resource.
* autoscaling:autoScalingGroup:DesiredCapacity
- The desired capacity
* of an Auto Scaling group.
* ecs:service:DesiredCount
- The desired task count of an ECS
* service.
ec2:spot-fleet-request:TargetCapacity
-
* The target capacity of a Spot Fleet request.
* dynamodb:table:ReadCapacityUnits
- The provisioned read capacity
* for a DynamoDB table.
* dynamodb:table:WriteCapacityUnits
- The provisioned write capacity
* for a DynamoDB table.
* dynamodb:index:ReadCapacityUnits
- The provisioned read capacity
* for a DynamoDB global secondary index.
* dynamodb:index:WriteCapacityUnits
- The provisioned write capacity
* for a DynamoDB global secondary index.
* rds:cluster:ReadReplicaCount
- The count of Aurora Replicas in an
* Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora
* PostgreSQL-compatible edition.
The minimum capacity of the resource.
*/ inline int GetMinCapacity() const{ return m_minCapacity; } /** *The minimum capacity of the resource.
*/ inline bool MinCapacityHasBeenSet() const { return m_minCapacityHasBeenSet; } /** *The minimum capacity of the resource.
*/ inline void SetMinCapacity(int value) { m_minCapacityHasBeenSet = true; m_minCapacity = value; } /** *The minimum capacity of the resource.
*/ inline ScalingInstruction& WithMinCapacity(int value) { SetMinCapacity(value); return *this;} /** *The maximum capacity of the resource. The exception to this upper limit is if * you specify a non-default setting for * PredictiveScalingMaxCapacityBehavior.
*/ inline int GetMaxCapacity() const{ return m_maxCapacity; } /** *The maximum capacity of the resource. The exception to this upper limit is if * you specify a non-default setting for * PredictiveScalingMaxCapacityBehavior.
*/ inline bool MaxCapacityHasBeenSet() const { return m_maxCapacityHasBeenSet; } /** *The maximum capacity of the resource. The exception to this upper limit is if * you specify a non-default setting for * PredictiveScalingMaxCapacityBehavior.
*/ inline void SetMaxCapacity(int value) { m_maxCapacityHasBeenSet = true; m_maxCapacity = value; } /** *The maximum capacity of the resource. The exception to this upper limit is if * you specify a non-default setting for * PredictiveScalingMaxCapacityBehavior.
*/ inline ScalingInstruction& WithMaxCapacity(int value) { SetMaxCapacity(value); return *this;} /** *The target tracking configurations (up to 10). Each of these structures must * specify a unique scaling metric and a target value for the metric.
*/ inline const Aws::VectorThe target tracking configurations (up to 10). Each of these structures must * specify a unique scaling metric and a target value for the metric.
*/ inline bool TargetTrackingConfigurationsHasBeenSet() const { return m_targetTrackingConfigurationsHasBeenSet; } /** *The target tracking configurations (up to 10). Each of these structures must * specify a unique scaling metric and a target value for the metric.
*/ inline void SetTargetTrackingConfigurations(const Aws::VectorThe target tracking configurations (up to 10). Each of these structures must * specify a unique scaling metric and a target value for the metric.
*/ inline void SetTargetTrackingConfigurations(Aws::VectorThe target tracking configurations (up to 10). Each of these structures must * specify a unique scaling metric and a target value for the metric.
*/ inline ScalingInstruction& WithTargetTrackingConfigurations(const Aws::VectorThe target tracking configurations (up to 10). Each of these structures must * specify a unique scaling metric and a target value for the metric.
*/ inline ScalingInstruction& WithTargetTrackingConfigurations(Aws::VectorThe target tracking configurations (up to 10). Each of these structures must * specify a unique scaling metric and a target value for the metric.
*/ inline ScalingInstruction& AddTargetTrackingConfigurations(const TargetTrackingConfiguration& value) { m_targetTrackingConfigurationsHasBeenSet = true; m_targetTrackingConfigurations.push_back(value); return *this; } /** *The target tracking configurations (up to 10). Each of these structures must * specify a unique scaling metric and a target value for the metric.
*/ inline ScalingInstruction& AddTargetTrackingConfigurations(TargetTrackingConfiguration&& value) { m_targetTrackingConfigurationsHasBeenSet = true; m_targetTrackingConfigurations.push_back(std::move(value)); return *this; } /** *The predefined load metric to use for predictive scaling. This parameter or a * CustomizedLoadMetricSpecification is required when configuring predictive * scaling, and cannot be used otherwise.
*/ inline const PredefinedLoadMetricSpecification& GetPredefinedLoadMetricSpecification() const{ return m_predefinedLoadMetricSpecification; } /** *The predefined load metric to use for predictive scaling. This parameter or a * CustomizedLoadMetricSpecification is required when configuring predictive * scaling, and cannot be used otherwise.
*/ inline bool PredefinedLoadMetricSpecificationHasBeenSet() const { return m_predefinedLoadMetricSpecificationHasBeenSet; } /** *The predefined load metric to use for predictive scaling. This parameter or a * CustomizedLoadMetricSpecification is required when configuring predictive * scaling, and cannot be used otherwise.
*/ inline void SetPredefinedLoadMetricSpecification(const PredefinedLoadMetricSpecification& value) { m_predefinedLoadMetricSpecificationHasBeenSet = true; m_predefinedLoadMetricSpecification = value; } /** *The predefined load metric to use for predictive scaling. This parameter or a * CustomizedLoadMetricSpecification is required when configuring predictive * scaling, and cannot be used otherwise.
*/ inline void SetPredefinedLoadMetricSpecification(PredefinedLoadMetricSpecification&& value) { m_predefinedLoadMetricSpecificationHasBeenSet = true; m_predefinedLoadMetricSpecification = std::move(value); } /** *The predefined load metric to use for predictive scaling. This parameter or a * CustomizedLoadMetricSpecification is required when configuring predictive * scaling, and cannot be used otherwise.
*/ inline ScalingInstruction& WithPredefinedLoadMetricSpecification(const PredefinedLoadMetricSpecification& value) { SetPredefinedLoadMetricSpecification(value); return *this;} /** *The predefined load metric to use for predictive scaling. This parameter or a * CustomizedLoadMetricSpecification is required when configuring predictive * scaling, and cannot be used otherwise.
*/ inline ScalingInstruction& WithPredefinedLoadMetricSpecification(PredefinedLoadMetricSpecification&& value) { SetPredefinedLoadMetricSpecification(std::move(value)); return *this;} /** *The customized load metric to use for predictive scaling. This parameter or a * PredefinedLoadMetricSpecification is required when configuring predictive * scaling, and cannot be used otherwise.
*/ inline const CustomizedLoadMetricSpecification& GetCustomizedLoadMetricSpecification() const{ return m_customizedLoadMetricSpecification; } /** *The customized load metric to use for predictive scaling. This parameter or a * PredefinedLoadMetricSpecification is required when configuring predictive * scaling, and cannot be used otherwise.
*/ inline bool CustomizedLoadMetricSpecificationHasBeenSet() const { return m_customizedLoadMetricSpecificationHasBeenSet; } /** *The customized load metric to use for predictive scaling. This parameter or a * PredefinedLoadMetricSpecification is required when configuring predictive * scaling, and cannot be used otherwise.
*/ inline void SetCustomizedLoadMetricSpecification(const CustomizedLoadMetricSpecification& value) { m_customizedLoadMetricSpecificationHasBeenSet = true; m_customizedLoadMetricSpecification = value; } /** *The customized load metric to use for predictive scaling. This parameter or a * PredefinedLoadMetricSpecification is required when configuring predictive * scaling, and cannot be used otherwise.
*/ inline void SetCustomizedLoadMetricSpecification(CustomizedLoadMetricSpecification&& value) { m_customizedLoadMetricSpecificationHasBeenSet = true; m_customizedLoadMetricSpecification = std::move(value); } /** *The customized load metric to use for predictive scaling. This parameter or a * PredefinedLoadMetricSpecification is required when configuring predictive * scaling, and cannot be used otherwise.
*/ inline ScalingInstruction& WithCustomizedLoadMetricSpecification(const CustomizedLoadMetricSpecification& value) { SetCustomizedLoadMetricSpecification(value); return *this;} /** *The customized load metric to use for predictive scaling. This parameter or a * PredefinedLoadMetricSpecification is required when configuring predictive * scaling, and cannot be used otherwise.
*/ inline ScalingInstruction& WithCustomizedLoadMetricSpecification(CustomizedLoadMetricSpecification&& value) { SetCustomizedLoadMetricSpecification(std::move(value)); return *this;} /** *The amount of time, in seconds, to buffer the run time of scheduled scaling * actions when scaling out. For example, if the forecast says to add capacity at * 10:00 AM, and the buffer time is 5 minutes, then the run time of the * corresponding scheduled scaling action will be 9:55 AM. The intention is to give * resources time to be provisioned. For example, it can take a few minutes to * launch an EC2 instance. The actual amount of time required depends on several * factors, such as the size of the instance and whether there are startup scripts * to complete.
The value must be less than the forecast interval duration * of 3600 seconds (60 minutes). The default is 300 seconds.
Only valid * when configuring predictive scaling.
*/ inline int GetScheduledActionBufferTime() const{ return m_scheduledActionBufferTime; } /** *The amount of time, in seconds, to buffer the run time of scheduled scaling * actions when scaling out. For example, if the forecast says to add capacity at * 10:00 AM, and the buffer time is 5 minutes, then the run time of the * corresponding scheduled scaling action will be 9:55 AM. The intention is to give * resources time to be provisioned. For example, it can take a few minutes to * launch an EC2 instance. The actual amount of time required depends on several * factors, such as the size of the instance and whether there are startup scripts * to complete.
The value must be less than the forecast interval duration * of 3600 seconds (60 minutes). The default is 300 seconds.
Only valid * when configuring predictive scaling.
*/ inline bool ScheduledActionBufferTimeHasBeenSet() const { return m_scheduledActionBufferTimeHasBeenSet; } /** *The amount of time, in seconds, to buffer the run time of scheduled scaling * actions when scaling out. For example, if the forecast says to add capacity at * 10:00 AM, and the buffer time is 5 minutes, then the run time of the * corresponding scheduled scaling action will be 9:55 AM. The intention is to give * resources time to be provisioned. For example, it can take a few minutes to * launch an EC2 instance. The actual amount of time required depends on several * factors, such as the size of the instance and whether there are startup scripts * to complete.
The value must be less than the forecast interval duration * of 3600 seconds (60 minutes). The default is 300 seconds.
Only valid * when configuring predictive scaling.
*/ inline void SetScheduledActionBufferTime(int value) { m_scheduledActionBufferTimeHasBeenSet = true; m_scheduledActionBufferTime = value; } /** *The amount of time, in seconds, to buffer the run time of scheduled scaling * actions when scaling out. For example, if the forecast says to add capacity at * 10:00 AM, and the buffer time is 5 minutes, then the run time of the * corresponding scheduled scaling action will be 9:55 AM. The intention is to give * resources time to be provisioned. For example, it can take a few minutes to * launch an EC2 instance. The actual amount of time required depends on several * factors, such as the size of the instance and whether there are startup scripts * to complete.
The value must be less than the forecast interval duration * of 3600 seconds (60 minutes). The default is 300 seconds.
Only valid * when configuring predictive scaling.
*/ inline ScalingInstruction& WithScheduledActionBufferTime(int value) { SetScheduledActionBufferTime(value); return *this;} /** *Defines the behavior that should be applied if the forecast capacity
* approaches or exceeds the maximum capacity specified for the resource. The
* default value is SetForecastCapacityToMaxCapacity
.
The * following are possible values:
* SetForecastCapacityToMaxCapacity
- AWS Auto Scaling cannot scale
* resource capacity higher than the maximum capacity. The maximum capacity is
* enforced as a hard limit.
* SetMaxCapacityToForecastCapacity
- AWS Auto Scaling may scale
* resource capacity higher than the maximum capacity to equal but not exceed
* forecast capacity.
* SetMaxCapacityAboveForecastCapacity
- AWS Auto Scaling may scale
* resource capacity higher than the maximum capacity by a specified buffer value.
* The intention is to give the target tracking scaling policy extra capacity if
* unexpected traffic occurs.
Only valid when configuring * predictive scaling.
*/ inline const PredictiveScalingMaxCapacityBehavior& GetPredictiveScalingMaxCapacityBehavior() const{ return m_predictiveScalingMaxCapacityBehavior; } /** *Defines the behavior that should be applied if the forecast capacity
* approaches or exceeds the maximum capacity specified for the resource. The
* default value is SetForecastCapacityToMaxCapacity
.
The * following are possible values:
* SetForecastCapacityToMaxCapacity
- AWS Auto Scaling cannot scale
* resource capacity higher than the maximum capacity. The maximum capacity is
* enforced as a hard limit.
* SetMaxCapacityToForecastCapacity
- AWS Auto Scaling may scale
* resource capacity higher than the maximum capacity to equal but not exceed
* forecast capacity.
* SetMaxCapacityAboveForecastCapacity
- AWS Auto Scaling may scale
* resource capacity higher than the maximum capacity by a specified buffer value.
* The intention is to give the target tracking scaling policy extra capacity if
* unexpected traffic occurs.
Only valid when configuring * predictive scaling.
*/ inline bool PredictiveScalingMaxCapacityBehaviorHasBeenSet() const { return m_predictiveScalingMaxCapacityBehaviorHasBeenSet; } /** *Defines the behavior that should be applied if the forecast capacity
* approaches or exceeds the maximum capacity specified for the resource. The
* default value is SetForecastCapacityToMaxCapacity
.
The * following are possible values:
* SetForecastCapacityToMaxCapacity
- AWS Auto Scaling cannot scale
* resource capacity higher than the maximum capacity. The maximum capacity is
* enforced as a hard limit.
* SetMaxCapacityToForecastCapacity
- AWS Auto Scaling may scale
* resource capacity higher than the maximum capacity to equal but not exceed
* forecast capacity.
* SetMaxCapacityAboveForecastCapacity
- AWS Auto Scaling may scale
* resource capacity higher than the maximum capacity by a specified buffer value.
* The intention is to give the target tracking scaling policy extra capacity if
* unexpected traffic occurs.
Only valid when configuring * predictive scaling.
*/ inline void SetPredictiveScalingMaxCapacityBehavior(const PredictiveScalingMaxCapacityBehavior& value) { m_predictiveScalingMaxCapacityBehaviorHasBeenSet = true; m_predictiveScalingMaxCapacityBehavior = value; } /** *Defines the behavior that should be applied if the forecast capacity
* approaches or exceeds the maximum capacity specified for the resource. The
* default value is SetForecastCapacityToMaxCapacity
.
The * following are possible values:
* SetForecastCapacityToMaxCapacity
- AWS Auto Scaling cannot scale
* resource capacity higher than the maximum capacity. The maximum capacity is
* enforced as a hard limit.
* SetMaxCapacityToForecastCapacity
- AWS Auto Scaling may scale
* resource capacity higher than the maximum capacity to equal but not exceed
* forecast capacity.
* SetMaxCapacityAboveForecastCapacity
- AWS Auto Scaling may scale
* resource capacity higher than the maximum capacity by a specified buffer value.
* The intention is to give the target tracking scaling policy extra capacity if
* unexpected traffic occurs.
Only valid when configuring * predictive scaling.
*/ inline void SetPredictiveScalingMaxCapacityBehavior(PredictiveScalingMaxCapacityBehavior&& value) { m_predictiveScalingMaxCapacityBehaviorHasBeenSet = true; m_predictiveScalingMaxCapacityBehavior = std::move(value); } /** *Defines the behavior that should be applied if the forecast capacity
* approaches or exceeds the maximum capacity specified for the resource. The
* default value is SetForecastCapacityToMaxCapacity
.
The * following are possible values:
* SetForecastCapacityToMaxCapacity
- AWS Auto Scaling cannot scale
* resource capacity higher than the maximum capacity. The maximum capacity is
* enforced as a hard limit.
* SetMaxCapacityToForecastCapacity
- AWS Auto Scaling may scale
* resource capacity higher than the maximum capacity to equal but not exceed
* forecast capacity.
* SetMaxCapacityAboveForecastCapacity
- AWS Auto Scaling may scale
* resource capacity higher than the maximum capacity by a specified buffer value.
* The intention is to give the target tracking scaling policy extra capacity if
* unexpected traffic occurs.
Only valid when configuring * predictive scaling.
*/ inline ScalingInstruction& WithPredictiveScalingMaxCapacityBehavior(const PredictiveScalingMaxCapacityBehavior& value) { SetPredictiveScalingMaxCapacityBehavior(value); return *this;} /** *Defines the behavior that should be applied if the forecast capacity
* approaches or exceeds the maximum capacity specified for the resource. The
* default value is SetForecastCapacityToMaxCapacity
.
The * following are possible values:
* SetForecastCapacityToMaxCapacity
- AWS Auto Scaling cannot scale
* resource capacity higher than the maximum capacity. The maximum capacity is
* enforced as a hard limit.
* SetMaxCapacityToForecastCapacity
- AWS Auto Scaling may scale
* resource capacity higher than the maximum capacity to equal but not exceed
* forecast capacity.
* SetMaxCapacityAboveForecastCapacity
- AWS Auto Scaling may scale
* resource capacity higher than the maximum capacity by a specified buffer value.
* The intention is to give the target tracking scaling policy extra capacity if
* unexpected traffic occurs.
Only valid when configuring * predictive scaling.
*/ inline ScalingInstruction& WithPredictiveScalingMaxCapacityBehavior(PredictiveScalingMaxCapacityBehavior&& value) { SetPredictiveScalingMaxCapacityBehavior(std::move(value)); return *this;} /** *The size of the capacity buffer to use when the forecast capacity is close to * or exceeds the maximum capacity. The value is specified as a percentage relative * to the forecast capacity. For example, if the buffer is 10, this means a 10 * percent buffer, such that if the forecast capacity is 50, and the maximum * capacity is 40, then the effective maximum capacity is 55.
Only valid
* when configuring predictive scaling. Required if the
* PredictiveScalingMaxCapacityBehavior is set to
* SetMaxCapacityAboveForecastCapacity
, and cannot be used
* otherwise.
The range is 1-100.
*/ inline int GetPredictiveScalingMaxCapacityBuffer() const{ return m_predictiveScalingMaxCapacityBuffer; } /** *The size of the capacity buffer to use when the forecast capacity is close to * or exceeds the maximum capacity. The value is specified as a percentage relative * to the forecast capacity. For example, if the buffer is 10, this means a 10 * percent buffer, such that if the forecast capacity is 50, and the maximum * capacity is 40, then the effective maximum capacity is 55.
Only valid
* when configuring predictive scaling. Required if the
* PredictiveScalingMaxCapacityBehavior is set to
* SetMaxCapacityAboveForecastCapacity
, and cannot be used
* otherwise.
The range is 1-100.
*/ inline bool PredictiveScalingMaxCapacityBufferHasBeenSet() const { return m_predictiveScalingMaxCapacityBufferHasBeenSet; } /** *The size of the capacity buffer to use when the forecast capacity is close to * or exceeds the maximum capacity. The value is specified as a percentage relative * to the forecast capacity. For example, if the buffer is 10, this means a 10 * percent buffer, such that if the forecast capacity is 50, and the maximum * capacity is 40, then the effective maximum capacity is 55.
Only valid
* when configuring predictive scaling. Required if the
* PredictiveScalingMaxCapacityBehavior is set to
* SetMaxCapacityAboveForecastCapacity
, and cannot be used
* otherwise.
The range is 1-100.
*/ inline void SetPredictiveScalingMaxCapacityBuffer(int value) { m_predictiveScalingMaxCapacityBufferHasBeenSet = true; m_predictiveScalingMaxCapacityBuffer = value; } /** *The size of the capacity buffer to use when the forecast capacity is close to * or exceeds the maximum capacity. The value is specified as a percentage relative * to the forecast capacity. For example, if the buffer is 10, this means a 10 * percent buffer, such that if the forecast capacity is 50, and the maximum * capacity is 40, then the effective maximum capacity is 55.
Only valid
* when configuring predictive scaling. Required if the
* PredictiveScalingMaxCapacityBehavior is set to
* SetMaxCapacityAboveForecastCapacity
, and cannot be used
* otherwise.
The range is 1-100.
*/ inline ScalingInstruction& WithPredictiveScalingMaxCapacityBuffer(int value) { SetPredictiveScalingMaxCapacityBuffer(value); return *this;} /** *The predictive scaling mode. The default value is
* ForecastAndScale
. Otherwise, AWS Auto Scaling forecasts capacity
* but does not create any scheduled scaling actions based on the capacity
* forecast.
The predictive scaling mode. The default value is
* ForecastAndScale
. Otherwise, AWS Auto Scaling forecasts capacity
* but does not create any scheduled scaling actions based on the capacity
* forecast.
The predictive scaling mode. The default value is
* ForecastAndScale
. Otherwise, AWS Auto Scaling forecasts capacity
* but does not create any scheduled scaling actions based on the capacity
* forecast.
The predictive scaling mode. The default value is
* ForecastAndScale
. Otherwise, AWS Auto Scaling forecasts capacity
* but does not create any scheduled scaling actions based on the capacity
* forecast.
The predictive scaling mode. The default value is
* ForecastAndScale
. Otherwise, AWS Auto Scaling forecasts capacity
* but does not create any scheduled scaling actions based on the capacity
* forecast.
The predictive scaling mode. The default value is
* ForecastAndScale
. Otherwise, AWS Auto Scaling forecasts capacity
* but does not create any scheduled scaling actions based on the capacity
* forecast.
Controls whether a resource's externally created scaling policies are kept or * replaced.
The default value is KeepExternalPolicies
. If the
* parameter is set to ReplaceExternalPolicies
, any scaling policies
* that are external to AWS Auto Scaling are deleted and new target tracking
* scaling policies created.
Only valid when configuring dynamic scaling. *
Condition: The number of existing policies to be replaced must be less * than or equal to 50. If there are more than 50 policies to be replaced, AWS Auto * Scaling keeps all existing policies and does not create new ones.
*/ inline const ScalingPolicyUpdateBehavior& GetScalingPolicyUpdateBehavior() const{ return m_scalingPolicyUpdateBehavior; } /** *Controls whether a resource's externally created scaling policies are kept or * replaced.
The default value is KeepExternalPolicies
. If the
* parameter is set to ReplaceExternalPolicies
, any scaling policies
* that are external to AWS Auto Scaling are deleted and new target tracking
* scaling policies created.
Only valid when configuring dynamic scaling. *
Condition: The number of existing policies to be replaced must be less * than or equal to 50. If there are more than 50 policies to be replaced, AWS Auto * Scaling keeps all existing policies and does not create new ones.
*/ inline bool ScalingPolicyUpdateBehaviorHasBeenSet() const { return m_scalingPolicyUpdateBehaviorHasBeenSet; } /** *Controls whether a resource's externally created scaling policies are kept or * replaced.
The default value is KeepExternalPolicies
. If the
* parameter is set to ReplaceExternalPolicies
, any scaling policies
* that are external to AWS Auto Scaling are deleted and new target tracking
* scaling policies created.
Only valid when configuring dynamic scaling. *
Condition: The number of existing policies to be replaced must be less * than or equal to 50. If there are more than 50 policies to be replaced, AWS Auto * Scaling keeps all existing policies and does not create new ones.
*/ inline void SetScalingPolicyUpdateBehavior(const ScalingPolicyUpdateBehavior& value) { m_scalingPolicyUpdateBehaviorHasBeenSet = true; m_scalingPolicyUpdateBehavior = value; } /** *Controls whether a resource's externally created scaling policies are kept or * replaced.
The default value is KeepExternalPolicies
. If the
* parameter is set to ReplaceExternalPolicies
, any scaling policies
* that are external to AWS Auto Scaling are deleted and new target tracking
* scaling policies created.
Only valid when configuring dynamic scaling. *
Condition: The number of existing policies to be replaced must be less * than or equal to 50. If there are more than 50 policies to be replaced, AWS Auto * Scaling keeps all existing policies and does not create new ones.
*/ inline void SetScalingPolicyUpdateBehavior(ScalingPolicyUpdateBehavior&& value) { m_scalingPolicyUpdateBehaviorHasBeenSet = true; m_scalingPolicyUpdateBehavior = std::move(value); } /** *Controls whether a resource's externally created scaling policies are kept or * replaced.
The default value is KeepExternalPolicies
. If the
* parameter is set to ReplaceExternalPolicies
, any scaling policies
* that are external to AWS Auto Scaling are deleted and new target tracking
* scaling policies created.
Only valid when configuring dynamic scaling. *
Condition: The number of existing policies to be replaced must be less * than or equal to 50. If there are more than 50 policies to be replaced, AWS Auto * Scaling keeps all existing policies and does not create new ones.
*/ inline ScalingInstruction& WithScalingPolicyUpdateBehavior(const ScalingPolicyUpdateBehavior& value) { SetScalingPolicyUpdateBehavior(value); return *this;} /** *Controls whether a resource's externally created scaling policies are kept or * replaced.
The default value is KeepExternalPolicies
. If the
* parameter is set to ReplaceExternalPolicies
, any scaling policies
* that are external to AWS Auto Scaling are deleted and new target tracking
* scaling policies created.
Only valid when configuring dynamic scaling. *
Condition: The number of existing policies to be replaced must be less * than or equal to 50. If there are more than 50 policies to be replaced, AWS Auto * Scaling keeps all existing policies and does not create new ones.
*/ inline ScalingInstruction& WithScalingPolicyUpdateBehavior(ScalingPolicyUpdateBehavior&& value) { SetScalingPolicyUpdateBehavior(std::move(value)); return *this;} /** *Controls whether dynamic scaling by AWS Auto Scaling is disabled. When * dynamic scaling is enabled, AWS Auto Scaling creates target tracking scaling * policies based on the specified target tracking configurations.
The
* default is enabled (false
).
Controls whether dynamic scaling by AWS Auto Scaling is disabled. When * dynamic scaling is enabled, AWS Auto Scaling creates target tracking scaling * policies based on the specified target tracking configurations.
The
* default is enabled (false
).
Controls whether dynamic scaling by AWS Auto Scaling is disabled. When * dynamic scaling is enabled, AWS Auto Scaling creates target tracking scaling * policies based on the specified target tracking configurations.
The
* default is enabled (false
).
Controls whether dynamic scaling by AWS Auto Scaling is disabled. When * dynamic scaling is enabled, AWS Auto Scaling creates target tracking scaling * policies based on the specified target tracking configurations.
The
* default is enabled (false
).