aws-sdk-autoscaling 1.69.0 → 1.73.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,6 +10,63 @@
10
10
  module Aws::AutoScaling
11
11
  module Types
12
12
 
13
+ # Specifies the minimum and maximum for the `AcceleratorCount` object
14
+ # when you specify InstanceRequirements for an Auto Scaling group.
15
+ #
16
+ # @note When making an API call, you may pass AcceleratorCountRequest
17
+ # data as a hash:
18
+ #
19
+ # {
20
+ # min: 1,
21
+ # max: 1,
22
+ # }
23
+ #
24
+ # @!attribute [rw] min
25
+ # The minimum value.
26
+ # @return [Integer]
27
+ #
28
+ # @!attribute [rw] max
29
+ # The maximum value.
30
+ # @return [Integer]
31
+ #
32
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/AcceleratorCountRequest AWS API Documentation
33
+ #
34
+ class AcceleratorCountRequest < Struct.new(
35
+ :min,
36
+ :max)
37
+ SENSITIVE = []
38
+ include Aws::Structure
39
+ end
40
+
41
+ # Specifies the minimum and maximum for the `AcceleratorTotalMemoryMiB`
42
+ # object when you specify InstanceRequirements for an Auto Scaling
43
+ # group.
44
+ #
45
+ # @note When making an API call, you may pass AcceleratorTotalMemoryMiBRequest
46
+ # data as a hash:
47
+ #
48
+ # {
49
+ # min: 1,
50
+ # max: 1,
51
+ # }
52
+ #
53
+ # @!attribute [rw] min
54
+ # The memory minimum in MiB.
55
+ # @return [Integer]
56
+ #
57
+ # @!attribute [rw] max
58
+ # The memory maximum in MiB.
59
+ # @return [Integer]
60
+ #
61
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/AcceleratorTotalMemoryMiBRequest AWS API Documentation
62
+ #
63
+ class AcceleratorTotalMemoryMiBRequest < Struct.new(
64
+ :min,
65
+ :max)
66
+ SENSITIVE = []
67
+ include Aws::Structure
68
+ end
69
+
13
70
  # The request failed because an active instance refresh for the
14
71
  # specified Auto Scaling group was not found.
15
72
  #
@@ -411,6 +468,23 @@ module Aws::AutoScaling
411
468
  # Reserved.
412
469
  # @return [String]
413
470
  #
471
+ # @!attribute [rw] desired_capacity_type
472
+ # The unit of measurement for the value specified for desired
473
+ # capacity. Amazon EC2 Auto Scaling supports `DesiredCapacityType` for
474
+ # attribute-based instance type selection only. For more information,
475
+ # see [Creating an Auto Scaling group using attribute-based instance
476
+ # type selection][1] in the *Amazon EC2 Auto Scaling User Guide*.
477
+ #
478
+ # By default, Amazon EC2 Auto Scaling specifies `units`, which
479
+ # translates into number of instances.
480
+ #
481
+ # Valid values: `units` \| `vcpu` \| `memory-mib`
482
+ #
483
+ #
484
+ #
485
+ # [1]: https://docs.aws.amazon.com/autoscaling/ec2/userguide/create-asg-instance-type-requirements.html
486
+ # @return [String]
487
+ #
414
488
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/AutoScalingGroup AWS API Documentation
415
489
  #
416
490
  class AutoScalingGroup < Struct.new(
@@ -444,7 +518,8 @@ module Aws::AutoScaling
444
518
  :capacity_rebalance,
445
519
  :warm_pool_configuration,
446
520
  :warm_pool_size,
447
- :context)
521
+ :context,
522
+ :desired_capacity_type)
448
523
  SENSITIVE = []
449
524
  include Aws::Structure
450
525
  end
@@ -622,6 +697,35 @@ module Aws::AutoScaling
622
697
  include Aws::Structure
623
698
  end
624
699
 
700
+ # Specifies the minimum and maximum for the `BaselineEbsBandwidthMbps`
701
+ # object when you specify InstanceRequirements for an Auto Scaling
702
+ # group.
703
+ #
704
+ # @note When making an API call, you may pass BaselineEbsBandwidthMbpsRequest
705
+ # data as a hash:
706
+ #
707
+ # {
708
+ # min: 1,
709
+ # max: 1,
710
+ # }
711
+ #
712
+ # @!attribute [rw] min
713
+ # The minimum value in Mbps.
714
+ # @return [Integer]
715
+ #
716
+ # @!attribute [rw] max
717
+ # The maximum value in Mbps.
718
+ # @return [Integer]
719
+ #
720
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/BaselineEbsBandwidthMbpsRequest AWS API Documentation
721
+ #
722
+ class BaselineEbsBandwidthMbpsRequest < Struct.new(
723
+ :min,
724
+ :max)
725
+ SENSITIVE = []
726
+ include Aws::Structure
727
+ end
728
+
625
729
  # @!attribute [rw] failed_scheduled_actions
626
730
  # The names of the scheduled actions that could not be deleted,
627
731
  # including an error message.
@@ -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