aws-sdk-autoscalingplans 1.7.0 → 1.8.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -24,7 +24,7 @@ module Aws::AutoScalingPlans
24
24
  # }
25
25
  #
26
26
  # @!attribute [rw] cloud_formation_stack_arn
27
- # The Amazon Resource Name (ARN) of a CloudFormation stack.
27
+ # The Amazon Resource Name (ARN) of a AWS CloudFormation stack.
28
28
  # @return [String]
29
29
  #
30
30
  # @!attribute [rw] tag_filters
@@ -85,6 +85,28 @@ module Aws::AutoScalingPlans
85
85
  # estimated_instance_warmup: 1,
86
86
  # },
87
87
  # ],
88
+ # predefined_load_metric_specification: {
89
+ # predefined_load_metric_type: "ASGTotalCPUUtilization", # required, accepts ASGTotalCPUUtilization, ASGTotalNetworkIn, ASGTotalNetworkOut, ALBTargetGroupRequestCount
90
+ # resource_label: "ResourceLabel",
91
+ # },
92
+ # customized_load_metric_specification: {
93
+ # metric_name: "MetricName", # required
94
+ # namespace: "MetricNamespace", # required
95
+ # dimensions: [
96
+ # {
97
+ # name: "MetricDimensionName", # required
98
+ # value: "MetricDimensionValue", # required
99
+ # },
100
+ # ],
101
+ # statistic: "Average", # required, accepts Average, Minimum, Maximum, SampleCount, Sum
102
+ # unit: "MetricUnit",
103
+ # },
104
+ # scheduled_action_buffer_time: 1,
105
+ # predictive_scaling_max_capacity_behavior: "SetForecastCapacityToMaxCapacity", # accepts SetForecastCapacityToMaxCapacity, SetMaxCapacityToForecastCapacity, SetMaxCapacityAboveForecastCapacity
106
+ # predictive_scaling_max_capacity_buffer: 1,
107
+ # predictive_scaling_mode: "ForecastAndScale", # accepts ForecastAndScale, ForecastOnly
108
+ # scaling_policy_update_behavior: "KeepExternalPolicies", # accepts KeepExternalPolicies, ReplaceExternalPolicies
109
+ # disable_dynamic_scaling: false,
88
110
  # },
89
111
  # ],
90
112
  # }
@@ -113,7 +135,9 @@ module Aws::AutoScalingPlans
113
135
  end
114
136
 
115
137
  # @!attribute [rw] scaling_plan_version
116
- # The version of the scaling plan. This value is always 1.
138
+ # The version number of the scaling plan. This value is always 1.
139
+ #
140
+ # Currently, you cannot specify multiple scaling plan versions.
117
141
  # @return [Integer]
118
142
  #
119
143
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-plans-2018-01-06/CreateScalingPlanResponse AWS API Documentation
@@ -123,7 +147,92 @@ module Aws::AutoScalingPlans
123
147
  include Aws::Structure
124
148
  end
125
149
 
126
- # Represents a customized metric for a target tracking policy.
150
+ # Represents a CloudWatch metric of your choosing that can be used for
151
+ # predictive scaling.
152
+ #
153
+ # For predictive scaling to work with a customized load metric
154
+ # specification, AWS Auto Scaling needs access to the `Sum` and
155
+ # `Average` statistics that CloudWatch computes from metric data.
156
+ # Statistics are calculations used to aggregate data over specified time
157
+ # periods. For more information, see the [Amazon CloudWatch User
158
+ # Guide][1].
159
+ #
160
+ # When you choose a load metric, make sure that the required `Sum` and
161
+ # `Average` statistics for your metric are available in CloudWatch and
162
+ # that they provide relevant data for predictive scaling. The `Sum`
163
+ # statistic must represent the total load on the resource, and the
164
+ # `Average` statistic must represent the average load per capacity unit
165
+ # of the resource. For example, there is a metric that counts the number
166
+ # of requests processed by your Auto Scaling group. If the `Sum`
167
+ # statistic represents the total request count processed by the group,
168
+ # then the `Average` statistic for the specified metric must represent
169
+ # the average request count processed by each instance of the group.
170
+ #
171
+ # For information about terminology, see [Amazon CloudWatch
172
+ # Concepts][2].
173
+ #
174
+ #
175
+ #
176
+ # [1]: http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html
177
+ # [2]: http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html
178
+ #
179
+ # @note When making an API call, you may pass CustomizedLoadMetricSpecification
180
+ # data as a hash:
181
+ #
182
+ # {
183
+ # metric_name: "MetricName", # required
184
+ # namespace: "MetricNamespace", # required
185
+ # dimensions: [
186
+ # {
187
+ # name: "MetricDimensionName", # required
188
+ # value: "MetricDimensionValue", # required
189
+ # },
190
+ # ],
191
+ # statistic: "Average", # required, accepts Average, Minimum, Maximum, SampleCount, Sum
192
+ # unit: "MetricUnit",
193
+ # }
194
+ #
195
+ # @!attribute [rw] metric_name
196
+ # The name of the metric.
197
+ # @return [String]
198
+ #
199
+ # @!attribute [rw] namespace
200
+ # The namespace of the metric.
201
+ # @return [String]
202
+ #
203
+ # @!attribute [rw] dimensions
204
+ # The dimensions of the metric.
205
+ # @return [Array<Types::MetricDimension>]
206
+ #
207
+ # @!attribute [rw] statistic
208
+ # The statistic of the metric. Currently, the value must always be
209
+ # `Sum`.
210
+ # @return [String]
211
+ #
212
+ # @!attribute [rw] unit
213
+ # The unit of the metric.
214
+ # @return [String]
215
+ #
216
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-plans-2018-01-06/CustomizedLoadMetricSpecification AWS API Documentation
217
+ #
218
+ class CustomizedLoadMetricSpecification < Struct.new(
219
+ :metric_name,
220
+ :namespace,
221
+ :dimensions,
222
+ :statistic,
223
+ :unit)
224
+ include Aws::Structure
225
+ end
226
+
227
+ # Represents a CloudWatch metric of your choosing that can be used for
228
+ # dynamic scaling as part of a target tracking scaling policy.
229
+ #
230
+ # For information about terminology, see [Amazon CloudWatch
231
+ # Concepts][1].
232
+ #
233
+ #
234
+ #
235
+ # [1]: http://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html
127
236
  #
128
237
  # @note When making an API call, you may pass CustomizedScalingMetricSpecification
129
238
  # data as a hash:
@@ -172,6 +281,25 @@ module Aws::AutoScalingPlans
172
281
  include Aws::Structure
173
282
  end
174
283
 
284
+ # Represents a single value in the forecast data used for predictive
285
+ # scaling.
286
+ #
287
+ # @!attribute [rw] timestamp
288
+ # The time stamp for the data point in UTC format.
289
+ # @return [Time]
290
+ #
291
+ # @!attribute [rw] value
292
+ # The value of the data point.
293
+ # @return [Float]
294
+ #
295
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-plans-2018-01-06/Datapoint AWS API Documentation
296
+ #
297
+ class Datapoint < Struct.new(
298
+ :timestamp,
299
+ :value)
300
+ include Aws::Structure
301
+ end
302
+
175
303
  # @note When making an API call, you may pass DeleteScalingPlanRequest
176
304
  # data as a hash:
177
305
  #
@@ -185,7 +313,7 @@ module Aws::AutoScalingPlans
185
313
  # @return [String]
186
314
  #
187
315
  # @!attribute [rw] scaling_plan_version
188
- # The version of the scaling plan.
316
+ # The version number of the scaling plan.
189
317
  # @return [Integer]
190
318
  #
191
319
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-plans-2018-01-06/DeleteScalingPlanRequest AWS API Documentation
@@ -215,11 +343,11 @@ module Aws::AutoScalingPlans
215
343
  # @return [String]
216
344
  #
217
345
  # @!attribute [rw] scaling_plan_version
218
- # The version of the scaling plan.
346
+ # The version number of the scaling plan.
219
347
  # @return [Integer]
220
348
  #
221
349
  # @!attribute [rw] max_results
222
- # The maximum number of scalable resources to return. This value can
350
+ # The maximum number of scalable resources to return. The value must
223
351
  # be between 1 and 50. The default value is 50.
224
352
  # @return [Integer]
225
353
  #
@@ -281,8 +409,8 @@ module Aws::AutoScalingPlans
281
409
  # @return [Array<String>]
282
410
  #
283
411
  # @!attribute [rw] scaling_plan_version
284
- # The version of the scaling plan. If you specify a scaling plan
285
- # version, you must also specify a scaling plan name.
412
+ # The version number of the scaling plan. If you specify a scaling
413
+ # plan version, you must also specify a scaling plan name.
286
414
  # @return [Integer]
287
415
  #
288
416
  # @!attribute [rw] application_sources
@@ -327,6 +455,123 @@ module Aws::AutoScalingPlans
327
455
  include Aws::Structure
328
456
  end
329
457
 
458
+ # @note When making an API call, you may pass GetScalingPlanResourceForecastDataRequest
459
+ # data as a hash:
460
+ #
461
+ # {
462
+ # scaling_plan_name: "ScalingPlanName", # required
463
+ # scaling_plan_version: 1, # required
464
+ # service_namespace: "autoscaling", # required, accepts autoscaling, ecs, ec2, rds, dynamodb
465
+ # resource_id: "XmlString", # required
466
+ # scalable_dimension: "autoscaling:autoScalingGroup:DesiredCapacity", # required, accepts autoscaling:autoScalingGroup:DesiredCapacity, ecs:service:DesiredCount, ec2:spot-fleet-request:TargetCapacity, rds:cluster:ReadReplicaCount, dynamodb:table:ReadCapacityUnits, dynamodb:table:WriteCapacityUnits, dynamodb:index:ReadCapacityUnits, dynamodb:index:WriteCapacityUnits
467
+ # forecast_data_type: "CapacityForecast", # required, accepts CapacityForecast, LoadForecast, ScheduledActionMinCapacity, ScheduledActionMaxCapacity
468
+ # start_time: Time.now, # required
469
+ # end_time: Time.now, # required
470
+ # }
471
+ #
472
+ # @!attribute [rw] scaling_plan_name
473
+ # The name of the scaling plan.
474
+ # @return [String]
475
+ #
476
+ # @!attribute [rw] scaling_plan_version
477
+ # The version number of the scaling plan.
478
+ # @return [Integer]
479
+ #
480
+ # @!attribute [rw] service_namespace
481
+ # The namespace of the AWS service.
482
+ # @return [String]
483
+ #
484
+ # @!attribute [rw] resource_id
485
+ # The ID of the resource. This string consists of the resource type
486
+ # and unique identifier.
487
+ #
488
+ # * Auto Scaling group - The resource type is `autoScalingGroup` and
489
+ # the unique identifier is the name of the Auto Scaling group.
490
+ # Example: `autoScalingGroup/my-asg`.
491
+ #
492
+ # * ECS service - The resource type is `service` and the unique
493
+ # identifier is the cluster name and service name. Example:
494
+ # `service/default/sample-webapp`.
495
+ #
496
+ # * Spot Fleet request - The resource type is `spot-fleet-request` and
497
+ # the unique identifier is the Spot Fleet request ID. Example:
498
+ # `spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE`.
499
+ #
500
+ # * DynamoDB table - The resource type is `table` and the unique
501
+ # identifier is the resource ID. Example: `table/my-table`.
502
+ #
503
+ # * DynamoDB global secondary index - The resource type is `index` and
504
+ # the unique identifier is the resource ID. Example:
505
+ # `table/my-table/index/my-table-index`.
506
+ #
507
+ # * Aurora DB cluster - The resource type is `cluster` and the unique
508
+ # identifier is the cluster name. Example: `cluster:my-db-cluster`.
509
+ # @return [String]
510
+ #
511
+ # @!attribute [rw] scalable_dimension
512
+ # The scalable dimension for the resource.
513
+ # @return [String]
514
+ #
515
+ # @!attribute [rw] forecast_data_type
516
+ # The type of forecast data to get.
517
+ #
518
+ # * `LoadForecast`\: The load metric forecast.
519
+ #
520
+ # * `CapacityForecast`\: The capacity forecast.
521
+ #
522
+ # * `ScheduledActionMinCapacity`\: The minimum capacity for each
523
+ # scheduled scaling action. This data is calculated as the larger of
524
+ # two values: the capacity forecast or the minimum capacity in the
525
+ # scaling instruction.
526
+ #
527
+ # * `ScheduledActionMaxCapacity`\: The maximum capacity for each
528
+ # scheduled scaling action. The calculation used is determined by
529
+ # the predictive scaling maximum capacity behavior setting in the
530
+ # scaling instruction.
531
+ # @return [String]
532
+ #
533
+ # @!attribute [rw] start_time
534
+ # The inclusive start time of the time range for the forecast data to
535
+ # get. The date and time can be at most 56 days before the current
536
+ # date and time.
537
+ # @return [Time]
538
+ #
539
+ # @!attribute [rw] end_time
540
+ # The exclusive end time of the time range for the forecast data to
541
+ # get. The maximum time duration between the start and end time is
542
+ # seven days.
543
+ #
544
+ # Although this parameter can accept a date and time that is more than
545
+ # two days in the future, the availability of forecast data has
546
+ # limits. AWS Auto Scaling only issues forecasts for periods of two
547
+ # days in advance.
548
+ # @return [Time]
549
+ #
550
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-plans-2018-01-06/GetScalingPlanResourceForecastDataRequest AWS API Documentation
551
+ #
552
+ class GetScalingPlanResourceForecastDataRequest < Struct.new(
553
+ :scaling_plan_name,
554
+ :scaling_plan_version,
555
+ :service_namespace,
556
+ :resource_id,
557
+ :scalable_dimension,
558
+ :forecast_data_type,
559
+ :start_time,
560
+ :end_time)
561
+ include Aws::Structure
562
+ end
563
+
564
+ # @!attribute [rw] datapoints
565
+ # The data points to return.
566
+ # @return [Array<Types::Datapoint>]
567
+ #
568
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-plans-2018-01-06/GetScalingPlanResourceForecastDataResponse AWS API Documentation
569
+ #
570
+ class GetScalingPlanResourceForecastDataResponse < Struct.new(
571
+ :datapoints)
572
+ include Aws::Structure
573
+ end
574
+
330
575
  # Represents a dimension for a customized metric.
331
576
  #
332
577
  # @note When making an API call, you may pass MetricDimension
@@ -353,7 +598,48 @@ module Aws::AutoScalingPlans
353
598
  include Aws::Structure
354
599
  end
355
600
 
356
- # Represents a predefined metric for a target tracking policy.
601
+ # Represents a predefined metric that can be used for predictive
602
+ # scaling.
603
+ #
604
+ # @note When making an API call, you may pass PredefinedLoadMetricSpecification
605
+ # data as a hash:
606
+ #
607
+ # {
608
+ # predefined_load_metric_type: "ASGTotalCPUUtilization", # required, accepts ASGTotalCPUUtilization, ASGTotalNetworkIn, ASGTotalNetworkOut, ALBTargetGroupRequestCount
609
+ # resource_label: "ResourceLabel",
610
+ # }
611
+ #
612
+ # @!attribute [rw] predefined_load_metric_type
613
+ # The metric type.
614
+ # @return [String]
615
+ #
616
+ # @!attribute [rw] resource_label
617
+ # Identifies the resource associated with the metric type. You can't
618
+ # specify a resource label unless the metric type is
619
+ # `ALBRequestCountPerTarget` and there is a target group for an
620
+ # Application Load Balancer attached to the Auto Scaling group.
621
+ #
622
+ # The format is
623
+ # app/&lt;load-balancer-name&gt;/&lt;load-balancer-id&gt;/targetgroup/&lt;target-group-name&gt;/&lt;target-group-id&gt;,
624
+ # where:
625
+ #
626
+ # * app/&lt;load-balancer-name&gt;/&lt;load-balancer-id&gt; is the
627
+ # final portion of the load balancer ARN.
628
+ #
629
+ # * targetgroup/&lt;target-group-name&gt;/&lt;target-group-id&gt; is
630
+ # the final portion of the target group ARN.
631
+ # @return [String]
632
+ #
633
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-plans-2018-01-06/PredefinedLoadMetricSpecification AWS API Documentation
634
+ #
635
+ class PredefinedLoadMetricSpecification < Struct.new(
636
+ :predefined_load_metric_type,
637
+ :resource_label)
638
+ include Aws::Structure
639
+ end
640
+
641
+ # Represents a predefined metric that can be used for dynamic scaling as
642
+ # part of a target tracking scaling policy.
357
643
  #
358
644
  # @note When making an API call, you may pass PredefinedScalingMetricSpecification
359
645
  # data as a hash:
@@ -365,7 +651,7 @@ module Aws::AutoScalingPlans
365
651
  #
366
652
  # @!attribute [rw] predefined_scaling_metric_type
367
653
  # The metric type. The `ALBRequestCountPerTarget` metric type applies
368
- # only to Auto Scaling groups, Sport Fleet requests, and ECS services.
654
+ # only to Auto Scaling groups, Spot Fleet requests, and ECS services.
369
655
  # @return [String]
370
656
  #
371
657
  # @!attribute [rw] resource_label
@@ -380,7 +666,7 @@ module Aws::AutoScalingPlans
380
666
  # where:
381
667
  #
382
668
  # * app/&lt;load-balancer-name&gt;/&lt;load-balancer-id&gt; is the
383
- # final portion of the load balancer ARN
669
+ # final portion of the load balancer ARN.
384
670
  #
385
671
  # * targetgroup/&lt;target-group-name&gt;/&lt;target-group-id&gt; is
386
672
  # the final portion of the target group ARN.
@@ -394,7 +680,33 @@ module Aws::AutoScalingPlans
394
680
  include Aws::Structure
395
681
  end
396
682
 
397
- # Specifies the scaling configuration for a scalable resource.
683
+ # Describes a scaling instruction for a scalable resource.
684
+ #
685
+ # The scaling instruction is used in combination with a scaling plan,
686
+ # which is a set of instructions for configuring dynamic scaling and
687
+ # predictive scaling for the scalable resources in your application.
688
+ # Each scaling instruction applies to one resource.
689
+ #
690
+ # AWS Auto Scaling creates target tracking scaling policies based on the
691
+ # scaling instructions. Target tracking scaling policies adjust the
692
+ # capacity of your scalable resource as required to maintain resource
693
+ # utilization at the target value that you specified.
694
+ #
695
+ # AWS Auto Scaling also configures predictive scaling for your Amazon
696
+ # EC2 Auto Scaling groups using a subset of parameters, including the
697
+ # load metric, the scaling metric, the target value for the scaling
698
+ # metric, the predictive scaling mode (forecast and scale or forecast
699
+ # only), and the desired behavior when the forecast capacity exceeds the
700
+ # maximum capacity of the resource. With predictive scaling, AWS Auto
701
+ # Scaling generates forecasts with traffic predictions for the two days
702
+ # ahead and schedules scaling actions that proactively add and remove
703
+ # resource capacity to match the forecast.
704
+ #
705
+ # For more information, see the [AWS Auto Scaling User Guide][1].
706
+ #
707
+ #
708
+ #
709
+ # [1]: http://docs.aws.amazon.com/autoscaling/plans/userguide/what-is-aws-auto-scaling.html
398
710
  #
399
711
  # @note When making an API call, you may pass ScalingInstruction
400
712
  # data as a hash:
@@ -430,6 +742,28 @@ module Aws::AutoScalingPlans
430
742
  # estimated_instance_warmup: 1,
431
743
  # },
432
744
  # ],
745
+ # predefined_load_metric_specification: {
746
+ # predefined_load_metric_type: "ASGTotalCPUUtilization", # required, accepts ASGTotalCPUUtilization, ASGTotalNetworkIn, ASGTotalNetworkOut, ALBTargetGroupRequestCount
747
+ # resource_label: "ResourceLabel",
748
+ # },
749
+ # customized_load_metric_specification: {
750
+ # metric_name: "MetricName", # required
751
+ # namespace: "MetricNamespace", # required
752
+ # dimensions: [
753
+ # {
754
+ # name: "MetricDimensionName", # required
755
+ # value: "MetricDimensionValue", # required
756
+ # },
757
+ # ],
758
+ # statistic: "Average", # required, accepts Average, Minimum, Maximum, SampleCount, Sum
759
+ # unit: "MetricUnit",
760
+ # },
761
+ # scheduled_action_buffer_time: 1,
762
+ # predictive_scaling_max_capacity_behavior: "SetForecastCapacityToMaxCapacity", # accepts SetForecastCapacityToMaxCapacity, SetMaxCapacityToForecastCapacity, SetMaxCapacityAboveForecastCapacity
763
+ # predictive_scaling_max_capacity_buffer: 1,
764
+ # predictive_scaling_mode: "ForecastAndScale", # accepts ForecastAndScale, ForecastOnly
765
+ # scaling_policy_update_behavior: "KeepExternalPolicies", # accepts KeepExternalPolicies, ReplaceExternalPolicies
766
+ # disable_dynamic_scaling: false,
433
767
  # }
434
768
  #
435
769
  # @!attribute [rw] service_namespace
@@ -448,8 +782,8 @@ module Aws::AutoScalingPlans
448
782
  # identifier is the cluster name and service name. Example:
449
783
  # `service/default/sample-webapp`.
450
784
  #
451
- # * Spot fleet request - The resource type is `spot-fleet-request` and
452
- # the unique identifier is the Spot fleet request ID. Example:
785
+ # * Spot Fleet request - The resource type is `spot-fleet-request` and
786
+ # the unique identifier is the Spot Fleet request ID. Example:
453
787
  # `spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE`.
454
788
  #
455
789
  # * DynamoDB table - The resource type is `table` and the unique
@@ -473,7 +807,7 @@ module Aws::AutoScalingPlans
473
807
  # service.
474
808
  #
475
809
  # * `ec2:spot-fleet-request:TargetCapacity` - The target capacity of a
476
- # Spot fleet request.
810
+ # Spot Fleet request.
477
811
  #
478
812
  # * `dynamodb:table:ReadCapacityUnits` - The provisioned read capacity
479
813
  # for a DynamoDB table.
@@ -493,17 +827,129 @@ module Aws::AutoScalingPlans
493
827
  # @return [String]
494
828
  #
495
829
  # @!attribute [rw] min_capacity
496
- # The minimum value to scale to in response to a scale in event.
830
+ # The minimum capacity of the resource.
497
831
  # @return [Integer]
498
832
  #
499
833
  # @!attribute [rw] max_capacity
500
- # The maximum value to scale to in response to a scale out event.
834
+ # The maximum capacity of the resource. The exception to this upper
835
+ # limit is if you specify a non-default setting for
836
+ # **PredictiveScalingMaxCapacityBehavior**.
501
837
  # @return [Integer]
502
838
  #
503
839
  # @!attribute [rw] target_tracking_configurations
504
- # The target tracking scaling policies (up to 10).
840
+ # The structure that defines new target tracking configurations (up to
841
+ # 10). Each of these structures includes a specific scaling metric and
842
+ # a target value for the metric, along with various parameters to use
843
+ # with dynamic scaling.
844
+ #
845
+ # With predictive scaling and dynamic scaling, the resource scales
846
+ # based on the target tracking configuration that provides the largest
847
+ # capacity for both scale in and scale out.
848
+ #
849
+ # Condition: The scaling metric must be unique across target tracking
850
+ # configurations.
505
851
  # @return [Array<Types::TargetTrackingConfiguration>]
506
852
  #
853
+ # @!attribute [rw] predefined_load_metric_specification
854
+ # The predefined load metric to use for predictive scaling. This
855
+ # parameter or a **CustomizedLoadMetricSpecification** is required
856
+ # when configuring predictive scaling, and cannot be used otherwise.
857
+ # @return [Types::PredefinedLoadMetricSpecification]
858
+ #
859
+ # @!attribute [rw] customized_load_metric_specification
860
+ # The customized load metric to use for predictive scaling. This
861
+ # parameter or a **PredefinedLoadMetricSpecification** is required
862
+ # when configuring predictive scaling, and cannot be used otherwise.
863
+ # @return [Types::CustomizedLoadMetricSpecification]
864
+ #
865
+ # @!attribute [rw] scheduled_action_buffer_time
866
+ # The amount of time, in seconds, to buffer the run time of scheduled
867
+ # scaling actions when scaling out. For example, if the forecast says
868
+ # to add capacity at 10:00 AM, and the buffer time is 5 minutes, then
869
+ # the run time of the corresponding scheduled scaling action will be
870
+ # 9:55 AM. The intention is to give resources time to be provisioned.
871
+ # For example, it can take a few minutes to launch an EC2 instance.
872
+ # The actual amount of time required depends on several factors, such
873
+ # as the size of the instance and whether there are startup scripts to
874
+ # complete.
875
+ #
876
+ # The value must be less than the forecast interval duration of 3600
877
+ # seconds (60 minutes). The default is 300 seconds.
878
+ #
879
+ # Only valid when configuring predictive scaling.
880
+ # @return [Integer]
881
+ #
882
+ # @!attribute [rw] predictive_scaling_max_capacity_behavior
883
+ # Defines the behavior that should be applied if the forecast capacity
884
+ # approaches or exceeds the maximum capacity specified for the
885
+ # resource. The default value is `SetForecastCapacityToMaxCapacity`.
886
+ #
887
+ # The following are possible values:
888
+ #
889
+ # * `SetForecastCapacityToMaxCapacity` - AWS Auto Scaling cannot scale
890
+ # resource capacity higher than the maximum capacity. The maximum
891
+ # capacity is enforced as a hard limit.
892
+ #
893
+ # * `SetMaxCapacityToForecastCapacity` - AWS Auto Scaling may scale
894
+ # resource capacity higher than the maximum capacity to equal but
895
+ # not exceed forecast capacity.
896
+ #
897
+ # * `SetMaxCapacityAboveForecastCapacity` - AWS Auto Scaling may scale
898
+ # resource capacity higher than the maximum capacity by a specified
899
+ # buffer value. The intention is to give the target tracking scaling
900
+ # policy extra capacity if unexpected traffic occurs.
901
+ #
902
+ # Only valid when configuring predictive scaling.
903
+ # @return [String]
904
+ #
905
+ # @!attribute [rw] predictive_scaling_max_capacity_buffer
906
+ # The size of the capacity buffer to use when the forecast capacity is
907
+ # close to or exceeds the maximum capacity. The value is specified as
908
+ # a percentage relative to the forecast capacity. For example, if the
909
+ # buffer is 10, this means a 10 percent buffer, such that if the
910
+ # forecast capacity is 50, and the maximum capacity is 40, then the
911
+ # effective maximum capacity is 55.
912
+ #
913
+ # Only valid when configuring predictive scaling. Required if the
914
+ # **PredictiveScalingMaxCapacityBehavior** is set to
915
+ # `SetMaxCapacityAboveForecastCapacity`, and cannot be used otherwise.
916
+ #
917
+ # The range is 1-100.
918
+ # @return [Integer]
919
+ #
920
+ # @!attribute [rw] predictive_scaling_mode
921
+ # The predictive scaling mode. The default value is
922
+ # `ForecastAndScale`. Otherwise, AWS Auto Scaling forecasts capacity
923
+ # but does not create any scheduled scaling actions based on the
924
+ # capacity forecast.
925
+ # @return [String]
926
+ #
927
+ # @!attribute [rw] scaling_policy_update_behavior
928
+ # Controls whether a resource's externally created scaling policies
929
+ # are kept or replaced.
930
+ #
931
+ # The default value is `KeepExternalPolicies`. If the parameter is set
932
+ # to `ReplaceExternalPolicies`, any scaling policies that are external
933
+ # to AWS Auto Scaling are deleted and new target tracking scaling
934
+ # policies created.
935
+ #
936
+ # Only valid when configuring dynamic scaling.
937
+ #
938
+ # Condition: The number of existing policies to be replaced must be
939
+ # less than or equal to 50. If there are more than 50 policies to be
940
+ # replaced, AWS Auto Scaling keeps all existing policies and does not
941
+ # create new ones.
942
+ # @return [String]
943
+ #
944
+ # @!attribute [rw] disable_dynamic_scaling
945
+ # Controls whether dynamic scaling by AWS Auto Scaling is disabled.
946
+ # When dynamic scaling is enabled, AWS Auto Scaling creates target
947
+ # tracking scaling policies based on the specified target tracking
948
+ # configurations.
949
+ #
950
+ # The default is enabled (`false`).
951
+ # @return [Boolean]
952
+ #
507
953
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-plans-2018-01-06/ScalingInstruction AWS API Documentation
508
954
  #
509
955
  class ScalingInstruction < Struct.new(
@@ -512,7 +958,15 @@ module Aws::AutoScalingPlans
512
958
  :scalable_dimension,
513
959
  :min_capacity,
514
960
  :max_capacity,
515
- :target_tracking_configurations)
961
+ :target_tracking_configurations,
962
+ :predefined_load_metric_specification,
963
+ :customized_load_metric_specification,
964
+ :scheduled_action_buffer_time,
965
+ :predictive_scaling_max_capacity_behavior,
966
+ :predictive_scaling_max_capacity_buffer,
967
+ :predictive_scaling_mode,
968
+ :scaling_policy_update_behavior,
969
+ :disable_dynamic_scaling)
516
970
  include Aws::Structure
517
971
  end
518
972
 
@@ -523,7 +977,7 @@ module Aws::AutoScalingPlans
523
977
  # @return [String]
524
978
  #
525
979
  # @!attribute [rw] scaling_plan_version
526
- # The version of the scaling plan.
980
+ # The version number of the scaling plan.
527
981
  # @return [Integer]
528
982
  #
529
983
  # @!attribute [rw] application_source
@@ -549,6 +1003,10 @@ module Aws::AutoScalingPlans
549
1003
  # * `DeletionInProgress` - The scaling plan is being deleted.
550
1004
  #
551
1005
  # * `DeletionFailed` - The scaling plan could not be deleted.
1006
+ #
1007
+ # * `UpdateInProgress` - The scaling plan is being updated.
1008
+ #
1009
+ # * `UpdateFailed` - The scaling plan could not be updated.
552
1010
  # @return [String]
553
1011
  #
554
1012
  # @!attribute [rw] status_message
@@ -556,11 +1014,12 @@ module Aws::AutoScalingPlans
556
1014
  # @return [String]
557
1015
  #
558
1016
  # @!attribute [rw] status_start_time
559
- # The Unix timestamp when the scaling plan entered the current status.
1017
+ # The Unix time stamp when the scaling plan entered the current
1018
+ # status.
560
1019
  # @return [Time]
561
1020
  #
562
1021
  # @!attribute [rw] creation_time
563
- # The Unix timestamp when the scaling plan was created.
1022
+ # The Unix time stamp when the scaling plan was created.
564
1023
  # @return [Time]
565
1024
  #
566
1025
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-plans-2018-01-06/ScalingPlan AWS API Documentation
@@ -584,7 +1043,7 @@ module Aws::AutoScalingPlans
584
1043
  # @return [String]
585
1044
  #
586
1045
  # @!attribute [rw] scaling_plan_version
587
- # The version of the scaling plan.
1046
+ # The version number of the scaling plan.
588
1047
  # @return [Integer]
589
1048
  #
590
1049
  # @!attribute [rw] service_namespace
@@ -603,8 +1062,8 @@ module Aws::AutoScalingPlans
603
1062
  # identifier is the cluster name and service name. Example:
604
1063
  # `service/default/sample-webapp`.
605
1064
  #
606
- # * Spot fleet request - The resource type is `spot-fleet-request` and
607
- # the unique identifier is the Spot fleet request ID. Example:
1065
+ # * Spot Fleet request - The resource type is `spot-fleet-request` and
1066
+ # the unique identifier is the Spot Fleet request ID. Example:
608
1067
  # `spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE`.
609
1068
  #
610
1069
  # * DynamoDB table - The resource type is `table` and the unique
@@ -628,7 +1087,7 @@ module Aws::AutoScalingPlans
628
1087
  # service.
629
1088
  #
630
1089
  # * `ec2:spot-fleet-request:TargetCapacity` - The target capacity of a
631
- # Spot fleet request.
1090
+ # Spot Fleet request.
632
1091
  #
633
1092
  # * `dynamodb:table:ReadCapacityUnits` - The provisioned read capacity
634
1093
  # for a DynamoDB table.
@@ -733,7 +1192,8 @@ module Aws::AutoScalingPlans
733
1192
  include Aws::Structure
734
1193
  end
735
1194
 
736
- # Represents a target tracking scaling policy.
1195
+ # Describes a target tracking configuration. Used with
1196
+ # ScalingInstruction and ScalingPolicy.
737
1197
  #
738
1198
  # @note When making an API call, you may pass TargetTrackingConfiguration
739
1199
  # data as a hash:
@@ -776,21 +1236,23 @@ module Aws::AutoScalingPlans
776
1236
  # @return [Float]
777
1237
  #
778
1238
  # @!attribute [rw] disable_scale_in
779
- # Indicates whether scale in by the target tracking policy is
1239
+ # Indicates whether scale in by the target tracking scaling policy is
780
1240
  # disabled. If the value is `true`, scale in is disabled and the
781
- # target tracking policy won't remove capacity from the scalable
782
- # resource. Otherwise, scale in is enabled and the target tracking
783
- # policy can remove capacity from the scalable resource. The default
784
- # value is `false`.
1241
+ # target tracking scaling policy doesn't remove capacity from the
1242
+ # scalable resource. Otherwise, scale in is enabled and the target
1243
+ # tracking scaling policy can remove capacity from the scalable
1244
+ # resource.
1245
+ #
1246
+ # The default value is `false`.
785
1247
  # @return [Boolean]
786
1248
  #
787
1249
  # @!attribute [rw] scale_out_cooldown
788
- # The amount of time, in seconds, after a scale out activity completes
789
- # before another scale out activity can start. This value is not used
1250
+ # The amount of time, in seconds, after a scale-out activity completes
1251
+ # before another scale-out activity can start. This value is not used
790
1252
  # if the scalable resource is an Auto Scaling group.
791
1253
  #
792
1254
  # While the cooldown period is in effect, the capacity that has been
793
- # added by the previous scale out event that initiated the cooldown is
1255
+ # added by the previous scale-out event that initiated the cooldown is
794
1256
  # calculated as part of the desired capacity for the next scale out.
795
1257
  # The intention is to continuously (but not excessively) scale out.
796
1258
  # @return [Integer]
@@ -803,7 +1265,7 @@ module Aws::AutoScalingPlans
803
1265
  # The cooldown period is used to block subsequent scale in requests
804
1266
  # until it has expired. The intention is to scale in conservatively to
805
1267
  # protect your application's availability. However, if another alarm
806
- # triggers a scale out policy during the cooldown period after a
1268
+ # triggers a scale-out policy during the cooldown period after a
807
1269
  # scale-in, AWS Auto Scaling scales out your scalable target
808
1270
  # immediately.
809
1271
  # @return [Integer]
@@ -831,6 +1293,8 @@ module Aws::AutoScalingPlans
831
1293
  # data as a hash:
832
1294
  #
833
1295
  # {
1296
+ # scaling_plan_name: "ScalingPlanName", # required
1297
+ # scaling_plan_version: 1, # required
834
1298
  # application_source: {
835
1299
  # cloud_formation_stack_arn: "XmlString",
836
1300
  # tag_filters: [
@@ -840,7 +1304,6 @@ module Aws::AutoScalingPlans
840
1304
  # },
841
1305
  # ],
842
1306
  # },
843
- # scaling_plan_name: "ScalingPlanName", # required
844
1307
  # scaling_instructions: [
845
1308
  # {
846
1309
  # service_namespace: "autoscaling", # required, accepts autoscaling, ecs, ec2, rds, dynamodb
@@ -873,34 +1336,55 @@ module Aws::AutoScalingPlans
873
1336
  # estimated_instance_warmup: 1,
874
1337
  # },
875
1338
  # ],
1339
+ # predefined_load_metric_specification: {
1340
+ # predefined_load_metric_type: "ASGTotalCPUUtilization", # required, accepts ASGTotalCPUUtilization, ASGTotalNetworkIn, ASGTotalNetworkOut, ALBTargetGroupRequestCount
1341
+ # resource_label: "ResourceLabel",
1342
+ # },
1343
+ # customized_load_metric_specification: {
1344
+ # metric_name: "MetricName", # required
1345
+ # namespace: "MetricNamespace", # required
1346
+ # dimensions: [
1347
+ # {
1348
+ # name: "MetricDimensionName", # required
1349
+ # value: "MetricDimensionValue", # required
1350
+ # },
1351
+ # ],
1352
+ # statistic: "Average", # required, accepts Average, Minimum, Maximum, SampleCount, Sum
1353
+ # unit: "MetricUnit",
1354
+ # },
1355
+ # scheduled_action_buffer_time: 1,
1356
+ # predictive_scaling_max_capacity_behavior: "SetForecastCapacityToMaxCapacity", # accepts SetForecastCapacityToMaxCapacity, SetMaxCapacityToForecastCapacity, SetMaxCapacityAboveForecastCapacity
1357
+ # predictive_scaling_max_capacity_buffer: 1,
1358
+ # predictive_scaling_mode: "ForecastAndScale", # accepts ForecastAndScale, ForecastOnly
1359
+ # scaling_policy_update_behavior: "KeepExternalPolicies", # accepts KeepExternalPolicies, ReplaceExternalPolicies
1360
+ # disable_dynamic_scaling: false,
876
1361
  # },
877
1362
  # ],
878
- # scaling_plan_version: 1, # required
879
1363
  # }
880
1364
  #
881
- # @!attribute [rw] application_source
882
- # A CloudFormation stack or set of tags.
883
- # @return [Types::ApplicationSource]
884
- #
885
1365
  # @!attribute [rw] scaling_plan_name
886
1366
  # The name of the scaling plan.
887
1367
  # @return [String]
888
1368
  #
1369
+ # @!attribute [rw] scaling_plan_version
1370
+ # The version number of the scaling plan.
1371
+ # @return [Integer]
1372
+ #
1373
+ # @!attribute [rw] application_source
1374
+ # A CloudFormation stack or set of tags.
1375
+ # @return [Types::ApplicationSource]
1376
+ #
889
1377
  # @!attribute [rw] scaling_instructions
890
1378
  # The scaling instructions.
891
1379
  # @return [Array<Types::ScalingInstruction>]
892
1380
  #
893
- # @!attribute [rw] scaling_plan_version
894
- # The version number.
895
- # @return [Integer]
896
- #
897
1381
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-plans-2018-01-06/UpdateScalingPlanRequest AWS API Documentation
898
1382
  #
899
1383
  class UpdateScalingPlanRequest < Struct.new(
900
- :application_source,
901
1384
  :scaling_plan_name,
902
- :scaling_instructions,
903
- :scaling_plan_version)
1385
+ :scaling_plan_version,
1386
+ :application_source,
1387
+ :scaling_instructions)
904
1388
  include Aws::Structure
905
1389
  end
906
1390