Class: Aws::AutoScaling::Types::PutScalingPolicyType

Inherits:
Struct
  • Object
show all
Defined in:
gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/types.rb

Overview

Note:

When making an API call, you may pass PutScalingPolicyType data as a hash:

{
  auto_scaling_group_name: "XmlStringMaxLen255", # required
  policy_name: "XmlStringMaxLen255", # required
  policy_type: "XmlStringMaxLen64",
  adjustment_type: "XmlStringMaxLen255",
  min_adjustment_step: 1,
  min_adjustment_magnitude: 1,
  scaling_adjustment: 1,
  cooldown: 1,
  metric_aggregation_type: "XmlStringMaxLen32",
  step_adjustments: [
    {
      metric_interval_lower_bound: 1.0,
      metric_interval_upper_bound: 1.0,
      scaling_adjustment: 1, # required
    },
  ],
  estimated_instance_warmup: 1,
  target_tracking_configuration: {
    predefined_metric_specification: {
      predefined_metric_type: "ASGAverageCPUUtilization", # required, accepts ASGAverageCPUUtilization, ASGAverageNetworkIn, ASGAverageNetworkOut, ALBRequestCountPerTarget
      resource_label: "XmlStringMaxLen1023",
    },
    customized_metric_specification: {
      metric_name: "MetricName", # required
      namespace: "MetricNamespace", # required
      dimensions: [
        {
          name: "MetricDimensionName", # required
          value: "MetricDimensionValue", # required
        },
      ],
      statistic: "Average", # required, accepts Average, Minimum, Maximum, SampleCount, Sum
      unit: "MetricUnit",
    },
    target_value: 1.0, # required
    disable_scale_in: false,
  },
  enabled: false,
  predictive_scaling_configuration: {
    metric_specifications: [ # required
      {
        target_value: 1.0, # required
        predefined_metric_pair_specification: {
          predefined_metric_type: "ASGCPUUtilization", # required, accepts ASGCPUUtilization, ASGNetworkIn, ASGNetworkOut, ALBRequestCount
          resource_label: "XmlStringMaxLen1023",
        },
        predefined_scaling_metric_specification: {
          predefined_metric_type: "ASGAverageCPUUtilization", # required, accepts ASGAverageCPUUtilization, ASGAverageNetworkIn, ASGAverageNetworkOut, ALBRequestCountPerTarget
          resource_label: "XmlStringMaxLen1023",
        },
        predefined_load_metric_specification: {
          predefined_metric_type: "ASGTotalCPUUtilization", # required, accepts ASGTotalCPUUtilization, ASGTotalNetworkIn, ASGTotalNetworkOut, ALBTargetGroupRequestCount
          resource_label: "XmlStringMaxLen1023",
        },
        customized_scaling_metric_specification: {
          metric_data_queries: [ # required
            {
              id: "XmlStringMaxLen255", # required
              expression: "XmlStringMaxLen1023",
              metric_stat: {
                metric: { # required
                  namespace: "MetricNamespace", # required
                  metric_name: "MetricName", # required
                  dimensions: [
                    {
                      name: "MetricDimensionName", # required
                      value: "MetricDimensionValue", # required
                    },
                  ],
                },
                stat: "XmlStringMetricStat", # required
                unit: "MetricUnit",
              },
              label: "XmlStringMetricLabel",
              return_data: false,
            },
          ],
        },
        customized_load_metric_specification: {
          metric_data_queries: [ # required
            {
              id: "XmlStringMaxLen255", # required
              expression: "XmlStringMaxLen1023",
              metric_stat: {
                metric: { # required
                  namespace: "MetricNamespace", # required
                  metric_name: "MetricName", # required
                  dimensions: [
                    {
                      name: "MetricDimensionName", # required
                      value: "MetricDimensionValue", # required
                    },
                  ],
                },
                stat: "XmlStringMetricStat", # required
                unit: "MetricUnit",
              },
              label: "XmlStringMetricLabel",
              return_data: false,
            },
          ],
        },
        customized_capacity_metric_specification: {
          metric_data_queries: [ # required
            {
              id: "XmlStringMaxLen255", # required
              expression: "XmlStringMaxLen1023",
              metric_stat: {
                metric: { # required
                  namespace: "MetricNamespace", # required
                  metric_name: "MetricName", # required
                  dimensions: [
                    {
                      name: "MetricDimensionName", # required
                      value: "MetricDimensionValue", # required
                    },
                  ],
                },
                stat: "XmlStringMetricStat", # required
                unit: "MetricUnit",
              },
              label: "XmlStringMetricLabel",
              return_data: false,
            },
          ],
        },
      },
    ],
    mode: "ForecastAndScale", # accepts ForecastAndScale, ForecastOnly
    scheduling_buffer_time: 1,
    max_capacity_breach_behavior: "HonorMaxCapacity", # accepts HonorMaxCapacity, IncreaseMaxCapacity
    max_capacity_buffer: 1,
  },
}

Constant Summary collapse

SENSITIVE =
[]

Instance Attribute Summary collapse

Instance Attribute Details

#adjustment_typeString

Specifies how the scaling adjustment is interpreted (for example, an absolute number or a percentage). The valid values are ChangeInCapacity, ExactCapacity, and PercentChangeInCapacity.

Required if the policy type is StepScaling or SimpleScaling. For more information, see Scaling adjustment types in the Amazon EC2 Auto Scaling User Guide.

Returns:

  • (String)


7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/types.rb', line 7123

class PutScalingPolicyType < Struct.new(
  :auto_scaling_group_name,
  :policy_name,
  :policy_type,
  :adjustment_type,
  :min_adjustment_step,
  :min_adjustment_magnitude,
  :scaling_adjustment,
  :cooldown,
  :metric_aggregation_type,
  :step_adjustments,
  :estimated_instance_warmup,
  :target_tracking_configuration,
  :enabled,
  :predictive_scaling_configuration)
  SENSITIVE = []
  include Aws::Structure
end

#auto_scaling_group_nameString

The name of the Auto Scaling group.

Returns:

  • (String)


7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/types.rb', line 7123

class PutScalingPolicyType < Struct.new(
  :auto_scaling_group_name,
  :policy_name,
  :policy_type,
  :adjustment_type,
  :min_adjustment_step,
  :min_adjustment_magnitude,
  :scaling_adjustment,
  :cooldown,
  :metric_aggregation_type,
  :step_adjustments,
  :estimated_instance_warmup,
  :target_tracking_configuration,
  :enabled,
  :predictive_scaling_configuration)
  SENSITIVE = []
  include Aws::Structure
end

#cooldownInteger

The duration of the policy's cooldown period, in seconds. When a cooldown period is specified here, it overrides the default cooldown period defined for the Auto Scaling group.

Valid only if the policy type is SimpleScaling. For more information, see Scaling cooldowns for Amazon EC2 Auto Scaling in the Amazon EC2 Auto Scaling User Guide.

Returns:

  • (Integer)


7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/types.rb', line 7123

class PutScalingPolicyType < Struct.new(
  :auto_scaling_group_name,
  :policy_name,
  :policy_type,
  :adjustment_type,
  :min_adjustment_step,
  :min_adjustment_magnitude,
  :scaling_adjustment,
  :cooldown,
  :metric_aggregation_type,
  :step_adjustments,
  :estimated_instance_warmup,
  :target_tracking_configuration,
  :enabled,
  :predictive_scaling_configuration)
  SENSITIVE = []
  include Aws::Structure
end

#enabledBoolean

Indicates whether the scaling policy is enabled or disabled. The default is enabled. For more information, see Disabling a scaling policy for an Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.

Returns:

  • (Boolean)


7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/types.rb', line 7123

class PutScalingPolicyType < Struct.new(
  :auto_scaling_group_name,
  :policy_name,
  :policy_type,
  :adjustment_type,
  :min_adjustment_step,
  :min_adjustment_magnitude,
  :scaling_adjustment,
  :cooldown,
  :metric_aggregation_type,
  :step_adjustments,
  :estimated_instance_warmup,
  :target_tracking_configuration,
  :enabled,
  :predictive_scaling_configuration)
  SENSITIVE = []
  include Aws::Structure
end

#estimated_instance_warmupInteger

The estimated time, in seconds, until a newly launched instance can contribute to the CloudWatch metrics. If not provided, the default is to use the value from the default cooldown period for the Auto Scaling group.

Valid only if the policy type is TargetTrackingScaling or StepScaling.

Returns:

  • (Integer)


7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/types.rb', line 7123

class PutScalingPolicyType < Struct.new(
  :auto_scaling_group_name,
  :policy_name,
  :policy_type,
  :adjustment_type,
  :min_adjustment_step,
  :min_adjustment_magnitude,
  :scaling_adjustment,
  :cooldown,
  :metric_aggregation_type,
  :step_adjustments,
  :estimated_instance_warmup,
  :target_tracking_configuration,
  :enabled,
  :predictive_scaling_configuration)
  SENSITIVE = []
  include Aws::Structure
end

#metric_aggregation_typeString

The aggregation type for the CloudWatch metrics. The valid values are Minimum, Maximum, and Average. If the aggregation type is null, the value is treated as Average.

Valid only if the policy type is StepScaling.

Returns:

  • (String)


7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/types.rb', line 7123

class PutScalingPolicyType < Struct.new(
  :auto_scaling_group_name,
  :policy_name,
  :policy_type,
  :adjustment_type,
  :min_adjustment_step,
  :min_adjustment_magnitude,
  :scaling_adjustment,
  :cooldown,
  :metric_aggregation_type,
  :step_adjustments,
  :estimated_instance_warmup,
  :target_tracking_configuration,
  :enabled,
  :predictive_scaling_configuration)
  SENSITIVE = []
  include Aws::Structure
end

#min_adjustment_magnitudeInteger

The minimum value to scale by when the adjustment type is PercentChangeInCapacity. For example, suppose that you create a step scaling policy to scale out an Auto Scaling group by 25 percent and you specify a MinAdjustmentMagnitude of 2. If the group has 4 instances and the scaling policy is performed, 25 percent of 4 is 1. However, because you specified a MinAdjustmentMagnitude of 2, Amazon EC2 Auto Scaling scales out the group by 2 instances.

Valid only if the policy type is StepScaling or SimpleScaling. For more information, see Scaling adjustment types in the Amazon EC2 Auto Scaling User Guide.

Some Auto Scaling groups use instance weights. In this case, set the MinAdjustmentMagnitude to a value that is at least as large as your largest instance weight.

Returns:

  • (Integer)


7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/types.rb', line 7123

class PutScalingPolicyType < Struct.new(
  :auto_scaling_group_name,
  :policy_name,
  :policy_type,
  :adjustment_type,
  :min_adjustment_step,
  :min_adjustment_magnitude,
  :scaling_adjustment,
  :cooldown,
  :metric_aggregation_type,
  :step_adjustments,
  :estimated_instance_warmup,
  :target_tracking_configuration,
  :enabled,
  :predictive_scaling_configuration)
  SENSITIVE = []
  include Aws::Structure
end

#min_adjustment_stepInteger

Available for backward compatibility. Use MinAdjustmentMagnitude instead.

Returns:

  • (Integer)


7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/types.rb', line 7123

class PutScalingPolicyType < Struct.new(
  :auto_scaling_group_name,
  :policy_name,
  :policy_type,
  :adjustment_type,
  :min_adjustment_step,
  :min_adjustment_magnitude,
  :scaling_adjustment,
  :cooldown,
  :metric_aggregation_type,
  :step_adjustments,
  :estimated_instance_warmup,
  :target_tracking_configuration,
  :enabled,
  :predictive_scaling_configuration)
  SENSITIVE = []
  include Aws::Structure
end

#policy_nameString

The name of the policy.

Returns:

  • (String)


7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/types.rb', line 7123

class PutScalingPolicyType < Struct.new(
  :auto_scaling_group_name,
  :policy_name,
  :policy_type,
  :adjustment_type,
  :min_adjustment_step,
  :min_adjustment_magnitude,
  :scaling_adjustment,
  :cooldown,
  :metric_aggregation_type,
  :step_adjustments,
  :estimated_instance_warmup,
  :target_tracking_configuration,
  :enabled,
  :predictive_scaling_configuration)
  SENSITIVE = []
  include Aws::Structure
end

#policy_typeString

One of the following policy types:

  • TargetTrackingScaling

  • StepScaling

  • SimpleScaling (default)

  • PredictiveScaling

Returns:

  • (String)


7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/types.rb', line 7123

class PutScalingPolicyType < Struct.new(
  :auto_scaling_group_name,
  :policy_name,
  :policy_type,
  :adjustment_type,
  :min_adjustment_step,
  :min_adjustment_magnitude,
  :scaling_adjustment,
  :cooldown,
  :metric_aggregation_type,
  :step_adjustments,
  :estimated_instance_warmup,
  :target_tracking_configuration,
  :enabled,
  :predictive_scaling_configuration)
  SENSITIVE = []
  include Aws::Structure
end

#predictive_scaling_configurationTypes::PredictiveScalingConfiguration

A predictive scaling policy. Provides support for predefined and custom metrics.

Predefined metrics include CPU utilization, network in/out, and the Application Load Balancer request count.

For more information, see PredictiveScalingConfiguration in the Amazon EC2 Auto Scaling API Reference.

Required if the policy type is PredictiveScaling.



7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/types.rb', line 7123

class PutScalingPolicyType < Struct.new(
  :auto_scaling_group_name,
  :policy_name,
  :policy_type,
  :adjustment_type,
  :min_adjustment_step,
  :min_adjustment_magnitude,
  :scaling_adjustment,
  :cooldown,
  :metric_aggregation_type,
  :step_adjustments,
  :estimated_instance_warmup,
  :target_tracking_configuration,
  :enabled,
  :predictive_scaling_configuration)
  SENSITIVE = []
  include Aws::Structure
end

#scaling_adjustmentInteger

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 positive value.

Required if the policy type is SimpleScaling. (Not used with any other policy type.)

Returns:

  • (Integer)


7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/types.rb', line 7123

class PutScalingPolicyType < Struct.new(
  :auto_scaling_group_name,
  :policy_name,
  :policy_type,
  :adjustment_type,
  :min_adjustment_step,
  :min_adjustment_magnitude,
  :scaling_adjustment,
  :cooldown,
  :metric_aggregation_type,
  :step_adjustments,
  :estimated_instance_warmup,
  :target_tracking_configuration,
  :enabled,
  :predictive_scaling_configuration)
  SENSITIVE = []
  include Aws::Structure
end

#step_adjustmentsArray<Types::StepAdjustment>

A set of adjustments that enable you to scale based on the size of the alarm breach.

Required if the policy type is StepScaling. (Not used with any other policy type.)

Returns:



7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/types.rb', line 7123

class PutScalingPolicyType < Struct.new(
  :auto_scaling_group_name,
  :policy_name,
  :policy_type,
  :adjustment_type,
  :min_adjustment_step,
  :min_adjustment_magnitude,
  :scaling_adjustment,
  :cooldown,
  :metric_aggregation_type,
  :step_adjustments,
  :estimated_instance_warmup,
  :target_tracking_configuration,
  :enabled,
  :predictive_scaling_configuration)
  SENSITIVE = []
  include Aws::Structure
end

#target_tracking_configurationTypes::TargetTrackingConfiguration

A target tracking scaling policy. Provides support for predefined or custom metrics.

The following predefined metrics are available:

  • ASGAverageCPUUtilization

  • ASGAverageNetworkIn

  • ASGAverageNetworkOut

  • ALBRequestCountPerTarget

If you specify ALBRequestCountPerTarget for the metric, you must specify the ResourceLabel parameter with the PredefinedMetricSpecification.

For more information, see TargetTrackingConfiguration in the Amazon EC2 Auto Scaling API Reference.

Required if the policy type is TargetTrackingScaling.



7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
# File 'gems/aws-sdk-autoscaling/lib/aws-sdk-autoscaling/types.rb', line 7123

class PutScalingPolicyType < Struct.new(
  :auto_scaling_group_name,
  :policy_name,
  :policy_type,
  :adjustment_type,
  :min_adjustment_step,
  :min_adjustment_magnitude,
  :scaling_adjustment,
  :cooldown,
  :metric_aggregation_type,
  :step_adjustments,
  :estimated_instance_warmup,
  :target_tracking_configuration,
  :enabled,
  :predictive_scaling_configuration)
  SENSITIVE = []
  include Aws::Structure
end