aws-sdk-autoscaling 1.70.0 → 1.71.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
  #
@@ -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.
@@ -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,20 +1144,11 @@ 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
  #
@@ -1240,6 +1383,23 @@ module Aws::AutoScaling
1240
1383
  # Reserved.
1241
1384
  # @return [String]
1242
1385
  #
1386
+ # @!attribute [rw] desired_capacity_type
1387
+ # The unit of measurement for the value specified for desired
1388
+ # capacity. Amazon EC2 Auto Scaling supports `DesiredCapacityType` for
1389
+ # attribute-based instance type selection only. For more information,
1390
+ # see [Creating an Auto Scaling group using attribute-based instance
1391
+ # type selection][1] in the *Amazon EC2 Auto Scaling User Guide*.
1392
+ #
1393
+ # By default, Amazon EC2 Auto Scaling specifies `units`, which
1394
+ # translates into number of instances.
1395
+ #
1396
+ # Valid values: `units` \| `vcpu` \| `memory-mib`
1397
+ #
1398
+ #
1399
+ #
1400
+ # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html
1401
+ # @return [String]
1402
+ #
1243
1403
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/CreateAutoScalingGroupType AWS API Documentation
1244
1404
  #
1245
1405
  class CreateAutoScalingGroupType < Struct.new(
@@ -1266,7 +1426,8 @@ module Aws::AutoScaling
1266
1426
  :tags,
1267
1427
  :service_linked_role_arn,
1268
1428
  :max_instance_lifetime,
1269
- :context)
1429
+ :context,
1430
+ :desired_capacity_type)
1270
1431
  SENSITIVE = []
1271
1432
  include Aws::Structure
1272
1433
  end
@@ -2584,6 +2745,53 @@ module Aws::AutoScaling
2584
2745
  # launch_template_name: "LaunchTemplateName",
2585
2746
  # version: "XmlStringMaxLen255",
2586
2747
  # },
2748
+ # instance_requirements: {
2749
+ # v_cpu_count: { # required
2750
+ # min: 1, # required
2751
+ # max: 1,
2752
+ # },
2753
+ # memory_mi_b: { # required
2754
+ # min: 1, # required
2755
+ # max: 1,
2756
+ # },
2757
+ # cpu_manufacturers: ["intel"], # accepts intel, amd, amazon-web-services
2758
+ # memory_gi_b_per_v_cpu: {
2759
+ # min: 1.0,
2760
+ # max: 1.0,
2761
+ # },
2762
+ # excluded_instance_types: ["ExcludedInstance"],
2763
+ # instance_generations: ["current"], # accepts current, previous
2764
+ # spot_max_price_percentage_over_lowest_price: 1,
2765
+ # on_demand_max_price_percentage_over_lowest_price: 1,
2766
+ # bare_metal: "included", # accepts included, excluded, required
2767
+ # burstable_performance: "included", # accepts included, excluded, required
2768
+ # require_hibernate_support: false,
2769
+ # network_interface_count: {
2770
+ # min: 1,
2771
+ # max: 1,
2772
+ # },
2773
+ # local_storage: "included", # accepts included, excluded, required
2774
+ # local_storage_types: ["hdd"], # accepts hdd, ssd
2775
+ # total_local_storage_gb: {
2776
+ # min: 1.0,
2777
+ # max: 1.0,
2778
+ # },
2779
+ # baseline_ebs_bandwidth_mbps: {
2780
+ # min: 1,
2781
+ # max: 1,
2782
+ # },
2783
+ # accelerator_types: ["gpu"], # accepts gpu, fpga, inference
2784
+ # accelerator_count: {
2785
+ # min: 1,
2786
+ # max: 1,
2787
+ # },
2788
+ # accelerator_manufacturers: ["nvidia"], # accepts nvidia, amd, amazon-web-services, xilinx
2789
+ # accelerator_names: ["a100"], # accepts a100, v100, k80, t4, m60, radeon-pro-v520, vu9p
2790
+ # accelerator_total_memory_mi_b: {
2791
+ # min: 1,
2792
+ # max: 1,
2793
+ # },
2794
+ # },
2587
2795
  # },
2588
2796
  # ],
2589
2797
  # },
@@ -2611,9 +2819,9 @@ module Aws::AutoScaling
2611
2819
  #
2612
2820
  # @!attribute [rw] mixed_instances_policy
2613
2821
  # 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
2822
+ # contains the instance types that Amazon EC2 Auto Scaling can launch
2823
+ # and other information that Amazon EC2 Auto Scaling can use to launch
2824
+ # instances and help optimize your costs. For more information, see
2617
2825
  # [Auto Scaling groups with multiple instance types and purchase
2618
2826
  # options][1] in the *Amazon EC2 Auto Scaling User Guide*.
2619
2827
  #
@@ -3245,9 +3453,9 @@ module Aws::AutoScaling
3245
3453
  # Describes a filter that is used to return a more specific list of
3246
3454
  # results from a describe operation.
3247
3455
  #
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.
3456
+ # If you specify multiple filters, the filters are automatically
3457
+ # logically joined with an `AND`, and the request returns only the
3458
+ # results that match all of the specified filters.
3251
3459
  #
3252
3460
  # For more information, see [Tagging Auto Scaling groups and
3253
3461
  # instances][1] in the *Amazon EC2 Auto Scaling User Guide*.
@@ -3267,56 +3475,55 @@ module Aws::AutoScaling
3267
3475
  # @!attribute [rw] name
3268
3476
  # The name of the filter.
3269
3477
  #
3270
- # The valid values for `Name` depend on the API operation that you are
3271
- # including the filter in, DescribeAutoScalingGroups or DescribeTags.
3478
+ # The valid values for `Name` depend on which API operation you're
3479
+ # using with the filter (DescribeAutoScalingGroups or DescribeTags).
3272
3480
  #
3273
3481
  # **DescribeAutoScalingGroups**
3274
3482
  #
3275
3483
  # Valid values for `Name` include the following:
3276
3484
  #
3277
- # * `tag-key` - Accepts tag keys. The results will only include
3278
- # information about the Auto Scaling groups associated with these
3279
- # tag keys.
3485
+ # * `tag-key` - Accepts tag keys. The results only include information
3486
+ # about the Auto Scaling groups associated with these tag keys.
3280
3487
  #
3281
- # * `tag-value` - Accepts tag values. The results will only include
3488
+ # * `tag-value` - Accepts tag values. The results only include
3282
3489
  # information about the Auto Scaling groups associated with these
3283
3490
  # tag values.
3284
3491
  #
3285
3492
  # * `tag:<key>` - Accepts the key/value combination of the tag. Use
3286
3493
  # 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.
3494
+ # value. The results only include information about the Auto Scaling
3495
+ # groups associated with the specified key/value combination.
3290
3496
  #
3291
3497
  # **DescribeTags**
3292
3498
  #
3293
3499
  # Valid values for `Name` include the following:
3294
3500
  #
3295
3501
  # * `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.
3502
+ # The results only include information about the tags associated
3503
+ # with these Auto Scaling groups.
3298
3504
  #
3299
- # * `key` - Accepts tag keys. The results will only include
3300
- # information about the tags associated with these tag keys.
3505
+ # * `key` - Accepts tag keys. The results only include information
3506
+ # about the tags associated with these tag keys.
3301
3507
  #
3302
- # * `value` - Accepts tag values. The results will only include
3303
- # information about the tags associated with these tag values.
3508
+ # * `value` - Accepts tag values. The results only include information
3509
+ # about the tags associated with these tag values.
3304
3510
  #
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.
3511
+ # * `propagate-at-launch` - Accepts a Boolean value, which specifies
3512
+ # whether tags propagate to instances at launch. The results only
3513
+ # include information about the tags associated with the specified
3514
+ # Boolean value.
3309
3515
  # @return [String]
3310
3516
  #
3311
3517
  # @!attribute [rw] values
3312
3518
  # One or more filter values. Filter values are case-sensitive.
3313
3519
  #
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".
3520
+ # If you specify multiple values for a filter, the values are
3521
+ # automatically logically joined with an `OR`, and the request returns
3522
+ # all results that match any of the specified values. For example,
3523
+ # specify "tag:environment" for the filter name and
3524
+ # "production,development" for the filter values to find Auto
3525
+ # Scaling groups with the tag "environment=production" or
3526
+ # "environment=development".
3320
3527
  # @return [Array<String>]
3321
3528
  #
3322
3529
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/Filter AWS API Documentation
@@ -3726,23 +3933,343 @@ module Aws::AutoScaling
3726
3933
  include Aws::Structure
3727
3934
  end
3728
3935
 
3729
- # Describes an instances distribution for an Auto Scaling group with a
3730
- # MixedInstancesPolicy.
3936
+ # When you specify multiple parameters, you get instance types that
3937
+ # satisfy all of the specified parameters. If you specify multiple
3938
+ # values for a parameter, you get instance types that satisfy any of the
3939
+ # specified values.
3940
+ #
3941
+ # Represents requirements for the types of instances that can be
3942
+ # launched. You must specify `VCpuCount` and `MemoryMiB`, but all other
3943
+ # parameters are optional. For more information, see [Creating an Auto
3944
+ # Scaling group using attribute-based instance type selection][1] in the
3945
+ # *Amazon EC2 Auto Scaling User Guide*.
3946
+ #
3947
+ #
3948
+ #
3949
+ # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html
3950
+ #
3951
+ # @note When making an API call, you may pass InstanceRequirements
3952
+ # data as a hash:
3953
+ #
3954
+ # {
3955
+ # v_cpu_count: { # required
3956
+ # min: 1, # required
3957
+ # max: 1,
3958
+ # },
3959
+ # memory_mi_b: { # required
3960
+ # min: 1, # required
3961
+ # max: 1,
3962
+ # },
3963
+ # cpu_manufacturers: ["intel"], # accepts intel, amd, amazon-web-services
3964
+ # memory_gi_b_per_v_cpu: {
3965
+ # min: 1.0,
3966
+ # max: 1.0,
3967
+ # },
3968
+ # excluded_instance_types: ["ExcludedInstance"],
3969
+ # instance_generations: ["current"], # accepts current, previous
3970
+ # spot_max_price_percentage_over_lowest_price: 1,
3971
+ # on_demand_max_price_percentage_over_lowest_price: 1,
3972
+ # bare_metal: "included", # accepts included, excluded, required
3973
+ # burstable_performance: "included", # accepts included, excluded, required
3974
+ # require_hibernate_support: false,
3975
+ # network_interface_count: {
3976
+ # min: 1,
3977
+ # max: 1,
3978
+ # },
3979
+ # local_storage: "included", # accepts included, excluded, required
3980
+ # local_storage_types: ["hdd"], # accepts hdd, ssd
3981
+ # total_local_storage_gb: {
3982
+ # min: 1.0,
3983
+ # max: 1.0,
3984
+ # },
3985
+ # baseline_ebs_bandwidth_mbps: {
3986
+ # min: 1,
3987
+ # max: 1,
3988
+ # },
3989
+ # accelerator_types: ["gpu"], # accepts gpu, fpga, inference
3990
+ # accelerator_count: {
3991
+ # min: 1,
3992
+ # max: 1,
3993
+ # },
3994
+ # accelerator_manufacturers: ["nvidia"], # accepts nvidia, amd, amazon-web-services, xilinx
3995
+ # accelerator_names: ["a100"], # accepts a100, v100, k80, t4, m60, radeon-pro-v520, vu9p
3996
+ # accelerator_total_memory_mi_b: {
3997
+ # min: 1,
3998
+ # max: 1,
3999
+ # },
4000
+ # }
4001
+ #
4002
+ # @!attribute [rw] v_cpu_count
4003
+ # The minimum and maximum number of vCPUs for an instance type.
4004
+ # @return [Types::VCpuCountRequest]
4005
+ #
4006
+ # @!attribute [rw] memory_mi_b
4007
+ # The minimum and maximum instance memory size for an instance type,
4008
+ # in MiB.
4009
+ # @return [Types::MemoryMiBRequest]
4010
+ #
4011
+ # @!attribute [rw] cpu_manufacturers
4012
+ # Lists which specific CPU manufacturers to include.
4013
+ #
4014
+ # * For instance types with Intel CPUs, specify `intel`.
4015
+ #
4016
+ # * For instance types with AMD CPUs, specify `amd`.
4017
+ #
4018
+ # * For instance types with Amazon Web Services CPUs, specify
4019
+ # `amazon-web-services`.
4020
+ #
4021
+ # <note markdown="1"> Don't confuse the CPU hardware manufacturer with the CPU hardware
4022
+ # architecture. Instances will be launched with a compatible CPU
4023
+ # architecture based on the Amazon Machine Image (AMI) that you
4024
+ # specify in your launch template.
4025
+ #
4026
+ # </note>
4027
+ #
4028
+ # Default: Any manufacturer
4029
+ # @return [Array<String>]
4030
+ #
4031
+ # @!attribute [rw] memory_gi_b_per_v_cpu
4032
+ # The minimum and maximum amount of memory per vCPU for an instance
4033
+ # type, in GiB.
4034
+ #
4035
+ # Default: No minimum or maximum
4036
+ # @return [Types::MemoryGiBPerVCpuRequest]
4037
+ #
4038
+ # @!attribute [rw] excluded_instance_types
4039
+ # Lists which instance types to exclude. You can use strings with one
4040
+ # or more wild cards, represented by an asterisk (`*`). The following
4041
+ # are examples: `c5*`, `m5a.*`, `r*`, `*3*`.
4042
+ #
4043
+ # For example, if you specify `c5*`, you are excluding the entire C5
4044
+ # instance family, which includes all C5a and C5n instance types. If
4045
+ # you specify `m5a.*`, you are excluding all the M5a instance types,
4046
+ # but not the M5n instance types.
4047
+ #
4048
+ # Default: No excluded instance types
4049
+ # @return [Array<String>]
4050
+ #
4051
+ # @!attribute [rw] instance_generations
4052
+ # Indicates whether current or previous generation instance types are
4053
+ # included.
4054
+ #
4055
+ # * For current generation instance types, specify `current`. The
4056
+ # current generation includes EC2 instance types currently
4057
+ # recommended for use. This typically includes the latest two to
4058
+ # three generations in each instance family. For more information,
4059
+ # see [Instance types][1] in the *Amazon EC2 User Guide for Linux
4060
+ # Instances*.
4061
+ #
4062
+ # * For previous generation instance types, specify `previous`.
4063
+ #
4064
+ # Default: Any current or previous generation
4065
+ #
4066
+ #
4067
+ #
4068
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html
4069
+ # @return [Array<String>]
4070
+ #
4071
+ # @!attribute [rw] spot_max_price_percentage_over_lowest_price
4072
+ # The price protection threshold for Spot Instances. This is the
4073
+ # maximum you’ll pay for a Spot Instance, expressed as a percentage
4074
+ # higher than the cheapest M, C, or R instance type with your
4075
+ # specified attributes. When Amazon EC2 Auto Scaling selects instance
4076
+ # types with your attributes, we will exclude instance types whose
4077
+ # price is higher than your threshold. The parameter accepts an
4078
+ # integer, which Amazon EC2 Auto Scaling interprets as a percentage.
4079
+ # To turn off price protection, specify a high value, such as
4080
+ # `999999`.
4081
+ #
4082
+ # Default: `100`
4083
+ # @return [Integer]
4084
+ #
4085
+ # @!attribute [rw] on_demand_max_price_percentage_over_lowest_price
4086
+ # The price protection threshold for On-Demand Instances. This is the
4087
+ # maximum you’ll pay for an On-Demand Instance, expressed as a
4088
+ # percentage higher than the cheapest M, C, or R instance type with
4089
+ # your specified attributes. When Amazon EC2 Auto Scaling selects
4090
+ # instance types with your attributes, we will exclude instance types
4091
+ # whose price is higher than your threshold. The parameter accepts an
4092
+ # integer, which Amazon EC2 Auto Scaling interprets as a percentage.
4093
+ # To turn off price protection, specify a high value, such as
4094
+ # `999999`.
4095
+ #
4096
+ # Default: `20`
4097
+ # @return [Integer]
4098
+ #
4099
+ # @!attribute [rw] bare_metal
4100
+ # Indicates whether bare metal instance types are included, excluded,
4101
+ # or required.
4102
+ #
4103
+ # Default: `excluded`
4104
+ # @return [String]
4105
+ #
4106
+ # @!attribute [rw] burstable_performance
4107
+ # Indicates whether burstable performance instance types are included,
4108
+ # excluded, or required. For more information, see [Burstable
4109
+ # performance instances][1] in the *Amazon EC2 User Guide for Linux
4110
+ # Instances*.
4111
+ #
4112
+ # Default: `excluded`
4113
+ #
4114
+ #
4115
+ #
4116
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/burstable-performance-instances.html
4117
+ # @return [String]
4118
+ #
4119
+ # @!attribute [rw] require_hibernate_support
4120
+ # Indicates whether instance types must provide On-Demand Instance
4121
+ # hibernation support.
4122
+ #
4123
+ # Default: `false`
4124
+ # @return [Boolean]
4125
+ #
4126
+ # @!attribute [rw] network_interface_count
4127
+ # The minimum and maximum number of network interfaces for an instance
4128
+ # type.
4129
+ #
4130
+ # Default: No minimum or maximum
4131
+ # @return [Types::NetworkInterfaceCountRequest]
4132
+ #
4133
+ # @!attribute [rw] local_storage
4134
+ # Indicates whether instance types with instance store volumes are
4135
+ # included, excluded, or required. For more information, see [Amazon
4136
+ # EC2 instance store][1] in the *Amazon EC2 User Guide for Linux
4137
+ # Instances*.
4138
+ #
4139
+ # Default: `included`
4140
+ #
4141
+ #
4142
+ #
4143
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html
4144
+ # @return [String]
4145
+ #
4146
+ # @!attribute [rw] local_storage_types
4147
+ # Indicates the type of local storage that is required.
4148
+ #
4149
+ # * For instance types with hard disk drive (HDD) storage, specify
4150
+ # `hdd`.
4151
+ #
4152
+ # * For instance types with solid state drive (SSD) storage, specify
4153
+ # `sdd`.
4154
+ #
4155
+ # Default: Any local storage type
4156
+ # @return [Array<String>]
4157
+ #
4158
+ # @!attribute [rw] total_local_storage_gb
4159
+ # The minimum and maximum total local storage size for an instance
4160
+ # type, in GB.
4161
+ #
4162
+ # Default: No minimum or maximum
4163
+ # @return [Types::TotalLocalStorageGBRequest]
4164
+ #
4165
+ # @!attribute [rw] baseline_ebs_bandwidth_mbps
4166
+ # The minimum and maximum baseline bandwidth performance for an
4167
+ # instance type, in Mbps. For more information, see [Amazon
4168
+ # EBS–optimized instances][1] in the *Amazon EC2 User Guide for Linux
4169
+ # Instances*.
4170
+ #
4171
+ # Default: No minimum or maximum
4172
+ #
4173
+ #
4174
+ #
4175
+ # [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-optimized.html
4176
+ # @return [Types::BaselineEbsBandwidthMbpsRequest]
4177
+ #
4178
+ # @!attribute [rw] accelerator_types
4179
+ # Lists the accelerator types that must be on an instance type.
4180
+ #
4181
+ # * For instance types with GPU accelerators, specify `gpu`.
3731
4182
  #
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.
4183
+ # * For instance types with FPGA accelerators, specify `fpga`.
3736
4184
  #
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.
4185
+ # * For instance types with inference accelerators, specify
4186
+ # `inference`.
4187
+ #
4188
+ # Default: Any accelerator type
4189
+ # @return [Array<String>]
4190
+ #
4191
+ # @!attribute [rw] accelerator_count
4192
+ # The minimum and maximum number of accelerators (GPUs, FPGAs, or
4193
+ # Amazon Web Services Inferentia chips) for an instance type.
4194
+ #
4195
+ # To exclude accelerator-enabled instance types, set `Max` to `0`.
4196
+ #
4197
+ # Default: No minimum or maximum
4198
+ # @return [Types::AcceleratorCountRequest]
4199
+ #
4200
+ # @!attribute [rw] accelerator_manufacturers
4201
+ # Indicates whether instance types must have accelerators by specific
4202
+ # manufacturers.
4203
+ #
4204
+ # * For instance types with NVIDIA devices, specify `nvidia`.
4205
+ #
4206
+ # * For instance types with AMD devices, specify `amd`.
4207
+ #
4208
+ # * For instance types with Amazon Web Services devices, specify
4209
+ # `amazon-web-services`.
4210
+ #
4211
+ # * For instance types with Xilinx devices, specify `xilinx`.
4212
+ #
4213
+ # Default: Any manufacturer
4214
+ # @return [Array<String>]
4215
+ #
4216
+ # @!attribute [rw] accelerator_names
4217
+ # Lists the accelerators that must be on an instance type.
4218
+ #
4219
+ # * For instance types with NVIDIA A100 GPUs, specify `a100`.
4220
+ #
4221
+ # * For instance types with NVIDIA V100 GPUs, specify `v100`.
4222
+ #
4223
+ # * For instance types with NVIDIA K80 GPUs, specify `k80`.
4224
+ #
4225
+ # * For instance types with NVIDIA T4 GPUs, specify `t4`.
4226
+ #
4227
+ # * For instance types with NVIDIA M60 GPUs, specify `m60`.
4228
+ #
4229
+ # * For instance types with AMD Radeon Pro V520 GPUs, specify
4230
+ # `radeon-pro-v520`.
4231
+ #
4232
+ # * For instance types with Xilinx VU9P FPGAs, specify `vu9p`.
4233
+ #
4234
+ # Default: Any accelerator
4235
+ # @return [Array<String>]
4236
+ #
4237
+ # @!attribute [rw] accelerator_total_memory_mi_b
4238
+ # The minimum and maximum total memory size for the accelerators on an
4239
+ # instance type, in MiB.
4240
+ #
4241
+ # Default: No minimum or maximum
4242
+ # @return [Types::AcceleratorTotalMemoryMiBRequest]
4243
+ #
4244
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/InstanceRequirements AWS API Documentation
4245
+ #
4246
+ class InstanceRequirements < Struct.new(
4247
+ :v_cpu_count,
4248
+ :memory_mi_b,
4249
+ :cpu_manufacturers,
4250
+ :memory_gi_b_per_v_cpu,
4251
+ :excluded_instance_types,
4252
+ :instance_generations,
4253
+ :spot_max_price_percentage_over_lowest_price,
4254
+ :on_demand_max_price_percentage_over_lowest_price,
4255
+ :bare_metal,
4256
+ :burstable_performance,
4257
+ :require_hibernate_support,
4258
+ :network_interface_count,
4259
+ :local_storage,
4260
+ :local_storage_types,
4261
+ :total_local_storage_gb,
4262
+ :baseline_ebs_bandwidth_mbps,
4263
+ :accelerator_types,
4264
+ :accelerator_count,
4265
+ :accelerator_manufacturers,
4266
+ :accelerator_names,
4267
+ :accelerator_total_memory_mi_b)
4268
+ SENSITIVE = []
4269
+ include Aws::Structure
4270
+ end
4271
+
4272
+ # Describes an instances distribution for an Auto Scaling group.
3746
4273
  #
3747
4274
  # @note When making an API call, you may pass InstancesDistribution
3748
4275
  # data as a hash:
@@ -3757,32 +4284,46 @@ module Aws::AutoScaling
3757
4284
  # }
3758
4285
  #
3759
4286
  # @!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.
4287
+ # The order of the launch template overrides to use in fulfilling
4288
+ # On-Demand capacity.
4289
+ #
4290
+ # If you specify `lowest-price`, Amazon EC2 Auto Scaling uses price to
4291
+ # determine the order, launching the lowest price first.
4292
+ #
4293
+ # If you specify `prioritized`, Amazon EC2 Auto Scaling uses the
4294
+ # priority that you assigned to each launch template override,
4295
+ # launching the highest priority first. If all your On-Demand capacity
4296
+ # cannot be fulfilled using your highest priority instance, then
4297
+ # Amazon EC2 Auto Scaling launches the remaining capacity using the
4298
+ # second priority instance type, and so on.
4299
+ #
4300
+ # Default: `lowest-price` for Auto Scaling groups that specify
4301
+ # InstanceRequirements in the overrides and `prioritized` for Auto
4302
+ # Scaling groups that don't.
3769
4303
  # @return [String]
3770
4304
  #
3771
4305
  # @!attribute [rw] on_demand_base_capacity
3772
4306
  # 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.
4307
+ # be fulfilled by On-Demand Instances. This base portion is launched
4308
+ # first as your group scales.
4309
+ #
4310
+ # If you specify weights for the instance types in the overrides, the
4311
+ # base capacity is measured in the same unit of measurement as the
4312
+ # instance types. If you specify InstanceRequirements in the
4313
+ # overrides, the base capacity is measured in the same unit of
4314
+ # measurement as your group's desired capacity.
4315
+ #
4316
+ # Default: `0`
3778
4317
  # @return [Integer]
3779
4318
  #
3780
4319
  # @!attribute [rw] on_demand_percentage_above_base_capacity
3781
4320
  # Controls the percentages of On-Demand Instances and Spot Instances
3782
4321
  # for your additional capacity beyond `OnDemandBaseCapacity`.
3783
4322
  # 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.
4323
+ # Instances, 80% Spot Instances). If set to 100, only On-Demand
4324
+ # Instances are used.
4325
+ #
4326
+ # Default: `100`
3786
4327
  # @return [Integer]
3787
4328
  #
3788
4329
  # @!attribute [rw] spot_allocation_strategy
@@ -3791,7 +4332,7 @@ module Aws::AutoScaling
3791
4332
  # If the allocation strategy is `lowest-price`, the Auto Scaling group
3792
4333
  # launches instances using the Spot pools with the lowest price, and
3793
4334
  # evenly allocates your instances across the number of Spot pools that
3794
- # you specify. Defaults to `lowest-price` if not specified.
4335
+ # you specify.
3795
4336
  #
3796
4337
  # If the allocation strategy is `capacity-optimized` (recommended),
3797
4338
  # the Auto Scaling group launches instances using Spot pools that are
@@ -3801,22 +4342,25 @@ module Aws::AutoScaling
3801
4342
  # from highest to lowest priority (from first to last in the list).
3802
4343
  # Amazon EC2 Auto Scaling honors the instance type priorities on a
3803
4344
  # best-effort basis but optimizes for capacity first.
4345
+ #
4346
+ # Default: `lowest-price`
3804
4347
  # @return [String]
3805
4348
  #
3806
4349
  # @!attribute [rw] spot_instance_pools
3807
4350
  # The number of Spot Instance pools across which to allocate your Spot
3808
4351
  # Instances. The Spot pools are determined from the different instance
3809
4352
  # 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.
4353
+ # is `lowest-price`. Value must be in the range of 120.
4354
+ #
4355
+ # Default: `2`
3812
4356
  # @return [Integer]
3813
4357
  #
3814
4358
  # @!attribute [rw] spot_max_price
3815
4359
  # 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.
4360
+ # Spot Instance. If you keep the value at its default (unspecified),
4361
+ # Amazon EC2 Auto Scaling uses the On-Demand price as the maximum Spot
4362
+ # price. To remove a value that you previously set, include the
4363
+ # property but specify an empty string ("") for the value.
3820
4364
  # @return [String]
3821
4365
  #
3822
4366
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/InstancesDistribution AWS API Documentation
@@ -4145,16 +4689,8 @@ module Aws::AutoScaling
4145
4689
  include Aws::Structure
4146
4690
  end
4147
4691
 
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.
4692
+ # Describes a launch template and overrides. You specify these
4693
+ # properties as part of a mixed instances policy.
4158
4694
  #
4159
4695
  # @note When making an API call, you may pass LaunchTemplate
4160
4696
  # data as a hash:
@@ -4174,6 +4710,53 @@ module Aws::AutoScaling
4174
4710
  # launch_template_name: "LaunchTemplateName",
4175
4711
  # version: "XmlStringMaxLen255",
4176
4712
  # },
4713
+ # instance_requirements: {
4714
+ # v_cpu_count: { # required
4715
+ # min: 1, # required
4716
+ # max: 1,
4717
+ # },
4718
+ # memory_mi_b: { # required
4719
+ # min: 1, # required
4720
+ # max: 1,
4721
+ # },
4722
+ # cpu_manufacturers: ["intel"], # accepts intel, amd, amazon-web-services
4723
+ # memory_gi_b_per_v_cpu: {
4724
+ # min: 1.0,
4725
+ # max: 1.0,
4726
+ # },
4727
+ # excluded_instance_types: ["ExcludedInstance"],
4728
+ # instance_generations: ["current"], # accepts current, previous
4729
+ # spot_max_price_percentage_over_lowest_price: 1,
4730
+ # on_demand_max_price_percentage_over_lowest_price: 1,
4731
+ # bare_metal: "included", # accepts included, excluded, required
4732
+ # burstable_performance: "included", # accepts included, excluded, required
4733
+ # require_hibernate_support: false,
4734
+ # network_interface_count: {
4735
+ # min: 1,
4736
+ # max: 1,
4737
+ # },
4738
+ # local_storage: "included", # accepts included, excluded, required
4739
+ # local_storage_types: ["hdd"], # accepts hdd, ssd
4740
+ # total_local_storage_gb: {
4741
+ # min: 1.0,
4742
+ # max: 1.0,
4743
+ # },
4744
+ # baseline_ebs_bandwidth_mbps: {
4745
+ # min: 1,
4746
+ # max: 1,
4747
+ # },
4748
+ # accelerator_types: ["gpu"], # accepts gpu, fpga, inference
4749
+ # accelerator_count: {
4750
+ # min: 1,
4751
+ # max: 1,
4752
+ # },
4753
+ # accelerator_manufacturers: ["nvidia"], # accepts nvidia, amd, amazon-web-services, xilinx
4754
+ # accelerator_names: ["a100"], # accepts a100, v100, k80, t4, m60, radeon-pro-v520, vu9p
4755
+ # accelerator_total_memory_mi_b: {
4756
+ # min: 1,
4757
+ # max: 1,
4758
+ # },
4759
+ # },
4177
4760
  # },
4178
4761
  # ],
4179
4762
  # }
@@ -4185,8 +4768,11 @@ module Aws::AutoScaling
4185
4768
  # @!attribute [rw] overrides
4186
4769
  # Any properties that you specify override the same properties in the
4187
4770
  # 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.
4771
+ # instance type or instance type requirements specified in the launch
4772
+ # template when it launches an instance.
4773
+ #
4774
+ # The overrides can include either one or more instance types or a set
4775
+ # of instance requirements, but not both.
4190
4776
  # @return [Array<Types::LaunchTemplateOverrides>]
4191
4777
  #
4192
4778
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/LaunchTemplate AWS API Documentation
@@ -4198,12 +4784,9 @@ module Aws::AutoScaling
4198
4784
  include Aws::Structure
4199
4785
  end
4200
4786
 
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*.
4787
+ # Describes an override for a launch template. For more information, see
4788
+ # [Configuring overrides][1] in the *Amazon EC2 Auto Scaling User
4789
+ # Guide*.
4207
4790
  #
4208
4791
  #
4209
4792
  #
@@ -4220,6 +4803,53 @@ module Aws::AutoScaling
4220
4803
  # launch_template_name: "LaunchTemplateName",
4221
4804
  # version: "XmlStringMaxLen255",
4222
4805
  # },
4806
+ # instance_requirements: {
4807
+ # v_cpu_count: { # required
4808
+ # min: 1, # required
4809
+ # max: 1,
4810
+ # },
4811
+ # memory_mi_b: { # required
4812
+ # min: 1, # required
4813
+ # max: 1,
4814
+ # },
4815
+ # cpu_manufacturers: ["intel"], # accepts intel, amd, amazon-web-services
4816
+ # memory_gi_b_per_v_cpu: {
4817
+ # min: 1.0,
4818
+ # max: 1.0,
4819
+ # },
4820
+ # excluded_instance_types: ["ExcludedInstance"],
4821
+ # instance_generations: ["current"], # accepts current, previous
4822
+ # spot_max_price_percentage_over_lowest_price: 1,
4823
+ # on_demand_max_price_percentage_over_lowest_price: 1,
4824
+ # bare_metal: "included", # accepts included, excluded, required
4825
+ # burstable_performance: "included", # accepts included, excluded, required
4826
+ # require_hibernate_support: false,
4827
+ # network_interface_count: {
4828
+ # min: 1,
4829
+ # max: 1,
4830
+ # },
4831
+ # local_storage: "included", # accepts included, excluded, required
4832
+ # local_storage_types: ["hdd"], # accepts hdd, ssd
4833
+ # total_local_storage_gb: {
4834
+ # min: 1.0,
4835
+ # max: 1.0,
4836
+ # },
4837
+ # baseline_ebs_bandwidth_mbps: {
4838
+ # min: 1,
4839
+ # max: 1,
4840
+ # },
4841
+ # accelerator_types: ["gpu"], # accepts gpu, fpga, inference
4842
+ # accelerator_count: {
4843
+ # min: 1,
4844
+ # max: 1,
4845
+ # },
4846
+ # accelerator_manufacturers: ["nvidia"], # accepts nvidia, amd, amazon-web-services, xilinx
4847
+ # accelerator_names: ["a100"], # accepts a100, v100, k80, t4, m60, radeon-pro-v520, vu9p
4848
+ # accelerator_total_memory_mi_b: {
4849
+ # min: 1,
4850
+ # max: 1,
4851
+ # },
4852
+ # },
4223
4853
  # }
4224
4854
  #
4225
4855
  # @!attribute [rw] instance_type
@@ -4234,19 +4864,19 @@ module Aws::AutoScaling
4234
4864
  # @return [String]
4235
4865
  #
4236
4866
  # @!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.
4867
+ # The number of capacity units provided by the instance type specified
4868
+ # in `InstanceType` in terms of virtual CPUs, memory, storage,
4869
+ # throughput, or other relative performance characteristic. When a
4870
+ # Spot or On-Demand Instance is launched, the capacity units count
4871
+ # toward the desired capacity. Amazon EC2 Auto Scaling launches
4872
+ # instances until the desired capacity is totally fulfilled, even if
4873
+ # this results in an overage. For example, if there are two units
4874
+ # remaining to fulfill capacity, and Amazon EC2 Auto Scaling can only
4875
+ # launch an instance with a `WeightedCapacity` of five units, the
4876
+ # instance is launched, and the desired capacity is exceeded by three
4877
+ # units. For more information, see [Instance weighting for Amazon EC2
4878
+ # Auto Scaling][1] in the *Amazon EC2 Auto Scaling User Guide*. Value
4879
+ # must be in the range of 1999.
4250
4880
  #
4251
4881
  #
4252
4882
  #
@@ -4255,24 +4885,33 @@ module Aws::AutoScaling
4255
4885
  #
4256
4886
  # @!attribute [rw] launch_template_specification
4257
4887
  # 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*.
4888
+ # type specified in `InstanceType`. For example, some instance types
4889
+ # might require a launch template with a different AMI. If not
4890
+ # provided, Amazon EC2 Auto Scaling uses the launch template that's
4891
+ # defined for your mixed instances policy. For more information, see
4892
+ # [Specifying a different launch template for an instance type][1] in
4893
+ # the *Amazon EC2 Auto Scaling User Guide*.
4264
4894
  #
4265
4895
  #
4266
4896
  #
4267
4897
  # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-launch-template-overrides.html
4268
4898
  # @return [Types::LaunchTemplateSpecification]
4269
4899
  #
4900
+ # @!attribute [rw] instance_requirements
4901
+ # The instance requirements. When you specify instance requirements,
4902
+ # Amazon EC2 Auto Scaling finds instance types that satisfy your
4903
+ # requirements, and then uses your On-Demand and Spot allocation
4904
+ # strategies to launch instances from these instance types, in the
4905
+ # same way as when you specify a list of specific instance types.
4906
+ # @return [Types::InstanceRequirements]
4907
+ #
4270
4908
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/LaunchTemplateOverrides AWS API Documentation
4271
4909
  #
4272
4910
  class LaunchTemplateOverrides < Struct.new(
4273
4911
  :instance_type,
4274
4912
  :weighted_capacity,
4275
- :launch_template_specification)
4913
+ :launch_template_specification,
4914
+ :instance_requirements)
4276
4915
  SENSITIVE = []
4277
4916
  include Aws::Structure
4278
4917
  end
@@ -4655,6 +5294,62 @@ module Aws::AutoScaling
4655
5294
  include Aws::Structure
4656
5295
  end
4657
5296
 
5297
+ # Specifies the minimum and maximum for the `MemoryGiBPerVCpu` object
5298
+ # when you specify InstanceRequirements for an Auto Scaling group.
5299
+ #
5300
+ # @note When making an API call, you may pass MemoryGiBPerVCpuRequest
5301
+ # data as a hash:
5302
+ #
5303
+ # {
5304
+ # min: 1.0,
5305
+ # max: 1.0,
5306
+ # }
5307
+ #
5308
+ # @!attribute [rw] min
5309
+ # The memory minimum in GiB.
5310
+ # @return [Float]
5311
+ #
5312
+ # @!attribute [rw] max
5313
+ # The memory maximum in GiB.
5314
+ # @return [Float]
5315
+ #
5316
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/MemoryGiBPerVCpuRequest AWS API Documentation
5317
+ #
5318
+ class MemoryGiBPerVCpuRequest < Struct.new(
5319
+ :min,
5320
+ :max)
5321
+ SENSITIVE = []
5322
+ include Aws::Structure
5323
+ end
5324
+
5325
+ # Specifies the minimum and maximum for the `MemoryMiB` object when you
5326
+ # specify InstanceRequirements for an Auto Scaling group.
5327
+ #
5328
+ # @note When making an API call, you may pass MemoryMiBRequest
5329
+ # data as a hash:
5330
+ #
5331
+ # {
5332
+ # min: 1, # required
5333
+ # max: 1,
5334
+ # }
5335
+ #
5336
+ # @!attribute [rw] min
5337
+ # The memory minimum in MiB.
5338
+ # @return [Integer]
5339
+ #
5340
+ # @!attribute [rw] max
5341
+ # The memory maximum in MiB.
5342
+ # @return [Integer]
5343
+ #
5344
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/MemoryMiBRequest AWS API Documentation
5345
+ #
5346
+ class MemoryMiBRequest < Struct.new(
5347
+ :min,
5348
+ :max)
5349
+ SENSITIVE = []
5350
+ include Aws::Structure
5351
+ end
5352
+
4658
5353
  # Describes a metric.
4659
5354
  #
4660
5355
  # @!attribute [rw] metric
@@ -4751,9 +5446,9 @@ module Aws::AutoScaling
4751
5446
  end
4752
5447
 
4753
5448
  # 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
5449
+ # the instance types that Amazon EC2 Auto Scaling can launch and other
5450
+ # information that Amazon EC2 Auto Scaling can use to launch instances
5451
+ # and help optimize your costs. For more information, see [Auto Scaling
4757
5452
  # groups with multiple instance types and purchase options][1] in the
4758
5453
  # *Amazon EC2 Auto Scaling User Guide*.
4759
5454
  #
@@ -4780,6 +5475,53 @@ module Aws::AutoScaling
4780
5475
  # launch_template_name: "LaunchTemplateName",
4781
5476
  # version: "XmlStringMaxLen255",
4782
5477
  # },
5478
+ # instance_requirements: {
5479
+ # v_cpu_count: { # required
5480
+ # min: 1, # required
5481
+ # max: 1,
5482
+ # },
5483
+ # memory_mi_b: { # required
5484
+ # min: 1, # required
5485
+ # max: 1,
5486
+ # },
5487
+ # cpu_manufacturers: ["intel"], # accepts intel, amd, amazon-web-services
5488
+ # memory_gi_b_per_v_cpu: {
5489
+ # min: 1.0,
5490
+ # max: 1.0,
5491
+ # },
5492
+ # excluded_instance_types: ["ExcludedInstance"],
5493
+ # instance_generations: ["current"], # accepts current, previous
5494
+ # spot_max_price_percentage_over_lowest_price: 1,
5495
+ # on_demand_max_price_percentage_over_lowest_price: 1,
5496
+ # bare_metal: "included", # accepts included, excluded, required
5497
+ # burstable_performance: "included", # accepts included, excluded, required
5498
+ # require_hibernate_support: false,
5499
+ # network_interface_count: {
5500
+ # min: 1,
5501
+ # max: 1,
5502
+ # },
5503
+ # local_storage: "included", # accepts included, excluded, required
5504
+ # local_storage_types: ["hdd"], # accepts hdd, ssd
5505
+ # total_local_storage_gb: {
5506
+ # min: 1.0,
5507
+ # max: 1.0,
5508
+ # },
5509
+ # baseline_ebs_bandwidth_mbps: {
5510
+ # min: 1,
5511
+ # max: 1,
5512
+ # },
5513
+ # accelerator_types: ["gpu"], # accepts gpu, fpga, inference
5514
+ # accelerator_count: {
5515
+ # min: 1,
5516
+ # max: 1,
5517
+ # },
5518
+ # accelerator_manufacturers: ["nvidia"], # accepts nvidia, amd, amazon-web-services, xilinx
5519
+ # accelerator_names: ["a100"], # accepts a100, v100, k80, t4, m60, radeon-pro-v520, vu9p
5520
+ # accelerator_total_memory_mi_b: {
5521
+ # min: 1,
5522
+ # max: 1,
5523
+ # },
5524
+ # },
4783
5525
  # },
4784
5526
  # ],
4785
5527
  # },
@@ -4795,14 +5537,13 @@ module Aws::AutoScaling
4795
5537
  #
4796
5538
  # @!attribute [rw] launch_template
4797
5539
  # Specifies the launch template to use and the instance types
4798
- # (overrides) that are used to provision EC2 instances to fulfill
5540
+ # (overrides) that are used to launch EC2 instances to fulfill
4799
5541
  # On-Demand and Spot capacities. Required when creating a mixed
4800
5542
  # instances policy.
4801
5543
  # @return [Types::LaunchTemplate]
4802
5544
  #
4803
5545
  # @!attribute [rw] instances_distribution
4804
- # Specifies the instances distribution. If not provided, the value for
4805
- # each property in `InstancesDistribution` uses a default value.
5546
+ # Specifies the instances distribution.
4806
5547
  # @return [Types::InstancesDistribution]
4807
5548
  #
4808
5549
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/MixedInstancesPolicy AWS API Documentation
@@ -4814,6 +5555,35 @@ module Aws::AutoScaling
4814
5555
  include Aws::Structure
4815
5556
  end
4816
5557
 
5558
+ # Specifies the minimum and maximum for the `NetworkInterfaceCount`
5559
+ # object when you specify InstanceRequirements for an Auto Scaling
5560
+ # group.
5561
+ #
5562
+ # @note When making an API call, you may pass NetworkInterfaceCountRequest
5563
+ # data as a hash:
5564
+ #
5565
+ # {
5566
+ # min: 1,
5567
+ # max: 1,
5568
+ # }
5569
+ #
5570
+ # @!attribute [rw] min
5571
+ # The minimum number of network interfaces.
5572
+ # @return [Integer]
5573
+ #
5574
+ # @!attribute [rw] max
5575
+ # The maximum number of network interfaces.
5576
+ # @return [Integer]
5577
+ #
5578
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/NetworkInterfaceCountRequest AWS API Documentation
5579
+ #
5580
+ class NetworkInterfaceCountRequest < Struct.new(
5581
+ :min,
5582
+ :max)
5583
+ SENSITIVE = []
5584
+ include Aws::Structure
5585
+ end
5586
+
4817
5587
  # Describes a notification.
4818
5588
  #
4819
5589
  # @!attribute [rw] auto_scaling_group_name
@@ -6629,6 +7399,53 @@ module Aws::AutoScaling
6629
7399
  # launch_template_name: "LaunchTemplateName",
6630
7400
  # version: "XmlStringMaxLen255",
6631
7401
  # },
7402
+ # instance_requirements: {
7403
+ # v_cpu_count: { # required
7404
+ # min: 1, # required
7405
+ # max: 1,
7406
+ # },
7407
+ # memory_mi_b: { # required
7408
+ # min: 1, # required
7409
+ # max: 1,
7410
+ # },
7411
+ # cpu_manufacturers: ["intel"], # accepts intel, amd, amazon-web-services
7412
+ # memory_gi_b_per_v_cpu: {
7413
+ # min: 1.0,
7414
+ # max: 1.0,
7415
+ # },
7416
+ # excluded_instance_types: ["ExcludedInstance"],
7417
+ # instance_generations: ["current"], # accepts current, previous
7418
+ # spot_max_price_percentage_over_lowest_price: 1,
7419
+ # on_demand_max_price_percentage_over_lowest_price: 1,
7420
+ # bare_metal: "included", # accepts included, excluded, required
7421
+ # burstable_performance: "included", # accepts included, excluded, required
7422
+ # require_hibernate_support: false,
7423
+ # network_interface_count: {
7424
+ # min: 1,
7425
+ # max: 1,
7426
+ # },
7427
+ # local_storage: "included", # accepts included, excluded, required
7428
+ # local_storage_types: ["hdd"], # accepts hdd, ssd
7429
+ # total_local_storage_gb: {
7430
+ # min: 1.0,
7431
+ # max: 1.0,
7432
+ # },
7433
+ # baseline_ebs_bandwidth_mbps: {
7434
+ # min: 1,
7435
+ # max: 1,
7436
+ # },
7437
+ # accelerator_types: ["gpu"], # accepts gpu, fpga, inference
7438
+ # accelerator_count: {
7439
+ # min: 1,
7440
+ # max: 1,
7441
+ # },
7442
+ # accelerator_manufacturers: ["nvidia"], # accepts nvidia, amd, amazon-web-services, xilinx
7443
+ # accelerator_names: ["a100"], # accepts a100, v100, k80, t4, m60, radeon-pro-v520, vu9p
7444
+ # accelerator_total_memory_mi_b: {
7445
+ # min: 1,
7446
+ # max: 1,
7447
+ # },
7448
+ # },
6632
7449
  # },
6633
7450
  # ],
6634
7451
  # },
@@ -6999,6 +7816,34 @@ module Aws::AutoScaling
6999
7816
  include Aws::Structure
7000
7817
  end
7001
7818
 
7819
+ # Specifies the minimum and maximum for the `TotalLocalStorageGB` object
7820
+ # when you specify InstanceRequirements for an Auto Scaling group.
7821
+ #
7822
+ # @note When making an API call, you may pass TotalLocalStorageGBRequest
7823
+ # data as a hash:
7824
+ #
7825
+ # {
7826
+ # min: 1.0,
7827
+ # max: 1.0,
7828
+ # }
7829
+ #
7830
+ # @!attribute [rw] min
7831
+ # The storage minimum in GB.
7832
+ # @return [Float]
7833
+ #
7834
+ # @!attribute [rw] max
7835
+ # The storage maximum in GB.
7836
+ # @return [Float]
7837
+ #
7838
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/TotalLocalStorageGBRequest AWS API Documentation
7839
+ #
7840
+ class TotalLocalStorageGBRequest < Struct.new(
7841
+ :min,
7842
+ :max)
7843
+ SENSITIVE = []
7844
+ include Aws::Structure
7845
+ end
7846
+
7002
7847
  # @note When making an API call, you may pass UpdateAutoScalingGroupType
7003
7848
  # data as a hash:
7004
7849
  #
@@ -7026,6 +7871,53 @@ module Aws::AutoScaling
7026
7871
  # launch_template_name: "LaunchTemplateName",
7027
7872
  # version: "XmlStringMaxLen255",
7028
7873
  # },
7874
+ # instance_requirements: {
7875
+ # v_cpu_count: { # required
7876
+ # min: 1, # required
7877
+ # max: 1,
7878
+ # },
7879
+ # memory_mi_b: { # required
7880
+ # min: 1, # required
7881
+ # max: 1,
7882
+ # },
7883
+ # cpu_manufacturers: ["intel"], # accepts intel, amd, amazon-web-services
7884
+ # memory_gi_b_per_v_cpu: {
7885
+ # min: 1.0,
7886
+ # max: 1.0,
7887
+ # },
7888
+ # excluded_instance_types: ["ExcludedInstance"],
7889
+ # instance_generations: ["current"], # accepts current, previous
7890
+ # spot_max_price_percentage_over_lowest_price: 1,
7891
+ # on_demand_max_price_percentage_over_lowest_price: 1,
7892
+ # bare_metal: "included", # accepts included, excluded, required
7893
+ # burstable_performance: "included", # accepts included, excluded, required
7894
+ # require_hibernate_support: false,
7895
+ # network_interface_count: {
7896
+ # min: 1,
7897
+ # max: 1,
7898
+ # },
7899
+ # local_storage: "included", # accepts included, excluded, required
7900
+ # local_storage_types: ["hdd"], # accepts hdd, ssd
7901
+ # total_local_storage_gb: {
7902
+ # min: 1.0,
7903
+ # max: 1.0,
7904
+ # },
7905
+ # baseline_ebs_bandwidth_mbps: {
7906
+ # min: 1,
7907
+ # max: 1,
7908
+ # },
7909
+ # accelerator_types: ["gpu"], # accepts gpu, fpga, inference
7910
+ # accelerator_count: {
7911
+ # min: 1,
7912
+ # max: 1,
7913
+ # },
7914
+ # accelerator_manufacturers: ["nvidia"], # accepts nvidia, amd, amazon-web-services, xilinx
7915
+ # accelerator_names: ["a100"], # accepts a100, v100, k80, t4, m60, radeon-pro-v520, vu9p
7916
+ # accelerator_total_memory_mi_b: {
7917
+ # min: 1,
7918
+ # max: 1,
7919
+ # },
7920
+ # },
7029
7921
  # },
7030
7922
  # ],
7031
7923
  # },
@@ -7053,6 +7945,7 @@ module Aws::AutoScaling
7053
7945
  # max_instance_lifetime: 1,
7054
7946
  # capacity_rebalance: false,
7055
7947
  # context: "Context",
7948
+ # desired_capacity_type: "XmlStringMaxLen255",
7056
7949
  # }
7057
7950
  #
7058
7951
  # @!attribute [rw] auto_scaling_group_name
@@ -7072,11 +7965,10 @@ module Aws::AutoScaling
7072
7965
  # @return [Types::LaunchTemplateSpecification]
7073
7966
  #
7074
7967
  # @!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*.
7968
+ # An embedded object that specifies a mixed instances policy. For more
7969
+ # information, see [Auto Scaling groups with multiple instance types
7970
+ # and purchase options][1] in the *Amazon EC2 Auto Scaling User
7971
+ # Guide*.
7080
7972
  #
7081
7973
  #
7082
7974
  #
@@ -7228,6 +8120,23 @@ module Aws::AutoScaling
7228
8120
  # Reserved.
7229
8121
  # @return [String]
7230
8122
  #
8123
+ # @!attribute [rw] desired_capacity_type
8124
+ # The unit of measurement for the value specified for desired
8125
+ # capacity. Amazon EC2 Auto Scaling supports `DesiredCapacityType` for
8126
+ # attribute-based instance type selection only. For more information,
8127
+ # see [Creating an Auto Scaling group using attribute-based instance
8128
+ # type selection][1] in the *Amazon EC2 Auto Scaling User Guide*.
8129
+ #
8130
+ # By default, Amazon EC2 Auto Scaling specifies `units`, which
8131
+ # translates into number of instances.
8132
+ #
8133
+ # Valid values: `units` \| `vcpu` \| `memory-mib`
8134
+ #
8135
+ #
8136
+ #
8137
+ # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html
8138
+ # @return [String]
8139
+ #
7231
8140
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/UpdateAutoScalingGroupType AWS API Documentation
7232
8141
  #
7233
8142
  class UpdateAutoScalingGroupType < Struct.new(
@@ -7249,7 +8158,36 @@ module Aws::AutoScaling
7249
8158
  :service_linked_role_arn,
7250
8159
  :max_instance_lifetime,
7251
8160
  :capacity_rebalance,
7252
- :context)
8161
+ :context,
8162
+ :desired_capacity_type)
8163
+ SENSITIVE = []
8164
+ include Aws::Structure
8165
+ end
8166
+
8167
+ # Specifies the minimum and maximum for the `VCpuCount` object when you
8168
+ # specify InstanceRequirements for an Auto Scaling group.
8169
+ #
8170
+ # @note When making an API call, you may pass VCpuCountRequest
8171
+ # data as a hash:
8172
+ #
8173
+ # {
8174
+ # min: 1, # required
8175
+ # max: 1,
8176
+ # }
8177
+ #
8178
+ # @!attribute [rw] min
8179
+ # The minimum number of vCPUs.
8180
+ # @return [Integer]
8181
+ #
8182
+ # @!attribute [rw] max
8183
+ # The maximum number of vCPUs.
8184
+ # @return [Integer]
8185
+ #
8186
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/VCpuCountRequest AWS API Documentation
8187
+ #
8188
+ class VCpuCountRequest < Struct.new(
8189
+ :min,
8190
+ :max)
7253
8191
  SENSITIVE = []
7254
8192
  include Aws::Structure
7255
8193
  end