You are viewing documentation for version 3 of the AWS SDK for Ruby. Version 2 documentation can be found here.

Class: Aws::ApplicationAutoScaling::Types::PutScalingPolicyRequest

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

Overview

Note:

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

{
  policy_name: "PolicyName", # required
  service_namespace: "ecs", # required, accepts ecs, elasticmapreduce, ec2, appstream, dynamodb, rds
  resource_id: "ResourceIdMaxLen1600", # required
  scalable_dimension: "ecs:service:DesiredCount", # required, accepts ecs:service:DesiredCount, ec2:spot-fleet-request:TargetCapacity, elasticmapreduce:instancegroup:InstanceCount, appstream:fleet:DesiredCapacity, dynamodb:table:ReadCapacityUnits, dynamodb:table:WriteCapacityUnits, dynamodb:index:ReadCapacityUnits, dynamodb:index:WriteCapacityUnits, rds:cluster:ReadReplicaCount
  policy_type: "StepScaling", # accepts StepScaling, TargetTrackingScaling
  step_scaling_policy_configuration: {
    adjustment_type: "ChangeInCapacity", # accepts ChangeInCapacity, PercentChangeInCapacity, ExactCapacity
    step_adjustments: [
      {
        metric_interval_lower_bound: 1.0,
        metric_interval_upper_bound: 1.0,
        scaling_adjustment: 1, # required
      },
    ],
    min_adjustment_magnitude: 1,
    cooldown: 1,
    metric_aggregation_type: "Average", # accepts Average, Minimum, Maximum
  },
  target_tracking_scaling_policy_configuration: {
    target_value: 1.0, # required
    predefined_metric_specification: {
      predefined_metric_type: "DynamoDBReadCapacityUtilization", # required, accepts DynamoDBReadCapacityUtilization, DynamoDBWriteCapacityUtilization, ALBRequestCountPerTarget, RDSReaderAverageCPUUtilization, RDSReaderAverageDatabaseConnections, EC2SpotFleetRequestAverageCPUUtilization, EC2SpotFleetRequestAverageNetworkIn, EC2SpotFleetRequestAverageNetworkOut
      resource_label: "ResourceLabel",
    },
    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",
    },
    scale_out_cooldown: 1,
    scale_in_cooldown: 1,
    disable_scale_in: false,
  },
}

Instance Attribute Summary collapse

Instance Attribute Details

#policy_nameString

The name of the scaling policy.

Returns:

  • (String)


1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
# File 'gems/aws-sdk-applicationautoscaling/lib/aws-sdk-applicationautoscaling/types.rb', line 1123

class PutScalingPolicyRequest < Struct.new(
  :policy_name,
  :service_namespace,
  :resource_id,
  :scalable_dimension,
  :policy_type,
  :step_scaling_policy_configuration,
  :target_tracking_scaling_policy_configuration)
  include Aws::Structure
end

#policy_typeString

The policy type. If you are creating a new policy, this parameter is required. If you are updating a policy, this parameter is not required.

For DynamoDB, only TargetTrackingScaling is supported. For any other service, only StepScaling is supported.

Returns:

  • (String)


1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
# File 'gems/aws-sdk-applicationautoscaling/lib/aws-sdk-applicationautoscaling/types.rb', line 1123

class PutScalingPolicyRequest < Struct.new(
  :policy_name,
  :service_namespace,
  :resource_id,
  :scalable_dimension,
  :policy_type,
  :step_scaling_policy_configuration,
  :target_tracking_scaling_policy_configuration)
  include Aws::Structure
end

#resource_idString

The identifier of the resource associated with the scaling policy. This string consists of the resource type and unique identifier.

  • 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.

  • EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0.

  • AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet.

  • 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.

Returns:

  • (String)


1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
# File 'gems/aws-sdk-applicationautoscaling/lib/aws-sdk-applicationautoscaling/types.rb', line 1123

class PutScalingPolicyRequest < Struct.new(
  :policy_name,
  :service_namespace,
  :resource_id,
  :scalable_dimension,
  :policy_type,
  :step_scaling_policy_configuration,
  :target_tracking_scaling_policy_configuration)
  include Aws::Structure
end

#scalable_dimensionString

The scalable dimension. This string consists of the service namespace, resource type, and scaling property.

  • ecs:service:DesiredCount - The desired task count of an ECS service.

  • ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request.

  • elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group.

  • appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet.

  • 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.

Returns:

  • (String)


1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
# File 'gems/aws-sdk-applicationautoscaling/lib/aws-sdk-applicationautoscaling/types.rb', line 1123

class PutScalingPolicyRequest < Struct.new(
  :policy_name,
  :service_namespace,
  :resource_id,
  :scalable_dimension,
  :policy_type,
  :step_scaling_policy_configuration,
  :target_tracking_scaling_policy_configuration)
  include Aws::Structure
end

#service_namespaceString

The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference.

Returns:

  • (String)


1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
# File 'gems/aws-sdk-applicationautoscaling/lib/aws-sdk-applicationautoscaling/types.rb', line 1123

class PutScalingPolicyRequest < Struct.new(
  :policy_name,
  :service_namespace,
  :resource_id,
  :scalable_dimension,
  :policy_type,
  :step_scaling_policy_configuration,
  :target_tracking_scaling_policy_configuration)
  include Aws::Structure
end

#step_scaling_policy_configurationTypes::StepScalingPolicyConfiguration

A step scaling policy.

This parameter is required if you are creating a policy and the policy type is StepScaling.



1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
# File 'gems/aws-sdk-applicationautoscaling/lib/aws-sdk-applicationautoscaling/types.rb', line 1123

class PutScalingPolicyRequest < Struct.new(
  :policy_name,
  :service_namespace,
  :resource_id,
  :scalable_dimension,
  :policy_type,
  :step_scaling_policy_configuration,
  :target_tracking_scaling_policy_configuration)
  include Aws::Structure
end

#target_tracking_scaling_policy_configurationTypes::TargetTrackingScalingPolicyConfiguration

A target tracking policy.

This parameter is required if you are creating a new policy and the policy type is TargetTrackingScaling.



1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
# File 'gems/aws-sdk-applicationautoscaling/lib/aws-sdk-applicationautoscaling/types.rb', line 1123

class PutScalingPolicyRequest < Struct.new(
  :policy_name,
  :service_namespace,
  :resource_id,
  :scalable_dimension,
  :policy_type,
  :step_scaling_policy_configuration,
  :target_tracking_scaling_policy_configuration)
  include Aws::Structure
end