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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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