aws-sdk-applicationautoscaling 1.0.0.rc5 → 1.0.0.rc6

Sign up to get free protection for your applications and to get access to all the features.
@@ -16,6 +16,7 @@ module Aws::ApplicationAutoScaling
16
16
  Alarms = Shapes::ListShape.new(name: 'Alarms')
17
17
  ConcurrentUpdateException = Shapes::StructureShape.new(name: 'ConcurrentUpdateException')
18
18
  Cooldown = Shapes::IntegerShape.new(name: 'Cooldown')
19
+ CustomizedMetricSpecification = Shapes::StructureShape.new(name: 'CustomizedMetricSpecification')
19
20
  DeleteScalingPolicyRequest = Shapes::StructureShape.new(name: 'DeleteScalingPolicyRequest')
20
21
  DeleteScalingPolicyResponse = Shapes::StructureShape.new(name: 'DeleteScalingPolicyResponse')
21
22
  DeregisterScalableTargetRequest = Shapes::StructureShape.new(name: 'DeregisterScalableTargetRequest')
@@ -33,11 +34,21 @@ module Aws::ApplicationAutoScaling
33
34
  LimitExceededException = Shapes::StructureShape.new(name: 'LimitExceededException')
34
35
  MaxResults = Shapes::IntegerShape.new(name: 'MaxResults')
35
36
  MetricAggregationType = Shapes::StringShape.new(name: 'MetricAggregationType')
37
+ MetricDimension = Shapes::StructureShape.new(name: 'MetricDimension')
38
+ MetricDimensionName = Shapes::StringShape.new(name: 'MetricDimensionName')
39
+ MetricDimensionValue = Shapes::StringShape.new(name: 'MetricDimensionValue')
40
+ MetricDimensions = Shapes::ListShape.new(name: 'MetricDimensions')
41
+ MetricName = Shapes::StringShape.new(name: 'MetricName')
42
+ MetricNamespace = Shapes::StringShape.new(name: 'MetricNamespace')
36
43
  MetricScale = Shapes::FloatShape.new(name: 'MetricScale')
44
+ MetricStatistic = Shapes::StringShape.new(name: 'MetricStatistic')
45
+ MetricType = Shapes::StringShape.new(name: 'MetricType')
46
+ MetricUnit = Shapes::StringShape.new(name: 'MetricUnit')
37
47
  MinAdjustmentMagnitude = Shapes::IntegerShape.new(name: 'MinAdjustmentMagnitude')
38
48
  ObjectNotFoundException = Shapes::StructureShape.new(name: 'ObjectNotFoundException')
39
49
  PolicyName = Shapes::StringShape.new(name: 'PolicyName')
40
50
  PolicyType = Shapes::StringShape.new(name: 'PolicyType')
51
+ PredefinedMetricSpecification = Shapes::StructureShape.new(name: 'PredefinedMetricSpecification')
41
52
  PutScalingPolicyRequest = Shapes::StructureShape.new(name: 'PutScalingPolicyRequest')
42
53
  PutScalingPolicyResponse = Shapes::StructureShape.new(name: 'PutScalingPolicyResponse')
43
54
  RegisterScalableTargetRequest = Shapes::StructureShape.new(name: 'RegisterScalableTargetRequest')
@@ -46,6 +57,7 @@ module Aws::ApplicationAutoScaling
46
57
  ResourceId = Shapes::StringShape.new(name: 'ResourceId')
47
58
  ResourceIdMaxLen1600 = Shapes::StringShape.new(name: 'ResourceIdMaxLen1600')
48
59
  ResourceIdsMaxLen1600 = Shapes::ListShape.new(name: 'ResourceIdsMaxLen1600')
60
+ ResourceLabel = Shapes::StringShape.new(name: 'ResourceLabel')
49
61
  ScalableDimension = Shapes::StringShape.new(name: 'ScalableDimension')
50
62
  ScalableTarget = Shapes::StructureShape.new(name: 'ScalableTarget')
51
63
  ScalableTargets = Shapes::ListShape.new(name: 'ScalableTargets')
@@ -59,6 +71,7 @@ module Aws::ApplicationAutoScaling
59
71
  StepAdjustment = Shapes::StructureShape.new(name: 'StepAdjustment')
60
72
  StepAdjustments = Shapes::ListShape.new(name: 'StepAdjustments')
61
73
  StepScalingPolicyConfiguration = Shapes::StructureShape.new(name: 'StepScalingPolicyConfiguration')
74
+ TargetTrackingScalingPolicyConfiguration = Shapes::StructureShape.new(name: 'TargetTrackingScalingPolicyConfiguration')
62
75
  TimestampType = Shapes::TimestampShape.new(name: 'TimestampType')
63
76
  ValidationException = Shapes::StructureShape.new(name: 'ValidationException')
64
77
  XmlString = Shapes::StringShape.new(name: 'XmlString')
@@ -69,6 +82,13 @@ module Aws::ApplicationAutoScaling
69
82
 
70
83
  Alarms.member = Shapes::ShapeRef.new(shape: Alarm)
71
84
 
85
+ CustomizedMetricSpecification.add_member(:metric_name, Shapes::ShapeRef.new(shape: MetricName, required: true, location_name: "MetricName"))
86
+ CustomizedMetricSpecification.add_member(:namespace, Shapes::ShapeRef.new(shape: MetricNamespace, required: true, location_name: "Namespace"))
87
+ CustomizedMetricSpecification.add_member(:dimensions, Shapes::ShapeRef.new(shape: MetricDimensions, location_name: "Dimensions"))
88
+ CustomizedMetricSpecification.add_member(:statistic, Shapes::ShapeRef.new(shape: MetricStatistic, required: true, location_name: "Statistic"))
89
+ CustomizedMetricSpecification.add_member(:unit, Shapes::ShapeRef.new(shape: MetricUnit, location_name: "Unit"))
90
+ CustomizedMetricSpecification.struct_class = Types::CustomizedMetricSpecification
91
+
72
92
  DeleteScalingPolicyRequest.add_member(:policy_name, Shapes::ShapeRef.new(shape: ResourceIdMaxLen1600, required: true, location_name: "PolicyName"))
73
93
  DeleteScalingPolicyRequest.add_member(:service_namespace, Shapes::ShapeRef.new(shape: ServiceNamespace, required: true, location_name: "ServiceNamespace"))
74
94
  DeleteScalingPolicyRequest.add_member(:resource_id, Shapes::ShapeRef.new(shape: ResourceIdMaxLen1600, required: true, location_name: "ResourceId"))
@@ -118,15 +138,27 @@ module Aws::ApplicationAutoScaling
118
138
  DescribeScalingPoliciesResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: XmlString, location_name: "NextToken"))
119
139
  DescribeScalingPoliciesResponse.struct_class = Types::DescribeScalingPoliciesResponse
120
140
 
141
+ MetricDimension.add_member(:name, Shapes::ShapeRef.new(shape: MetricDimensionName, required: true, location_name: "Name"))
142
+ MetricDimension.add_member(:value, Shapes::ShapeRef.new(shape: MetricDimensionValue, required: true, location_name: "Value"))
143
+ MetricDimension.struct_class = Types::MetricDimension
144
+
145
+ MetricDimensions.member = Shapes::ShapeRef.new(shape: MetricDimension)
146
+
147
+ PredefinedMetricSpecification.add_member(:predefined_metric_type, Shapes::ShapeRef.new(shape: MetricType, required: true, location_name: "PredefinedMetricType"))
148
+ PredefinedMetricSpecification.add_member(:resource_label, Shapes::ShapeRef.new(shape: ResourceLabel, location_name: "ResourceLabel"))
149
+ PredefinedMetricSpecification.struct_class = Types::PredefinedMetricSpecification
150
+
121
151
  PutScalingPolicyRequest.add_member(:policy_name, Shapes::ShapeRef.new(shape: PolicyName, required: true, location_name: "PolicyName"))
122
152
  PutScalingPolicyRequest.add_member(:service_namespace, Shapes::ShapeRef.new(shape: ServiceNamespace, required: true, location_name: "ServiceNamespace"))
123
153
  PutScalingPolicyRequest.add_member(:resource_id, Shapes::ShapeRef.new(shape: ResourceIdMaxLen1600, required: true, location_name: "ResourceId"))
124
154
  PutScalingPolicyRequest.add_member(:scalable_dimension, Shapes::ShapeRef.new(shape: ScalableDimension, required: true, location_name: "ScalableDimension"))
125
155
  PutScalingPolicyRequest.add_member(:policy_type, Shapes::ShapeRef.new(shape: PolicyType, location_name: "PolicyType"))
126
156
  PutScalingPolicyRequest.add_member(:step_scaling_policy_configuration, Shapes::ShapeRef.new(shape: StepScalingPolicyConfiguration, location_name: "StepScalingPolicyConfiguration"))
157
+ PutScalingPolicyRequest.add_member(:target_tracking_scaling_policy_configuration, Shapes::ShapeRef.new(shape: TargetTrackingScalingPolicyConfiguration, location_name: "TargetTrackingScalingPolicyConfiguration"))
127
158
  PutScalingPolicyRequest.struct_class = Types::PutScalingPolicyRequest
128
159
 
129
160
  PutScalingPolicyResponse.add_member(:policy_arn, Shapes::ShapeRef.new(shape: ResourceIdMaxLen1600, required: true, location_name: "PolicyARN"))
161
+ PutScalingPolicyResponse.add_member(:alarms, Shapes::ShapeRef.new(shape: Alarms, location_name: "Alarms"))
130
162
  PutScalingPolicyResponse.struct_class = Types::PutScalingPolicyResponse
131
163
 
132
164
  RegisterScalableTargetRequest.add_member(:service_namespace, Shapes::ShapeRef.new(shape: ServiceNamespace, required: true, location_name: "ServiceNamespace"))
@@ -176,6 +208,7 @@ module Aws::ApplicationAutoScaling
176
208
  ScalingPolicy.add_member(:scalable_dimension, Shapes::ShapeRef.new(shape: ScalableDimension, required: true, location_name: "ScalableDimension"))
177
209
  ScalingPolicy.add_member(:policy_type, Shapes::ShapeRef.new(shape: PolicyType, required: true, location_name: "PolicyType"))
178
210
  ScalingPolicy.add_member(:step_scaling_policy_configuration, Shapes::ShapeRef.new(shape: StepScalingPolicyConfiguration, location_name: "StepScalingPolicyConfiguration"))
211
+ ScalingPolicy.add_member(:target_tracking_scaling_policy_configuration, Shapes::ShapeRef.new(shape: TargetTrackingScalingPolicyConfiguration, location_name: "TargetTrackingScalingPolicyConfiguration"))
179
212
  ScalingPolicy.add_member(:alarms, Shapes::ShapeRef.new(shape: Alarms, location_name: "Alarms"))
180
213
  ScalingPolicy.add_member(:creation_time, Shapes::ShapeRef.new(shape: TimestampType, required: true, location_name: "CreationTime"))
181
214
  ScalingPolicy.struct_class = Types::ScalingPolicy
@@ -194,6 +227,13 @@ module Aws::ApplicationAutoScaling
194
227
  StepScalingPolicyConfiguration.add_member(:metric_aggregation_type, Shapes::ShapeRef.new(shape: MetricAggregationType, location_name: "MetricAggregationType"))
195
228
  StepScalingPolicyConfiguration.struct_class = Types::StepScalingPolicyConfiguration
196
229
 
230
+ TargetTrackingScalingPolicyConfiguration.add_member(:target_value, Shapes::ShapeRef.new(shape: MetricScale, required: true, location_name: "TargetValue"))
231
+ TargetTrackingScalingPolicyConfiguration.add_member(:predefined_metric_specification, Shapes::ShapeRef.new(shape: PredefinedMetricSpecification, location_name: "PredefinedMetricSpecification"))
232
+ TargetTrackingScalingPolicyConfiguration.add_member(:customized_metric_specification, Shapes::ShapeRef.new(shape: CustomizedMetricSpecification, location_name: "CustomizedMetricSpecification"))
233
+ TargetTrackingScalingPolicyConfiguration.add_member(:scale_out_cooldown, Shapes::ShapeRef.new(shape: Cooldown, location_name: "ScaleOutCooldown"))
234
+ TargetTrackingScalingPolicyConfiguration.add_member(:scale_in_cooldown, Shapes::ShapeRef.new(shape: Cooldown, location_name: "ScaleInCooldown"))
235
+ TargetTrackingScalingPolicyConfiguration.struct_class = Types::TargetTrackingScalingPolicyConfiguration
236
+
197
237
 
198
238
  # @api private
199
239
  API = Seahorse::Model::Api.new.tap do |api|
@@ -299,6 +339,7 @@ module Aws::ApplicationAutoScaling
299
339
  o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
300
340
  o.errors << Shapes::ShapeRef.new(shape: ObjectNotFoundException)
301
341
  o.errors << Shapes::ShapeRef.new(shape: ConcurrentUpdateException)
342
+ o.errors << Shapes::ShapeRef.new(shape: FailedResourceAccessException)
302
343
  o.errors << Shapes::ShapeRef.new(shape: InternalServiceException)
303
344
  end)
304
345
 
@@ -26,14 +26,63 @@ module Aws::ApplicationAutoScaling
26
26
  include Aws::Structure
27
27
  end
28
28
 
29
+ # Configures a customized metric for a target tracking policy.
30
+ #
31
+ # @note When making an API call, you may pass CustomizedMetricSpecification
32
+ # data as a hash:
33
+ #
34
+ # {
35
+ # metric_name: "MetricName", # required
36
+ # namespace: "MetricNamespace", # required
37
+ # dimensions: [
38
+ # {
39
+ # name: "MetricDimensionName", # required
40
+ # value: "MetricDimensionValue", # required
41
+ # },
42
+ # ],
43
+ # statistic: "Average", # required, accepts Average, Minimum, Maximum, SampleCount, Sum
44
+ # unit: "MetricUnit",
45
+ # }
46
+ #
47
+ # @!attribute [rw] metric_name
48
+ # The name of the metric.
49
+ # @return [String]
50
+ #
51
+ # @!attribute [rw] namespace
52
+ # The namespace of the metric.
53
+ # @return [String]
54
+ #
55
+ # @!attribute [rw] dimensions
56
+ # The dimensions of the metric.
57
+ # @return [Array<Types::MetricDimension>]
58
+ #
59
+ # @!attribute [rw] statistic
60
+ # The statistic of the metric.
61
+ # @return [String]
62
+ #
63
+ # @!attribute [rw] unit
64
+ # The unit of the metric.
65
+ # @return [String]
66
+ #
67
+ # @see http://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/CustomizedMetricSpecification AWS API Documentation
68
+ #
69
+ class CustomizedMetricSpecification < Struct.new(
70
+ :metric_name,
71
+ :namespace,
72
+ :dimensions,
73
+ :statistic,
74
+ :unit)
75
+ include Aws::Structure
76
+ end
77
+
29
78
  # @note When making an API call, you may pass DeleteScalingPolicyRequest
30
79
  # data as a hash:
31
80
  #
32
81
  # {
33
82
  # policy_name: "ResourceIdMaxLen1600", # required
34
- # service_namespace: "ecs", # required, accepts ecs, elasticmapreduce, ec2, appstream
83
+ # service_namespace: "ecs", # required, accepts ecs, elasticmapreduce, ec2, appstream, dynamodb
35
84
  # resource_id: "ResourceIdMaxLen1600", # required
36
- # scalable_dimension: "ecs:service:DesiredCount", # required, accepts ecs:service:DesiredCount, ec2:spot-fleet-request:TargetCapacity, elasticmapreduce:instancegroup:InstanceCount, appstream:fleet:DesiredCapacity
85
+ # 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
37
86
  # }
38
87
  #
39
88
  # @!attribute [rw] policy_name
@@ -68,6 +117,13 @@ module Aws::ApplicationAutoScaling
68
117
  #
69
118
  # * AppStream 2.0 fleet - The resource type is `fleet` and the unique
70
119
  # identifier is the fleet name. Example: `fleet/sample-fleet`.
120
+ #
121
+ # * DynamoDB table - The resource type is `table` and the unique
122
+ # identifier is the resource ID. Example: `table/my-table`.
123
+ #
124
+ # * DynamoDB global secondary index - The resource type is `index` and
125
+ # the unique identifier is the resource ID. Example:
126
+ # `table/my-table/index/my-table-index`.
71
127
  # @return [String]
72
128
  #
73
129
  # @!attribute [rw] scalable_dimension
@@ -85,6 +141,18 @@ module Aws::ApplicationAutoScaling
85
141
  #
86
142
  # * `appstream:fleet:DesiredCapacity` - The desired capacity of an
87
143
  # AppStream 2.0 fleet.
144
+ #
145
+ # * `dynamodb:table:ReadCapacityUnits` - The provisioned read capacity
146
+ # for a DynamoDB table.
147
+ #
148
+ # * `dynamodb:table:WriteCapacityUnits` - The provisioned write
149
+ # capacity for a DynamoDB table.
150
+ #
151
+ # * `dynamodb:index:ReadCapacityUnits` - The provisioned read capacity
152
+ # for a DynamoDB global secondary index.
153
+ #
154
+ # * `dynamodb:index:WriteCapacityUnits` - The provisioned write
155
+ # capacity for a DynamoDB global secondary index.
88
156
  # @return [String]
89
157
  #
90
158
  # @see http://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DeleteScalingPolicyRequest AWS API Documentation
@@ -105,9 +173,9 @@ module Aws::ApplicationAutoScaling
105
173
  # data as a hash:
106
174
  #
107
175
  # {
108
- # service_namespace: "ecs", # required, accepts ecs, elasticmapreduce, ec2, appstream
176
+ # service_namespace: "ecs", # required, accepts ecs, elasticmapreduce, ec2, appstream, dynamodb
109
177
  # resource_id: "ResourceIdMaxLen1600", # required
110
- # scalable_dimension: "ecs:service:DesiredCount", # required, accepts ecs:service:DesiredCount, ec2:spot-fleet-request:TargetCapacity, elasticmapreduce:instancegroup:InstanceCount, appstream:fleet:DesiredCapacity
178
+ # 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
111
179
  # }
112
180
  #
113
181
  # @!attribute [rw] service_namespace
@@ -138,6 +206,13 @@ module Aws::ApplicationAutoScaling
138
206
  #
139
207
  # * AppStream 2.0 fleet - The resource type is `fleet` and the unique
140
208
  # identifier is the fleet name. Example: `fleet/sample-fleet`.
209
+ #
210
+ # * DynamoDB table - The resource type is `table` and the unique
211
+ # identifier is the resource ID. Example: `table/my-table`.
212
+ #
213
+ # * DynamoDB global secondary index - The resource type is `index` and
214
+ # the unique identifier is the resource ID. Example:
215
+ # `table/my-table/index/my-table-index`.
141
216
  # @return [String]
142
217
  #
143
218
  # @!attribute [rw] scalable_dimension
@@ -156,6 +231,18 @@ module Aws::ApplicationAutoScaling
156
231
  #
157
232
  # * `appstream:fleet:DesiredCapacity` - The desired capacity of an
158
233
  # AppStream 2.0 fleet.
234
+ #
235
+ # * `dynamodb:table:ReadCapacityUnits` - The provisioned read capacity
236
+ # for a DynamoDB table.
237
+ #
238
+ # * `dynamodb:table:WriteCapacityUnits` - The provisioned write
239
+ # capacity for a DynamoDB table.
240
+ #
241
+ # * `dynamodb:index:ReadCapacityUnits` - The provisioned read capacity
242
+ # for a DynamoDB global secondary index.
243
+ #
244
+ # * `dynamodb:index:WriteCapacityUnits` - The provisioned write
245
+ # capacity for a DynamoDB global secondary index.
159
246
  # @return [String]
160
247
  #
161
248
  # @see http://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/DeregisterScalableTargetRequest AWS API Documentation
@@ -175,9 +262,9 @@ module Aws::ApplicationAutoScaling
175
262
  # data as a hash:
176
263
  #
177
264
  # {
178
- # service_namespace: "ecs", # required, accepts ecs, elasticmapreduce, ec2, appstream
265
+ # service_namespace: "ecs", # required, accepts ecs, elasticmapreduce, ec2, appstream, dynamodb
179
266
  # resource_ids: ["ResourceIdMaxLen1600"],
180
- # scalable_dimension: "ecs:service:DesiredCount", # accepts ecs:service:DesiredCount, ec2:spot-fleet-request:TargetCapacity, elasticmapreduce:instancegroup:InstanceCount, appstream:fleet:DesiredCapacity
267
+ # scalable_dimension: "ecs:service:DesiredCount", # 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
181
268
  # max_results: 1,
182
269
  # next_token: "XmlString",
183
270
  # }
@@ -212,6 +299,13 @@ module Aws::ApplicationAutoScaling
212
299
  #
213
300
  # * AppStream 2.0 fleet - The resource type is `fleet` and the unique
214
301
  # identifier is the fleet name. Example: `fleet/sample-fleet`.
302
+ #
303
+ # * DynamoDB table - The resource type is `table` and the unique
304
+ # identifier is the resource ID. Example: `table/my-table`.
305
+ #
306
+ # * DynamoDB global secondary index - The resource type is `index` and
307
+ # the unique identifier is the resource ID. Example:
308
+ # `table/my-table/index/my-table-index`.
215
309
  # @return [Array<String>]
216
310
  #
217
311
  # @!attribute [rw] scalable_dimension
@@ -231,6 +325,18 @@ module Aws::ApplicationAutoScaling
231
325
  #
232
326
  # * `appstream:fleet:DesiredCapacity` - The desired capacity of an
233
327
  # AppStream 2.0 fleet.
328
+ #
329
+ # * `dynamodb:table:ReadCapacityUnits` - The provisioned read capacity
330
+ # for a DynamoDB table.
331
+ #
332
+ # * `dynamodb:table:WriteCapacityUnits` - The provisioned write
333
+ # capacity for a DynamoDB table.
334
+ #
335
+ # * `dynamodb:index:ReadCapacityUnits` - The provisioned read capacity
336
+ # for a DynamoDB global secondary index.
337
+ #
338
+ # * `dynamodb:index:WriteCapacityUnits` - The provisioned write
339
+ # capacity for a DynamoDB global secondary index.
234
340
  # @return [String]
235
341
  #
236
342
  # @!attribute [rw] max_results
@@ -280,9 +386,9 @@ module Aws::ApplicationAutoScaling
280
386
  # data as a hash:
281
387
  #
282
388
  # {
283
- # service_namespace: "ecs", # required, accepts ecs, elasticmapreduce, ec2, appstream
389
+ # service_namespace: "ecs", # required, accepts ecs, elasticmapreduce, ec2, appstream, dynamodb
284
390
  # resource_id: "ResourceIdMaxLen1600",
285
- # scalable_dimension: "ecs:service:DesiredCount", # accepts ecs:service:DesiredCount, ec2:spot-fleet-request:TargetCapacity, elasticmapreduce:instancegroup:InstanceCount, appstream:fleet:DesiredCapacity
391
+ # scalable_dimension: "ecs:service:DesiredCount", # 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
286
392
  # max_results: 1,
287
393
  # next_token: "XmlString",
288
394
  # }
@@ -317,6 +423,13 @@ module Aws::ApplicationAutoScaling
317
423
  #
318
424
  # * AppStream 2.0 fleet - The resource type is `fleet` and the unique
319
425
  # identifier is the fleet name. Example: `fleet/sample-fleet`.
426
+ #
427
+ # * DynamoDB table - The resource type is `table` and the unique
428
+ # identifier is the resource ID. Example: `table/my-table`.
429
+ #
430
+ # * DynamoDB global secondary index - The resource type is `index` and
431
+ # the unique identifier is the resource ID. Example:
432
+ # `table/my-table/index/my-table-index`.
320
433
  # @return [String]
321
434
  #
322
435
  # @!attribute [rw] scalable_dimension
@@ -335,6 +448,18 @@ module Aws::ApplicationAutoScaling
335
448
  #
336
449
  # * `appstream:fleet:DesiredCapacity` - The desired capacity of an
337
450
  # AppStream 2.0 fleet.
451
+ #
452
+ # * `dynamodb:table:ReadCapacityUnits` - The provisioned read capacity
453
+ # for a DynamoDB table.
454
+ #
455
+ # * `dynamodb:table:WriteCapacityUnits` - The provisioned write
456
+ # capacity for a DynamoDB table.
457
+ #
458
+ # * `dynamodb:index:ReadCapacityUnits` - The provisioned read capacity
459
+ # for a DynamoDB global secondary index.
460
+ #
461
+ # * `dynamodb:index:WriteCapacityUnits` - The provisioned write
462
+ # capacity for a DynamoDB global secondary index.
338
463
  # @return [String]
339
464
  #
340
465
  # @!attribute [rw] max_results
@@ -385,9 +510,9 @@ module Aws::ApplicationAutoScaling
385
510
  #
386
511
  # {
387
512
  # policy_names: ["ResourceIdMaxLen1600"],
388
- # service_namespace: "ecs", # required, accepts ecs, elasticmapreduce, ec2, appstream
513
+ # service_namespace: "ecs", # required, accepts ecs, elasticmapreduce, ec2, appstream, dynamodb
389
514
  # resource_id: "ResourceIdMaxLen1600",
390
- # scalable_dimension: "ecs:service:DesiredCount", # accepts ecs:service:DesiredCount, ec2:spot-fleet-request:TargetCapacity, elasticmapreduce:instancegroup:InstanceCount, appstream:fleet:DesiredCapacity
515
+ # scalable_dimension: "ecs:service:DesiredCount", # 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
391
516
  # max_results: 1,
392
517
  # next_token: "XmlString",
393
518
  # }
@@ -426,6 +551,13 @@ module Aws::ApplicationAutoScaling
426
551
  #
427
552
  # * AppStream 2.0 fleet - The resource type is `fleet` and the unique
428
553
  # identifier is the fleet name. Example: `fleet/sample-fleet`.
554
+ #
555
+ # * DynamoDB table - The resource type is `table` and the unique
556
+ # identifier is the resource ID. Example: `table/my-table`.
557
+ #
558
+ # * DynamoDB global secondary index - The resource type is `index` and
559
+ # the unique identifier is the resource ID. Example:
560
+ # `table/my-table/index/my-table-index`.
429
561
  # @return [String]
430
562
  #
431
563
  # @!attribute [rw] scalable_dimension
@@ -444,6 +576,18 @@ module Aws::ApplicationAutoScaling
444
576
  #
445
577
  # * `appstream:fleet:DesiredCapacity` - The desired capacity of an
446
578
  # AppStream 2.0 fleet.
579
+ #
580
+ # * `dynamodb:table:ReadCapacityUnits` - The provisioned read capacity
581
+ # for a DynamoDB table.
582
+ #
583
+ # * `dynamodb:table:WriteCapacityUnits` - The provisioned write
584
+ # capacity for a DynamoDB table.
585
+ #
586
+ # * `dynamodb:index:ReadCapacityUnits` - The provisioned read capacity
587
+ # for a DynamoDB global secondary index.
588
+ #
589
+ # * `dynamodb:index:WriteCapacityUnits` - The provisioned write
590
+ # capacity for a DynamoDB global secondary index.
447
591
  # @return [String]
448
592
  #
449
593
  # @!attribute [rw] max_results
@@ -490,15 +634,67 @@ module Aws::ApplicationAutoScaling
490
634
  include Aws::Structure
491
635
  end
492
636
 
637
+ # Describes the dimension of a metric.
638
+ #
639
+ # @note When making an API call, you may pass MetricDimension
640
+ # data as a hash:
641
+ #
642
+ # {
643
+ # name: "MetricDimensionName", # required
644
+ # value: "MetricDimensionValue", # required
645
+ # }
646
+ #
647
+ # @!attribute [rw] name
648
+ # The name of the dimension.
649
+ # @return [String]
650
+ #
651
+ # @!attribute [rw] value
652
+ # The value of the dimension.
653
+ # @return [String]
654
+ #
655
+ # @see http://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/MetricDimension AWS API Documentation
656
+ #
657
+ class MetricDimension < Struct.new(
658
+ :name,
659
+ :value)
660
+ include Aws::Structure
661
+ end
662
+
663
+ # Configures a predefined metric for a target tracking policy.
664
+ #
665
+ # @note When making an API call, you may pass PredefinedMetricSpecification
666
+ # data as a hash:
667
+ #
668
+ # {
669
+ # predefined_metric_type: "DynamoDBReadCapacityUtilization", # required, accepts DynamoDBReadCapacityUtilization, DynamoDBWriteCapacityUtilization
670
+ # resource_label: "ResourceLabel",
671
+ # }
672
+ #
673
+ # @!attribute [rw] predefined_metric_type
674
+ # The metric type.
675
+ # @return [String]
676
+ #
677
+ # @!attribute [rw] resource_label
678
+ # Reserved for future use.
679
+ # @return [String]
680
+ #
681
+ # @see http://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/PredefinedMetricSpecification AWS API Documentation
682
+ #
683
+ class PredefinedMetricSpecification < Struct.new(
684
+ :predefined_metric_type,
685
+ :resource_label)
686
+ include Aws::Structure
687
+ end
688
+
493
689
  # @note When making an API call, you may pass PutScalingPolicyRequest
494
690
  # data as a hash:
495
691
  #
496
692
  # {
497
693
  # policy_name: "PolicyName", # required
498
- # service_namespace: "ecs", # required, accepts ecs, elasticmapreduce, ec2, appstream
694
+ # service_namespace: "ecs", # required, accepts ecs, elasticmapreduce, ec2, appstream, dynamodb
499
695
  # resource_id: "ResourceIdMaxLen1600", # required
500
- # scalable_dimension: "ecs:service:DesiredCount", # required, accepts ecs:service:DesiredCount, ec2:spot-fleet-request:TargetCapacity, elasticmapreduce:instancegroup:InstanceCount, appstream:fleet:DesiredCapacity
501
- # policy_type: "StepScaling", # accepts StepScaling
696
+ # 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
697
+ # policy_type: "StepScaling", # accepts StepScaling, TargetTrackingScaling
502
698
  # step_scaling_policy_configuration: {
503
699
  # adjustment_type: "ChangeInCapacity", # accepts ChangeInCapacity, PercentChangeInCapacity, ExactCapacity
504
700
  # step_adjustments: [
@@ -512,6 +708,27 @@ module Aws::ApplicationAutoScaling
512
708
  # cooldown: 1,
513
709
  # metric_aggregation_type: "Average", # accepts Average, Minimum, Maximum
514
710
  # },
711
+ # target_tracking_scaling_policy_configuration: {
712
+ # target_value: 1.0, # required
713
+ # predefined_metric_specification: {
714
+ # predefined_metric_type: "DynamoDBReadCapacityUtilization", # required, accepts DynamoDBReadCapacityUtilization, DynamoDBWriteCapacityUtilization
715
+ # resource_label: "ResourceLabel",
716
+ # },
717
+ # customized_metric_specification: {
718
+ # metric_name: "MetricName", # required
719
+ # namespace: "MetricNamespace", # required
720
+ # dimensions: [
721
+ # {
722
+ # name: "MetricDimensionName", # required
723
+ # value: "MetricDimensionValue", # required
724
+ # },
725
+ # ],
726
+ # statistic: "Average", # required, accepts Average, Minimum, Maximum, SampleCount, Sum
727
+ # unit: "MetricUnit",
728
+ # },
729
+ # scale_out_cooldown: 1,
730
+ # scale_in_cooldown: 1,
731
+ # },
515
732
  # }
516
733
  #
517
734
  # @!attribute [rw] policy_name
@@ -546,6 +763,13 @@ module Aws::ApplicationAutoScaling
546
763
  #
547
764
  # * AppStream 2.0 fleet - The resource type is `fleet` and the unique
548
765
  # identifier is the fleet name. Example: `fleet/sample-fleet`.
766
+ #
767
+ # * DynamoDB table - The resource type is `table` and the unique
768
+ # identifier is the resource ID. Example: `table/my-table`.
769
+ #
770
+ # * DynamoDB global secondary index - The resource type is `index` and
771
+ # the unique identifier is the resource ID. Example:
772
+ # `table/my-table/index/my-table-index`.
549
773
  # @return [String]
550
774
  #
551
775
  # @!attribute [rw] scalable_dimension
@@ -563,21 +787,43 @@ module Aws::ApplicationAutoScaling
563
787
  #
564
788
  # * `appstream:fleet:DesiredCapacity` - The desired capacity of an
565
789
  # AppStream 2.0 fleet.
790
+ #
791
+ # * `dynamodb:table:ReadCapacityUnits` - The provisioned read capacity
792
+ # for a DynamoDB table.
793
+ #
794
+ # * `dynamodb:table:WriteCapacityUnits` - The provisioned write
795
+ # capacity for a DynamoDB table.
796
+ #
797
+ # * `dynamodb:index:ReadCapacityUnits` - The provisioned read capacity
798
+ # for a DynamoDB global secondary index.
799
+ #
800
+ # * `dynamodb:index:WriteCapacityUnits` - The provisioned write
801
+ # capacity for a DynamoDB global secondary index.
566
802
  # @return [String]
567
803
  #
568
804
  # @!attribute [rw] policy_type
569
805
  # The policy type. If you are creating a new policy, this parameter is
570
806
  # required. If you are updating a policy, this parameter is not
571
807
  # required.
808
+ #
809
+ # For DynamoDB, only `TargetTrackingScaling` is supported. For any
810
+ # other service, only `StepScaling` is supported.
572
811
  # @return [String]
573
812
  #
574
813
  # @!attribute [rw] step_scaling_policy_configuration
575
- # The configuration for the step scaling policy. If you are creating a
576
- # new policy, this parameter is required. If you are updating a
577
- # policy, this parameter is not required. For more information, see
578
- # StepScalingPolicyConfiguration and StepAdjustment.
814
+ # A step scaling policy.
815
+ #
816
+ # This parameter is required if you are creating a policy and the
817
+ # policy type is `StepScaling`.
579
818
  # @return [Types::StepScalingPolicyConfiguration]
580
819
  #
820
+ # @!attribute [rw] target_tracking_scaling_policy_configuration
821
+ # A target tracking policy.
822
+ #
823
+ # This parameter is required if you are creating a new policy and the
824
+ # policy type is `TargetTrackingScaling`.
825
+ # @return [Types::TargetTrackingScalingPolicyConfiguration]
826
+ #
581
827
  # @see http://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/PutScalingPolicyRequest AWS API Documentation
582
828
  #
583
829
  class PutScalingPolicyRequest < Struct.new(
@@ -586,7 +832,8 @@ module Aws::ApplicationAutoScaling
586
832
  :resource_id,
587
833
  :scalable_dimension,
588
834
  :policy_type,
589
- :step_scaling_policy_configuration)
835
+ :step_scaling_policy_configuration,
836
+ :target_tracking_scaling_policy_configuration)
590
837
  include Aws::Structure
591
838
  end
592
839
 
@@ -594,10 +841,15 @@ module Aws::ApplicationAutoScaling
594
841
  # The Amazon Resource Name (ARN) of the resulting scaling policy.
595
842
  # @return [String]
596
843
  #
844
+ # @!attribute [rw] alarms
845
+ # The CloudWatch alarms created for the target tracking policy.
846
+ # @return [Array<Types::Alarm>]
847
+ #
597
848
  # @see http://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/PutScalingPolicyResponse AWS API Documentation
598
849
  #
599
850
  class PutScalingPolicyResponse < Struct.new(
600
- :policy_arn)
851
+ :policy_arn,
852
+ :alarms)
601
853
  include Aws::Structure
602
854
  end
603
855
 
@@ -605,9 +857,9 @@ module Aws::ApplicationAutoScaling
605
857
  # data as a hash:
606
858
  #
607
859
  # {
608
- # service_namespace: "ecs", # required, accepts ecs, elasticmapreduce, ec2, appstream
860
+ # service_namespace: "ecs", # required, accepts ecs, elasticmapreduce, ec2, appstream, dynamodb
609
861
  # resource_id: "ResourceIdMaxLen1600", # required
610
- # scalable_dimension: "ecs:service:DesiredCount", # required, accepts ecs:service:DesiredCount, ec2:spot-fleet-request:TargetCapacity, elasticmapreduce:instancegroup:InstanceCount, appstream:fleet:DesiredCapacity
862
+ # 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
611
863
  # min_capacity: 1,
612
864
  # max_capacity: 1,
613
865
  # role_arn: "ResourceIdMaxLen1600",
@@ -641,6 +893,13 @@ module Aws::ApplicationAutoScaling
641
893
  #
642
894
  # * AppStream 2.0 fleet - The resource type is `fleet` and the unique
643
895
  # identifier is the fleet name. Example: `fleet/sample-fleet`.
896
+ #
897
+ # * DynamoDB table - The resource type is `table` and the unique
898
+ # identifier is the resource ID. Example: `table/my-table`.
899
+ #
900
+ # * DynamoDB global secondary index - The resource type is `index` and
901
+ # the unique identifier is the resource ID. Example:
902
+ # `table/my-table/index/my-table-index`.
644
903
  # @return [String]
645
904
  #
646
905
  # @!attribute [rw] scalable_dimension
@@ -659,6 +918,18 @@ module Aws::ApplicationAutoScaling
659
918
  #
660
919
  # * `appstream:fleet:DesiredCapacity` - The desired capacity of an
661
920
  # AppStream 2.0 fleet.
921
+ #
922
+ # * `dynamodb:table:ReadCapacityUnits` - The provisioned read capacity
923
+ # for a DynamoDB table.
924
+ #
925
+ # * `dynamodb:table:WriteCapacityUnits` - The provisioned write
926
+ # capacity for a DynamoDB table.
927
+ #
928
+ # * `dynamodb:index:ReadCapacityUnits` - The provisioned read capacity
929
+ # for a DynamoDB global secondary index.
930
+ #
931
+ # * `dynamodb:index:WriteCapacityUnits` - The provisioned write
932
+ # capacity for a DynamoDB global secondary index.
662
933
  # @return [String]
663
934
  #
664
935
  # @!attribute [rw] min_capacity
@@ -726,6 +997,13 @@ module Aws::ApplicationAutoScaling
726
997
  #
727
998
  # * AppStream 2.0 fleet - The resource type is `fleet` and the unique
728
999
  # identifier is the fleet name. Example: `fleet/sample-fleet`.
1000
+ #
1001
+ # * DynamoDB table - The resource type is `table` and the unique
1002
+ # identifier is the resource ID. Example: `table/my-table`.
1003
+ #
1004
+ # * DynamoDB global secondary index - The resource type is `index` and
1005
+ # the unique identifier is the resource ID. Example:
1006
+ # `table/my-table/index/my-table-index`.
729
1007
  # @return [String]
730
1008
  #
731
1009
  # @!attribute [rw] scalable_dimension
@@ -744,6 +1022,18 @@ module Aws::ApplicationAutoScaling
744
1022
  #
745
1023
  # * `appstream:fleet:DesiredCapacity` - The desired capacity of an
746
1024
  # AppStream 2.0 fleet.
1025
+ #
1026
+ # * `dynamodb:table:ReadCapacityUnits` - The provisioned read capacity
1027
+ # for a DynamoDB table.
1028
+ #
1029
+ # * `dynamodb:table:WriteCapacityUnits` - The provisioned write
1030
+ # capacity for a DynamoDB table.
1031
+ #
1032
+ # * `dynamodb:index:ReadCapacityUnits` - The provisioned read capacity
1033
+ # for a DynamoDB global secondary index.
1034
+ #
1035
+ # * `dynamodb:index:WriteCapacityUnits` - The provisioned write
1036
+ # capacity for a DynamoDB global secondary index.
747
1037
  # @return [String]
748
1038
  #
749
1039
  # @!attribute [rw] min_capacity
@@ -810,6 +1100,13 @@ module Aws::ApplicationAutoScaling
810
1100
  #
811
1101
  # * AppStream 2.0 fleet - The resource type is `fleet` and the unique
812
1102
  # identifier is the fleet name. Example: `fleet/sample-fleet`.
1103
+ #
1104
+ # * DynamoDB table - The resource type is `table` and the unique
1105
+ # identifier is the resource ID. Example: `table/my-table`.
1106
+ #
1107
+ # * DynamoDB global secondary index - The resource type is `index` and
1108
+ # the unique identifier is the resource ID. Example:
1109
+ # `table/my-table/index/my-table-index`.
813
1110
  # @return [String]
814
1111
  #
815
1112
  # @!attribute [rw] scalable_dimension
@@ -827,6 +1124,18 @@ module Aws::ApplicationAutoScaling
827
1124
  #
828
1125
  # * `appstream:fleet:DesiredCapacity` - The desired capacity of an
829
1126
  # AppStream 2.0 fleet.
1127
+ #
1128
+ # * `dynamodb:table:ReadCapacityUnits` - The provisioned read capacity
1129
+ # for a DynamoDB table.
1130
+ #
1131
+ # * `dynamodb:table:WriteCapacityUnits` - The provisioned write
1132
+ # capacity for a DynamoDB table.
1133
+ #
1134
+ # * `dynamodb:index:ReadCapacityUnits` - The provisioned read capacity
1135
+ # for a DynamoDB global secondary index.
1136
+ #
1137
+ # * `dynamodb:index:WriteCapacityUnits` - The provisioned write
1138
+ # capacity for a DynamoDB global secondary index.
830
1139
  # @return [String]
831
1140
  #
832
1141
  # @!attribute [rw] description
@@ -913,6 +1222,13 @@ module Aws::ApplicationAutoScaling
913
1222
  #
914
1223
  # * AppStream 2.0 fleet - The resource type is `fleet` and the unique
915
1224
  # identifier is the fleet name. Example: `fleet/sample-fleet`.
1225
+ #
1226
+ # * DynamoDB table - The resource type is `table` and the unique
1227
+ # identifier is the resource ID. Example: `table/my-table`.
1228
+ #
1229
+ # * DynamoDB global secondary index - The resource type is `index` and
1230
+ # the unique identifier is the resource ID. Example:
1231
+ # `table/my-table/index/my-table-index`.
916
1232
  # @return [String]
917
1233
  #
918
1234
  # @!attribute [rw] scalable_dimension
@@ -930,6 +1246,18 @@ module Aws::ApplicationAutoScaling
930
1246
  #
931
1247
  # * `appstream:fleet:DesiredCapacity` - The desired capacity of an
932
1248
  # AppStream 2.0 fleet.
1249
+ #
1250
+ # * `dynamodb:table:ReadCapacityUnits` - The provisioned read capacity
1251
+ # for a DynamoDB table.
1252
+ #
1253
+ # * `dynamodb:table:WriteCapacityUnits` - The provisioned write
1254
+ # capacity for a DynamoDB table.
1255
+ #
1256
+ # * `dynamodb:index:ReadCapacityUnits` - The provisioned read capacity
1257
+ # for a DynamoDB global secondary index.
1258
+ #
1259
+ # * `dynamodb:index:WriteCapacityUnits` - The provisioned write
1260
+ # capacity for a DynamoDB global secondary index.
933
1261
  # @return [String]
934
1262
  #
935
1263
  # @!attribute [rw] policy_type
@@ -937,9 +1265,13 @@ module Aws::ApplicationAutoScaling
937
1265
  # @return [String]
938
1266
  #
939
1267
  # @!attribute [rw] step_scaling_policy_configuration
940
- # The configuration for the step scaling policy.
1268
+ # A step scaling policy.
941
1269
  # @return [Types::StepScalingPolicyConfiguration]
942
1270
  #
1271
+ # @!attribute [rw] target_tracking_scaling_policy_configuration
1272
+ # A target tracking policy.
1273
+ # @return [Types::TargetTrackingScalingPolicyConfiguration]
1274
+ #
943
1275
  # @!attribute [rw] alarms
944
1276
  # The CloudWatch alarms associated with the scaling policy.
945
1277
  # @return [Array<Types::Alarm>]
@@ -958,6 +1290,7 @@ module Aws::ApplicationAutoScaling
958
1290
  :scalable_dimension,
959
1291
  :policy_type,
960
1292
  :step_scaling_policy_configuration,
1293
+ :target_tracking_scaling_policy_configuration,
961
1294
  :alarms,
962
1295
  :creation_time)
963
1296
  include Aws::Structure
@@ -1079,25 +1412,24 @@ module Aws::ApplicationAutoScaling
1079
1412
  # where previous trigger-related scaling activities can influence
1080
1413
  # future scaling events.
1081
1414
  #
1082
- # For scale out policies, while `Cooldown` is in effect, the capacity
1083
- # that has been added by the previous scale out event that initiated
1084
- # the `Cooldown` is calculated as part of the desired capacity for the
1085
- # next scale out. The intention is to continuously (but not
1415
+ # For scale out policies, while the cooldown period is in effect, the
1416
+ # capacity that has been added by the previous scale out event that
1417
+ # initiated the cooldown is calculated as part of the desired capacity
1418
+ # for the next scale out. The intention is to continuously (but not
1086
1419
  # excessively) scale out. For example, an alarm triggers a step
1087
1420
  # scaling policy to scale out an Amazon ECS service by 2 tasks, the
1088
- # scaling activity completes successfully, and a `Cooldown` period of
1089
- # 5 minutes starts. During the `Cooldown` period, if the alarm
1090
- # triggers the same policy again but at a more aggressive step
1091
- # adjustment to scale out the service by 3 tasks, the 2 tasks that
1092
- # were added in the previous scale out event are considered part of
1093
- # that capacity and only 1 additional task is added to the desired
1094
- # count.
1095
- #
1096
- # For scale in policies, the `Cooldown` period is used to block
1421
+ # scaling activity completes successfully, and a cooldown period of 5
1422
+ # minutes starts. During the Cooldown period, if the alarm triggers
1423
+ # the same policy again but at a more aggressive step adjustment to
1424
+ # scale out the service by 3 tasks, the 2 tasks that were added in the
1425
+ # previous scale out event are considered part of that capacity and
1426
+ # only 1 additional task is added to the desired count.
1427
+ #
1428
+ # For scale in policies, the cooldown period is used to block
1097
1429
  # subsequent scale in requests until it has expired. The intention is
1098
1430
  # to scale in conservatively to protect your application's
1099
1431
  # availability. However, if another alarm triggers a scale out policy
1100
- # during the `Cooldown` period after a scale-in, Application Auto
1432
+ # during the cooldown period after a scale-in, Application Auto
1101
1433
  # Scaling scales out your scalable target immediately.
1102
1434
  # @return [Integer]
1103
1435
  #
@@ -1117,5 +1449,78 @@ module Aws::ApplicationAutoScaling
1117
1449
  include Aws::Structure
1118
1450
  end
1119
1451
 
1452
+ # Represents a target tracking scaling policy configuration.
1453
+ #
1454
+ # @note When making an API call, you may pass TargetTrackingScalingPolicyConfiguration
1455
+ # data as a hash:
1456
+ #
1457
+ # {
1458
+ # target_value: 1.0, # required
1459
+ # predefined_metric_specification: {
1460
+ # predefined_metric_type: "DynamoDBReadCapacityUtilization", # required, accepts DynamoDBReadCapacityUtilization, DynamoDBWriteCapacityUtilization
1461
+ # resource_label: "ResourceLabel",
1462
+ # },
1463
+ # customized_metric_specification: {
1464
+ # metric_name: "MetricName", # required
1465
+ # namespace: "MetricNamespace", # required
1466
+ # dimensions: [
1467
+ # {
1468
+ # name: "MetricDimensionName", # required
1469
+ # value: "MetricDimensionValue", # required
1470
+ # },
1471
+ # ],
1472
+ # statistic: "Average", # required, accepts Average, Minimum, Maximum, SampleCount, Sum
1473
+ # unit: "MetricUnit",
1474
+ # },
1475
+ # scale_out_cooldown: 1,
1476
+ # scale_in_cooldown: 1,
1477
+ # }
1478
+ #
1479
+ # @!attribute [rw] target_value
1480
+ # The target value for the metric. The range is 8.515920e-109 to
1481
+ # 1.174271e+108 (Base 10) or 2e-360 to 2e360 (Base 2).
1482
+ # @return [Float]
1483
+ #
1484
+ # @!attribute [rw] predefined_metric_specification
1485
+ # A predefined metric.
1486
+ # @return [Types::PredefinedMetricSpecification]
1487
+ #
1488
+ # @!attribute [rw] customized_metric_specification
1489
+ # Reserved for future use.
1490
+ # @return [Types::CustomizedMetricSpecification]
1491
+ #
1492
+ # @!attribute [rw] scale_out_cooldown
1493
+ # The amount of time, in seconds, after a scale out activity completes
1494
+ # before another scale out activity can start.
1495
+ #
1496
+ # While the cooldown period is in effect, the capacity that has been
1497
+ # added by the previous scale out event that initiated the cooldown is
1498
+ # calculated as part of the desired capacity for the next scale out.
1499
+ # The intention is to continuously (but not excessively) scale out.
1500
+ # @return [Integer]
1501
+ #
1502
+ # @!attribute [rw] scale_in_cooldown
1503
+ # The amount of time, in seconds, after a scale in activity completes
1504
+ # before another scale in activity can start.
1505
+ #
1506
+ # The cooldown period is used to block subsequent scale in requests
1507
+ # until it has expired. The intention is to scale in conservatively to
1508
+ # protect your application's availability. However, if another alarm
1509
+ # triggers a scale out policy during the cooldown period after a
1510
+ # scale-in, Application Auto Scaling scales out your scalable target
1511
+ # immediately.
1512
+ # @return [Integer]
1513
+ #
1514
+ # @see http://docs.aws.amazon.com/goto/WebAPI/application-autoscaling-2016-02-06/TargetTrackingScalingPolicyConfiguration AWS API Documentation
1515
+ #
1516
+ class TargetTrackingScalingPolicyConfiguration < Struct.new(
1517
+ :target_value,
1518
+ :predefined_metric_specification,
1519
+ :customized_metric_specification,
1520
+ :scale_out_cooldown,
1521
+ :scale_in_cooldown)
1522
+ include Aws::Structure
1523
+ end
1524
+
1120
1525
  end
1121
1526
  end