aws-sdk-autoscaling 1.70.0 → 1.74.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -10,6 +10,63 @@
10
10
  module Aws::AutoScaling
11
11
  module Types
12
12
 
13
+ # Specifies the minimum and maximum for the `AcceleratorCount` object
14
+ # when you specify InstanceRequirements for an Auto Scaling group.
15
+ #
16
+ # @note When making an API call, you may pass AcceleratorCountRequest
17
+ # data as a hash:
18
+ #
19
+ # {
20
+ # min: 1,
21
+ # max: 1,
22
+ # }
23
+ #
24
+ # @!attribute [rw] min
25
+ # The minimum value.
26
+ # @return [Integer]
27
+ #
28
+ # @!attribute [rw] max
29
+ # The maximum value.
30
+ # @return [Integer]
31
+ #
32
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/AcceleratorCountRequest AWS API Documentation
33
+ #
34
+ class AcceleratorCountRequest < Struct.new(
35
+ :min,
36
+ :max)
37
+ SENSITIVE = []
38
+ include Aws::Structure
39
+ end
40
+
41
+ # Specifies the minimum and maximum for the `AcceleratorTotalMemoryMiB`
42
+ # object when you specify InstanceRequirements for an Auto Scaling
43
+ # group.
44
+ #
45
+ # @note When making an API call, you may pass AcceleratorTotalMemoryMiBRequest
46
+ # data as a hash:
47
+ #
48
+ # {
49
+ # min: 1,
50
+ # max: 1,
51
+ # }
52
+ #
53
+ # @!attribute [rw] min
54
+ # The memory minimum in MiB.
55
+ # @return [Integer]
56
+ #
57
+ # @!attribute [rw] max
58
+ # The memory maximum in MiB.
59
+ # @return [Integer]
60
+ #
61
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/AcceleratorTotalMemoryMiBRequest AWS API Documentation
62
+ #
63
+ class AcceleratorTotalMemoryMiBRequest < Struct.new(
64
+ :min,
65
+ :max)
66
+ SENSITIVE = []
67
+ include Aws::Structure
68
+ end
69
+
13
70
  # The request failed because an active instance refresh for the
14
71
  # specified Auto Scaling group was not found.
15
72
  #
@@ -336,7 +393,7 @@ module Aws::AutoScaling
336
393
  # @!attribute [rw] health_check_grace_period
337
394
  # The amount of time, in seconds, that Amazon EC2 Auto Scaling waits
338
395
  # before checking the health status of an EC2 instance that has come
339
- # into service.
396
+ # into service and marking it unhealthy due to a failed health check.
340
397
  # @return [Integer]
341
398
  #
342
399
  # @!attribute [rw] instances
@@ -411,6 +468,23 @@ module Aws::AutoScaling
411
468
  # Reserved.
412
469
  # @return [String]
413
470
  #
471
+ # @!attribute [rw] desired_capacity_type
472
+ # The unit of measurement for the value specified for desired
473
+ # capacity. Amazon EC2 Auto Scaling supports `DesiredCapacityType` for
474
+ # attribute-based instance type selection only. For more information,
475
+ # see [Creating an Auto Scaling group using attribute-based instance
476
+ # type selection][1] in the *Amazon EC2 Auto Scaling User Guide*.
477
+ #
478
+ # By default, Amazon EC2 Auto Scaling specifies `units`, which
479
+ # translates into number of instances.
480
+ #
481
+ # Valid values: `units` \| `vcpu` \| `memory-mib`
482
+ #
483
+ #
484
+ #
485
+ # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html
486
+ # @return [String]
487
+ #
414
488
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/AutoScalingGroup AWS API Documentation
415
489
  #
416
490
  class AutoScalingGroup < Struct.new(
@@ -444,7 +518,8 @@ module Aws::AutoScaling
444
518
  :capacity_rebalance,
445
519
  :warm_pool_configuration,
446
520
  :warm_pool_size,
447
- :context)
521
+ :context,
522
+ :desired_capacity_type)
448
523
  SENSITIVE = []
449
524
  include Aws::Structure
450
525
  end
@@ -622,6 +697,35 @@ module Aws::AutoScaling
622
697
  include Aws::Structure
623
698
  end
624
699
 
700
+ # Specifies the minimum and maximum for the `BaselineEbsBandwidthMbps`
701
+ # object when you specify InstanceRequirements for an Auto Scaling
702
+ # group.
703
+ #
704
+ # @note When making an API call, you may pass BaselineEbsBandwidthMbpsRequest
705
+ # data as a hash:
706
+ #
707
+ # {
708
+ # min: 1,
709
+ # max: 1,
710
+ # }
711
+ #
712
+ # @!attribute [rw] min
713
+ # The minimum value in Mbps.
714
+ # @return [Integer]
715
+ #
716
+ # @!attribute [rw] max
717
+ # The maximum value in Mbps.
718
+ # @return [Integer]
719
+ #
720
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/BaselineEbsBandwidthMbpsRequest AWS API Documentation
721
+ #
722
+ class BaselineEbsBandwidthMbpsRequest < Struct.new(
723
+ :min,
724
+ :max)
725
+ SENSITIVE = []
726
+ include Aws::Structure
727
+ end
728
+
625
729
  # @!attribute [rw] failed_scheduled_actions
626
730
  # The names of the scheduled actions that could not be deleted,
627
731
  # including an error message.
@@ -812,7 +916,7 @@ module Aws::AutoScaling
812
916
  # data points.
813
917
  #
814
918
  # @!attribute [rw] timestamps
815
- # The time stamps for the data points, in UTC format.
919
+ # The timestamps for the data points, in UTC format.
816
920
  # @return [Array<Time>]
817
921
  #
818
922
  # @!attribute [rw] values
@@ -906,6 +1010,53 @@ module Aws::AutoScaling
906
1010
  # launch_template_name: "LaunchTemplateName",
907
1011
  # version: "XmlStringMaxLen255",
908
1012
  # },
1013
+ # instance_requirements: {
1014
+ # v_cpu_count: { # required
1015
+ # min: 1, # required
1016
+ # max: 1,
1017
+ # },
1018
+ # memory_mi_b: { # required
1019
+ # min: 1, # required
1020
+ # max: 1,
1021
+ # },
1022
+ # cpu_manufacturers: ["intel"], # accepts intel, amd, amazon-web-services
1023
+ # memory_gi_b_per_v_cpu: {
1024
+ # min: 1.0,
1025
+ # max: 1.0,
1026
+ # },
1027
+ # excluded_instance_types: ["ExcludedInstance"],
1028
+ # instance_generations: ["current"], # accepts current, previous
1029
+ # spot_max_price_percentage_over_lowest_price: 1,
1030
+ # on_demand_max_price_percentage_over_lowest_price: 1,
1031
+ # bare_metal: "included", # accepts included, excluded, required
1032
+ # burstable_performance: "included", # accepts included, excluded, required
1033
+ # require_hibernate_support: false,
1034
+ # network_interface_count: {
1035
+ # min: 1,
1036
+ # max: 1,
1037
+ # },
1038
+ # local_storage: "included", # accepts included, excluded, required
1039
+ # local_storage_types: ["hdd"], # accepts hdd, ssd
1040
+ # total_local_storage_gb: {
1041
+ # min: 1.0,
1042
+ # max: 1.0,
1043
+ # },
1044
+ # baseline_ebs_bandwidth_mbps: {
1045
+ # min: 1,
1046
+ # max: 1,
1047
+ # },
1048
+ # accelerator_types: ["gpu"], # accepts gpu, fpga, inference
1049
+ # accelerator_count: {
1050
+ # min: 1,
1051
+ # max: 1,
1052
+ # },
1053
+ # accelerator_manufacturers: ["nvidia"], # accepts nvidia, amd, amazon-web-services, xilinx
1054
+ # accelerator_names: ["a100"], # accepts a100, v100, k80, t4, m60, radeon-pro-v520, vu9p
1055
+ # accelerator_total_memory_mi_b: {
1056
+ # min: 1,
1057
+ # max: 1,
1058
+ # },
1059
+ # },
909
1060
  # },
910
1061
  # ],
911
1062
  # },
@@ -956,6 +1107,7 @@ module Aws::AutoScaling
956
1107
  # service_linked_role_arn: "ResourceName",
957
1108
  # max_instance_lifetime: 1,
958
1109
  # context: "Context",
1110
+ # desired_capacity_type: "XmlStringMaxLen255",
959
1111
  # }
960
1112
  #
961
1113
  # @!attribute [rw] auto_scaling_group_name
@@ -992,24 +1144,15 @@ module Aws::AutoScaling
992
1144
  # @return [Types::LaunchTemplateSpecification]
993
1145
  #
994
1146
  # @!attribute [rw] mixed_instances_policy
995
- # An embedded object that specifies a mixed instances policy. The
996
- # required properties must be specified. If optional properties are
997
- # unspecified, their default values are used.
998
- #
999
- # The policy includes properties that not only define the distribution
1000
- # of On-Demand Instances and Spot Instances, the maximum price to pay
1001
- # for Spot Instances, and how the Auto Scaling group allocates
1002
- # instance types to fulfill On-Demand and Spot capacities, but also
1003
- # the properties that specify the instance configuration
1004
- # information—the launch template and instance types. The policy can
1005
- # also include a weight for each instance type and different launch
1006
- # templates for individual instance types. For more information, see
1007
- # [Auto Scaling groups with multiple instance types and purchase
1008
- # options][1] in the *Amazon EC2 Auto Scaling User Guide*.
1147
+ # An embedded object that specifies a mixed instances policy.
1148
+ #
1149
+ # For more information, see [Auto Scaling groups with multiple
1150
+ # instance types and purchase options][1] in the *Amazon EC2 Auto
1151
+ # Scaling User Guide*.
1009
1152
  #
1010
1153
  #
1011
1154
  #
1012
- # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-purchase-options.html
1155
+ # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups.html
1013
1156
  # @return [Types::MixedInstancesPolicy]
1014
1157
  #
1015
1158
  # @!attribute [rw] instance_id
@@ -1112,10 +1255,9 @@ module Aws::AutoScaling
1112
1255
  # @!attribute [rw] health_check_grace_period
1113
1256
  # The amount of time, in seconds, that Amazon EC2 Auto Scaling waits
1114
1257
  # before checking the health status of an EC2 instance that has come
1115
- # into service. During this time, any health check failures for the
1116
- # instance are ignored. The default value is `0`. For more
1117
- # information, see [Health check grace period][1] in the *Amazon EC2
1118
- # Auto Scaling User Guide*.
1258
+ # into service and marking it unhealthy due to a failed health check.
1259
+ # The default value is `0`. For more information, see [Health check
1260
+ # grace period][1] in the *Amazon EC2 Auto Scaling User Guide*.
1119
1261
  #
1120
1262
  # Conditional: Required if you are adding an `ELB` health check.
1121
1263
  #
@@ -1164,12 +1306,12 @@ module Aws::AutoScaling
1164
1306
  # Indicates whether newly launched instances are protected from
1165
1307
  # termination by Amazon EC2 Auto Scaling when scaling in. For more
1166
1308
  # information about preventing instances from terminating on scale in,
1167
- # see [Instance scale-in protection][1] in the *Amazon EC2 Auto
1309
+ # see [Using instance scale-in protection][1] in the *Amazon EC2 Auto
1168
1310
  # Scaling User Guide*.
1169
1311
  #
1170
1312
  #
1171
1313
  #
1172
- # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection
1314
+ # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-protection.html
1173
1315
  # @return [Boolean]
1174
1316
  #
1175
1317
  # @!attribute [rw] capacity_rebalance
@@ -1184,7 +1326,7 @@ module Aws::AutoScaling
1184
1326
  #
1185
1327
  #
1186
1328
  #
1187
- # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/capacity-rebalance.html
1329
+ # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html
1188
1330
  # @return [Boolean]
1189
1331
  #
1190
1332
  # @!attribute [rw] lifecycle_hook_specification_list
@@ -1240,6 +1382,23 @@ module Aws::AutoScaling
1240
1382
  # Reserved.
1241
1383
  # @return [String]
1242
1384
  #
1385
+ # @!attribute [rw] desired_capacity_type
1386
+ # The unit of measurement for the value specified for desired
1387
+ # capacity. Amazon EC2 Auto Scaling supports `DesiredCapacityType` for
1388
+ # attribute-based instance type selection only. For more information,
1389
+ # see [Creating an Auto Scaling group using attribute-based instance
1390
+ # type selection][1] in the *Amazon EC2 Auto Scaling User Guide*.
1391
+ #
1392
+ # By default, Amazon EC2 Auto Scaling specifies `units`, which
1393
+ # translates into number of instances.
1394
+ #
1395
+ # Valid values: `units` \| `vcpu` \| `memory-mib`
1396
+ #
1397
+ #
1398
+ #
1399
+ # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html
1400
+ # @return [String]
1401
+ #
1243
1402
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/CreateAutoScalingGroupType AWS API Documentation
1244
1403
  #
1245
1404
  class CreateAutoScalingGroupType < Struct.new(
@@ -1266,7 +1425,8 @@ module Aws::AutoScaling
1266
1425
  :tags,
1267
1426
  :service_linked_role_arn,
1268
1427
  :max_instance_lifetime,
1269
- :context)
1428
+ :context,
1429
+ :desired_capacity_type)
1270
1430
  SENSITIVE = []
1271
1431
  include Aws::Structure
1272
1432
  end
@@ -1645,7 +1805,7 @@ module Aws::AutoScaling
1645
1805
  # * Add values for each required parameter from CloudWatch. You can use
1646
1806
  # an existing metric, or a new metric that you create. To use your own
1647
1807
  # metric, you must first publish the metric to CloudWatch. For more
1648
- # information, see [Publish Custom Metrics][1] in the *Amazon
1808
+ # information, see [Publish custom metrics][1] in the *Amazon
1649
1809
  # CloudWatch User Guide*.
1650
1810
  #
1651
1811
  # * Choose a metric that changes proportionally with capacity. The value
@@ -1653,13 +1813,21 @@ module Aws::AutoScaling
1653
1813
  # the number of capacity units. That is, the value of the metric
1654
1814
  # should decrease when capacity increases.
1655
1815
  #
1656
- # For more information about CloudWatch, see [Amazon CloudWatch
1657
- # Concepts][2].
1816
+ # For more information about the CloudWatch terminology below, see
1817
+ # [Amazon CloudWatch concepts][2].
1818
+ #
1819
+ # <note markdown="1"> Each individual service provides information about the metrics,
1820
+ # namespace, and dimensions they use. For more information, see [Amazon
1821
+ # Web Services services that publish CloudWatch metrics][3] in the
1822
+ # *Amazon CloudWatch User Guide*.
1823
+ #
1824
+ # </note>
1658
1825
  #
1659
1826
  #
1660
1827
  #
1661
1828
  # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/publishingMetrics.html
1662
1829
  # [2]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html
1830
+ # [3]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html
1663
1831
  #
1664
1832
  # @note When making an API call, you may pass CustomizedMetricSpecification
1665
1833
  # data as a hash:
@@ -1678,7 +1846,14 @@ module Aws::AutoScaling
1678
1846
  # }
1679
1847
  #
1680
1848
  # @!attribute [rw] metric_name
1681
- # The name of the metric.
1849
+ # The name of the metric. To get the exact metric name, namespace, and
1850
+ # dimensions, inspect the [Metric][1] object that is returned by a
1851
+ # call to [ListMetrics][2].
1852
+ #
1853
+ #
1854
+ #
1855
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html
1856
+ # [2]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html
1682
1857
  # @return [String]
1683
1858
  #
1684
1859
  # @!attribute [rw] namespace
@@ -1697,7 +1872,13 @@ module Aws::AutoScaling
1697
1872
  # @return [String]
1698
1873
  #
1699
1874
  # @!attribute [rw] unit
1700
- # The unit of the metric.
1875
+ # The unit of the metric. For a complete list of the units that
1876
+ # CloudWatch supports, see the [MetricDatum][1] data type in the
1877
+ # *Amazon CloudWatch API Reference*.
1878
+ #
1879
+ #
1880
+ #
1881
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html
1701
1882
  # @return [String]
1702
1883
  #
1703
1884
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/CustomizedMetricSpecification AWS API Documentation
@@ -1782,8 +1963,7 @@ module Aws::AutoScaling
1782
1963
  # @return [String]
1783
1964
  #
1784
1965
  # @!attribute [rw] topic_arn
1785
- # The Amazon Resource Name (ARN) of the Amazon Simple Notification
1786
- # Service (Amazon SNS) topic.
1966
+ # The Amazon Resource Name (ARN) of the Amazon SNS topic.
1787
1967
  # @return [String]
1788
1968
  #
1789
1969
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteNotificationConfigurationType AWS API Documentation
@@ -2584,6 +2764,53 @@ module Aws::AutoScaling
2584
2764
  # launch_template_name: "LaunchTemplateName",
2585
2765
  # version: "XmlStringMaxLen255",
2586
2766
  # },
2767
+ # instance_requirements: {
2768
+ # v_cpu_count: { # required
2769
+ # min: 1, # required
2770
+ # max: 1,
2771
+ # },
2772
+ # memory_mi_b: { # required
2773
+ # min: 1, # required
2774
+ # max: 1,
2775
+ # },
2776
+ # cpu_manufacturers: ["intel"], # accepts intel, amd, amazon-web-services
2777
+ # memory_gi_b_per_v_cpu: {
2778
+ # min: 1.0,
2779
+ # max: 1.0,
2780
+ # },
2781
+ # excluded_instance_types: ["ExcludedInstance"],
2782
+ # instance_generations: ["current"], # accepts current, previous
2783
+ # spot_max_price_percentage_over_lowest_price: 1,
2784
+ # on_demand_max_price_percentage_over_lowest_price: 1,
2785
+ # bare_metal: "included", # accepts included, excluded, required
2786
+ # burstable_performance: "included", # accepts included, excluded, required
2787
+ # require_hibernate_support: false,
2788
+ # network_interface_count: {
2789
+ # min: 1,
2790
+ # max: 1,
2791
+ # },
2792
+ # local_storage: "included", # accepts included, excluded, required
2793
+ # local_storage_types: ["hdd"], # accepts hdd, ssd
2794
+ # total_local_storage_gb: {
2795
+ # min: 1.0,
2796
+ # max: 1.0,
2797
+ # },
2798
+ # baseline_ebs_bandwidth_mbps: {
2799
+ # min: 1,
2800
+ # max: 1,
2801
+ # },
2802
+ # accelerator_types: ["gpu"], # accepts gpu, fpga, inference
2803
+ # accelerator_count: {
2804
+ # min: 1,
2805
+ # max: 1,
2806
+ # },
2807
+ # accelerator_manufacturers: ["nvidia"], # accepts nvidia, amd, amazon-web-services, xilinx
2808
+ # accelerator_names: ["a100"], # accepts a100, v100, k80, t4, m60, radeon-pro-v520, vu9p
2809
+ # accelerator_total_memory_mi_b: {
2810
+ # min: 1,
2811
+ # max: 1,
2812
+ # },
2813
+ # },
2587
2814
  # },
2588
2815
  # ],
2589
2816
  # },
@@ -2611,15 +2838,15 @@ module Aws::AutoScaling
2611
2838
  #
2612
2839
  # @!attribute [rw] mixed_instances_policy
2613
2840
  # Describes a mixed instances policy. A mixed instances policy
2614
- # contains the instance types Amazon EC2 Auto Scaling can launch, and
2615
- # other information Amazon EC2 Auto Scaling can use to launch
2616
- # instances to help you optimize your costs. For more information, see
2841
+ # contains the instance types that Amazon EC2 Auto Scaling can launch
2842
+ # and other information that Amazon EC2 Auto Scaling can use to launch
2843
+ # instances and help optimize your costs. For more information, see
2617
2844
  # [Auto Scaling groups with multiple instance types and purchase
2618
2845
  # options][1] in the *Amazon EC2 Auto Scaling User Guide*.
2619
2846
  #
2620
2847
  #
2621
2848
  #
2622
- # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-purchase-options.html
2849
+ # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups.html
2623
2850
  # @return [Types::MixedInstancesPolicy]
2624
2851
  #
2625
2852
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DesiredConfiguration AWS API Documentation
@@ -3245,9 +3472,9 @@ module Aws::AutoScaling
3245
3472
  # Describes a filter that is used to return a more specific list of
3246
3473
  # results from a describe operation.
3247
3474
  #
3248
- # If you specify multiple filters, the filters are joined with an `AND`,
3249
- # and the request returns only results that match all of the specified
3250
- # filters.
3475
+ # If you specify multiple filters, the filters are automatically
3476
+ # logically joined with an `AND`, and the request returns only the
3477
+ # results that match all of the specified filters.
3251
3478
  #
3252
3479
  # For more information, see [Tagging Auto Scaling groups and
3253
3480
  # instances][1] in the *Amazon EC2 Auto Scaling User Guide*.
@@ -3267,56 +3494,55 @@ module Aws::AutoScaling
3267
3494
  # @!attribute [rw] name
3268
3495
  # The name of the filter.
3269
3496
  #
3270
- # The valid values for `Name` depend on the API operation that you are
3271
- # including the filter in, DescribeAutoScalingGroups or DescribeTags.
3497
+ # The valid values for `Name` depend on which API operation you're
3498
+ # using with the filter (DescribeAutoScalingGroups or DescribeTags).
3272
3499
  #
3273
3500
  # **DescribeAutoScalingGroups**
3274
3501
  #
3275
3502
  # Valid values for `Name` include the following:
3276
3503
  #
3277
- # * `tag-key` - Accepts tag keys. The results will only include
3278
- # information about the Auto Scaling groups associated with these
3279
- # tag keys.
3504
+ # * `tag-key` - Accepts tag keys. The results only include information
3505
+ # about the Auto Scaling groups associated with these tag keys.
3280
3506
  #
3281
- # * `tag-value` - Accepts tag values. The results will only include
3507
+ # * `tag-value` - Accepts tag values. The results only include
3282
3508
  # information about the Auto Scaling groups associated with these
3283
3509
  # tag values.
3284
3510
  #
3285
3511
  # * `tag:<key>` - Accepts the key/value combination of the tag. Use
3286
3512
  # the tag key in the filter name and the tag value as the filter
3287
- # value. The results will only include information about the Auto
3288
- # Scaling groups associated with the specified key/value
3289
- # combination.
3513
+ # value. The results only include information about the Auto Scaling
3514
+ # groups associated with the specified key/value combination.
3290
3515
  #
3291
3516
  # **DescribeTags**
3292
3517
  #
3293
3518
  # Valid values for `Name` include the following:
3294
3519
  #
3295
3520
  # * `auto-scaling-group` - Accepts the names of Auto Scaling groups.
3296
- # The results will only include information about the tags
3297
- # associated with these Auto Scaling groups.
3521
+ # The results only include information about the tags associated
3522
+ # with these Auto Scaling groups.
3298
3523
  #
3299
- # * `key` - Accepts tag keys. The results will only include
3300
- # information about the tags associated with these tag keys.
3524
+ # * `key` - Accepts tag keys. The results only include information
3525
+ # about the tags associated with these tag keys.
3301
3526
  #
3302
- # * `value` - Accepts tag values. The results will only include
3303
- # information about the tags associated with these tag values.
3527
+ # * `value` - Accepts tag values. The results only include information
3528
+ # about the tags associated with these tag values.
3304
3529
  #
3305
- # * `propagate-at-launch` - Accepts a boolean value, which specifies
3306
- # whether tags propagate to instances at launch. The results will
3307
- # only include information about the tags associated with the
3308
- # specified boolean value.
3530
+ # * `propagate-at-launch` - Accepts a Boolean value, which specifies
3531
+ # whether tags propagate to instances at launch. The results only
3532
+ # include information about the tags associated with the specified
3533
+ # Boolean value.
3309
3534
  # @return [String]
3310
3535
  #
3311
3536
  # @!attribute [rw] values
3312
3537
  # One or more filter values. Filter values are case-sensitive.
3313
3538
  #
3314
- # If you specify multiple values for a filter, the values are joined
3315
- # with an `OR`, and the request returns all results that match any of
3316
- # the specified values. For example, specify "tag:environment" for
3317
- # the filter name and "production,development" for the filter values
3318
- # to find Auto Scaling groups with the tag "environment=production"
3319
- # or "environment=development".
3539
+ # If you specify multiple values for a filter, the values are
3540
+ # automatically logically joined with an `OR`, and the request returns
3541
+ # all results that match any of the specified values. For example,
3542
+ # specify "tag:environment" for the filter name and
3543
+ # "production,development" for the filter values to find Auto
3544
+ # Scaling groups with the tag "environment=production" or
3545
+ # "environment=development".
3320
3546
  # @return [Array<String>]
3321
3547
  #
3322
3548
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/Filter AWS API Documentation
@@ -3726,23 +3952,343 @@ module Aws::AutoScaling
3726
3952
  include Aws::Structure
3727
3953
  end
3728
3954
 
3729
- # Describes an instances distribution for an Auto Scaling group with a
3730
- # MixedInstancesPolicy.
3955
+ # When you specify multiple parameters, you get instance types that
3956
+ # satisfy all of the specified parameters. If you specify multiple
3957
+ # values for a parameter, you get instance types that satisfy any of the
3958
+ # specified values.
3959
+ #
3960
+ # Represents requirements for the types of instances that can be
3961
+ # launched. You must specify `VCpuCount` and `MemoryMiB`, but all other
3962
+ # parameters are optional. For more information, see [Creating an Auto
3963
+ # Scaling group using attribute-based instance type selection][1] in the
3964
+ # *Amazon EC2 Auto Scaling User Guide*.
3965
+ #
3966
+ #
3967
+ #
3968
+ # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html
3969
+ #
3970
+ # @note When making an API call, you may pass InstanceRequirements
3971
+ # data as a hash:
3972
+ #
3973
+ # {
3974
+ # v_cpu_count: { # required
3975
+ # min: 1, # required
3976
+ # max: 1,
3977
+ # },
3978
+ # memory_mi_b: { # required
3979
+ # min: 1, # required
3980
+ # max: 1,
3981
+ # },
3982
+ # cpu_manufacturers: ["intel"], # accepts intel, amd, amazon-web-services
3983
+ # memory_gi_b_per_v_cpu: {
3984
+ # min: 1.0,
3985
+ # max: 1.0,
3986
+ # },
3987
+ # excluded_instance_types: ["ExcludedInstance"],
3988
+ # instance_generations: ["current"], # accepts current, previous
3989
+ # spot_max_price_percentage_over_lowest_price: 1,
3990
+ # on_demand_max_price_percentage_over_lowest_price: 1,
3991
+ # bare_metal: "included", # accepts included, excluded, required
3992
+ # burstable_performance: "included", # accepts included, excluded, required
3993
+ # require_hibernate_support: false,
3994
+ # network_interface_count: {
3995
+ # min: 1,
3996
+ # max: 1,
3997
+ # },
3998
+ # local_storage: "included", # accepts included, excluded, required
3999
+ # local_storage_types: ["hdd"], # accepts hdd, ssd
4000
+ # total_local_storage_gb: {
4001
+ # min: 1.0,
4002
+ # max: 1.0,
4003
+ # },
4004
+ # baseline_ebs_bandwidth_mbps: {
4005
+ # min: 1,
4006
+ # max: 1,
4007
+ # },
4008
+ # accelerator_types: ["gpu"], # accepts gpu, fpga, inference
4009
+ # accelerator_count: {
4010
+ # min: 1,
4011
+ # max: 1,
4012
+ # },
4013
+ # accelerator_manufacturers: ["nvidia"], # accepts nvidia, amd, amazon-web-services, xilinx
4014
+ # accelerator_names: ["a100"], # accepts a100, v100, k80, t4, m60, radeon-pro-v520, vu9p
4015
+ # accelerator_total_memory_mi_b: {
4016
+ # min: 1,
4017
+ # max: 1,
4018
+ # },
4019
+ # }
4020
+ #
4021
+ # @!attribute [rw] v_cpu_count
4022
+ # The minimum and maximum number of vCPUs for an instance type.
4023
+ # @return [Types::VCpuCountRequest]
4024
+ #
4025
+ # @!attribute [rw] memory_mi_b
4026
+ # The minimum and maximum instance memory size for an instance type,
4027
+ # in MiB.
4028
+ # @return [Types::MemoryMiBRequest]
4029
+ #
4030
+ # @!attribute [rw] cpu_manufacturers
4031
+ # Lists which specific CPU manufacturers to include.
4032
+ #
4033
+ # * For instance types with Intel CPUs, specify `intel`.
4034
+ #
4035
+ # * For instance types with AMD CPUs, specify `amd`.
4036
+ #
4037
+ # * For instance types with Amazon Web Services CPUs, specify
4038
+ # `amazon-web-services`.
4039
+ #
4040
+ # <note markdown="1"> Don't confuse the CPU hardware manufacturer with the CPU hardware
4041
+ # architecture. Instances will be launched with a compatible CPU
4042
+ # architecture based on the Amazon Machine Image (AMI) that you
4043
+ # specify in your launch template.
4044
+ #
4045
+ # </note>
4046
+ #
4047
+ # Default: Any manufacturer
4048
+ # @return [Array<String>]
4049
+ #
4050
+ # @!attribute [rw] memory_gi_b_per_v_cpu
4051
+ # The minimum and maximum amount of memory per vCPU for an instance
4052
+ # type, in GiB.
4053
+ #
4054
+ # Default: No minimum or maximum
4055
+ # @return [Types::MemoryGiBPerVCpuRequest]
4056
+ #
4057
+ # @!attribute [rw] excluded_instance_types
4058
+ # Lists which instance types to exclude. You can use strings with one
4059
+ # or more wild cards, represented by an asterisk (`*`). The following
4060
+ # are examples: `c5*`, `m5a.*`, `r*`, `*3*`.
4061
+ #
4062
+ # For example, if you specify `c5*`, you are excluding the entire C5
4063
+ # instance family, which includes all C5a and C5n instance types. If
4064
+ # you specify `m5a.*`, you are excluding all the M5a instance types,
4065
+ # but not the M5n instance types.
4066
+ #
4067
+ # Default: No excluded instance types
4068
+ # @return [Array<String>]
4069
+ #
4070
+ # @!attribute [rw] instance_generations
4071
+ # Indicates whether current or previous generation instance types are
4072
+ # included.
3731
4073
  #
3732
- # The instances distribution specifies the distribution of On-Demand
3733
- # Instances and Spot Instances, the maximum price to pay for Spot
3734
- # Instances, and how the Auto Scaling group allocates instance types to
3735
- # fulfill On-Demand and Spot capacities.
4074
+ # * For current generation instance types, specify `current`. The
4075
+ # current generation includes EC2 instance types currently
4076
+ # recommended for use. This typically includes the latest two to
4077
+ # three generations in each instance family. For more information,
4078
+ # see [Instance types][1] in the *Amazon EC2 User Guide for Linux
4079
+ # Instances*.
3736
4080
  #
3737
- # When you modify `SpotAllocationStrategy`, `SpotInstancePools`, or
3738
- # `SpotMaxPrice` in the UpdateAutoScalingGroup API call, this update
3739
- # action does not deploy any changes across the running Amazon EC2
3740
- # instances in the group. Your existing Spot Instances continue to run
3741
- # as long as the maximum price for those instances is higher than the
3742
- # current Spot price. When scale out occurs, Amazon EC2 Auto Scaling
3743
- # launches instances based on the new settings. When scale in occurs,
3744
- # Amazon EC2 Auto Scaling terminates instances according to the group's
3745
- # termination policies.
4081
+ # * For previous generation instance types, specify `previous`.
4082
+ #
4083
+ # Default: Any current or previous generation
4084
+ #
4085
+ #
4086
+ #
4087
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html
4088
+ # @return [Array<String>]
4089
+ #
4090
+ # @!attribute [rw] spot_max_price_percentage_over_lowest_price
4091
+ # The price protection threshold for Spot Instances. This is the
4092
+ # maximum you’ll pay for a Spot Instance, expressed as a percentage
4093
+ # higher than the cheapest M, C, or R instance type with your
4094
+ # specified attributes. When Amazon EC2 Auto Scaling selects instance
4095
+ # types with your attributes, we will exclude instance types whose
4096
+ # price is higher than your threshold. The parameter accepts an
4097
+ # integer, which Amazon EC2 Auto Scaling interprets as a percentage.
4098
+ # To turn off price protection, specify a high value, such as
4099
+ # `999999`.
4100
+ #
4101
+ # Default: `100`
4102
+ # @return [Integer]
4103
+ #
4104
+ # @!attribute [rw] on_demand_max_price_percentage_over_lowest_price
4105
+ # The price protection threshold for On-Demand Instances. This is the
4106
+ # maximum you’ll pay for an On-Demand Instance, expressed as a
4107
+ # percentage higher than the cheapest M, C, or R instance type with
4108
+ # your specified attributes. When Amazon EC2 Auto Scaling selects
4109
+ # instance types with your attributes, we will exclude instance types
4110
+ # whose price is higher than your threshold. The parameter accepts an
4111
+ # integer, which Amazon EC2 Auto Scaling interprets as a percentage.
4112
+ # To turn off price protection, specify a high value, such as
4113
+ # `999999`.
4114
+ #
4115
+ # Default: `20`
4116
+ # @return [Integer]
4117
+ #
4118
+ # @!attribute [rw] bare_metal
4119
+ # Indicates whether bare metal instance types are included, excluded,
4120
+ # or required.
4121
+ #
4122
+ # Default: `excluded`
4123
+ # @return [String]
4124
+ #
4125
+ # @!attribute [rw] burstable_performance
4126
+ # Indicates whether burstable performance instance types are included,
4127
+ # excluded, or required. For more information, see [Burstable
4128
+ # performance instances][1] in the *Amazon EC2 User Guide for Linux
4129
+ # Instances*.
4130
+ #
4131
+ # Default: `excluded`
4132
+ #
4133
+ #
4134
+ #
4135
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html
4136
+ # @return [String]
4137
+ #
4138
+ # @!attribute [rw] require_hibernate_support
4139
+ # Indicates whether instance types must provide On-Demand Instance
4140
+ # hibernation support.
4141
+ #
4142
+ # Default: `false`
4143
+ # @return [Boolean]
4144
+ #
4145
+ # @!attribute [rw] network_interface_count
4146
+ # The minimum and maximum number of network interfaces for an instance
4147
+ # type.
4148
+ #
4149
+ # Default: No minimum or maximum
4150
+ # @return [Types::NetworkInterfaceCountRequest]
4151
+ #
4152
+ # @!attribute [rw] local_storage
4153
+ # Indicates whether instance types with instance store volumes are
4154
+ # included, excluded, or required. For more information, see [Amazon
4155
+ # EC2 instance store][1] in the *Amazon EC2 User Guide for Linux
4156
+ # Instances*.
4157
+ #
4158
+ # Default: `included`
4159
+ #
4160
+ #
4161
+ #
4162
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html
4163
+ # @return [String]
4164
+ #
4165
+ # @!attribute [rw] local_storage_types
4166
+ # Indicates the type of local storage that is required.
4167
+ #
4168
+ # * For instance types with hard disk drive (HDD) storage, specify
4169
+ # `hdd`.
4170
+ #
4171
+ # * For instance types with solid state drive (SSD) storage, specify
4172
+ # `sdd`.
4173
+ #
4174
+ # Default: Any local storage type
4175
+ # @return [Array<String>]
4176
+ #
4177
+ # @!attribute [rw] total_local_storage_gb
4178
+ # The minimum and maximum total local storage size for an instance
4179
+ # type, in GB.
4180
+ #
4181
+ # Default: No minimum or maximum
4182
+ # @return [Types::TotalLocalStorageGBRequest]
4183
+ #
4184
+ # @!attribute [rw] baseline_ebs_bandwidth_mbps
4185
+ # The minimum and maximum baseline bandwidth performance for an
4186
+ # instance type, in Mbps. For more information, see [Amazon
4187
+ # EBS–optimized instances][1] in the *Amazon EC2 User Guide for Linux
4188
+ # Instances*.
4189
+ #
4190
+ # Default: No minimum or maximum
4191
+ #
4192
+ #
4193
+ #
4194
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html
4195
+ # @return [Types::BaselineEbsBandwidthMbpsRequest]
4196
+ #
4197
+ # @!attribute [rw] accelerator_types
4198
+ # Lists the accelerator types that must be on an instance type.
4199
+ #
4200
+ # * For instance types with GPU accelerators, specify `gpu`.
4201
+ #
4202
+ # * For instance types with FPGA accelerators, specify `fpga`.
4203
+ #
4204
+ # * For instance types with inference accelerators, specify
4205
+ # `inference`.
4206
+ #
4207
+ # Default: Any accelerator type
4208
+ # @return [Array<String>]
4209
+ #
4210
+ # @!attribute [rw] accelerator_count
4211
+ # The minimum and maximum number of accelerators (GPUs, FPGAs, or
4212
+ # Amazon Web Services Inferentia chips) for an instance type.
4213
+ #
4214
+ # To exclude accelerator-enabled instance types, set `Max` to `0`.
4215
+ #
4216
+ # Default: No minimum or maximum
4217
+ # @return [Types::AcceleratorCountRequest]
4218
+ #
4219
+ # @!attribute [rw] accelerator_manufacturers
4220
+ # Indicates whether instance types must have accelerators by specific
4221
+ # manufacturers.
4222
+ #
4223
+ # * For instance types with NVIDIA devices, specify `nvidia`.
4224
+ #
4225
+ # * For instance types with AMD devices, specify `amd`.
4226
+ #
4227
+ # * For instance types with Amazon Web Services devices, specify
4228
+ # `amazon-web-services`.
4229
+ #
4230
+ # * For instance types with Xilinx devices, specify `xilinx`.
4231
+ #
4232
+ # Default: Any manufacturer
4233
+ # @return [Array<String>]
4234
+ #
4235
+ # @!attribute [rw] accelerator_names
4236
+ # Lists the accelerators that must be on an instance type.
4237
+ #
4238
+ # * For instance types with NVIDIA A100 GPUs, specify `a100`.
4239
+ #
4240
+ # * For instance types with NVIDIA V100 GPUs, specify `v100`.
4241
+ #
4242
+ # * For instance types with NVIDIA K80 GPUs, specify `k80`.
4243
+ #
4244
+ # * For instance types with NVIDIA T4 GPUs, specify `t4`.
4245
+ #
4246
+ # * For instance types with NVIDIA M60 GPUs, specify `m60`.
4247
+ #
4248
+ # * For instance types with AMD Radeon Pro V520 GPUs, specify
4249
+ # `radeon-pro-v520`.
4250
+ #
4251
+ # * For instance types with Xilinx VU9P FPGAs, specify `vu9p`.
4252
+ #
4253
+ # Default: Any accelerator
4254
+ # @return [Array<String>]
4255
+ #
4256
+ # @!attribute [rw] accelerator_total_memory_mi_b
4257
+ # The minimum and maximum total memory size for the accelerators on an
4258
+ # instance type, in MiB.
4259
+ #
4260
+ # Default: No minimum or maximum
4261
+ # @return [Types::AcceleratorTotalMemoryMiBRequest]
4262
+ #
4263
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/InstanceRequirements AWS API Documentation
4264
+ #
4265
+ class InstanceRequirements < Struct.new(
4266
+ :v_cpu_count,
4267
+ :memory_mi_b,
4268
+ :cpu_manufacturers,
4269
+ :memory_gi_b_per_v_cpu,
4270
+ :excluded_instance_types,
4271
+ :instance_generations,
4272
+ :spot_max_price_percentage_over_lowest_price,
4273
+ :on_demand_max_price_percentage_over_lowest_price,
4274
+ :bare_metal,
4275
+ :burstable_performance,
4276
+ :require_hibernate_support,
4277
+ :network_interface_count,
4278
+ :local_storage,
4279
+ :local_storage_types,
4280
+ :total_local_storage_gb,
4281
+ :baseline_ebs_bandwidth_mbps,
4282
+ :accelerator_types,
4283
+ :accelerator_count,
4284
+ :accelerator_manufacturers,
4285
+ :accelerator_names,
4286
+ :accelerator_total_memory_mi_b)
4287
+ SENSITIVE = []
4288
+ include Aws::Structure
4289
+ end
4290
+
4291
+ # Describes an instances distribution for an Auto Scaling group.
3746
4292
  #
3747
4293
  # @note When making an API call, you may pass InstancesDistribution
3748
4294
  # data as a hash:
@@ -3757,32 +4303,46 @@ module Aws::AutoScaling
3757
4303
  # }
3758
4304
  #
3759
4305
  # @!attribute [rw] on_demand_allocation_strategy
3760
- # Indicates how to allocate instance types to fulfill On-Demand
3761
- # capacity. The only valid value is `prioritized`, which is also the
3762
- # default value. This strategy uses the order of instance types in the
3763
- # `LaunchTemplateOverrides` to define the launch priority of each
3764
- # instance type. The first instance type in the array is prioritized
3765
- # higher than the last. If all your On-Demand capacity cannot be
3766
- # fulfilled using your highest priority instance, then the Auto
3767
- # Scaling groups launches the remaining capacity using the second
3768
- # priority instance type, and so on.
4306
+ # The order of the launch template overrides to use in fulfilling
4307
+ # On-Demand capacity.
4308
+ #
4309
+ # If you specify `lowest-price`, Amazon EC2 Auto Scaling uses price to
4310
+ # determine the order, launching the lowest price first.
4311
+ #
4312
+ # If you specify `prioritized`, Amazon EC2 Auto Scaling uses the
4313
+ # priority that you assigned to each launch template override,
4314
+ # launching the highest priority first. If all your On-Demand capacity
4315
+ # cannot be fulfilled using your highest priority instance, then
4316
+ # Amazon EC2 Auto Scaling launches the remaining capacity using the
4317
+ # second priority instance type, and so on.
4318
+ #
4319
+ # Default: `lowest-price` for Auto Scaling groups that specify
4320
+ # InstanceRequirements in the overrides and `prioritized` for Auto
4321
+ # Scaling groups that don't.
3769
4322
  # @return [String]
3770
4323
  #
3771
4324
  # @!attribute [rw] on_demand_base_capacity
3772
4325
  # The minimum amount of the Auto Scaling group's capacity that must
3773
- # be fulfilled by On-Demand Instances. This base portion is
3774
- # provisioned first as your group scales. Defaults to 0 if not
3775
- # specified. If you specify weights for the instance types in the
3776
- # overrides, set the value of `OnDemandBaseCapacity` in terms of the
3777
- # number of capacity units, and not the number of instances.
4326
+ # be fulfilled by On-Demand Instances. This base portion is launched
4327
+ # first as your group scales.
4328
+ #
4329
+ # If you specify weights for the instance types in the overrides, the
4330
+ # base capacity is measured in the same unit of measurement as the
4331
+ # instance types. If you specify InstanceRequirements in the
4332
+ # overrides, the base capacity is measured in the same unit of
4333
+ # measurement as your group's desired capacity.
4334
+ #
4335
+ # Default: `0`
3778
4336
  # @return [Integer]
3779
4337
  #
3780
4338
  # @!attribute [rw] on_demand_percentage_above_base_capacity
3781
4339
  # Controls the percentages of On-Demand Instances and Spot Instances
3782
4340
  # for your additional capacity beyond `OnDemandBaseCapacity`.
3783
4341
  # Expressed as a number (for example, 20 specifies 20% On-Demand
3784
- # Instances, 80% Spot Instances). Defaults to 100 if not specified. If
3785
- # set to 100, only On-Demand Instances are provisioned.
4342
+ # Instances, 80% Spot Instances). If set to 100, only On-Demand
4343
+ # Instances are used.
4344
+ #
4345
+ # Default: `100`
3786
4346
  # @return [Integer]
3787
4347
  #
3788
4348
  # @!attribute [rw] spot_allocation_strategy
@@ -3791,7 +4351,7 @@ module Aws::AutoScaling
3791
4351
  # If the allocation strategy is `lowest-price`, the Auto Scaling group
3792
4352
  # launches instances using the Spot pools with the lowest price, and
3793
4353
  # evenly allocates your instances across the number of Spot pools that
3794
- # you specify. Defaults to `lowest-price` if not specified.
4354
+ # you specify.
3795
4355
  #
3796
4356
  # If the allocation strategy is `capacity-optimized` (recommended),
3797
4357
  # the Auto Scaling group launches instances using Spot pools that are
@@ -3801,22 +4361,25 @@ module Aws::AutoScaling
3801
4361
  # from highest to lowest priority (from first to last in the list).
3802
4362
  # Amazon EC2 Auto Scaling honors the instance type priorities on a
3803
4363
  # best-effort basis but optimizes for capacity first.
4364
+ #
4365
+ # Default: `lowest-price`
3804
4366
  # @return [String]
3805
4367
  #
3806
4368
  # @!attribute [rw] spot_instance_pools
3807
4369
  # The number of Spot Instance pools across which to allocate your Spot
3808
4370
  # Instances. The Spot pools are determined from the different instance
3809
4371
  # types in the overrides. Valid only when the Spot allocation strategy
3810
- # is `lowest-price`. Value must be in the range of 1 to 20. Defaults
3811
- # to 2 if not specified.
4372
+ # is `lowest-price`. Value must be in the range of 120.
4373
+ #
4374
+ # Default: `2`
3812
4375
  # @return [Integer]
3813
4376
  #
3814
4377
  # @!attribute [rw] spot_max_price
3815
4378
  # The maximum price per unit hour that you are willing to pay for a
3816
- # Spot Instance. If you leave the value at its default (empty), Amazon
3817
- # EC2 Auto Scaling uses the On-Demand price as the maximum Spot price.
3818
- # To remove a value that you previously set, include the property but
3819
- # specify an empty string ("") for the value.
4379
+ # Spot Instance. If you keep the value at its default (unspecified),
4380
+ # Amazon EC2 Auto Scaling uses the On-Demand price as the maximum Spot
4381
+ # price. To remove a value that you previously set, include the
4382
+ # property but specify an empty string ("") for the value.
3820
4383
  # @return [String]
3821
4384
  #
3822
4385
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/InstancesDistribution AWS API Documentation
@@ -4145,16 +4708,8 @@ module Aws::AutoScaling
4145
4708
  include Aws::Structure
4146
4709
  end
4147
4710
 
4148
- # Describes a launch template and overrides.
4149
- #
4150
- # You specify these properties as part of a mixed instances policy.
4151
- #
4152
- # When you update the launch template or overrides in the
4153
- # UpdateAutoScalingGroup API call, existing Amazon EC2 instances
4154
- # continue to run. When scale out occurs, Amazon EC2 Auto Scaling
4155
- # launches instances to match the new settings. When scale in occurs,
4156
- # Amazon EC2 Auto Scaling terminates instances according to the group's
4157
- # termination policies.
4711
+ # Describes a launch template and overrides. You specify these
4712
+ # properties as part of a mixed instances policy.
4158
4713
  #
4159
4714
  # @note When making an API call, you may pass LaunchTemplate
4160
4715
  # data as a hash:
@@ -4174,6 +4729,53 @@ module Aws::AutoScaling
4174
4729
  # launch_template_name: "LaunchTemplateName",
4175
4730
  # version: "XmlStringMaxLen255",
4176
4731
  # },
4732
+ # instance_requirements: {
4733
+ # v_cpu_count: { # required
4734
+ # min: 1, # required
4735
+ # max: 1,
4736
+ # },
4737
+ # memory_mi_b: { # required
4738
+ # min: 1, # required
4739
+ # max: 1,
4740
+ # },
4741
+ # cpu_manufacturers: ["intel"], # accepts intel, amd, amazon-web-services
4742
+ # memory_gi_b_per_v_cpu: {
4743
+ # min: 1.0,
4744
+ # max: 1.0,
4745
+ # },
4746
+ # excluded_instance_types: ["ExcludedInstance"],
4747
+ # instance_generations: ["current"], # accepts current, previous
4748
+ # spot_max_price_percentage_over_lowest_price: 1,
4749
+ # on_demand_max_price_percentage_over_lowest_price: 1,
4750
+ # bare_metal: "included", # accepts included, excluded, required
4751
+ # burstable_performance: "included", # accepts included, excluded, required
4752
+ # require_hibernate_support: false,
4753
+ # network_interface_count: {
4754
+ # min: 1,
4755
+ # max: 1,
4756
+ # },
4757
+ # local_storage: "included", # accepts included, excluded, required
4758
+ # local_storage_types: ["hdd"], # accepts hdd, ssd
4759
+ # total_local_storage_gb: {
4760
+ # min: 1.0,
4761
+ # max: 1.0,
4762
+ # },
4763
+ # baseline_ebs_bandwidth_mbps: {
4764
+ # min: 1,
4765
+ # max: 1,
4766
+ # },
4767
+ # accelerator_types: ["gpu"], # accepts gpu, fpga, inference
4768
+ # accelerator_count: {
4769
+ # min: 1,
4770
+ # max: 1,
4771
+ # },
4772
+ # accelerator_manufacturers: ["nvidia"], # accepts nvidia, amd, amazon-web-services, xilinx
4773
+ # accelerator_names: ["a100"], # accepts a100, v100, k80, t4, m60, radeon-pro-v520, vu9p
4774
+ # accelerator_total_memory_mi_b: {
4775
+ # min: 1,
4776
+ # max: 1,
4777
+ # },
4778
+ # },
4177
4779
  # },
4178
4780
  # ],
4179
4781
  # }
@@ -4185,8 +4787,11 @@ module Aws::AutoScaling
4185
4787
  # @!attribute [rw] overrides
4186
4788
  # Any properties that you specify override the same properties in the
4187
4789
  # launch template. If not provided, Amazon EC2 Auto Scaling uses the
4188
- # instance type specified in the launch template when it launches an
4189
- # instance.
4790
+ # instance type or instance type requirements specified in the launch
4791
+ # template when it launches an instance.
4792
+ #
4793
+ # The overrides can include either one or more instance types or a set
4794
+ # of instance requirements, but not both.
4190
4795
  # @return [Array<Types::LaunchTemplateOverrides>]
4191
4796
  #
4192
4797
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/LaunchTemplate AWS API Documentation
@@ -4198,16 +4803,13 @@ module Aws::AutoScaling
4198
4803
  include Aws::Structure
4199
4804
  end
4200
4805
 
4201
- # Describes an override for a launch template. The maximum number of
4202
- # instance types that can be associated with an Auto Scaling group is
4203
- # 40. The maximum number of distinct launch templates you can define for
4204
- # an Auto Scaling group is 20. For more information about configuring
4205
- # overrides, see [Configuring overrides][1] in the *Amazon EC2 Auto
4206
- # Scaling User Guide*.
4806
+ # Describes an override for a launch template. For more information, see
4807
+ # [Configuring overrides][1] in the *Amazon EC2 Auto Scaling User
4808
+ # Guide*.
4207
4809
  #
4208
4810
  #
4209
4811
  #
4210
- # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-override-options.html
4812
+ # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-configuring-overrides.html
4211
4813
  #
4212
4814
  # @note When making an API call, you may pass LaunchTemplateOverrides
4213
4815
  # data as a hash:
@@ -4220,6 +4822,53 @@ module Aws::AutoScaling
4220
4822
  # launch_template_name: "LaunchTemplateName",
4221
4823
  # version: "XmlStringMaxLen255",
4222
4824
  # },
4825
+ # instance_requirements: {
4826
+ # v_cpu_count: { # required
4827
+ # min: 1, # required
4828
+ # max: 1,
4829
+ # },
4830
+ # memory_mi_b: { # required
4831
+ # min: 1, # required
4832
+ # max: 1,
4833
+ # },
4834
+ # cpu_manufacturers: ["intel"], # accepts intel, amd, amazon-web-services
4835
+ # memory_gi_b_per_v_cpu: {
4836
+ # min: 1.0,
4837
+ # max: 1.0,
4838
+ # },
4839
+ # excluded_instance_types: ["ExcludedInstance"],
4840
+ # instance_generations: ["current"], # accepts current, previous
4841
+ # spot_max_price_percentage_over_lowest_price: 1,
4842
+ # on_demand_max_price_percentage_over_lowest_price: 1,
4843
+ # bare_metal: "included", # accepts included, excluded, required
4844
+ # burstable_performance: "included", # accepts included, excluded, required
4845
+ # require_hibernate_support: false,
4846
+ # network_interface_count: {
4847
+ # min: 1,
4848
+ # max: 1,
4849
+ # },
4850
+ # local_storage: "included", # accepts included, excluded, required
4851
+ # local_storage_types: ["hdd"], # accepts hdd, ssd
4852
+ # total_local_storage_gb: {
4853
+ # min: 1.0,
4854
+ # max: 1.0,
4855
+ # },
4856
+ # baseline_ebs_bandwidth_mbps: {
4857
+ # min: 1,
4858
+ # max: 1,
4859
+ # },
4860
+ # accelerator_types: ["gpu"], # accepts gpu, fpga, inference
4861
+ # accelerator_count: {
4862
+ # min: 1,
4863
+ # max: 1,
4864
+ # },
4865
+ # accelerator_manufacturers: ["nvidia"], # accepts nvidia, amd, amazon-web-services, xilinx
4866
+ # accelerator_names: ["a100"], # accepts a100, v100, k80, t4, m60, radeon-pro-v520, vu9p
4867
+ # accelerator_total_memory_mi_b: {
4868
+ # min: 1,
4869
+ # max: 1,
4870
+ # },
4871
+ # },
4223
4872
  # }
4224
4873
  #
4225
4874
  # @!attribute [rw] instance_type
@@ -4234,45 +4883,54 @@ module Aws::AutoScaling
4234
4883
  # @return [String]
4235
4884
  #
4236
4885
  # @!attribute [rw] weighted_capacity
4237
- # The number of capacity units provided by the specified instance type
4238
- # in terms of virtual CPUs, memory, storage, throughput, or other
4239
- # relative performance characteristic. When a Spot or On-Demand
4240
- # Instance is provisioned, the capacity units count toward the desired
4241
- # capacity. Amazon EC2 Auto Scaling provisions instances until the
4242
- # desired capacity is totally fulfilled, even if this results in an
4243
- # overage. For example, if there are 2 units remaining to fulfill
4244
- # capacity, and Amazon EC2 Auto Scaling can only provision an instance
4245
- # with a `WeightedCapacity` of 5 units, the instance is provisioned,
4246
- # and the desired capacity is exceeded by 3 units. For more
4247
- # information, see [Instance weighting for Amazon EC2 Auto Scaling][1]
4248
- # in the *Amazon EC2 Auto Scaling User Guide*. Value must be in the
4249
- # range of 1 to 999.
4886
+ # The number of capacity units provided by the instance type specified
4887
+ # in `InstanceType` in terms of virtual CPUs, memory, storage,
4888
+ # throughput, or other relative performance characteristic. When a
4889
+ # Spot or On-Demand Instance is launched, the capacity units count
4890
+ # toward the desired capacity. Amazon EC2 Auto Scaling launches
4891
+ # instances until the desired capacity is totally fulfilled, even if
4892
+ # this results in an overage. For example, if there are two units
4893
+ # remaining to fulfill capacity, and Amazon EC2 Auto Scaling can only
4894
+ # launch an instance with a `WeightedCapacity` of five units, the
4895
+ # instance is launched, and the desired capacity is exceeded by three
4896
+ # units. For more information, see [Instance weighting for Amazon EC2
4897
+ # Auto Scaling][1] in the *Amazon EC2 Auto Scaling User Guide*. Value
4898
+ # must be in the range of 1999.
4250
4899
  #
4251
4900
  #
4252
4901
  #
4253
- # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-weighting.html
4902
+ # [1]: https://docs.aws.amazon.com/ec2-auto-scaling-mixed-instances-groups-instance-weighting.html
4254
4903
  # @return [String]
4255
4904
  #
4256
4905
  # @!attribute [rw] launch_template_specification
4257
4906
  # Provides the launch template to be used when launching the instance
4258
- # type. For example, some instance types might require a launch
4259
- # template with a different AMI. If not provided, Amazon EC2 Auto
4260
- # Scaling uses the launch template that's defined for your mixed
4261
- # instances policy. For more information, see [Specifying a different
4262
- # launch template for an instance type][1] in the *Amazon EC2 Auto
4263
- # Scaling User Guide*.
4907
+ # type specified in `InstanceType`. For example, some instance types
4908
+ # might require a launch template with a different AMI. If not
4909
+ # provided, Amazon EC2 Auto Scaling uses the launch template that's
4910
+ # defined for your mixed instances policy. For more information, see
4911
+ # [Specifying a different launch template for an instance type][1] in
4912
+ # the *Amazon EC2 Auto Scaling User Guide*.
4264
4913
  #
4265
4914
  #
4266
4915
  #
4267
- # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-launch-template-overrides.html
4916
+ # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups-launch-template-overrides.html
4268
4917
  # @return [Types::LaunchTemplateSpecification]
4269
4918
  #
4919
+ # @!attribute [rw] instance_requirements
4920
+ # The instance requirements. When you specify instance requirements,
4921
+ # Amazon EC2 Auto Scaling finds instance types that satisfy your
4922
+ # requirements, and then uses your On-Demand and Spot allocation
4923
+ # strategies to launch instances from these instance types, in the
4924
+ # same way as when you specify a list of specific instance types.
4925
+ # @return [Types::InstanceRequirements]
4926
+ #
4270
4927
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/LaunchTemplateOverrides AWS API Documentation
4271
4928
  #
4272
4929
  class LaunchTemplateOverrides < Struct.new(
4273
4930
  :instance_type,
4274
4931
  :weighted_capacity,
4275
- :launch_template_specification)
4932
+ :launch_template_specification,
4933
+ :instance_requirements)
4276
4934
  SENSITIVE = []
4277
4935
  include Aws::Structure
4278
4936
  end
@@ -4352,9 +5010,9 @@ module Aws::AutoScaling
4352
5010
  include Aws::Structure
4353
5011
  end
4354
5012
 
4355
- # Describes a lifecycle hook, which tells Amazon EC2 Auto Scaling that
4356
- # you want to perform an action whenever it launches instances or
4357
- # terminates instances.
5013
+ # Describes a lifecycle hook, which enables an Auto Scaling group to be
5014
+ # aware of events in the Auto Scaling instance lifecycle, and then
5015
+ # perform a custom action when the corresponding lifecycle event occurs.
4358
5016
  #
4359
5017
  # @!attribute [rw] lifecycle_hook_name
4360
5018
  # The name of the lifecycle hook.
@@ -4429,31 +5087,6 @@ module Aws::AutoScaling
4429
5087
  # Describes information used to specify a lifecycle hook for an Auto
4430
5088
  # Scaling group.
4431
5089
  #
4432
- # A lifecycle hook tells Amazon EC2 Auto Scaling to perform an action on
4433
- # an instance when the instance launches (before it is put into service)
4434
- # or as the instance terminates (before it is fully terminated).
4435
- #
4436
- # This step is a part of the procedure for creating a lifecycle hook for
4437
- # an Auto Scaling group:
4438
- #
4439
- # 1. (Optional) Create a Lambda function and a rule that allows
4440
- # CloudWatch Events to invoke your Lambda function when Amazon EC2
4441
- # Auto Scaling launches or terminates instances.
4442
- #
4443
- # 2. (Optional) Create a notification target and an IAM role. The
4444
- # target can be either an Amazon SQS queue or an Amazon SNS topic.
4445
- # The role allows Amazon EC2 Auto Scaling to publish lifecycle
4446
- # notifications to the target.
4447
- #
4448
- # 3. **Create the lifecycle hook. Specify whether the hook is used when
4449
- # the instances launch or terminate.**
4450
- #
4451
- # 4. If you need more time, record the lifecycle action heartbeat to
4452
- # keep the instance in a pending state.
4453
- #
4454
- # 5. If you finish before the timeout period ends, complete the
4455
- # lifecycle action.
4456
- #
4457
5090
  # For more information, see [Amazon EC2 Auto Scaling lifecycle hooks][1]
4458
5091
  # in the *Amazon EC2 Auto Scaling User Guide*.
4459
5092
  #
@@ -4634,7 +5267,7 @@ module Aws::AutoScaling
4634
5267
  # the metric specification.
4635
5268
  #
4636
5269
  # @!attribute [rw] timestamps
4637
- # The time stamps for the data points, in UTC format.
5270
+ # The timestamps for the data points, in UTC format.
4638
5271
  # @return [Array<Time>]
4639
5272
  #
4640
5273
  # @!attribute [rw] values
@@ -4655,14 +5288,124 @@ module Aws::AutoScaling
4655
5288
  include Aws::Structure
4656
5289
  end
4657
5290
 
4658
- # Describes a metric.
5291
+ # Specifies the minimum and maximum for the `MemoryGiBPerVCpu` object
5292
+ # when you specify InstanceRequirements for an Auto Scaling group.
4659
5293
  #
4660
- # @!attribute [rw] metric
4661
- # One of the following metrics:
5294
+ # @note When making an API call, you may pass MemoryGiBPerVCpuRequest
5295
+ # data as a hash:
4662
5296
  #
4663
- # * `GroupMinSize`
5297
+ # {
5298
+ # min: 1.0,
5299
+ # max: 1.0,
5300
+ # }
4664
5301
  #
4665
- # * `GroupMaxSize`
5302
+ # @!attribute [rw] min
5303
+ # The memory minimum in GiB.
5304
+ # @return [Float]
5305
+ #
5306
+ # @!attribute [rw] max
5307
+ # The memory maximum in GiB.
5308
+ # @return [Float]
5309
+ #
5310
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/MemoryGiBPerVCpuRequest AWS API Documentation
5311
+ #
5312
+ class MemoryGiBPerVCpuRequest < Struct.new(
5313
+ :min,
5314
+ :max)
5315
+ SENSITIVE = []
5316
+ include Aws::Structure
5317
+ end
5318
+
5319
+ # Specifies the minimum and maximum for the `MemoryMiB` object when you
5320
+ # specify InstanceRequirements for an Auto Scaling group.
5321
+ #
5322
+ # @note When making an API call, you may pass MemoryMiBRequest
5323
+ # data as a hash:
5324
+ #
5325
+ # {
5326
+ # min: 1, # required
5327
+ # max: 1,
5328
+ # }
5329
+ #
5330
+ # @!attribute [rw] min
5331
+ # The memory minimum in MiB.
5332
+ # @return [Integer]
5333
+ #
5334
+ # @!attribute [rw] max
5335
+ # The memory maximum in MiB.
5336
+ # @return [Integer]
5337
+ #
5338
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/MemoryMiBRequest AWS API Documentation
5339
+ #
5340
+ class MemoryMiBRequest < Struct.new(
5341
+ :min,
5342
+ :max)
5343
+ SENSITIVE = []
5344
+ include Aws::Structure
5345
+ end
5346
+
5347
+ # Represents a specific metric.
5348
+ #
5349
+ # @note When making an API call, you may pass Metric
5350
+ # data as a hash:
5351
+ #
5352
+ # {
5353
+ # namespace: "MetricNamespace", # required
5354
+ # metric_name: "MetricName", # required
5355
+ # dimensions: [
5356
+ # {
5357
+ # name: "MetricDimensionName", # required
5358
+ # value: "MetricDimensionValue", # required
5359
+ # },
5360
+ # ],
5361
+ # }
5362
+ #
5363
+ # @!attribute [rw] namespace
5364
+ # The namespace of the metric. For more information, see the table in
5365
+ # [Amazon Web Services services that publish CloudWatch metrics ][1]
5366
+ # in the *Amazon CloudWatch User Guide*.
5367
+ #
5368
+ #
5369
+ #
5370
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html
5371
+ # @return [String]
5372
+ #
5373
+ # @!attribute [rw] metric_name
5374
+ # The name of the metric.
5375
+ # @return [String]
5376
+ #
5377
+ # @!attribute [rw] dimensions
5378
+ # The dimensions for the metric. For the list of available dimensions,
5379
+ # see the Amazon Web Services documentation available from the table
5380
+ # in [Amazon Web Services services that publish CloudWatch metrics
5381
+ # ][1] in the *Amazon CloudWatch User Guide*.
5382
+ #
5383
+ # Conditional: If you published your metric with dimensions, you must
5384
+ # specify the same dimensions in your scaling policy.
5385
+ #
5386
+ #
5387
+ #
5388
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html
5389
+ # @return [Array<Types::MetricDimension>]
5390
+ #
5391
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/Metric AWS API Documentation
5392
+ #
5393
+ class Metric < Struct.new(
5394
+ :namespace,
5395
+ :metric_name,
5396
+ :dimensions)
5397
+ SENSITIVE = []
5398
+ include Aws::Structure
5399
+ end
5400
+
5401
+ # Describes a metric.
5402
+ #
5403
+ # @!attribute [rw] metric
5404
+ # One of the following metrics:
5405
+ #
5406
+ # * `GroupMinSize`
5407
+ #
5408
+ # * `GroupMaxSize`
4666
5409
  #
4667
5410
  # * `GroupDesiredCapacity`
4668
5411
  #
@@ -4709,6 +5452,103 @@ module Aws::AutoScaling
4709
5452
  include Aws::Structure
4710
5453
  end
4711
5454
 
5455
+ # The metric data to return. Also defines whether this call is returning
5456
+ # data for one metric only, or whether it is performing a math
5457
+ # expression on the values of returned metric statistics to create a new
5458
+ # time series. A time series is a series of data points, each of which
5459
+ # is associated with a timestamp.
5460
+ #
5461
+ # For more information and examples, see [Advanced predictive scaling
5462
+ # policy configurations using custom metrics][1] in the *Amazon EC2 Auto
5463
+ # Scaling User Guide*.
5464
+ #
5465
+ #
5466
+ #
5467
+ # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/predictive-scaling-customized-metric-specification.html
5468
+ #
5469
+ # @note When making an API call, you may pass MetricDataQuery
5470
+ # data as a hash:
5471
+ #
5472
+ # {
5473
+ # id: "XmlStringMaxLen255", # required
5474
+ # expression: "XmlStringMaxLen1023",
5475
+ # metric_stat: {
5476
+ # metric: { # required
5477
+ # namespace: "MetricNamespace", # required
5478
+ # metric_name: "MetricName", # required
5479
+ # dimensions: [
5480
+ # {
5481
+ # name: "MetricDimensionName", # required
5482
+ # value: "MetricDimensionValue", # required
5483
+ # },
5484
+ # ],
5485
+ # },
5486
+ # stat: "XmlStringMetricStat", # required
5487
+ # unit: "MetricUnit",
5488
+ # },
5489
+ # label: "XmlStringMetricLabel",
5490
+ # return_data: false,
5491
+ # }
5492
+ #
5493
+ # @!attribute [rw] id
5494
+ # A short name that identifies the object's results in the response.
5495
+ # This name must be unique among all `MetricDataQuery` objects
5496
+ # specified for a single scaling policy. If you are performing math
5497
+ # expressions on this set of data, this name represents that data and
5498
+ # can serve as a variable in the mathematical expression. The valid
5499
+ # characters are letters, numbers, and underscores. The first
5500
+ # character must be a lowercase letter.
5501
+ # @return [String]
5502
+ #
5503
+ # @!attribute [rw] expression
5504
+ # The math expression to perform on the returned data, if this object
5505
+ # is performing a math expression. This expression can use the `Id` of
5506
+ # the other metrics to refer to those metrics, and can also use the
5507
+ # `Id` of other expressions to use the result of those expressions.
5508
+ #
5509
+ # Conditional: Within each `MetricDataQuery` object, you must specify
5510
+ # either `Expression` or `MetricStat`, but not both.
5511
+ # @return [String]
5512
+ #
5513
+ # @!attribute [rw] metric_stat
5514
+ # Information about the metric data to return.
5515
+ #
5516
+ # Conditional: Within each `MetricDataQuery` object, you must specify
5517
+ # either `Expression` or `MetricStat`, but not both.
5518
+ # @return [Types::MetricStat]
5519
+ #
5520
+ # @!attribute [rw] label
5521
+ # A human-readable label for this metric or expression. This is
5522
+ # especially useful if this is a math expression, so that you know
5523
+ # what the value represents.
5524
+ # @return [String]
5525
+ #
5526
+ # @!attribute [rw] return_data
5527
+ # Indicates whether to return the timestamps and raw data values of
5528
+ # this metric.
5529
+ #
5530
+ # If you use any math expressions, specify `true` for this value for
5531
+ # only the final math expression that the metric specification is
5532
+ # based on. You must specify `false` for `ReturnData` for all the
5533
+ # other metrics and expressions used in the metric specification.
5534
+ #
5535
+ # If you are only retrieving metrics and not performing any math
5536
+ # expressions, do not specify anything for `ReturnData`. This sets it
5537
+ # to its default (`true`).
5538
+ # @return [Boolean]
5539
+ #
5540
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/MetricDataQuery AWS API Documentation
5541
+ #
5542
+ class MetricDataQuery < Struct.new(
5543
+ :id,
5544
+ :expression,
5545
+ :metric_stat,
5546
+ :label,
5547
+ :return_data)
5548
+ SENSITIVE = []
5549
+ include Aws::Structure
5550
+ end
5551
+
4712
5552
  # Describes the dimension of a metric.
4713
5553
  #
4714
5554
  # @note When making an API call, you may pass MetricDimension
@@ -4750,16 +5590,89 @@ module Aws::AutoScaling
4750
5590
  include Aws::Structure
4751
5591
  end
4752
5592
 
5593
+ # This structure defines the CloudWatch metric to return, along with the
5594
+ # statistic, period, and unit.
5595
+ #
5596
+ # For more information about the CloudWatch terminology below, see
5597
+ # [Amazon CloudWatch concepts][1] in the *Amazon CloudWatch User Guide*.
5598
+ #
5599
+ #
5600
+ #
5601
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html
5602
+ #
5603
+ # @note When making an API call, you may pass MetricStat
5604
+ # data as a hash:
5605
+ #
5606
+ # {
5607
+ # metric: { # required
5608
+ # namespace: "MetricNamespace", # required
5609
+ # metric_name: "MetricName", # required
5610
+ # dimensions: [
5611
+ # {
5612
+ # name: "MetricDimensionName", # required
5613
+ # value: "MetricDimensionValue", # required
5614
+ # },
5615
+ # ],
5616
+ # },
5617
+ # stat: "XmlStringMetricStat", # required
5618
+ # unit: "MetricUnit",
5619
+ # }
5620
+ #
5621
+ # @!attribute [rw] metric
5622
+ # The CloudWatch metric to return, including the metric name,
5623
+ # namespace, and dimensions. To get the exact metric name, namespace,
5624
+ # and dimensions, inspect the [Metric][1] object that is returned by a
5625
+ # call to [ListMetrics][2].
5626
+ #
5627
+ #
5628
+ #
5629
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html
5630
+ # [2]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html
5631
+ # @return [Types::Metric]
5632
+ #
5633
+ # @!attribute [rw] stat
5634
+ # The statistic to return. It can include any CloudWatch statistic or
5635
+ # extended statistic. For a list of valid values, see the table in
5636
+ # [Statistics][1] in the *Amazon CloudWatch User Guide*.
5637
+ #
5638
+ # The most commonly used metrics for predictive scaling are `Average`
5639
+ # and `Sum`.
5640
+ #
5641
+ #
5642
+ #
5643
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic
5644
+ # @return [String]
5645
+ #
5646
+ # @!attribute [rw] unit
5647
+ # The unit to use for the returned data points. For a complete list of
5648
+ # the units that CloudWatch supports, see the [MetricDatum][1] data
5649
+ # type in the *Amazon CloudWatch API Reference*.
5650
+ #
5651
+ #
5652
+ #
5653
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html
5654
+ # @return [String]
5655
+ #
5656
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/MetricStat AWS API Documentation
5657
+ #
5658
+ class MetricStat < Struct.new(
5659
+ :metric,
5660
+ :stat,
5661
+ :unit)
5662
+ SENSITIVE = []
5663
+ include Aws::Structure
5664
+ end
5665
+
4753
5666
  # Describes a mixed instances policy. A mixed instances policy contains
4754
- # the instance types Amazon EC2 Auto Scaling can launch, and other
4755
- # information Amazon EC2 Auto Scaling can use to launch instances to
4756
- # help you optimize your costs. For more information, see [Auto Scaling
5667
+ # the instance types that Amazon EC2 Auto Scaling can launch and other
5668
+ # information that Amazon EC2 Auto Scaling can use to launch instances
5669
+ # and help optimize your costs. For more information, see [Auto Scaling
4757
5670
  # groups with multiple instance types and purchase options][1] in the
4758
5671
  # *Amazon EC2 Auto Scaling User Guide*.
4759
5672
  #
4760
5673
  #
4761
5674
  #
4762
- # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-purchase-options.html
5675
+ # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups.html
4763
5676
  #
4764
5677
  # @note When making an API call, you may pass MixedInstancesPolicy
4765
5678
  # data as a hash:
@@ -4780,6 +5693,53 @@ module Aws::AutoScaling
4780
5693
  # launch_template_name: "LaunchTemplateName",
4781
5694
  # version: "XmlStringMaxLen255",
4782
5695
  # },
5696
+ # instance_requirements: {
5697
+ # v_cpu_count: { # required
5698
+ # min: 1, # required
5699
+ # max: 1,
5700
+ # },
5701
+ # memory_mi_b: { # required
5702
+ # min: 1, # required
5703
+ # max: 1,
5704
+ # },
5705
+ # cpu_manufacturers: ["intel"], # accepts intel, amd, amazon-web-services
5706
+ # memory_gi_b_per_v_cpu: {
5707
+ # min: 1.0,
5708
+ # max: 1.0,
5709
+ # },
5710
+ # excluded_instance_types: ["ExcludedInstance"],
5711
+ # instance_generations: ["current"], # accepts current, previous
5712
+ # spot_max_price_percentage_over_lowest_price: 1,
5713
+ # on_demand_max_price_percentage_over_lowest_price: 1,
5714
+ # bare_metal: "included", # accepts included, excluded, required
5715
+ # burstable_performance: "included", # accepts included, excluded, required
5716
+ # require_hibernate_support: false,
5717
+ # network_interface_count: {
5718
+ # min: 1,
5719
+ # max: 1,
5720
+ # },
5721
+ # local_storage: "included", # accepts included, excluded, required
5722
+ # local_storage_types: ["hdd"], # accepts hdd, ssd
5723
+ # total_local_storage_gb: {
5724
+ # min: 1.0,
5725
+ # max: 1.0,
5726
+ # },
5727
+ # baseline_ebs_bandwidth_mbps: {
5728
+ # min: 1,
5729
+ # max: 1,
5730
+ # },
5731
+ # accelerator_types: ["gpu"], # accepts gpu, fpga, inference
5732
+ # accelerator_count: {
5733
+ # min: 1,
5734
+ # max: 1,
5735
+ # },
5736
+ # accelerator_manufacturers: ["nvidia"], # accepts nvidia, amd, amazon-web-services, xilinx
5737
+ # accelerator_names: ["a100"], # accepts a100, v100, k80, t4, m60, radeon-pro-v520, vu9p
5738
+ # accelerator_total_memory_mi_b: {
5739
+ # min: 1,
5740
+ # max: 1,
5741
+ # },
5742
+ # },
4783
5743
  # },
4784
5744
  # ],
4785
5745
  # },
@@ -4795,14 +5755,13 @@ module Aws::AutoScaling
4795
5755
  #
4796
5756
  # @!attribute [rw] launch_template
4797
5757
  # Specifies the launch template to use and the instance types
4798
- # (overrides) that are used to provision EC2 instances to fulfill
5758
+ # (overrides) that are used to launch EC2 instances to fulfill
4799
5759
  # On-Demand and Spot capacities. Required when creating a mixed
4800
5760
  # instances policy.
4801
5761
  # @return [Types::LaunchTemplate]
4802
5762
  #
4803
5763
  # @!attribute [rw] instances_distribution
4804
- # Specifies the instances distribution. If not provided, the value for
4805
- # each property in `InstancesDistribution` uses a default value.
5764
+ # Specifies the instances distribution.
4806
5765
  # @return [Types::InstancesDistribution]
4807
5766
  #
4808
5767
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/MixedInstancesPolicy AWS API Documentation
@@ -4814,6 +5773,35 @@ module Aws::AutoScaling
4814
5773
  include Aws::Structure
4815
5774
  end
4816
5775
 
5776
+ # Specifies the minimum and maximum for the `NetworkInterfaceCount`
5777
+ # object when you specify InstanceRequirements for an Auto Scaling
5778
+ # group.
5779
+ #
5780
+ # @note When making an API call, you may pass NetworkInterfaceCountRequest
5781
+ # data as a hash:
5782
+ #
5783
+ # {
5784
+ # min: 1,
5785
+ # max: 1,
5786
+ # }
5787
+ #
5788
+ # @!attribute [rw] min
5789
+ # The minimum number of network interfaces.
5790
+ # @return [Integer]
5791
+ #
5792
+ # @!attribute [rw] max
5793
+ # The maximum number of network interfaces.
5794
+ # @return [Integer]
5795
+ #
5796
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/NetworkInterfaceCountRequest AWS API Documentation
5797
+ #
5798
+ class NetworkInterfaceCountRequest < Struct.new(
5799
+ :min,
5800
+ :max)
5801
+ SENSITIVE = []
5802
+ include Aws::Structure
5803
+ end
5804
+
4817
5805
  # Describes a notification.
4818
5806
  #
4819
5807
  # @!attribute [rw] auto_scaling_group_name
@@ -4821,8 +5809,7 @@ module Aws::AutoScaling
4821
5809
  # @return [String]
4822
5810
  #
4823
5811
  # @!attribute [rw] topic_arn
4824
- # The Amazon Resource Name (ARN) of the Amazon Simple Notification
4825
- # Service (Amazon SNS) topic.
5812
+ # The Amazon Resource Name (ARN) of the Amazon SNS topic.
4826
5813
  # @return [String]
4827
5814
  #
4828
5815
  # @!attribute [rw] notification_type
@@ -4980,6 +5967,78 @@ module Aws::AutoScaling
4980
5967
  # predefined_metric_type: "ASGTotalCPUUtilization", # required, accepts ASGTotalCPUUtilization, ASGTotalNetworkIn, ASGTotalNetworkOut, ALBTargetGroupRequestCount
4981
5968
  # resource_label: "XmlStringMaxLen1023",
4982
5969
  # },
5970
+ # customized_scaling_metric_specification: {
5971
+ # metric_data_queries: [ # required
5972
+ # {
5973
+ # id: "XmlStringMaxLen255", # required
5974
+ # expression: "XmlStringMaxLen1023",
5975
+ # metric_stat: {
5976
+ # metric: { # required
5977
+ # namespace: "MetricNamespace", # required
5978
+ # metric_name: "MetricName", # required
5979
+ # dimensions: [
5980
+ # {
5981
+ # name: "MetricDimensionName", # required
5982
+ # value: "MetricDimensionValue", # required
5983
+ # },
5984
+ # ],
5985
+ # },
5986
+ # stat: "XmlStringMetricStat", # required
5987
+ # unit: "MetricUnit",
5988
+ # },
5989
+ # label: "XmlStringMetricLabel",
5990
+ # return_data: false,
5991
+ # },
5992
+ # ],
5993
+ # },
5994
+ # customized_load_metric_specification: {
5995
+ # metric_data_queries: [ # required
5996
+ # {
5997
+ # id: "XmlStringMaxLen255", # required
5998
+ # expression: "XmlStringMaxLen1023",
5999
+ # metric_stat: {
6000
+ # metric: { # required
6001
+ # namespace: "MetricNamespace", # required
6002
+ # metric_name: "MetricName", # required
6003
+ # dimensions: [
6004
+ # {
6005
+ # name: "MetricDimensionName", # required
6006
+ # value: "MetricDimensionValue", # required
6007
+ # },
6008
+ # ],
6009
+ # },
6010
+ # stat: "XmlStringMetricStat", # required
6011
+ # unit: "MetricUnit",
6012
+ # },
6013
+ # label: "XmlStringMetricLabel",
6014
+ # return_data: false,
6015
+ # },
6016
+ # ],
6017
+ # },
6018
+ # customized_capacity_metric_specification: {
6019
+ # metric_data_queries: [ # required
6020
+ # {
6021
+ # id: "XmlStringMaxLen255", # required
6022
+ # expression: "XmlStringMaxLen1023",
6023
+ # metric_stat: {
6024
+ # metric: { # required
6025
+ # namespace: "MetricNamespace", # required
6026
+ # metric_name: "MetricName", # required
6027
+ # dimensions: [
6028
+ # {
6029
+ # name: "MetricDimensionName", # required
6030
+ # value: "MetricDimensionValue", # required
6031
+ # },
6032
+ # ],
6033
+ # },
6034
+ # stat: "XmlStringMetricStat", # required
6035
+ # unit: "MetricUnit",
6036
+ # },
6037
+ # label: "XmlStringMetricLabel",
6038
+ # return_data: false,
6039
+ # },
6040
+ # ],
6041
+ # },
4983
6042
  # },
4984
6043
  # ],
4985
6044
  # mode: "ForecastAndScale", # accepts ForecastAndScale, ForecastOnly
@@ -5062,6 +6121,139 @@ module Aws::AutoScaling
5062
6121
  include Aws::Structure
5063
6122
  end
5064
6123
 
6124
+ # Describes a customized capacity metric for a predictive scaling
6125
+ # policy.
6126
+ #
6127
+ # @note When making an API call, you may pass PredictiveScalingCustomizedCapacityMetric
6128
+ # data as a hash:
6129
+ #
6130
+ # {
6131
+ # metric_data_queries: [ # required
6132
+ # {
6133
+ # id: "XmlStringMaxLen255", # required
6134
+ # expression: "XmlStringMaxLen1023",
6135
+ # metric_stat: {
6136
+ # metric: { # required
6137
+ # namespace: "MetricNamespace", # required
6138
+ # metric_name: "MetricName", # required
6139
+ # dimensions: [
6140
+ # {
6141
+ # name: "MetricDimensionName", # required
6142
+ # value: "MetricDimensionValue", # required
6143
+ # },
6144
+ # ],
6145
+ # },
6146
+ # stat: "XmlStringMetricStat", # required
6147
+ # unit: "MetricUnit",
6148
+ # },
6149
+ # label: "XmlStringMetricLabel",
6150
+ # return_data: false,
6151
+ # },
6152
+ # ],
6153
+ # }
6154
+ #
6155
+ # @!attribute [rw] metric_data_queries
6156
+ # One or more metric data queries to provide the data points for a
6157
+ # capacity metric. Use multiple metric data queries only if you are
6158
+ # performing a math expression on returned data.
6159
+ # @return [Array<Types::MetricDataQuery>]
6160
+ #
6161
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PredictiveScalingCustomizedCapacityMetric AWS API Documentation
6162
+ #
6163
+ class PredictiveScalingCustomizedCapacityMetric < Struct.new(
6164
+ :metric_data_queries)
6165
+ SENSITIVE = []
6166
+ include Aws::Structure
6167
+ end
6168
+
6169
+ # Describes a custom load metric for a predictive scaling policy.
6170
+ #
6171
+ # @note When making an API call, you may pass PredictiveScalingCustomizedLoadMetric
6172
+ # data as a hash:
6173
+ #
6174
+ # {
6175
+ # metric_data_queries: [ # required
6176
+ # {
6177
+ # id: "XmlStringMaxLen255", # required
6178
+ # expression: "XmlStringMaxLen1023",
6179
+ # metric_stat: {
6180
+ # metric: { # required
6181
+ # namespace: "MetricNamespace", # required
6182
+ # metric_name: "MetricName", # required
6183
+ # dimensions: [
6184
+ # {
6185
+ # name: "MetricDimensionName", # required
6186
+ # value: "MetricDimensionValue", # required
6187
+ # },
6188
+ # ],
6189
+ # },
6190
+ # stat: "XmlStringMetricStat", # required
6191
+ # unit: "MetricUnit",
6192
+ # },
6193
+ # label: "XmlStringMetricLabel",
6194
+ # return_data: false,
6195
+ # },
6196
+ # ],
6197
+ # }
6198
+ #
6199
+ # @!attribute [rw] metric_data_queries
6200
+ # One or more metric data queries to provide the data points for a
6201
+ # load metric. Use multiple metric data queries only if you are
6202
+ # performing a math expression on returned data.
6203
+ # @return [Array<Types::MetricDataQuery>]
6204
+ #
6205
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PredictiveScalingCustomizedLoadMetric AWS API Documentation
6206
+ #
6207
+ class PredictiveScalingCustomizedLoadMetric < Struct.new(
6208
+ :metric_data_queries)
6209
+ SENSITIVE = []
6210
+ include Aws::Structure
6211
+ end
6212
+
6213
+ # Describes a custom scaling metric for a predictive scaling policy.
6214
+ #
6215
+ # @note When making an API call, you may pass PredictiveScalingCustomizedScalingMetric
6216
+ # data as a hash:
6217
+ #
6218
+ # {
6219
+ # metric_data_queries: [ # required
6220
+ # {
6221
+ # id: "XmlStringMaxLen255", # required
6222
+ # expression: "XmlStringMaxLen1023",
6223
+ # metric_stat: {
6224
+ # metric: { # required
6225
+ # namespace: "MetricNamespace", # required
6226
+ # metric_name: "MetricName", # required
6227
+ # dimensions: [
6228
+ # {
6229
+ # name: "MetricDimensionName", # required
6230
+ # value: "MetricDimensionValue", # required
6231
+ # },
6232
+ # ],
6233
+ # },
6234
+ # stat: "XmlStringMetricStat", # required
6235
+ # unit: "MetricUnit",
6236
+ # },
6237
+ # label: "XmlStringMetricLabel",
6238
+ # return_data: false,
6239
+ # },
6240
+ # ],
6241
+ # }
6242
+ #
6243
+ # @!attribute [rw] metric_data_queries
6244
+ # One or more metric data queries to provide the data points for a
6245
+ # scaling metric. Use multiple metric data queries only if you are
6246
+ # performing a math expression on returned data.
6247
+ # @return [Array<Types::MetricDataQuery>]
6248
+ #
6249
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PredictiveScalingCustomizedScalingMetric AWS API Documentation
6250
+ #
6251
+ class PredictiveScalingCustomizedScalingMetric < Struct.new(
6252
+ :metric_data_queries)
6253
+ SENSITIVE = []
6254
+ include Aws::Structure
6255
+ end
6256
+
5065
6257
  # This structure specifies the metrics and target utilization settings
5066
6258
  # for a predictive scaling policy.
5067
6259
  #
@@ -5102,6 +6294,14 @@ module Aws::AutoScaling
5102
6294
  # requests received by each instance is as close to 1000 requests per
5103
6295
  # minute as possible at all times.
5104
6296
  #
6297
+ # For information about using custom metrics with predictive scaling,
6298
+ # see [Advanced predictive scaling policy configurations using custom
6299
+ # metrics][1] in the *Amazon EC2 Auto Scaling User Guide*.
6300
+ #
6301
+ #
6302
+ #
6303
+ # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/predictive-scaling-customized-metric-specification.html
6304
+ #
5105
6305
  # @note When making an API call, you may pass PredictiveScalingMetricSpecification
5106
6306
  # data as a hash:
5107
6307
  #
@@ -5119,32 +6319,129 @@ module Aws::AutoScaling
5119
6319
  # predefined_metric_type: "ASGTotalCPUUtilization", # required, accepts ASGTotalCPUUtilization, ASGTotalNetworkIn, ASGTotalNetworkOut, ALBTargetGroupRequestCount
5120
6320
  # resource_label: "XmlStringMaxLen1023",
5121
6321
  # },
6322
+ # customized_scaling_metric_specification: {
6323
+ # metric_data_queries: [ # required
6324
+ # {
6325
+ # id: "XmlStringMaxLen255", # required
6326
+ # expression: "XmlStringMaxLen1023",
6327
+ # metric_stat: {
6328
+ # metric: { # required
6329
+ # namespace: "MetricNamespace", # required
6330
+ # metric_name: "MetricName", # required
6331
+ # dimensions: [
6332
+ # {
6333
+ # name: "MetricDimensionName", # required
6334
+ # value: "MetricDimensionValue", # required
6335
+ # },
6336
+ # ],
6337
+ # },
6338
+ # stat: "XmlStringMetricStat", # required
6339
+ # unit: "MetricUnit",
6340
+ # },
6341
+ # label: "XmlStringMetricLabel",
6342
+ # return_data: false,
6343
+ # },
6344
+ # ],
6345
+ # },
6346
+ # customized_load_metric_specification: {
6347
+ # metric_data_queries: [ # required
6348
+ # {
6349
+ # id: "XmlStringMaxLen255", # required
6350
+ # expression: "XmlStringMaxLen1023",
6351
+ # metric_stat: {
6352
+ # metric: { # required
6353
+ # namespace: "MetricNamespace", # required
6354
+ # metric_name: "MetricName", # required
6355
+ # dimensions: [
6356
+ # {
6357
+ # name: "MetricDimensionName", # required
6358
+ # value: "MetricDimensionValue", # required
6359
+ # },
6360
+ # ],
6361
+ # },
6362
+ # stat: "XmlStringMetricStat", # required
6363
+ # unit: "MetricUnit",
6364
+ # },
6365
+ # label: "XmlStringMetricLabel",
6366
+ # return_data: false,
6367
+ # },
6368
+ # ],
6369
+ # },
6370
+ # customized_capacity_metric_specification: {
6371
+ # metric_data_queries: [ # required
6372
+ # {
6373
+ # id: "XmlStringMaxLen255", # required
6374
+ # expression: "XmlStringMaxLen1023",
6375
+ # metric_stat: {
6376
+ # metric: { # required
6377
+ # namespace: "MetricNamespace", # required
6378
+ # metric_name: "MetricName", # required
6379
+ # dimensions: [
6380
+ # {
6381
+ # name: "MetricDimensionName", # required
6382
+ # value: "MetricDimensionValue", # required
6383
+ # },
6384
+ # ],
6385
+ # },
6386
+ # stat: "XmlStringMetricStat", # required
6387
+ # unit: "MetricUnit",
6388
+ # },
6389
+ # label: "XmlStringMetricLabel",
6390
+ # return_data: false,
6391
+ # },
6392
+ # ],
6393
+ # },
5122
6394
  # }
5123
6395
  #
5124
6396
  # @!attribute [rw] target_value
5125
6397
  # Specifies the target utilization.
6398
+ #
6399
+ # <note markdown="1"> Some metrics are based on a count instead of a percentage, such as
6400
+ # the request count for an Application Load Balancer or the number of
6401
+ # messages in an SQS queue. If the scaling policy specifies one of
6402
+ # these metrics, specify the target utilization as the optimal average
6403
+ # request or message count per instance during any one-minute
6404
+ # interval.
6405
+ #
6406
+ # </note>
5126
6407
  # @return [Float]
5127
6408
  #
5128
6409
  # @!attribute [rw] predefined_metric_pair_specification
5129
- # The metric pair specification from which Amazon EC2 Auto Scaling
5130
- # determines the appropriate scaling metric and load metric to use.
6410
+ # The predefined metric pair specification from which Amazon EC2 Auto
6411
+ # Scaling determines the appropriate scaling metric and load metric to
6412
+ # use.
5131
6413
  # @return [Types::PredictiveScalingPredefinedMetricPair]
5132
6414
  #
5133
6415
  # @!attribute [rw] predefined_scaling_metric_specification
5134
- # The scaling metric specification.
6416
+ # The predefined scaling metric specification.
5135
6417
  # @return [Types::PredictiveScalingPredefinedScalingMetric]
5136
6418
  #
5137
6419
  # @!attribute [rw] predefined_load_metric_specification
5138
- # The load metric specification.
6420
+ # The predefined load metric specification.
5139
6421
  # @return [Types::PredictiveScalingPredefinedLoadMetric]
5140
6422
  #
6423
+ # @!attribute [rw] customized_scaling_metric_specification
6424
+ # The customized scaling metric specification.
6425
+ # @return [Types::PredictiveScalingCustomizedScalingMetric]
6426
+ #
6427
+ # @!attribute [rw] customized_load_metric_specification
6428
+ # The customized load metric specification.
6429
+ # @return [Types::PredictiveScalingCustomizedLoadMetric]
6430
+ #
6431
+ # @!attribute [rw] customized_capacity_metric_specification
6432
+ # The customized capacity metric specification.
6433
+ # @return [Types::PredictiveScalingCustomizedCapacityMetric]
6434
+ #
5141
6435
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PredictiveScalingMetricSpecification AWS API Documentation
5142
6436
  #
5143
6437
  class PredictiveScalingMetricSpecification < Struct.new(
5144
6438
  :target_value,
5145
6439
  :predefined_metric_pair_specification,
5146
6440
  :predefined_scaling_metric_specification,
5147
- :predefined_load_metric_specification)
6441
+ :predefined_load_metric_specification,
6442
+ :customized_scaling_metric_specification,
6443
+ :customized_load_metric_specification,
6444
+ :customized_capacity_metric_specification)
5148
6445
  SENSITIVE = []
5149
6446
  include Aws::Structure
5150
6447
  end
@@ -5494,8 +6791,7 @@ module Aws::AutoScaling
5494
6791
  # @return [String]
5495
6792
  #
5496
6793
  # @!attribute [rw] topic_arn
5497
- # The Amazon Resource Name (ARN) of the Amazon Simple Notification
5498
- # Service (Amazon SNS) topic.
6794
+ # The Amazon Resource Name (ARN) of the Amazon SNS topic.
5499
6795
  # @return [String]
5500
6796
  #
5501
6797
  # @!attribute [rw] notification_types
@@ -5572,6 +6868,78 @@ module Aws::AutoScaling
5572
6868
  # predefined_metric_type: "ASGTotalCPUUtilization", # required, accepts ASGTotalCPUUtilization, ASGTotalNetworkIn, ASGTotalNetworkOut, ALBTargetGroupRequestCount
5573
6869
  # resource_label: "XmlStringMaxLen1023",
5574
6870
  # },
6871
+ # customized_scaling_metric_specification: {
6872
+ # metric_data_queries: [ # required
6873
+ # {
6874
+ # id: "XmlStringMaxLen255", # required
6875
+ # expression: "XmlStringMaxLen1023",
6876
+ # metric_stat: {
6877
+ # metric: { # required
6878
+ # namespace: "MetricNamespace", # required
6879
+ # metric_name: "MetricName", # required
6880
+ # dimensions: [
6881
+ # {
6882
+ # name: "MetricDimensionName", # required
6883
+ # value: "MetricDimensionValue", # required
6884
+ # },
6885
+ # ],
6886
+ # },
6887
+ # stat: "XmlStringMetricStat", # required
6888
+ # unit: "MetricUnit",
6889
+ # },
6890
+ # label: "XmlStringMetricLabel",
6891
+ # return_data: false,
6892
+ # },
6893
+ # ],
6894
+ # },
6895
+ # customized_load_metric_specification: {
6896
+ # metric_data_queries: [ # required
6897
+ # {
6898
+ # id: "XmlStringMaxLen255", # required
6899
+ # expression: "XmlStringMaxLen1023",
6900
+ # metric_stat: {
6901
+ # metric: { # required
6902
+ # namespace: "MetricNamespace", # required
6903
+ # metric_name: "MetricName", # required
6904
+ # dimensions: [
6905
+ # {
6906
+ # name: "MetricDimensionName", # required
6907
+ # value: "MetricDimensionValue", # required
6908
+ # },
6909
+ # ],
6910
+ # },
6911
+ # stat: "XmlStringMetricStat", # required
6912
+ # unit: "MetricUnit",
6913
+ # },
6914
+ # label: "XmlStringMetricLabel",
6915
+ # return_data: false,
6916
+ # },
6917
+ # ],
6918
+ # },
6919
+ # customized_capacity_metric_specification: {
6920
+ # metric_data_queries: [ # required
6921
+ # {
6922
+ # id: "XmlStringMaxLen255", # required
6923
+ # expression: "XmlStringMaxLen1023",
6924
+ # metric_stat: {
6925
+ # metric: { # required
6926
+ # namespace: "MetricNamespace", # required
6927
+ # metric_name: "MetricName", # required
6928
+ # dimensions: [
6929
+ # {
6930
+ # name: "MetricDimensionName", # required
6931
+ # value: "MetricDimensionValue", # required
6932
+ # },
6933
+ # ],
6934
+ # },
6935
+ # stat: "XmlStringMetricStat", # required
6936
+ # unit: "MetricUnit",
6937
+ # },
6938
+ # label: "XmlStringMetricLabel",
6939
+ # return_data: false,
6940
+ # },
6941
+ # ],
6942
+ # },
5575
6943
  # },
5576
6944
  # ],
5577
6945
  # mode: "ForecastAndScale", # accepts ForecastAndScale, ForecastOnly
@@ -5696,7 +7064,7 @@ module Aws::AutoScaling
5696
7064
  #
5697
7065
  # @!attribute [rw] target_tracking_configuration
5698
7066
  # A target tracking scaling policy. Provides support for predefined or
5699
- # customized metrics.
7067
+ # custom metrics.
5700
7068
  #
5701
7069
  # The following predefined metrics are available:
5702
7070
  #
@@ -5734,11 +7102,11 @@ module Aws::AutoScaling
5734
7102
  # @return [Boolean]
5735
7103
  #
5736
7104
  # @!attribute [rw] predictive_scaling_configuration
5737
- # A predictive scaling policy. Provides support for only predefined
5738
- # metrics.
7105
+ # A predictive scaling policy. Provides support for predefined and
7106
+ # custom metrics.
5739
7107
  #
5740
- # Predictive scaling works with CPU utilization, network in/out, and
5741
- # the Application Load Balancer request count.
7108
+ # Predefined metrics include CPU utilization, network in/out, and the
7109
+ # Application Load Balancer request count.
5742
7110
  #
5743
7111
  # For more information, see [PredictiveScalingConfiguration][1] in the
5744
7112
  # *Amazon EC2 Auto Scaling API Reference*.
@@ -6629,6 +7997,53 @@ module Aws::AutoScaling
6629
7997
  # launch_template_name: "LaunchTemplateName",
6630
7998
  # version: "XmlStringMaxLen255",
6631
7999
  # },
8000
+ # instance_requirements: {
8001
+ # v_cpu_count: { # required
8002
+ # min: 1, # required
8003
+ # max: 1,
8004
+ # },
8005
+ # memory_mi_b: { # required
8006
+ # min: 1, # required
8007
+ # max: 1,
8008
+ # },
8009
+ # cpu_manufacturers: ["intel"], # accepts intel, amd, amazon-web-services
8010
+ # memory_gi_b_per_v_cpu: {
8011
+ # min: 1.0,
8012
+ # max: 1.0,
8013
+ # },
8014
+ # excluded_instance_types: ["ExcludedInstance"],
8015
+ # instance_generations: ["current"], # accepts current, previous
8016
+ # spot_max_price_percentage_over_lowest_price: 1,
8017
+ # on_demand_max_price_percentage_over_lowest_price: 1,
8018
+ # bare_metal: "included", # accepts included, excluded, required
8019
+ # burstable_performance: "included", # accepts included, excluded, required
8020
+ # require_hibernate_support: false,
8021
+ # network_interface_count: {
8022
+ # min: 1,
8023
+ # max: 1,
8024
+ # },
8025
+ # local_storage: "included", # accepts included, excluded, required
8026
+ # local_storage_types: ["hdd"], # accepts hdd, ssd
8027
+ # total_local_storage_gb: {
8028
+ # min: 1.0,
8029
+ # max: 1.0,
8030
+ # },
8031
+ # baseline_ebs_bandwidth_mbps: {
8032
+ # min: 1,
8033
+ # max: 1,
8034
+ # },
8035
+ # accelerator_types: ["gpu"], # accepts gpu, fpga, inference
8036
+ # accelerator_count: {
8037
+ # min: 1,
8038
+ # max: 1,
8039
+ # },
8040
+ # accelerator_manufacturers: ["nvidia"], # accepts nvidia, amd, amazon-web-services, xilinx
8041
+ # accelerator_names: ["a100"], # accepts a100, v100, k80, t4, m60, radeon-pro-v520, vu9p
8042
+ # accelerator_total_memory_mi_b: {
8043
+ # min: 1,
8044
+ # max: 1,
8045
+ # },
8046
+ # },
6632
8047
  # },
6633
8048
  # ],
6634
8049
  # },
@@ -6999,6 +8414,34 @@ module Aws::AutoScaling
6999
8414
  include Aws::Structure
7000
8415
  end
7001
8416
 
8417
+ # Specifies the minimum and maximum for the `TotalLocalStorageGB` object
8418
+ # when you specify InstanceRequirements for an Auto Scaling group.
8419
+ #
8420
+ # @note When making an API call, you may pass TotalLocalStorageGBRequest
8421
+ # data as a hash:
8422
+ #
8423
+ # {
8424
+ # min: 1.0,
8425
+ # max: 1.0,
8426
+ # }
8427
+ #
8428
+ # @!attribute [rw] min
8429
+ # The storage minimum in GB.
8430
+ # @return [Float]
8431
+ #
8432
+ # @!attribute [rw] max
8433
+ # The storage maximum in GB.
8434
+ # @return [Float]
8435
+ #
8436
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/TotalLocalStorageGBRequest AWS API Documentation
8437
+ #
8438
+ class TotalLocalStorageGBRequest < Struct.new(
8439
+ :min,
8440
+ :max)
8441
+ SENSITIVE = []
8442
+ include Aws::Structure
8443
+ end
8444
+
7002
8445
  # @note When making an API call, you may pass UpdateAutoScalingGroupType
7003
8446
  # data as a hash:
7004
8447
  #
@@ -7026,6 +8469,53 @@ module Aws::AutoScaling
7026
8469
  # launch_template_name: "LaunchTemplateName",
7027
8470
  # version: "XmlStringMaxLen255",
7028
8471
  # },
8472
+ # instance_requirements: {
8473
+ # v_cpu_count: { # required
8474
+ # min: 1, # required
8475
+ # max: 1,
8476
+ # },
8477
+ # memory_mi_b: { # required
8478
+ # min: 1, # required
8479
+ # max: 1,
8480
+ # },
8481
+ # cpu_manufacturers: ["intel"], # accepts intel, amd, amazon-web-services
8482
+ # memory_gi_b_per_v_cpu: {
8483
+ # min: 1.0,
8484
+ # max: 1.0,
8485
+ # },
8486
+ # excluded_instance_types: ["ExcludedInstance"],
8487
+ # instance_generations: ["current"], # accepts current, previous
8488
+ # spot_max_price_percentage_over_lowest_price: 1,
8489
+ # on_demand_max_price_percentage_over_lowest_price: 1,
8490
+ # bare_metal: "included", # accepts included, excluded, required
8491
+ # burstable_performance: "included", # accepts included, excluded, required
8492
+ # require_hibernate_support: false,
8493
+ # network_interface_count: {
8494
+ # min: 1,
8495
+ # max: 1,
8496
+ # },
8497
+ # local_storage: "included", # accepts included, excluded, required
8498
+ # local_storage_types: ["hdd"], # accepts hdd, ssd
8499
+ # total_local_storage_gb: {
8500
+ # min: 1.0,
8501
+ # max: 1.0,
8502
+ # },
8503
+ # baseline_ebs_bandwidth_mbps: {
8504
+ # min: 1,
8505
+ # max: 1,
8506
+ # },
8507
+ # accelerator_types: ["gpu"], # accepts gpu, fpga, inference
8508
+ # accelerator_count: {
8509
+ # min: 1,
8510
+ # max: 1,
8511
+ # },
8512
+ # accelerator_manufacturers: ["nvidia"], # accepts nvidia, amd, amazon-web-services, xilinx
8513
+ # accelerator_names: ["a100"], # accepts a100, v100, k80, t4, m60, radeon-pro-v520, vu9p
8514
+ # accelerator_total_memory_mi_b: {
8515
+ # min: 1,
8516
+ # max: 1,
8517
+ # },
8518
+ # },
7029
8519
  # },
7030
8520
  # ],
7031
8521
  # },
@@ -7053,6 +8543,7 @@ module Aws::AutoScaling
7053
8543
  # max_instance_lifetime: 1,
7054
8544
  # capacity_rebalance: false,
7055
8545
  # context: "Context",
8546
+ # desired_capacity_type: "XmlStringMaxLen255",
7056
8547
  # }
7057
8548
  #
7058
8549
  # @!attribute [rw] auto_scaling_group_name
@@ -7072,15 +8563,14 @@ module Aws::AutoScaling
7072
8563
  # @return [Types::LaunchTemplateSpecification]
7073
8564
  #
7074
8565
  # @!attribute [rw] mixed_instances_policy
7075
- # An embedded object that specifies a mixed instances policy. When you
7076
- # make changes to an existing policy, all optional properties are left
7077
- # unchanged if not specified. For more information, see [Auto Scaling
7078
- # groups with multiple instance types and purchase options][1] in the
7079
- # *Amazon EC2 Auto Scaling User Guide*.
8566
+ # An embedded object that specifies a mixed instances policy. For more
8567
+ # information, see [Auto Scaling groups with multiple instance types
8568
+ # and purchase options][1] in the *Amazon EC2 Auto Scaling User
8569
+ # Guide*.
7080
8570
  #
7081
8571
  #
7082
8572
  #
7083
- # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-purchase-options.html
8573
+ # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-mixed-instances-groups.html
7084
8574
  # @return [Types::MixedInstancesPolicy]
7085
8575
  #
7086
8576
  # @!attribute [rw] min_size
@@ -7135,9 +8625,9 @@ module Aws::AutoScaling
7135
8625
  # @!attribute [rw] health_check_grace_period
7136
8626
  # The amount of time, in seconds, that Amazon EC2 Auto Scaling waits
7137
8627
  # before checking the health status of an EC2 instance that has come
7138
- # into service. The default value is `0`. For more information, see
7139
- # [Health check grace period][1] in the *Amazon EC2 Auto Scaling User
7140
- # Guide*.
8628
+ # into service and marking it unhealthy due to a failed health check.
8629
+ # The default value is `0`. For more information, see [Health check
8630
+ # grace period][1] in the *Amazon EC2 Auto Scaling User Guide*.
7141
8631
  #
7142
8632
  # Conditional: Required if you are adding an `ELB` health check.
7143
8633
  #
@@ -7182,12 +8672,12 @@ module Aws::AutoScaling
7182
8672
  # Indicates whether newly launched instances are protected from
7183
8673
  # termination by Amazon EC2 Auto Scaling when scaling in. For more
7184
8674
  # information about preventing instances from terminating on scale in,
7185
- # see [Instance scale-in protection][1] in the *Amazon EC2 Auto
8675
+ # see [Using instance scale-in protection][1] in the *Amazon EC2 Auto
7186
8676
  # Scaling User Guide*.
7187
8677
  #
7188
8678
  #
7189
8679
  #
7190
- # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/as-instance-termination.html#instance-protection
8680
+ # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-instance-protection.html
7191
8681
  # @return [Boolean]
7192
8682
  #
7193
8683
  # @!attribute [rw] service_linked_role_arn
@@ -7221,13 +8711,30 @@ module Aws::AutoScaling
7221
8711
  #
7222
8712
  #
7223
8713
  #
7224
- # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/capacity-rebalance.html
8714
+ # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-capacity-rebalancing.html
7225
8715
  # @return [Boolean]
7226
8716
  #
7227
8717
  # @!attribute [rw] context
7228
8718
  # Reserved.
7229
8719
  # @return [String]
7230
8720
  #
8721
+ # @!attribute [rw] desired_capacity_type
8722
+ # The unit of measurement for the value specified for desired
8723
+ # capacity. Amazon EC2 Auto Scaling supports `DesiredCapacityType` for
8724
+ # attribute-based instance type selection only. For more information,
8725
+ # see [Creating an Auto Scaling group using attribute-based instance
8726
+ # type selection][1] in the *Amazon EC2 Auto Scaling User Guide*.
8727
+ #
8728
+ # By default, Amazon EC2 Auto Scaling specifies `units`, which
8729
+ # translates into number of instances.
8730
+ #
8731
+ # Valid values: `units` \| `vcpu` \| `memory-mib`
8732
+ #
8733
+ #
8734
+ #
8735
+ # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html
8736
+ # @return [String]
8737
+ #
7231
8738
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/UpdateAutoScalingGroupType AWS API Documentation
7232
8739
  #
7233
8740
  class UpdateAutoScalingGroupType < Struct.new(
@@ -7249,7 +8756,36 @@ module Aws::AutoScaling
7249
8756
  :service_linked_role_arn,
7250
8757
  :max_instance_lifetime,
7251
8758
  :capacity_rebalance,
7252
- :context)
8759
+ :context,
8760
+ :desired_capacity_type)
8761
+ SENSITIVE = []
8762
+ include Aws::Structure
8763
+ end
8764
+
8765
+ # Specifies the minimum and maximum for the `VCpuCount` object when you
8766
+ # specify InstanceRequirements for an Auto Scaling group.
8767
+ #
8768
+ # @note When making an API call, you may pass VCpuCountRequest
8769
+ # data as a hash:
8770
+ #
8771
+ # {
8772
+ # min: 1, # required
8773
+ # max: 1,
8774
+ # }
8775
+ #
8776
+ # @!attribute [rw] min
8777
+ # The minimum number of vCPUs.
8778
+ # @return [Integer]
8779
+ #
8780
+ # @!attribute [rw] max
8781
+ # The maximum number of vCPUs.
8782
+ # @return [Integer]
8783
+ #
8784
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/VCpuCountRequest AWS API Documentation
8785
+ #
8786
+ class VCpuCountRequest < Struct.new(
8787
+ :min,
8788
+ :max)
7253
8789
  SENSITIVE = []
7254
8790
  include Aws::Structure
7255
8791
  end