aws-sdk-autoscaling 1.69.0 → 1.73.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.
@@ -812,7 +916,7 @@ module Aws::AutoScaling
812
916
  # data points.
813
917
  #
814
918
  # @!attribute [rw] timestamps
815
- # The time stamps for the data points, in UTC format.
919
+ # The timestamps for the data points, in UTC format.
816
920
  # @return [Array<Time>]
817
921
  #
818
922
  # @!attribute [rw] values
@@ -906,6 +1010,53 @@ module Aws::AutoScaling
906
1010
  # launch_template_name: "LaunchTemplateName",
907
1011
  # version: "XmlStringMaxLen255",
908
1012
  # },
1013
+ # instance_requirements: {
1014
+ # v_cpu_count: { # required
1015
+ # min: 1, # required
1016
+ # max: 1,
1017
+ # },
1018
+ # memory_mi_b: { # required
1019
+ # min: 1, # required
1020
+ # max: 1,
1021
+ # },
1022
+ # cpu_manufacturers: ["intel"], # accepts intel, amd, amazon-web-services
1023
+ # memory_gi_b_per_v_cpu: {
1024
+ # min: 1.0,
1025
+ # max: 1.0,
1026
+ # },
1027
+ # excluded_instance_types: ["ExcludedInstance"],
1028
+ # instance_generations: ["current"], # accepts current, previous
1029
+ # spot_max_price_percentage_over_lowest_price: 1,
1030
+ # on_demand_max_price_percentage_over_lowest_price: 1,
1031
+ # bare_metal: "included", # accepts included, excluded, required
1032
+ # burstable_performance: "included", # accepts included, excluded, required
1033
+ # require_hibernate_support: false,
1034
+ # network_interface_count: {
1035
+ # min: 1,
1036
+ # max: 1,
1037
+ # },
1038
+ # local_storage: "included", # accepts included, excluded, required
1039
+ # local_storage_types: ["hdd"], # accepts hdd, ssd
1040
+ # total_local_storage_gb: {
1041
+ # min: 1.0,
1042
+ # max: 1.0,
1043
+ # },
1044
+ # baseline_ebs_bandwidth_mbps: {
1045
+ # min: 1,
1046
+ # max: 1,
1047
+ # },
1048
+ # accelerator_types: ["gpu"], # accepts gpu, fpga, inference
1049
+ # accelerator_count: {
1050
+ # min: 1,
1051
+ # max: 1,
1052
+ # },
1053
+ # accelerator_manufacturers: ["nvidia"], # accepts nvidia, amd, amazon-web-services, xilinx
1054
+ # accelerator_names: ["a100"], # accepts a100, v100, k80, t4, m60, radeon-pro-v520, vu9p
1055
+ # accelerator_total_memory_mi_b: {
1056
+ # min: 1,
1057
+ # max: 1,
1058
+ # },
1059
+ # },
909
1060
  # },
910
1061
  # ],
911
1062
  # },
@@ -956,6 +1107,7 @@ module Aws::AutoScaling
956
1107
  # service_linked_role_arn: "ResourceName",
957
1108
  # max_instance_lifetime: 1,
958
1109
  # context: "Context",
1110
+ # desired_capacity_type: "XmlStringMaxLen255",
959
1111
  # }
960
1112
  #
961
1113
  # @!attribute [rw] auto_scaling_group_name
@@ -992,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]
3731
4084
  #
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.
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`.
4182
+ #
4183
+ # * For instance types with FPGA accelerators, specify `fpga`.
4184
+ #
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]
3736
4243
  #
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.
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
@@ -4634,7 +5273,7 @@ module Aws::AutoScaling
4634
5273
  # the metric specification.
4635
5274
  #
4636
5275
  # @!attribute [rw] timestamps
4637
- # The time stamps for the data points, in UTC format.
5276
+ # The timestamps for the data points, in UTC format.
4638
5277
  # @return [Array<Time>]
4639
5278
  #
4640
5279
  # @!attribute [rw] values
@@ -4655,28 +5294,138 @@ module Aws::AutoScaling
4655
5294
  include Aws::Structure
4656
5295
  end
4657
5296
 
4658
- # Describes a metric.
5297
+ # Specifies the minimum and maximum for the `MemoryGiBPerVCpu` object
5298
+ # when you specify InstanceRequirements for an Auto Scaling group.
4659
5299
  #
4660
- # @!attribute [rw] metric
4661
- # One of the following metrics:
5300
+ # @note When making an API call, you may pass MemoryGiBPerVCpuRequest
5301
+ # data as a hash:
4662
5302
  #
4663
- # * `GroupMinSize`
5303
+ # {
5304
+ # min: 1.0,
5305
+ # max: 1.0,
5306
+ # }
4664
5307
  #
4665
- # * `GroupMaxSize`
5308
+ # @!attribute [rw] min
5309
+ # The memory minimum in GiB.
5310
+ # @return [Float]
4666
5311
  #
4667
- # * `GroupDesiredCapacity`
5312
+ # @!attribute [rw] max
5313
+ # The memory maximum in GiB.
5314
+ # @return [Float]
4668
5315
  #
4669
- # * `GroupInServiceInstances`
5316
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/MemoryGiBPerVCpuRequest AWS API Documentation
4670
5317
  #
4671
- # * `GroupPendingInstances`
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.
4672
5327
  #
4673
- # * `GroupStandbyInstances`
5328
+ # @note When making an API call, you may pass MemoryMiBRequest
5329
+ # data as a hash:
4674
5330
  #
4675
- # * `GroupTerminatingInstances`
5331
+ # {
5332
+ # min: 1, # required
5333
+ # max: 1,
5334
+ # }
4676
5335
  #
4677
- # * `GroupTotalInstances`
5336
+ # @!attribute [rw] min
5337
+ # The memory minimum in MiB.
5338
+ # @return [Integer]
4678
5339
  #
4679
- # * `GroupInServiceCapacity`
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
+
5353
+ # Represents a specific metric.
5354
+ #
5355
+ # @note When making an API call, you may pass Metric
5356
+ # data as a hash:
5357
+ #
5358
+ # {
5359
+ # namespace: "MetricNamespace", # required
5360
+ # metric_name: "MetricName", # required
5361
+ # dimensions: [
5362
+ # {
5363
+ # name: "MetricDimensionName", # required
5364
+ # value: "MetricDimensionValue", # required
5365
+ # },
5366
+ # ],
5367
+ # }
5368
+ #
5369
+ # @!attribute [rw] namespace
5370
+ # The namespace of the metric. For more information, see the table in
5371
+ # [Amazon Web Services services that publish CloudWatch metrics ][1]
5372
+ # in the *Amazon CloudWatch User Guide*.
5373
+ #
5374
+ #
5375
+ #
5376
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html
5377
+ # @return [String]
5378
+ #
5379
+ # @!attribute [rw] metric_name
5380
+ # The name of the metric.
5381
+ # @return [String]
5382
+ #
5383
+ # @!attribute [rw] dimensions
5384
+ # The dimensions for the metric. For the list of available dimensions,
5385
+ # see the Amazon Web Services documentation available from the table
5386
+ # in [Amazon Web Services services that publish CloudWatch metrics
5387
+ # ][1] in the *Amazon CloudWatch User Guide*.
5388
+ #
5389
+ # Conditional: If you published your metric with dimensions, you must
5390
+ # specify the same dimensions in your scaling policy.
5391
+ #
5392
+ #
5393
+ #
5394
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/aws-services-cloudwatch-metrics.html
5395
+ # @return [Array<Types::MetricDimension>]
5396
+ #
5397
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/Metric AWS API Documentation
5398
+ #
5399
+ class Metric < Struct.new(
5400
+ :namespace,
5401
+ :metric_name,
5402
+ :dimensions)
5403
+ SENSITIVE = []
5404
+ include Aws::Structure
5405
+ end
5406
+
5407
+ # Describes a metric.
5408
+ #
5409
+ # @!attribute [rw] metric
5410
+ # One of the following metrics:
5411
+ #
5412
+ # * `GroupMinSize`
5413
+ #
5414
+ # * `GroupMaxSize`
5415
+ #
5416
+ # * `GroupDesiredCapacity`
5417
+ #
5418
+ # * `GroupInServiceInstances`
5419
+ #
5420
+ # * `GroupPendingInstances`
5421
+ #
5422
+ # * `GroupStandbyInstances`
5423
+ #
5424
+ # * `GroupTerminatingInstances`
5425
+ #
5426
+ # * `GroupTotalInstances`
5427
+ #
5428
+ # * `GroupInServiceCapacity`
4680
5429
  #
4681
5430
  # * `GroupPendingCapacity`
4682
5431
  #
@@ -4709,6 +5458,107 @@ module Aws::AutoScaling
4709
5458
  include Aws::Structure
4710
5459
  end
4711
5460
 
5461
+ # The metric data to return. Also defines whether this call is returning
5462
+ # data for one metric only, or whether it is performing a math
5463
+ # expression on the values of returned metric statistics to create a new
5464
+ # time series. A time series is a series of data points, each of which
5465
+ # is associated with a timestamp.
5466
+ #
5467
+ # For more information and examples, see [Advanced predictive scaling
5468
+ # policy configurations using customized metrics][1] in the *Amazon EC2
5469
+ # Auto Scaling User Guide*.
5470
+ #
5471
+ #
5472
+ #
5473
+ # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/predictive-scaling-customized-metric-specification.html
5474
+ #
5475
+ # @note When making an API call, you may pass MetricDataQuery
5476
+ # data as a hash:
5477
+ #
5478
+ # {
5479
+ # id: "XmlStringMaxLen255", # required
5480
+ # expression: "XmlStringMaxLen1023",
5481
+ # metric_stat: {
5482
+ # metric: { # required
5483
+ # namespace: "MetricNamespace", # required
5484
+ # metric_name: "MetricName", # required
5485
+ # dimensions: [
5486
+ # {
5487
+ # name: "MetricDimensionName", # required
5488
+ # value: "MetricDimensionValue", # required
5489
+ # },
5490
+ # ],
5491
+ # },
5492
+ # stat: "XmlStringMetricStat", # required
5493
+ # unit: "MetricUnit",
5494
+ # },
5495
+ # label: "XmlStringMetricLabel",
5496
+ # return_data: false,
5497
+ # }
5498
+ #
5499
+ # @!attribute [rw] id
5500
+ # A short name that identifies the object's results in the response.
5501
+ # This name must be unique among all `MetricDataQuery` objects
5502
+ # specified for a single scaling policy. If you are performing math
5503
+ # expressions on this set of data, this name represents that data and
5504
+ # can serve as a variable in the mathematical expression. The valid
5505
+ # characters are letters, numbers, and underscores. The first
5506
+ # character must be a lowercase letter.
5507
+ # @return [String]
5508
+ #
5509
+ # @!attribute [rw] expression
5510
+ # The math expression to perform on the returned data, if this object
5511
+ # is performing a math expression. This expression can use the `Id` of
5512
+ # the other metrics to refer to those metrics, and can also use the
5513
+ # `Id` of other expressions to use the result of those expressions.
5514
+ #
5515
+ # For example, to use search expressions, use the SEARCH() function in
5516
+ # your metric math expression to combine multiple metrics from Auto
5517
+ # Scaling groups that use a specific name prefix.
5518
+ #
5519
+ # Conditional: Within each `MetricDataQuery` object, you must specify
5520
+ # either `Expression` or `MetricStat`, but not both.
5521
+ # @return [String]
5522
+ #
5523
+ # @!attribute [rw] metric_stat
5524
+ # Information about the metric data to return.
5525
+ #
5526
+ # Conditional: Within each `MetricDataQuery` object, you must specify
5527
+ # either `Expression` or `MetricStat`, but not both.
5528
+ # @return [Types::MetricStat]
5529
+ #
5530
+ # @!attribute [rw] label
5531
+ # A human-readable label for this metric or expression. This is
5532
+ # especially useful if this is a math expression, so that you know
5533
+ # what the value represents.
5534
+ # @return [String]
5535
+ #
5536
+ # @!attribute [rw] return_data
5537
+ # Indicates whether to return the timestamps and raw data values of
5538
+ # this metric.
5539
+ #
5540
+ # If you use any math expressions, specify `True` for this value for
5541
+ # only the final math expression that the metric specification is
5542
+ # based on. You must specify `False` for `ReturnData` for all the
5543
+ # other metrics and expressions used in the metric specification.
5544
+ #
5545
+ # If you are only retrieving metrics and not performing any math
5546
+ # expressions, do not specify anything for `ReturnData`. This sets it
5547
+ # to its default (`True`).
5548
+ # @return [Boolean]
5549
+ #
5550
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/MetricDataQuery AWS API Documentation
5551
+ #
5552
+ class MetricDataQuery < Struct.new(
5553
+ :id,
5554
+ :expression,
5555
+ :metric_stat,
5556
+ :label,
5557
+ :return_data)
5558
+ SENSITIVE = []
5559
+ include Aws::Structure
5560
+ end
5561
+
4712
5562
  # Describes the dimension of a metric.
4713
5563
  #
4714
5564
  # @note When making an API call, you may pass MetricDimension
@@ -4750,10 +5600,83 @@ module Aws::AutoScaling
4750
5600
  include Aws::Structure
4751
5601
  end
4752
5602
 
5603
+ # This structure defines the CloudWatch metric to return, along with the
5604
+ # statistic, period, and unit.
5605
+ #
5606
+ # For more information about the CloudWatch terminology below, see
5607
+ # [Amazon CloudWatch concepts][1] in the *Amazon CloudWatch User Guide*.
5608
+ #
5609
+ #
5610
+ #
5611
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html
5612
+ #
5613
+ # @note When making an API call, you may pass MetricStat
5614
+ # data as a hash:
5615
+ #
5616
+ # {
5617
+ # metric: { # required
5618
+ # namespace: "MetricNamespace", # required
5619
+ # metric_name: "MetricName", # required
5620
+ # dimensions: [
5621
+ # {
5622
+ # name: "MetricDimensionName", # required
5623
+ # value: "MetricDimensionValue", # required
5624
+ # },
5625
+ # ],
5626
+ # },
5627
+ # stat: "XmlStringMetricStat", # required
5628
+ # unit: "MetricUnit",
5629
+ # }
5630
+ #
5631
+ # @!attribute [rw] metric
5632
+ # The CloudWatch metric to return, including the metric name,
5633
+ # namespace, and dimensions. To get the exact metric name, namespace,
5634
+ # and dimensions, inspect the [Metric][1] object that is returned by a
5635
+ # call to [ListMetrics][2].
5636
+ #
5637
+ #
5638
+ #
5639
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_Metric.html
5640
+ # [2]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_ListMetrics.html
5641
+ # @return [Types::Metric]
5642
+ #
5643
+ # @!attribute [rw] stat
5644
+ # The statistic to return. It can include any CloudWatch statistic or
5645
+ # extended statistic. For a list of valid values, see the table in
5646
+ # [Statistics][1] in the *Amazon CloudWatch User Guide*.
5647
+ #
5648
+ # The most commonly used metrics for predictive scaling are `Average`
5649
+ # and `Sum`.
5650
+ #
5651
+ #
5652
+ #
5653
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Statistic
5654
+ # @return [String]
5655
+ #
5656
+ # @!attribute [rw] unit
5657
+ # The unit to use for the returned data points. For a complete list of
5658
+ # the units that CloudWatch supports, see the [MetricDatum][1] data
5659
+ # type in the *Amazon CloudWatch API Reference*.
5660
+ #
5661
+ #
5662
+ #
5663
+ # [1]: https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html
5664
+ # @return [String]
5665
+ #
5666
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/MetricStat AWS API Documentation
5667
+ #
5668
+ class MetricStat < Struct.new(
5669
+ :metric,
5670
+ :stat,
5671
+ :unit)
5672
+ SENSITIVE = []
5673
+ include Aws::Structure
5674
+ end
5675
+
4753
5676
  # 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
5677
+ # the instance types that Amazon EC2 Auto Scaling can launch and other
5678
+ # information that Amazon EC2 Auto Scaling can use to launch instances
5679
+ # and help optimize your costs. For more information, see [Auto Scaling
4757
5680
  # groups with multiple instance types and purchase options][1] in the
4758
5681
  # *Amazon EC2 Auto Scaling User Guide*.
4759
5682
  #
@@ -4780,6 +5703,53 @@ module Aws::AutoScaling
4780
5703
  # launch_template_name: "LaunchTemplateName",
4781
5704
  # version: "XmlStringMaxLen255",
4782
5705
  # },
5706
+ # instance_requirements: {
5707
+ # v_cpu_count: { # required
5708
+ # min: 1, # required
5709
+ # max: 1,
5710
+ # },
5711
+ # memory_mi_b: { # required
5712
+ # min: 1, # required
5713
+ # max: 1,
5714
+ # },
5715
+ # cpu_manufacturers: ["intel"], # accepts intel, amd, amazon-web-services
5716
+ # memory_gi_b_per_v_cpu: {
5717
+ # min: 1.0,
5718
+ # max: 1.0,
5719
+ # },
5720
+ # excluded_instance_types: ["ExcludedInstance"],
5721
+ # instance_generations: ["current"], # accepts current, previous
5722
+ # spot_max_price_percentage_over_lowest_price: 1,
5723
+ # on_demand_max_price_percentage_over_lowest_price: 1,
5724
+ # bare_metal: "included", # accepts included, excluded, required
5725
+ # burstable_performance: "included", # accepts included, excluded, required
5726
+ # require_hibernate_support: false,
5727
+ # network_interface_count: {
5728
+ # min: 1,
5729
+ # max: 1,
5730
+ # },
5731
+ # local_storage: "included", # accepts included, excluded, required
5732
+ # local_storage_types: ["hdd"], # accepts hdd, ssd
5733
+ # total_local_storage_gb: {
5734
+ # min: 1.0,
5735
+ # max: 1.0,
5736
+ # },
5737
+ # baseline_ebs_bandwidth_mbps: {
5738
+ # min: 1,
5739
+ # max: 1,
5740
+ # },
5741
+ # accelerator_types: ["gpu"], # accepts gpu, fpga, inference
5742
+ # accelerator_count: {
5743
+ # min: 1,
5744
+ # max: 1,
5745
+ # },
5746
+ # accelerator_manufacturers: ["nvidia"], # accepts nvidia, amd, amazon-web-services, xilinx
5747
+ # accelerator_names: ["a100"], # accepts a100, v100, k80, t4, m60, radeon-pro-v520, vu9p
5748
+ # accelerator_total_memory_mi_b: {
5749
+ # min: 1,
5750
+ # max: 1,
5751
+ # },
5752
+ # },
4783
5753
  # },
4784
5754
  # ],
4785
5755
  # },
@@ -4795,14 +5765,13 @@ module Aws::AutoScaling
4795
5765
  #
4796
5766
  # @!attribute [rw] launch_template
4797
5767
  # Specifies the launch template to use and the instance types
4798
- # (overrides) that are used to provision EC2 instances to fulfill
5768
+ # (overrides) that are used to launch EC2 instances to fulfill
4799
5769
  # On-Demand and Spot capacities. Required when creating a mixed
4800
5770
  # instances policy.
4801
5771
  # @return [Types::LaunchTemplate]
4802
5772
  #
4803
5773
  # @!attribute [rw] instances_distribution
4804
- # Specifies the instances distribution. If not provided, the value for
4805
- # each property in `InstancesDistribution` uses a default value.
5774
+ # Specifies the instances distribution.
4806
5775
  # @return [Types::InstancesDistribution]
4807
5776
  #
4808
5777
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/MixedInstancesPolicy AWS API Documentation
@@ -4814,6 +5783,35 @@ module Aws::AutoScaling
4814
5783
  include Aws::Structure
4815
5784
  end
4816
5785
 
5786
+ # Specifies the minimum and maximum for the `NetworkInterfaceCount`
5787
+ # object when you specify InstanceRequirements for an Auto Scaling
5788
+ # group.
5789
+ #
5790
+ # @note When making an API call, you may pass NetworkInterfaceCountRequest
5791
+ # data as a hash:
5792
+ #
5793
+ # {
5794
+ # min: 1,
5795
+ # max: 1,
5796
+ # }
5797
+ #
5798
+ # @!attribute [rw] min
5799
+ # The minimum number of network interfaces.
5800
+ # @return [Integer]
5801
+ #
5802
+ # @!attribute [rw] max
5803
+ # The maximum number of network interfaces.
5804
+ # @return [Integer]
5805
+ #
5806
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/NetworkInterfaceCountRequest AWS API Documentation
5807
+ #
5808
+ class NetworkInterfaceCountRequest < Struct.new(
5809
+ :min,
5810
+ :max)
5811
+ SENSITIVE = []
5812
+ include Aws::Structure
5813
+ end
5814
+
4817
5815
  # Describes a notification.
4818
5816
  #
4819
5817
  # @!attribute [rw] auto_scaling_group_name
@@ -4980,6 +5978,78 @@ module Aws::AutoScaling
4980
5978
  # predefined_metric_type: "ASGTotalCPUUtilization", # required, accepts ASGTotalCPUUtilization, ASGTotalNetworkIn, ASGTotalNetworkOut, ALBTargetGroupRequestCount
4981
5979
  # resource_label: "XmlStringMaxLen1023",
4982
5980
  # },
5981
+ # customized_scaling_metric_specification: {
5982
+ # metric_data_queries: [ # required
5983
+ # {
5984
+ # id: "XmlStringMaxLen255", # required
5985
+ # expression: "XmlStringMaxLen1023",
5986
+ # metric_stat: {
5987
+ # metric: { # required
5988
+ # namespace: "MetricNamespace", # required
5989
+ # metric_name: "MetricName", # required
5990
+ # dimensions: [
5991
+ # {
5992
+ # name: "MetricDimensionName", # required
5993
+ # value: "MetricDimensionValue", # required
5994
+ # },
5995
+ # ],
5996
+ # },
5997
+ # stat: "XmlStringMetricStat", # required
5998
+ # unit: "MetricUnit",
5999
+ # },
6000
+ # label: "XmlStringMetricLabel",
6001
+ # return_data: false,
6002
+ # },
6003
+ # ],
6004
+ # },
6005
+ # customized_load_metric_specification: {
6006
+ # metric_data_queries: [ # required
6007
+ # {
6008
+ # id: "XmlStringMaxLen255", # required
6009
+ # expression: "XmlStringMaxLen1023",
6010
+ # metric_stat: {
6011
+ # metric: { # required
6012
+ # namespace: "MetricNamespace", # required
6013
+ # metric_name: "MetricName", # required
6014
+ # dimensions: [
6015
+ # {
6016
+ # name: "MetricDimensionName", # required
6017
+ # value: "MetricDimensionValue", # required
6018
+ # },
6019
+ # ],
6020
+ # },
6021
+ # stat: "XmlStringMetricStat", # required
6022
+ # unit: "MetricUnit",
6023
+ # },
6024
+ # label: "XmlStringMetricLabel",
6025
+ # return_data: false,
6026
+ # },
6027
+ # ],
6028
+ # },
6029
+ # customized_capacity_metric_specification: {
6030
+ # metric_data_queries: [ # required
6031
+ # {
6032
+ # id: "XmlStringMaxLen255", # required
6033
+ # expression: "XmlStringMaxLen1023",
6034
+ # metric_stat: {
6035
+ # metric: { # required
6036
+ # namespace: "MetricNamespace", # required
6037
+ # metric_name: "MetricName", # required
6038
+ # dimensions: [
6039
+ # {
6040
+ # name: "MetricDimensionName", # required
6041
+ # value: "MetricDimensionValue", # required
6042
+ # },
6043
+ # ],
6044
+ # },
6045
+ # stat: "XmlStringMetricStat", # required
6046
+ # unit: "MetricUnit",
6047
+ # },
6048
+ # label: "XmlStringMetricLabel",
6049
+ # return_data: false,
6050
+ # },
6051
+ # ],
6052
+ # },
4983
6053
  # },
4984
6054
  # ],
4985
6055
  # mode: "ForecastAndScale", # accepts ForecastAndScale, ForecastOnly
@@ -5062,6 +6132,139 @@ module Aws::AutoScaling
5062
6132
  include Aws::Structure
5063
6133
  end
5064
6134
 
6135
+ # Describes a customized capacity metric for a predictive scaling
6136
+ # policy.
6137
+ #
6138
+ # @note When making an API call, you may pass PredictiveScalingCustomizedCapacityMetric
6139
+ # data as a hash:
6140
+ #
6141
+ # {
6142
+ # metric_data_queries: [ # required
6143
+ # {
6144
+ # id: "XmlStringMaxLen255", # required
6145
+ # expression: "XmlStringMaxLen1023",
6146
+ # metric_stat: {
6147
+ # metric: { # required
6148
+ # namespace: "MetricNamespace", # required
6149
+ # metric_name: "MetricName", # required
6150
+ # dimensions: [
6151
+ # {
6152
+ # name: "MetricDimensionName", # required
6153
+ # value: "MetricDimensionValue", # required
6154
+ # },
6155
+ # ],
6156
+ # },
6157
+ # stat: "XmlStringMetricStat", # required
6158
+ # unit: "MetricUnit",
6159
+ # },
6160
+ # label: "XmlStringMetricLabel",
6161
+ # return_data: false,
6162
+ # },
6163
+ # ],
6164
+ # }
6165
+ #
6166
+ # @!attribute [rw] metric_data_queries
6167
+ # One or more metric data queries to provide the data points for a
6168
+ # capacity metric. Use multiple metric data queries only if you are
6169
+ # performing a math expression on returned data.
6170
+ # @return [Array<Types::MetricDataQuery>]
6171
+ #
6172
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PredictiveScalingCustomizedCapacityMetric AWS API Documentation
6173
+ #
6174
+ class PredictiveScalingCustomizedCapacityMetric < Struct.new(
6175
+ :metric_data_queries)
6176
+ SENSITIVE = []
6177
+ include Aws::Structure
6178
+ end
6179
+
6180
+ # Describes a customized load metric for a predictive scaling policy.
6181
+ #
6182
+ # @note When making an API call, you may pass PredictiveScalingCustomizedLoadMetric
6183
+ # data as a hash:
6184
+ #
6185
+ # {
6186
+ # metric_data_queries: [ # required
6187
+ # {
6188
+ # id: "XmlStringMaxLen255", # required
6189
+ # expression: "XmlStringMaxLen1023",
6190
+ # metric_stat: {
6191
+ # metric: { # required
6192
+ # namespace: "MetricNamespace", # required
6193
+ # metric_name: "MetricName", # required
6194
+ # dimensions: [
6195
+ # {
6196
+ # name: "MetricDimensionName", # required
6197
+ # value: "MetricDimensionValue", # required
6198
+ # },
6199
+ # ],
6200
+ # },
6201
+ # stat: "XmlStringMetricStat", # required
6202
+ # unit: "MetricUnit",
6203
+ # },
6204
+ # label: "XmlStringMetricLabel",
6205
+ # return_data: false,
6206
+ # },
6207
+ # ],
6208
+ # }
6209
+ #
6210
+ # @!attribute [rw] metric_data_queries
6211
+ # One or more metric data queries to provide the data points for a
6212
+ # load metric. Use multiple metric data queries only if you are
6213
+ # performing a math expression on returned data.
6214
+ # @return [Array<Types::MetricDataQuery>]
6215
+ #
6216
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PredictiveScalingCustomizedLoadMetric AWS API Documentation
6217
+ #
6218
+ class PredictiveScalingCustomizedLoadMetric < Struct.new(
6219
+ :metric_data_queries)
6220
+ SENSITIVE = []
6221
+ include Aws::Structure
6222
+ end
6223
+
6224
+ # Describes a customized scaling metric for a predictive scaling policy.
6225
+ #
6226
+ # @note When making an API call, you may pass PredictiveScalingCustomizedScalingMetric
6227
+ # data as a hash:
6228
+ #
6229
+ # {
6230
+ # metric_data_queries: [ # required
6231
+ # {
6232
+ # id: "XmlStringMaxLen255", # required
6233
+ # expression: "XmlStringMaxLen1023",
6234
+ # metric_stat: {
6235
+ # metric: { # required
6236
+ # namespace: "MetricNamespace", # required
6237
+ # metric_name: "MetricName", # required
6238
+ # dimensions: [
6239
+ # {
6240
+ # name: "MetricDimensionName", # required
6241
+ # value: "MetricDimensionValue", # required
6242
+ # },
6243
+ # ],
6244
+ # },
6245
+ # stat: "XmlStringMetricStat", # required
6246
+ # unit: "MetricUnit",
6247
+ # },
6248
+ # label: "XmlStringMetricLabel",
6249
+ # return_data: false,
6250
+ # },
6251
+ # ],
6252
+ # }
6253
+ #
6254
+ # @!attribute [rw] metric_data_queries
6255
+ # One or more metric data queries to provide the data points for a
6256
+ # scaling metric. Use multiple metric data queries only if you are
6257
+ # performing a math expression on returned data.
6258
+ # @return [Array<Types::MetricDataQuery>]
6259
+ #
6260
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PredictiveScalingCustomizedScalingMetric AWS API Documentation
6261
+ #
6262
+ class PredictiveScalingCustomizedScalingMetric < Struct.new(
6263
+ :metric_data_queries)
6264
+ SENSITIVE = []
6265
+ include Aws::Structure
6266
+ end
6267
+
5065
6268
  # This structure specifies the metrics and target utilization settings
5066
6269
  # for a predictive scaling policy.
5067
6270
  #
@@ -5102,6 +6305,14 @@ module Aws::AutoScaling
5102
6305
  # requests received by each instance is as close to 1000 requests per
5103
6306
  # minute as possible at all times.
5104
6307
  #
6308
+ # For information about using customized metrics with predictive
6309
+ # scaling, see [Advanced predictive scaling policy configurations using
6310
+ # customized metrics][1] in the *Amazon EC2 Auto Scaling User Guide*.
6311
+ #
6312
+ #
6313
+ #
6314
+ # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/predictive-scaling-customized-metric-specification.html
6315
+ #
5105
6316
  # @note When making an API call, you may pass PredictiveScalingMetricSpecification
5106
6317
  # data as a hash:
5107
6318
  #
@@ -5119,32 +6330,129 @@ module Aws::AutoScaling
5119
6330
  # predefined_metric_type: "ASGTotalCPUUtilization", # required, accepts ASGTotalCPUUtilization, ASGTotalNetworkIn, ASGTotalNetworkOut, ALBTargetGroupRequestCount
5120
6331
  # resource_label: "XmlStringMaxLen1023",
5121
6332
  # },
6333
+ # customized_scaling_metric_specification: {
6334
+ # metric_data_queries: [ # required
6335
+ # {
6336
+ # id: "XmlStringMaxLen255", # required
6337
+ # expression: "XmlStringMaxLen1023",
6338
+ # metric_stat: {
6339
+ # metric: { # required
6340
+ # namespace: "MetricNamespace", # required
6341
+ # metric_name: "MetricName", # required
6342
+ # dimensions: [
6343
+ # {
6344
+ # name: "MetricDimensionName", # required
6345
+ # value: "MetricDimensionValue", # required
6346
+ # },
6347
+ # ],
6348
+ # },
6349
+ # stat: "XmlStringMetricStat", # required
6350
+ # unit: "MetricUnit",
6351
+ # },
6352
+ # label: "XmlStringMetricLabel",
6353
+ # return_data: false,
6354
+ # },
6355
+ # ],
6356
+ # },
6357
+ # customized_load_metric_specification: {
6358
+ # metric_data_queries: [ # required
6359
+ # {
6360
+ # id: "XmlStringMaxLen255", # required
6361
+ # expression: "XmlStringMaxLen1023",
6362
+ # metric_stat: {
6363
+ # metric: { # required
6364
+ # namespace: "MetricNamespace", # required
6365
+ # metric_name: "MetricName", # required
6366
+ # dimensions: [
6367
+ # {
6368
+ # name: "MetricDimensionName", # required
6369
+ # value: "MetricDimensionValue", # required
6370
+ # },
6371
+ # ],
6372
+ # },
6373
+ # stat: "XmlStringMetricStat", # required
6374
+ # unit: "MetricUnit",
6375
+ # },
6376
+ # label: "XmlStringMetricLabel",
6377
+ # return_data: false,
6378
+ # },
6379
+ # ],
6380
+ # },
6381
+ # customized_capacity_metric_specification: {
6382
+ # metric_data_queries: [ # required
6383
+ # {
6384
+ # id: "XmlStringMaxLen255", # required
6385
+ # expression: "XmlStringMaxLen1023",
6386
+ # metric_stat: {
6387
+ # metric: { # required
6388
+ # namespace: "MetricNamespace", # required
6389
+ # metric_name: "MetricName", # required
6390
+ # dimensions: [
6391
+ # {
6392
+ # name: "MetricDimensionName", # required
6393
+ # value: "MetricDimensionValue", # required
6394
+ # },
6395
+ # ],
6396
+ # },
6397
+ # stat: "XmlStringMetricStat", # required
6398
+ # unit: "MetricUnit",
6399
+ # },
6400
+ # label: "XmlStringMetricLabel",
6401
+ # return_data: false,
6402
+ # },
6403
+ # ],
6404
+ # },
5122
6405
  # }
5123
6406
  #
5124
6407
  # @!attribute [rw] target_value
5125
6408
  # Specifies the target utilization.
6409
+ #
6410
+ # <note markdown="1"> Some metrics are based on a count instead of a percentage, such as
6411
+ # the request count for an Application Load Balancer or the number of
6412
+ # messages in an SQS queue. If the scaling policy specifies one of
6413
+ # these metrics, specify the target utilization as the optimal average
6414
+ # request or message count per instance during any one-minute
6415
+ # interval.
6416
+ #
6417
+ # </note>
5126
6418
  # @return [Float]
5127
6419
  #
5128
6420
  # @!attribute [rw] predefined_metric_pair_specification
5129
- # The metric pair specification from which Amazon EC2 Auto Scaling
5130
- # determines the appropriate scaling metric and load metric to use.
6421
+ # The predefined metric pair specification from which Amazon EC2 Auto
6422
+ # Scaling determines the appropriate scaling metric and load metric to
6423
+ # use.
5131
6424
  # @return [Types::PredictiveScalingPredefinedMetricPair]
5132
6425
  #
5133
6426
  # @!attribute [rw] predefined_scaling_metric_specification
5134
- # The scaling metric specification.
6427
+ # The predefined scaling metric specification.
5135
6428
  # @return [Types::PredictiveScalingPredefinedScalingMetric]
5136
6429
  #
5137
6430
  # @!attribute [rw] predefined_load_metric_specification
5138
- # The load metric specification.
6431
+ # The predefined load metric specification.
5139
6432
  # @return [Types::PredictiveScalingPredefinedLoadMetric]
5140
6433
  #
6434
+ # @!attribute [rw] customized_scaling_metric_specification
6435
+ # The customized scaling metric specification.
6436
+ # @return [Types::PredictiveScalingCustomizedScalingMetric]
6437
+ #
6438
+ # @!attribute [rw] customized_load_metric_specification
6439
+ # The customized load metric specification.
6440
+ # @return [Types::PredictiveScalingCustomizedLoadMetric]
6441
+ #
6442
+ # @!attribute [rw] customized_capacity_metric_specification
6443
+ # The customized capacity metric specification.
6444
+ # @return [Types::PredictiveScalingCustomizedCapacityMetric]
6445
+ #
5141
6446
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/PredictiveScalingMetricSpecification AWS API Documentation
5142
6447
  #
5143
6448
  class PredictiveScalingMetricSpecification < Struct.new(
5144
6449
  :target_value,
5145
6450
  :predefined_metric_pair_specification,
5146
6451
  :predefined_scaling_metric_specification,
5147
- :predefined_load_metric_specification)
6452
+ :predefined_load_metric_specification,
6453
+ :customized_scaling_metric_specification,
6454
+ :customized_load_metric_specification,
6455
+ :customized_capacity_metric_specification)
5148
6456
  SENSITIVE = []
5149
6457
  include Aws::Structure
5150
6458
  end
@@ -5572,6 +6880,78 @@ module Aws::AutoScaling
5572
6880
  # predefined_metric_type: "ASGTotalCPUUtilization", # required, accepts ASGTotalCPUUtilization, ASGTotalNetworkIn, ASGTotalNetworkOut, ALBTargetGroupRequestCount
5573
6881
  # resource_label: "XmlStringMaxLen1023",
5574
6882
  # },
6883
+ # customized_scaling_metric_specification: {
6884
+ # metric_data_queries: [ # required
6885
+ # {
6886
+ # id: "XmlStringMaxLen255", # required
6887
+ # expression: "XmlStringMaxLen1023",
6888
+ # metric_stat: {
6889
+ # metric: { # required
6890
+ # namespace: "MetricNamespace", # required
6891
+ # metric_name: "MetricName", # required
6892
+ # dimensions: [
6893
+ # {
6894
+ # name: "MetricDimensionName", # required
6895
+ # value: "MetricDimensionValue", # required
6896
+ # },
6897
+ # ],
6898
+ # },
6899
+ # stat: "XmlStringMetricStat", # required
6900
+ # unit: "MetricUnit",
6901
+ # },
6902
+ # label: "XmlStringMetricLabel",
6903
+ # return_data: false,
6904
+ # },
6905
+ # ],
6906
+ # },
6907
+ # customized_load_metric_specification: {
6908
+ # metric_data_queries: [ # required
6909
+ # {
6910
+ # id: "XmlStringMaxLen255", # required
6911
+ # expression: "XmlStringMaxLen1023",
6912
+ # metric_stat: {
6913
+ # metric: { # required
6914
+ # namespace: "MetricNamespace", # required
6915
+ # metric_name: "MetricName", # required
6916
+ # dimensions: [
6917
+ # {
6918
+ # name: "MetricDimensionName", # required
6919
+ # value: "MetricDimensionValue", # required
6920
+ # },
6921
+ # ],
6922
+ # },
6923
+ # stat: "XmlStringMetricStat", # required
6924
+ # unit: "MetricUnit",
6925
+ # },
6926
+ # label: "XmlStringMetricLabel",
6927
+ # return_data: false,
6928
+ # },
6929
+ # ],
6930
+ # },
6931
+ # customized_capacity_metric_specification: {
6932
+ # metric_data_queries: [ # required
6933
+ # {
6934
+ # id: "XmlStringMaxLen255", # required
6935
+ # expression: "XmlStringMaxLen1023",
6936
+ # metric_stat: {
6937
+ # metric: { # required
6938
+ # namespace: "MetricNamespace", # required
6939
+ # metric_name: "MetricName", # required
6940
+ # dimensions: [
6941
+ # {
6942
+ # name: "MetricDimensionName", # required
6943
+ # value: "MetricDimensionValue", # required
6944
+ # },
6945
+ # ],
6946
+ # },
6947
+ # stat: "XmlStringMetricStat", # required
6948
+ # unit: "MetricUnit",
6949
+ # },
6950
+ # label: "XmlStringMetricLabel",
6951
+ # return_data: false,
6952
+ # },
6953
+ # ],
6954
+ # },
5575
6955
  # },
5576
6956
  # ],
5577
6957
  # mode: "ForecastAndScale", # accepts ForecastAndScale, ForecastOnly
@@ -6629,6 +8009,53 @@ module Aws::AutoScaling
6629
8009
  # launch_template_name: "LaunchTemplateName",
6630
8010
  # version: "XmlStringMaxLen255",
6631
8011
  # },
8012
+ # instance_requirements: {
8013
+ # v_cpu_count: { # required
8014
+ # min: 1, # required
8015
+ # max: 1,
8016
+ # },
8017
+ # memory_mi_b: { # required
8018
+ # min: 1, # required
8019
+ # max: 1,
8020
+ # },
8021
+ # cpu_manufacturers: ["intel"], # accepts intel, amd, amazon-web-services
8022
+ # memory_gi_b_per_v_cpu: {
8023
+ # min: 1.0,
8024
+ # max: 1.0,
8025
+ # },
8026
+ # excluded_instance_types: ["ExcludedInstance"],
8027
+ # instance_generations: ["current"], # accepts current, previous
8028
+ # spot_max_price_percentage_over_lowest_price: 1,
8029
+ # on_demand_max_price_percentage_over_lowest_price: 1,
8030
+ # bare_metal: "included", # accepts included, excluded, required
8031
+ # burstable_performance: "included", # accepts included, excluded, required
8032
+ # require_hibernate_support: false,
8033
+ # network_interface_count: {
8034
+ # min: 1,
8035
+ # max: 1,
8036
+ # },
8037
+ # local_storage: "included", # accepts included, excluded, required
8038
+ # local_storage_types: ["hdd"], # accepts hdd, ssd
8039
+ # total_local_storage_gb: {
8040
+ # min: 1.0,
8041
+ # max: 1.0,
8042
+ # },
8043
+ # baseline_ebs_bandwidth_mbps: {
8044
+ # min: 1,
8045
+ # max: 1,
8046
+ # },
8047
+ # accelerator_types: ["gpu"], # accepts gpu, fpga, inference
8048
+ # accelerator_count: {
8049
+ # min: 1,
8050
+ # max: 1,
8051
+ # },
8052
+ # accelerator_manufacturers: ["nvidia"], # accepts nvidia, amd, amazon-web-services, xilinx
8053
+ # accelerator_names: ["a100"], # accepts a100, v100, k80, t4, m60, radeon-pro-v520, vu9p
8054
+ # accelerator_total_memory_mi_b: {
8055
+ # min: 1,
8056
+ # max: 1,
8057
+ # },
8058
+ # },
6632
8059
  # },
6633
8060
  # ],
6634
8061
  # },
@@ -6999,6 +8426,34 @@ module Aws::AutoScaling
6999
8426
  include Aws::Structure
7000
8427
  end
7001
8428
 
8429
+ # Specifies the minimum and maximum for the `TotalLocalStorageGB` object
8430
+ # when you specify InstanceRequirements for an Auto Scaling group.
8431
+ #
8432
+ # @note When making an API call, you may pass TotalLocalStorageGBRequest
8433
+ # data as a hash:
8434
+ #
8435
+ # {
8436
+ # min: 1.0,
8437
+ # max: 1.0,
8438
+ # }
8439
+ #
8440
+ # @!attribute [rw] min
8441
+ # The storage minimum in GB.
8442
+ # @return [Float]
8443
+ #
8444
+ # @!attribute [rw] max
8445
+ # The storage maximum in GB.
8446
+ # @return [Float]
8447
+ #
8448
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/TotalLocalStorageGBRequest AWS API Documentation
8449
+ #
8450
+ class TotalLocalStorageGBRequest < Struct.new(
8451
+ :min,
8452
+ :max)
8453
+ SENSITIVE = []
8454
+ include Aws::Structure
8455
+ end
8456
+
7002
8457
  # @note When making an API call, you may pass UpdateAutoScalingGroupType
7003
8458
  # data as a hash:
7004
8459
  #
@@ -7026,6 +8481,53 @@ module Aws::AutoScaling
7026
8481
  # launch_template_name: "LaunchTemplateName",
7027
8482
  # version: "XmlStringMaxLen255",
7028
8483
  # },
8484
+ # instance_requirements: {
8485
+ # v_cpu_count: { # required
8486
+ # min: 1, # required
8487
+ # max: 1,
8488
+ # },
8489
+ # memory_mi_b: { # required
8490
+ # min: 1, # required
8491
+ # max: 1,
8492
+ # },
8493
+ # cpu_manufacturers: ["intel"], # accepts intel, amd, amazon-web-services
8494
+ # memory_gi_b_per_v_cpu: {
8495
+ # min: 1.0,
8496
+ # max: 1.0,
8497
+ # },
8498
+ # excluded_instance_types: ["ExcludedInstance"],
8499
+ # instance_generations: ["current"], # accepts current, previous
8500
+ # spot_max_price_percentage_over_lowest_price: 1,
8501
+ # on_demand_max_price_percentage_over_lowest_price: 1,
8502
+ # bare_metal: "included", # accepts included, excluded, required
8503
+ # burstable_performance: "included", # accepts included, excluded, required
8504
+ # require_hibernate_support: false,
8505
+ # network_interface_count: {
8506
+ # min: 1,
8507
+ # max: 1,
8508
+ # },
8509
+ # local_storage: "included", # accepts included, excluded, required
8510
+ # local_storage_types: ["hdd"], # accepts hdd, ssd
8511
+ # total_local_storage_gb: {
8512
+ # min: 1.0,
8513
+ # max: 1.0,
8514
+ # },
8515
+ # baseline_ebs_bandwidth_mbps: {
8516
+ # min: 1,
8517
+ # max: 1,
8518
+ # },
8519
+ # accelerator_types: ["gpu"], # accepts gpu, fpga, inference
8520
+ # accelerator_count: {
8521
+ # min: 1,
8522
+ # max: 1,
8523
+ # },
8524
+ # accelerator_manufacturers: ["nvidia"], # accepts nvidia, amd, amazon-web-services, xilinx
8525
+ # accelerator_names: ["a100"], # accepts a100, v100, k80, t4, m60, radeon-pro-v520, vu9p
8526
+ # accelerator_total_memory_mi_b: {
8527
+ # min: 1,
8528
+ # max: 1,
8529
+ # },
8530
+ # },
7029
8531
  # },
7030
8532
  # ],
7031
8533
  # },
@@ -7053,6 +8555,7 @@ module Aws::AutoScaling
7053
8555
  # max_instance_lifetime: 1,
7054
8556
  # capacity_rebalance: false,
7055
8557
  # context: "Context",
8558
+ # desired_capacity_type: "XmlStringMaxLen255",
7056
8559
  # }
7057
8560
  #
7058
8561
  # @!attribute [rw] auto_scaling_group_name
@@ -7072,11 +8575,10 @@ module Aws::AutoScaling
7072
8575
  # @return [Types::LaunchTemplateSpecification]
7073
8576
  #
7074
8577
  # @!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*.
8578
+ # An embedded object that specifies a mixed instances policy. For more
8579
+ # information, see [Auto Scaling groups with multiple instance types
8580
+ # and purchase options][1] in the *Amazon EC2 Auto Scaling User
8581
+ # Guide*.
7080
8582
  #
7081
8583
  #
7082
8584
  #
@@ -7228,6 +8730,23 @@ module Aws::AutoScaling
7228
8730
  # Reserved.
7229
8731
  # @return [String]
7230
8732
  #
8733
+ # @!attribute [rw] desired_capacity_type
8734
+ # The unit of measurement for the value specified for desired
8735
+ # capacity. Amazon EC2 Auto Scaling supports `DesiredCapacityType` for
8736
+ # attribute-based instance type selection only. For more information,
8737
+ # see [Creating an Auto Scaling group using attribute-based instance
8738
+ # type selection][1] in the *Amazon EC2 Auto Scaling User Guide*.
8739
+ #
8740
+ # By default, Amazon EC2 Auto Scaling specifies `units`, which
8741
+ # translates into number of instances.
8742
+ #
8743
+ # Valid values: `units` \| `vcpu` \| `memory-mib`
8744
+ #
8745
+ #
8746
+ #
8747
+ # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html
8748
+ # @return [String]
8749
+ #
7231
8750
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/UpdateAutoScalingGroupType AWS API Documentation
7232
8751
  #
7233
8752
  class UpdateAutoScalingGroupType < Struct.new(
@@ -7249,7 +8768,36 @@ module Aws::AutoScaling
7249
8768
  :service_linked_role_arn,
7250
8769
  :max_instance_lifetime,
7251
8770
  :capacity_rebalance,
7252
- :context)
8771
+ :context,
8772
+ :desired_capacity_type)
8773
+ SENSITIVE = []
8774
+ include Aws::Structure
8775
+ end
8776
+
8777
+ # Specifies the minimum and maximum for the `VCpuCount` object when you
8778
+ # specify InstanceRequirements for an Auto Scaling group.
8779
+ #
8780
+ # @note When making an API call, you may pass VCpuCountRequest
8781
+ # data as a hash:
8782
+ #
8783
+ # {
8784
+ # min: 1, # required
8785
+ # max: 1,
8786
+ # }
8787
+ #
8788
+ # @!attribute [rw] min
8789
+ # The minimum number of vCPUs.
8790
+ # @return [Integer]
8791
+ #
8792
+ # @!attribute [rw] max
8793
+ # The maximum number of vCPUs.
8794
+ # @return [Integer]
8795
+ #
8796
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/VCpuCountRequest AWS API Documentation
8797
+ #
8798
+ class VCpuCountRequest < Struct.new(
8799
+ :min,
8800
+ :max)
7253
8801
  SENSITIVE = []
7254
8802
  include Aws::Structure
7255
8803
  end