aws-sdk-autoscaling 1.70.0 → 1.74.0

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