aws-sdk-autoscaling 1.70.0 → 1.71.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -10,6 +10,63 @@
10
10
  module Aws::AutoScaling
11
11
  module Types
12
12
 
13
+ # Specifies the minimum and maximum for the `AcceleratorCount` object
14
+ # when you specify InstanceRequirements for an Auto Scaling group.
15
+ #
16
+ # @note When making an API call, you may pass AcceleratorCountRequest
17
+ # data as a hash:
18
+ #
19
+ # {
20
+ # min: 1,
21
+ # max: 1,
22
+ # }
23
+ #
24
+ # @!attribute [rw] min
25
+ # The minimum value.
26
+ # @return [Integer]
27
+ #
28
+ # @!attribute [rw] max
29
+ # The maximum value.
30
+ # @return [Integer]
31
+ #
32
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/AcceleratorCountRequest AWS API Documentation
33
+ #
34
+ class AcceleratorCountRequest < Struct.new(
35
+ :min,
36
+ :max)
37
+ SENSITIVE = []
38
+ include Aws::Structure
39
+ end
40
+
41
+ # Specifies the minimum and maximum for the `AcceleratorTotalMemoryMiB`
42
+ # object when you specify InstanceRequirements for an Auto Scaling
43
+ # group.
44
+ #
45
+ # @note When making an API call, you may pass AcceleratorTotalMemoryMiBRequest
46
+ # data as a hash:
47
+ #
48
+ # {
49
+ # min: 1,
50
+ # max: 1,
51
+ # }
52
+ #
53
+ # @!attribute [rw] min
54
+ # The memory minimum in MiB.
55
+ # @return [Integer]
56
+ #
57
+ # @!attribute [rw] max
58
+ # The memory maximum in MiB.
59
+ # @return [Integer]
60
+ #
61
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/AcceleratorTotalMemoryMiBRequest AWS API Documentation
62
+ #
63
+ class AcceleratorTotalMemoryMiBRequest < Struct.new(
64
+ :min,
65
+ :max)
66
+ SENSITIVE = []
67
+ include Aws::Structure
68
+ end
69
+
13
70
  # The request failed because an active instance refresh for the
14
71
  # specified Auto Scaling group was not found.
15
72
  #
@@ -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