aws-sdk-autoscaling 1.11.0 → 1.12.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.
@@ -119,6 +119,7 @@ module Aws::AutoScaling
119
119
  InstanceMonitoring = Shapes::StructureShape.new(name: 'InstanceMonitoring')
120
120
  InstanceProtected = Shapes::BooleanShape.new(name: 'InstanceProtected')
121
121
  Instances = Shapes::ListShape.new(name: 'Instances')
122
+ InstancesDistribution = Shapes::StructureShape.new(name: 'InstancesDistribution')
122
123
  InvalidNextToken = Shapes::StructureShape.new(name: 'InvalidNextToken')
123
124
  LaunchConfiguration = Shapes::StructureShape.new(name: 'LaunchConfiguration')
124
125
  LaunchConfigurationNameType = Shapes::StructureShape.new(name: 'LaunchConfigurationNameType')
@@ -126,7 +127,9 @@ module Aws::AutoScaling
126
127
  LaunchConfigurationNamesType = Shapes::StructureShape.new(name: 'LaunchConfigurationNamesType')
127
128
  LaunchConfigurations = Shapes::ListShape.new(name: 'LaunchConfigurations')
128
129
  LaunchConfigurationsType = Shapes::StructureShape.new(name: 'LaunchConfigurationsType')
130
+ LaunchTemplate = Shapes::StructureShape.new(name: 'LaunchTemplate')
129
131
  LaunchTemplateName = Shapes::StringShape.new(name: 'LaunchTemplateName')
132
+ LaunchTemplateOverrides = Shapes::StructureShape.new(name: 'LaunchTemplateOverrides')
130
133
  LaunchTemplateSpecification = Shapes::StructureShape.new(name: 'LaunchTemplateSpecification')
131
134
  LifecycleActionResult = Shapes::StringShape.new(name: 'LifecycleActionResult')
132
135
  LifecycleActionToken = Shapes::StringShape.new(name: 'LifecycleActionToken')
@@ -163,6 +166,7 @@ module Aws::AutoScaling
163
166
  Metrics = Shapes::ListShape.new(name: 'Metrics')
164
167
  MinAdjustmentMagnitude = Shapes::IntegerShape.new(name: 'MinAdjustmentMagnitude')
165
168
  MinAdjustmentStep = Shapes::IntegerShape.new(name: 'MinAdjustmentStep')
169
+ MixedInstancesPolicy = Shapes::StructureShape.new(name: 'MixedInstancesPolicy')
166
170
  MonitoringEnabled = Shapes::BooleanShape.new(name: 'MonitoringEnabled')
167
171
  NoDevice = Shapes::BooleanShape.new(name: 'NoDevice')
168
172
  NotificationConfiguration = Shapes::StructureShape.new(name: 'NotificationConfiguration')
@@ -170,6 +174,9 @@ module Aws::AutoScaling
170
174
  NotificationTargetResourceName = Shapes::StringShape.new(name: 'NotificationTargetResourceName')
171
175
  NumberOfAutoScalingGroups = Shapes::IntegerShape.new(name: 'NumberOfAutoScalingGroups')
172
176
  NumberOfLaunchConfigurations = Shapes::IntegerShape.new(name: 'NumberOfLaunchConfigurations')
177
+ OnDemandBaseCapacity = Shapes::IntegerShape.new(name: 'OnDemandBaseCapacity')
178
+ OnDemandPercentageAboveBaseCapacity = Shapes::IntegerShape.new(name: 'OnDemandPercentageAboveBaseCapacity')
179
+ Overrides = Shapes::ListShape.new(name: 'Overrides')
173
180
  PoliciesType = Shapes::StructureShape.new(name: 'PoliciesType')
174
181
  PolicyARNType = Shapes::StructureShape.new(name: 'PolicyARNType')
175
182
  PolicyIncrement = Shapes::IntegerShape.new(name: 'PolicyIncrement')
@@ -212,6 +219,7 @@ module Aws::AutoScaling
212
219
  SetInstanceProtectionQuery = Shapes::StructureShape.new(name: 'SetInstanceProtectionQuery')
213
220
  ShouldDecrementDesiredCapacity = Shapes::BooleanShape.new(name: 'ShouldDecrementDesiredCapacity')
214
221
  ShouldRespectGracePeriod = Shapes::BooleanShape.new(name: 'ShouldRespectGracePeriod')
222
+ SpotInstancePools = Shapes::IntegerShape.new(name: 'SpotInstancePools')
215
223
  SpotPrice = Shapes::StringShape.new(name: 'SpotPrice')
216
224
  StepAdjustment = Shapes::StructureShape.new(name: 'StepAdjustment')
217
225
  StepAdjustments = Shapes::ListShape.new(name: 'StepAdjustments')
@@ -296,6 +304,7 @@ module Aws::AutoScaling
296
304
  AutoScalingGroup.add_member(:auto_scaling_group_arn, Shapes::ShapeRef.new(shape: ResourceName, location_name: "AutoScalingGroupARN"))
297
305
  AutoScalingGroup.add_member(:launch_configuration_name, Shapes::ShapeRef.new(shape: XmlStringMaxLen255, location_name: "LaunchConfigurationName"))
298
306
  AutoScalingGroup.add_member(:launch_template, Shapes::ShapeRef.new(shape: LaunchTemplateSpecification, location_name: "LaunchTemplate"))
307
+ AutoScalingGroup.add_member(:mixed_instances_policy, Shapes::ShapeRef.new(shape: MixedInstancesPolicy, location_name: "MixedInstancesPolicy"))
299
308
  AutoScalingGroup.add_member(:min_size, Shapes::ShapeRef.new(shape: AutoScalingGroupMinSize, required: true, location_name: "MinSize"))
300
309
  AutoScalingGroup.add_member(:max_size, Shapes::ShapeRef.new(shape: AutoScalingGroupMaxSize, required: true, location_name: "MaxSize"))
301
310
  AutoScalingGroup.add_member(:desired_capacity, Shapes::ShapeRef.new(shape: AutoScalingGroupDesiredCapacity, required: true, location_name: "DesiredCapacity"))
@@ -387,6 +396,7 @@ module Aws::AutoScaling
387
396
  CreateAutoScalingGroupType.add_member(:auto_scaling_group_name, Shapes::ShapeRef.new(shape: XmlStringMaxLen255, required: true, location_name: "AutoScalingGroupName"))
388
397
  CreateAutoScalingGroupType.add_member(:launch_configuration_name, Shapes::ShapeRef.new(shape: ResourceName, location_name: "LaunchConfigurationName"))
389
398
  CreateAutoScalingGroupType.add_member(:launch_template, Shapes::ShapeRef.new(shape: LaunchTemplateSpecification, location_name: "LaunchTemplate"))
399
+ CreateAutoScalingGroupType.add_member(:mixed_instances_policy, Shapes::ShapeRef.new(shape: MixedInstancesPolicy, location_name: "MixedInstancesPolicy"))
390
400
  CreateAutoScalingGroupType.add_member(:instance_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen19, location_name: "InstanceId"))
391
401
  CreateAutoScalingGroupType.add_member(:min_size, Shapes::ShapeRef.new(shape: AutoScalingGroupMinSize, required: true, location_name: "MinSize"))
392
402
  CreateAutoScalingGroupType.add_member(:max_size, Shapes::ShapeRef.new(shape: AutoScalingGroupMaxSize, required: true, location_name: "MaxSize"))
@@ -642,6 +652,14 @@ module Aws::AutoScaling
642
652
 
643
653
  Instances.member = Shapes::ShapeRef.new(shape: Instance)
644
654
 
655
+ InstancesDistribution.add_member(:on_demand_allocation_strategy, Shapes::ShapeRef.new(shape: XmlString, location_name: "OnDemandAllocationStrategy"))
656
+ InstancesDistribution.add_member(:on_demand_base_capacity, Shapes::ShapeRef.new(shape: OnDemandBaseCapacity, location_name: "OnDemandBaseCapacity"))
657
+ InstancesDistribution.add_member(:on_demand_percentage_above_base_capacity, Shapes::ShapeRef.new(shape: OnDemandPercentageAboveBaseCapacity, location_name: "OnDemandPercentageAboveBaseCapacity"))
658
+ InstancesDistribution.add_member(:spot_allocation_strategy, Shapes::ShapeRef.new(shape: XmlString, location_name: "SpotAllocationStrategy"))
659
+ InstancesDistribution.add_member(:spot_instance_pools, Shapes::ShapeRef.new(shape: SpotInstancePools, location_name: "SpotInstancePools"))
660
+ InstancesDistribution.add_member(:spot_max_price, Shapes::ShapeRef.new(shape: SpotPrice, location_name: "SpotMaxPrice"))
661
+ InstancesDistribution.struct_class = Types::InstancesDistribution
662
+
645
663
  LaunchConfiguration.add_member(:launch_configuration_name, Shapes::ShapeRef.new(shape: XmlStringMaxLen255, required: true, location_name: "LaunchConfigurationName"))
646
664
  LaunchConfiguration.add_member(:launch_configuration_arn, Shapes::ShapeRef.new(shape: ResourceName, location_name: "LaunchConfigurationARN"))
647
665
  LaunchConfiguration.add_member(:image_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen255, required: true, location_name: "ImageId"))
@@ -679,6 +697,13 @@ module Aws::AutoScaling
679
697
  LaunchConfigurationsType.add_member(:next_token, Shapes::ShapeRef.new(shape: XmlString, location_name: "NextToken"))
680
698
  LaunchConfigurationsType.struct_class = Types::LaunchConfigurationsType
681
699
 
700
+ LaunchTemplate.add_member(:launch_template_specification, Shapes::ShapeRef.new(shape: LaunchTemplateSpecification, location_name: "LaunchTemplateSpecification"))
701
+ LaunchTemplate.add_member(:overrides, Shapes::ShapeRef.new(shape: Overrides, location_name: "Overrides"))
702
+ LaunchTemplate.struct_class = Types::LaunchTemplate
703
+
704
+ LaunchTemplateOverrides.add_member(:instance_type, Shapes::ShapeRef.new(shape: XmlStringMaxLen255, location_name: "InstanceType"))
705
+ LaunchTemplateOverrides.struct_class = Types::LaunchTemplateOverrides
706
+
682
707
  LaunchTemplateSpecification.add_member(:launch_template_id, Shapes::ShapeRef.new(shape: XmlStringMaxLen255, location_name: "LaunchTemplateId"))
683
708
  LaunchTemplateSpecification.add_member(:launch_template_name, Shapes::ShapeRef.new(shape: LaunchTemplateName, location_name: "LaunchTemplateName"))
684
709
  LaunchTemplateSpecification.add_member(:version, Shapes::ShapeRef.new(shape: XmlStringMaxLen255, location_name: "Version"))
@@ -742,6 +767,10 @@ module Aws::AutoScaling
742
767
 
743
768
  Metrics.member = Shapes::ShapeRef.new(shape: XmlStringMaxLen255)
744
769
 
770
+ MixedInstancesPolicy.add_member(:launch_template, Shapes::ShapeRef.new(shape: LaunchTemplate, location_name: "LaunchTemplate"))
771
+ MixedInstancesPolicy.add_member(:instances_distribution, Shapes::ShapeRef.new(shape: InstancesDistribution, location_name: "InstancesDistribution"))
772
+ MixedInstancesPolicy.struct_class = Types::MixedInstancesPolicy
773
+
745
774
  NotificationConfiguration.add_member(:auto_scaling_group_name, Shapes::ShapeRef.new(shape: ResourceName, location_name: "AutoScalingGroupName"))
746
775
  NotificationConfiguration.add_member(:topic_arn, Shapes::ShapeRef.new(shape: ResourceName, location_name: "TopicARN"))
747
776
  NotificationConfiguration.add_member(:notification_type, Shapes::ShapeRef.new(shape: XmlStringMaxLen255, location_name: "NotificationType"))
@@ -749,6 +778,8 @@ module Aws::AutoScaling
749
778
 
750
779
  NotificationConfigurations.member = Shapes::ShapeRef.new(shape: NotificationConfiguration)
751
780
 
781
+ Overrides.member = Shapes::ShapeRef.new(shape: LaunchTemplateOverrides)
782
+
752
783
  PoliciesType.add_member(:scaling_policies, Shapes::ShapeRef.new(shape: ScalingPolicies, location_name: "ScalingPolicies"))
753
784
  PoliciesType.add_member(:next_token, Shapes::ShapeRef.new(shape: XmlString, location_name: "NextToken"))
754
785
  PoliciesType.struct_class = Types::PoliciesType
@@ -949,6 +980,7 @@ module Aws::AutoScaling
949
980
  UpdateAutoScalingGroupType.add_member(:auto_scaling_group_name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location_name: "AutoScalingGroupName"))
950
981
  UpdateAutoScalingGroupType.add_member(:launch_configuration_name, Shapes::ShapeRef.new(shape: ResourceName, location_name: "LaunchConfigurationName"))
951
982
  UpdateAutoScalingGroupType.add_member(:launch_template, Shapes::ShapeRef.new(shape: LaunchTemplateSpecification, location_name: "LaunchTemplate"))
983
+ UpdateAutoScalingGroupType.add_member(:mixed_instances_policy, Shapes::ShapeRef.new(shape: MixedInstancesPolicy, location_name: "MixedInstancesPolicy"))
952
984
  UpdateAutoScalingGroupType.add_member(:min_size, Shapes::ShapeRef.new(shape: AutoScalingGroupMinSize, location_name: "MinSize"))
953
985
  UpdateAutoScalingGroupType.add_member(:max_size, Shapes::ShapeRef.new(shape: AutoScalingGroupMaxSize, location_name: "MaxSize"))
954
986
  UpdateAutoScalingGroupType.add_member(:desired_capacity, Shapes::ShapeRef.new(shape: AutoScalingGroupDesiredCapacity, location_name: "DesiredCapacity"))
@@ -316,18 +316,18 @@ module Aws::AutoScaling
316
316
  # })
317
317
  # @param [Hash] options ({})
318
318
  # @option options [required, String] :health_status
319
- # The health status of the instance. Set to `Healthy` if you want the
320
- # instance to remain in service. Set to `Unhealthy` if you want the
321
- # instance to be out of service. Amazon EC2 Auto Scaling will terminate
322
- # and replace the unhealthy instance.
319
+ # The health status of the instance. Set to `Healthy` to have the
320
+ # instance remain in service. Set to `Unhealthy` to have the instance be
321
+ # out of service. Amazon EC2 Auto Scaling terminates and replaces the
322
+ # unhealthy instance.
323
323
  # @option options [Boolean] :should_respect_grace_period
324
324
  # If the Auto Scaling group of the specified instance has a
325
325
  # `HealthCheckGracePeriod` specified for the group, by default, this
326
- # call will respect the grace period. Set this to `False`, if you do not
327
- # want the call to respect the grace period associated with the group.
326
+ # call respects the grace period. Set this to `False`, to have the call
327
+ # not respect the grace period associated with the group.
328
328
  #
329
- # For more information, see the description of the health check grace
330
- # period for CreateAutoScalingGroup.
329
+ # For more information about the health check grace period, see
330
+ # CreateAutoScalingGroup.
331
331
  # @return [EmptyStructure]
332
332
  def set_health(options = {})
333
333
  options = options.merge(instance_id: @id)
@@ -40,8 +40,8 @@ module Aws::AutoScaling
40
40
  end
41
41
  alias :lifecycle_hook_name :name
42
42
 
43
- # The state of the EC2 instance to which you want to attach the
44
- # lifecycle hook. The following are possible values:
43
+ # The state of the EC2 instance to which to attach the lifecycle hook.
44
+ # The following are possible values:
45
45
  #
46
46
  # * autoscaling:EC2\_INSTANCE\_LAUNCHING
47
47
  #
@@ -305,18 +305,18 @@ module Aws::AutoScaling
305
305
  # This parameter is required for new lifecycle hooks, but optional when
306
306
  # updating existing hooks.
307
307
  # @option options [String] :notification_target_arn
308
- # The ARN of the notification target that Amazon EC2 Auto Scaling will
309
- # use to notify you when an instance is in the transition state for the
308
+ # The ARN of the notification target that Amazon EC2 Auto Scaling uses
309
+ # to notify you when an instance is in the transition state for the
310
310
  # lifecycle hook. This target can be either an SQS queue or an SNS
311
311
  # topic. If you specify an empty string, this overrides the current ARN.
312
312
  #
313
313
  # This operation uses the JSON format when sending notifications to an
314
- # Amazon SQS queue, and an email key/value pair format when sending
314
+ # Amazon SQS queue, and an email key-value pair format when sending
315
315
  # notifications to an Amazon SNS topic.
316
316
  #
317
317
  # When you specify a notification target, Amazon EC2 Auto Scaling sends
318
- # it a test message. Test messages contains the following additional
319
- # key/value pair: `"Event": "autoscaling:TEST_NOTIFICATION"`.
318
+ # it a test message. Test messages contain the following additional
319
+ # key-value pair: `"Event": "autoscaling:TEST_NOTIFICATION"`.
320
320
  # @option options [String] :notification_metadata
321
321
  # Contains additional information that you want to include any time
322
322
  # Amazon EC2 Auto Scaling sends a message to the notification target.
@@ -353,7 +353,7 @@ module Aws::AutoScaling
353
353
  # @option options [String] :lifecycle_action_token
354
354
  # A token that uniquely identifies a specific lifecycle action
355
355
  # associated with an instance. Amazon EC2 Auto Scaling sends this token
356
- # to the notification target you specified when you created the
356
+ # to the notification target that you specified when you created the
357
357
  # lifecycle hook.
358
358
  # @option options [String] :instance_id
359
359
  # The ID of the instance.
@@ -31,6 +31,28 @@ module Aws::AutoScaling
31
31
  # launch_template_name: "LaunchTemplateName",
32
32
  # version: "XmlStringMaxLen255",
33
33
  # },
34
+ # mixed_instances_policy: {
35
+ # launch_template: {
36
+ # launch_template_specification: {
37
+ # launch_template_id: "XmlStringMaxLen255",
38
+ # launch_template_name: "LaunchTemplateName",
39
+ # version: "XmlStringMaxLen255",
40
+ # },
41
+ # overrides: [
42
+ # {
43
+ # instance_type: "XmlStringMaxLen255",
44
+ # },
45
+ # ],
46
+ # },
47
+ # instances_distribution: {
48
+ # on_demand_allocation_strategy: "XmlString",
49
+ # on_demand_base_capacity: 1,
50
+ # on_demand_percentage_above_base_capacity: 1,
51
+ # spot_allocation_strategy: "XmlString",
52
+ # spot_instance_pools: 1,
53
+ # spot_max_price: "SpotPrice",
54
+ # },
55
+ # },
34
56
  # instance_id: "XmlStringMaxLen19",
35
57
  # min_size: 1, # required
36
58
  # max_size: 1, # required
@@ -72,22 +94,26 @@ module Aws::AutoScaling
72
94
  # The name of the Auto Scaling group. This name must be unique within
73
95
  # the scope of your AWS account.
74
96
  # @option options [String] :launch_configuration_name
75
- # The name of the launch configuration. You must specify one of the
76
- # following: a launch configuration, a launch template, or an EC2
77
- # instance.
97
+ # The name of the launch configuration. This parameter, a launch
98
+ # template, a mixed instances policy, or an EC2 instance must be
99
+ # specified.
78
100
  # @option options [Types::LaunchTemplateSpecification] :launch_template
79
- # The launch template to use to launch instances. You must specify one
80
- # of the following: a launch template, a launch configuration, or an EC2
81
- # instance.
101
+ # The launch template to use to launch instances. This parameter, a
102
+ # launch configuration, a mixed instances policy, or an EC2 instance
103
+ # must be specified.
104
+ # @option options [Types::MixedInstancesPolicy] :mixed_instances_policy
105
+ # The mixed instances policy to use to launch instances. This parameter,
106
+ # a launch template, a launch configuration, or an EC2 instance must be
107
+ # specified.
82
108
  # @option options [String] :instance_id
83
109
  # The ID of the instance used to create a launch configuration for the
84
- # group. You must specify one of the following: an EC2 instance, a
85
- # launch configuration, or a launch template.
110
+ # group. This parameter, a launch configuration, a launch template, or a
111
+ # mixed instances policy must be specified.
86
112
  #
87
113
  # When you specify an ID of an instance, Amazon EC2 Auto Scaling creates
88
114
  # a new launch configuration and associates it with the group. This
89
115
  # launch configuration derives its attributes from the specified
90
- # instance, with the exception of the block device mapping.
116
+ # instance, except for the block device mapping.
91
117
  #
92
118
  # For more information, see [Create an Auto Scaling Group Using an EC2
93
119
  # Instance][1] in the *Amazon EC2 Auto Scaling User Guide*.
@@ -156,9 +182,9 @@ module Aws::AutoScaling
156
182
  #
157
183
  # [1]: http://docs.aws.amazon.com/autoscaling/ec2/userguide/healthcheck.html
158
184
  # @option options [String] :placement_group
159
- # The name of the placement group into which you'll launch your
160
- # instances, if any. For more information, see [Placement Groups][1] in
161
- # the *Amazon Elastic Compute Cloud User Guide*.
185
+ # The name of the placement group into which to launch your instances,
186
+ # if any. For more information, see [Placement Groups][1] in the *Amazon
187
+ # Elastic Compute Cloud User Guide*.
162
188
  #
163
189
  #
164
190
  #
@@ -281,9 +307,9 @@ module Aws::AutoScaling
281
307
  # One or more security groups with which to associate the instances.
282
308
  #
283
309
  # If your instances are launched in EC2-Classic, you can either specify
284
- # security group names or the security group IDs. For more information
285
- # about security groups for EC2-Classic, see [Amazon EC2 Security
286
- # Groups][1] in the *Amazon Elastic Compute Cloud User Guide*.
310
+ # security group names or the security group IDs. For more information,
311
+ # see [Amazon EC2 Security Groups][1] in the *Amazon Elastic Compute
312
+ # Cloud User Guide*.
287
313
  #
288
314
  # If your instances are launched into a VPC, specify security group IDs.
289
315
  # For more information, see [Security Groups for Your VPC][2] in the
@@ -322,8 +348,8 @@ module Aws::AutoScaling
322
348
  # [1]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html
323
349
  # @option options [String] :instance_id
324
350
  # The ID of the instance to use to create the launch configuration. The
325
- # new launch configuration derives attributes from the instance, with
326
- # the exception of the block device mapping.
351
+ # new launch configuration derives attributes from the instance, except
352
+ # for the block device mapping.
327
353
  #
328
354
  # If you do not specify `InstanceId`, you must specify both `ImageId`
329
355
  # and `InstanceType`.
@@ -378,7 +404,7 @@ module Aws::AutoScaling
378
404
  # The name or the Amazon Resource Name (ARN) of the instance profile
379
405
  # associated with the IAM role for the instance.
380
406
  #
381
- # EC2 instances launched with an IAM role will automatically have AWS
407
+ # EC2 instances launched with an IAM role automatically have AWS
382
408
  # security credentials available. You can use IAM roles with Amazon EC2
383
409
  # Auto Scaling to automatically enable applications running on your EC2
384
410
  # instances to securely access other AWS resources. For more
@@ -421,9 +447,9 @@ module Aws::AutoScaling
421
447
  # The tenancy of the instance. An instance with a tenancy of `dedicated`
422
448
  # runs on single-tenant hardware and can only be launched into a VPC.
423
449
  #
424
- # You must set the value of this parameter to `dedicated` if want to
425
- # launch Dedicated Instances into a shared tenancy VPC (VPC with
426
- # instance placement tenancy attribute set to `default`).
450
+ # To launch Dedicated Instances into a shared tenancy VPC (a VPC with
451
+ # the instance placement tenancy attribute set to `default`), you must
452
+ # set the value of this parameter to `dedicated`.
427
453
  #
428
454
  # If you specify this parameter, be sure to specify at least one subnet
429
455
  # when you create your group.
@@ -607,7 +633,7 @@ module Aws::AutoScaling
607
633
  # The name of the Auto Scaling group.
608
634
  # @option options [Array<String>] :policy_names
609
635
  # The names of one or more policies. If you omit this parameter, all
610
- # policies are described. If an group name is provided, the results are
636
+ # policies are described. If a group name is provided, the results are
611
637
  # limited to that group. This list is limited to 50 items. If you
612
638
  # specify an unknown policy name, it is ignored with no error.
613
639
  # @option options [Array<String>] :policy_types
@@ -703,7 +729,8 @@ module Aws::AutoScaling
703
729
  # })
704
730
  # @param [Hash] options ({})
705
731
  # @option options [Array<Types::Filter>] :filters
706
- # A filter used to scope the tags to return.
732
+ # One or more filters to scope the tags to return. The maximum number of
733
+ # filters per filter type (for example, `auto-scaling-group`) is 1000.
707
734
  # @return [Tag::Collection]
708
735
  def tags(options = {})
709
736
  batches = Enumerator.new do |y|
@@ -53,7 +53,7 @@ module Aws::AutoScaling
53
53
  # time can be up to one month in the future.
54
54
  #
55
55
  # When `StartTime` and `EndTime` are specified with `Recurrence`, they
56
- # form the boundaries of when the recurring action will start and stop.
56
+ # form the boundaries of when the recurring action starts and stops.
57
57
  # @return [Time]
58
58
  def start_time
59
59
  data[:start_time]
@@ -105,7 +105,7 @@ module Aws::AutoScaling
105
105
  #
106
106
  #
107
107
  #
108
- # [1]: http://docs.aws.amazon.com/autoscaling/ec2/DeveloperGuide/as-scale-based-on-demand.html
108
+ # [1]: http://docs.aws.amazon.com/autoscaling/ec2/userguide/as-scale-based-on-demand.html
109
109
  #
110
110
  # @!attribute [rw] adjustment_type
111
111
  # The policy adjustment type. The valid values are `ChangeInCapacity`,
@@ -237,6 +237,10 @@ module Aws::AutoScaling
237
237
  # The launch template for the group.
238
238
  # @return [Types::LaunchTemplateSpecification]
239
239
  #
240
+ # @!attribute [rw] mixed_instances_policy
241
+ # The mixed instances policy for the group.
242
+ # @return [Types::MixedInstancesPolicy]
243
+ #
240
244
  # @!attribute [rw] min_size
241
245
  # The minimum size of the group.
242
246
  # @return [Integer]
@@ -291,9 +295,9 @@ module Aws::AutoScaling
291
295
  # @return [Array<Types::SuspendedProcess>]
292
296
  #
293
297
  # @!attribute [rw] placement_group
294
- # The name of the placement group into which you'll launch your
295
- # instances, if any. For more information, see [Placement Groups][1]
296
- # in the *Amazon Elastic Compute Cloud User Guide*.
298
+ # The name of the placement group into which to launch your instances,
299
+ # if any. For more information, see [Placement Groups][1] in the
300
+ # *Amazon Elastic Compute Cloud User Guide*.
297
301
  #
298
302
  #
299
303
  #
@@ -342,6 +346,7 @@ module Aws::AutoScaling
342
346
  :auto_scaling_group_arn,
343
347
  :launch_configuration_name,
344
348
  :launch_template,
349
+ :mixed_instances_policy,
345
350
  :min_size,
346
351
  :max_size,
347
352
  :desired_capacity,
@@ -612,8 +617,8 @@ module Aws::AutoScaling
612
617
  # Suppresses a device mapping.
613
618
  #
614
619
  # If this parameter is true for the root device, the instance might
615
- # fail the EC2 health check. Amazon EC2 Auto Scaling launches a
616
- # replacement instance if the instance fails the health check.
620
+ # fail the EC2 health check. In that case, Amazon EC2 Auto Scaling
621
+ # launches a replacement instance.
617
622
  # @return [Boolean]
618
623
  #
619
624
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/BlockDeviceMapping AWS API Documentation
@@ -687,6 +692,28 @@ module Aws::AutoScaling
687
692
  # launch_template_name: "LaunchTemplateName",
688
693
  # version: "XmlStringMaxLen255",
689
694
  # },
695
+ # mixed_instances_policy: {
696
+ # launch_template: {
697
+ # launch_template_specification: {
698
+ # launch_template_id: "XmlStringMaxLen255",
699
+ # launch_template_name: "LaunchTemplateName",
700
+ # version: "XmlStringMaxLen255",
701
+ # },
702
+ # overrides: [
703
+ # {
704
+ # instance_type: "XmlStringMaxLen255",
705
+ # },
706
+ # ],
707
+ # },
708
+ # instances_distribution: {
709
+ # on_demand_allocation_strategy: "XmlString",
710
+ # on_demand_base_capacity: 1,
711
+ # on_demand_percentage_above_base_capacity: 1,
712
+ # spot_allocation_strategy: "XmlString",
713
+ # spot_instance_pools: 1,
714
+ # spot_max_price: "SpotPrice",
715
+ # },
716
+ # },
690
717
  # instance_id: "XmlStringMaxLen19",
691
718
  # min_size: 1, # required
692
719
  # max_size: 1, # required
@@ -730,26 +757,32 @@ module Aws::AutoScaling
730
757
  # @return [String]
731
758
  #
732
759
  # @!attribute [rw] launch_configuration_name
733
- # The name of the launch configuration. You must specify one of the
734
- # following: a launch configuration, a launch template, or an EC2
735
- # instance.
760
+ # The name of the launch configuration. This parameter, a launch
761
+ # template, a mixed instances policy, or an EC2 instance must be
762
+ # specified.
736
763
  # @return [String]
737
764
  #
738
765
  # @!attribute [rw] launch_template
739
- # The launch template to use to launch instances. You must specify one
740
- # of the following: a launch template, a launch configuration, or an
741
- # EC2 instance.
766
+ # The launch template to use to launch instances. This parameter, a
767
+ # launch configuration, a mixed instances policy, or an EC2 instance
768
+ # must be specified.
742
769
  # @return [Types::LaunchTemplateSpecification]
743
770
  #
771
+ # @!attribute [rw] mixed_instances_policy
772
+ # The mixed instances policy to use to launch instances. This
773
+ # parameter, a launch template, a launch configuration, or an EC2
774
+ # instance must be specified.
775
+ # @return [Types::MixedInstancesPolicy]
776
+ #
744
777
  # @!attribute [rw] instance_id
745
778
  # The ID of the instance used to create a launch configuration for the
746
- # group. You must specify one of the following: an EC2 instance, a
747
- # launch configuration, or a launch template.
779
+ # group. This parameter, a launch configuration, a launch template, or
780
+ # a mixed instances policy must be specified.
748
781
  #
749
782
  # When you specify an ID of an instance, Amazon EC2 Auto Scaling
750
783
  # creates a new launch configuration and associates it with the group.
751
784
  # This launch configuration derives its attributes from the specified
752
- # instance, with the exception of the block device mapping.
785
+ # instance, except for the block device mapping.
753
786
  #
754
787
  # For more information, see [Create an Auto Scaling Group Using an EC2
755
788
  # Instance][1] in the *Amazon EC2 Auto Scaling User Guide*.
@@ -838,9 +871,9 @@ module Aws::AutoScaling
838
871
  # @return [Integer]
839
872
  #
840
873
  # @!attribute [rw] placement_group
841
- # The name of the placement group into which you'll launch your
842
- # instances, if any. For more information, see [Placement Groups][1]
843
- # in the *Amazon Elastic Compute Cloud User Guide*.
874
+ # The name of the placement group into which to launch your instances,
875
+ # if any. For more information, see [Placement Groups][1] in the
876
+ # *Amazon Elastic Compute Cloud User Guide*.
844
877
  #
845
878
  #
846
879
  #
@@ -909,6 +942,7 @@ module Aws::AutoScaling
909
942
  :auto_scaling_group_name,
910
943
  :launch_configuration_name,
911
944
  :launch_template,
945
+ :mixed_instances_policy,
912
946
  :instance_id,
913
947
  :min_size,
914
948
  :max_size,
@@ -1002,9 +1036,8 @@ module Aws::AutoScaling
1002
1036
  #
1003
1037
  # If your instances are launched in EC2-Classic, you can either
1004
1038
  # specify security group names or the security group IDs. For more
1005
- # information about security groups for EC2-Classic, see [Amazon EC2
1006
- # Security Groups][1] in the *Amazon Elastic Compute Cloud User
1007
- # Guide*.
1039
+ # information, see [Amazon EC2 Security Groups][1] in the *Amazon
1040
+ # Elastic Compute Cloud User Guide*.
1008
1041
  #
1009
1042
  # If your instances are launched into a VPC, specify security group
1010
1043
  # IDs. For more information, see [Security Groups for Your VPC][2] in
@@ -1052,7 +1085,7 @@ module Aws::AutoScaling
1052
1085
  # @!attribute [rw] instance_id
1053
1086
  # The ID of the instance to use to create the launch configuration.
1054
1087
  # The new launch configuration derives attributes from the instance,
1055
- # with the exception of the block device mapping.
1088
+ # except for the block device mapping.
1056
1089
  #
1057
1090
  # If you do not specify `InstanceId`, you must specify both `ImageId`
1058
1091
  # and `InstanceType`.
@@ -1121,7 +1154,7 @@ module Aws::AutoScaling
1121
1154
  # The name or the Amazon Resource Name (ARN) of the instance profile
1122
1155
  # associated with the IAM role for the instance.
1123
1156
  #
1124
- # EC2 instances launched with an IAM role will automatically have AWS
1157
+ # EC2 instances launched with an IAM role automatically have AWS
1125
1158
  # security credentials available. You can use IAM roles with Amazon
1126
1159
  # EC2 Auto Scaling to automatically enable applications running on
1127
1160
  # your EC2 instances to securely access other AWS resources. For more
@@ -1171,9 +1204,9 @@ module Aws::AutoScaling
1171
1204
  # `dedicated` runs on single-tenant hardware and can only be launched
1172
1205
  # into a VPC.
1173
1206
  #
1174
- # You must set the value of this parameter to `dedicated` if want to
1175
- # launch Dedicated Instances into a shared tenancy VPC (VPC with
1176
- # instance placement tenancy attribute set to `default`).
1207
+ # To launch Dedicated Instances into a shared tenancy VPC (a VPC with
1208
+ # the instance placement tenancy attribute set to `default`), you must
1209
+ # set the value of this parameter to `dedicated`.
1177
1210
  #
1178
1211
  # If you specify this parameter, be sure to specify at least one
1179
1212
  # subnet when you create your group.
@@ -1300,7 +1333,7 @@ module Aws::AutoScaling
1300
1333
  # @return [String]
1301
1334
  #
1302
1335
  # @!attribute [rw] force_delete
1303
- # Specifies that the group will be deleted along with all instances
1336
+ # Specifies that the group is to be deleted along with all instances
1304
1337
  # associated with the group, without waiting for all instances to be
1305
1338
  # terminated. This parameter also deletes any lifecycle actions
1306
1339
  # associated with the group.
@@ -1356,7 +1389,7 @@ module Aws::AutoScaling
1356
1389
  #
1357
1390
  # @!attribute [rw] topic_arn
1358
1391
  # The Amazon Resource Name (ARN) of the Amazon Simple Notification
1359
- # Service (SNS) topic.
1392
+ # Service (Amazon SNS) topic.
1360
1393
  # @return [String]
1361
1394
  #
1362
1395
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DeleteNotificationConfigurationType AWS API Documentation
@@ -1753,8 +1786,8 @@ module Aws::AutoScaling
1753
1786
  #
1754
1787
  # @!attribute [rw] policy_names
1755
1788
  # The names of one or more policies. If you omit this parameter, all
1756
- # policies are described. If an group name is provided, the results
1757
- # are limited to that group. This list is limited to 50 items. If you
1789
+ # policies are described. If a group name is provided, the results are
1790
+ # limited to that group. This list is limited to 50 items. If you
1758
1791
  # specify an unknown policy name, it is ignored with no error.
1759
1792
  # @return [Array<String>]
1760
1793
  #
@@ -1896,7 +1929,9 @@ module Aws::AutoScaling
1896
1929
  # }
1897
1930
  #
1898
1931
  # @!attribute [rw] filters
1899
- # A filter used to scope the tags to return.
1932
+ # One or more filters to scope the tags to return. The maximum number
1933
+ # of filters per filter type (for example, `auto-scaling-group`) is
1934
+ # 1000.
1900
1935
  # @return [Array<Types::Filter>]
1901
1936
  #
1902
1937
  # @!attribute [rw] next_token
@@ -1919,9 +1954,12 @@ module Aws::AutoScaling
1919
1954
  end
1920
1955
 
1921
1956
  # @!attribute [rw] termination_policy_types
1922
- # The termination policies supported by Amazon EC2 Auto Scaling
1923
- # (`OldestInstance`, `OldestLaunchConfiguration`, `NewestInstance`,
1924
- # `ClosestToNextInstanceHour`, and `Default`).
1957
+ # The termination policies supported by Amazon EC2 Auto Scaling:
1958
+ # `OldestInstance`, `OldestLaunchConfiguration`, `NewestInstance`,
1959
+ # `ClosestToNextInstanceHour`, `Default`, `OldestLaunchTemplate`, and
1960
+ # `AllocationStrategy`. Currently, the `OldestLaunchTemplate` and
1961
+ # `AllocationStrategy` policies are only supported for Auto Scaling
1962
+ # groups with MixedInstancesPolicy.
1925
1963
  # @return [Array<String>]
1926
1964
  #
1927
1965
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/DescribeTerminationPolicyTypesAnswer AWS API Documentation
@@ -2438,15 +2476,15 @@ module Aws::AutoScaling
2438
2476
  # @return [String]
2439
2477
  #
2440
2478
  # @!attribute [rw] lifecycle_state
2441
- # A description of the current lifecycle state. Note that the
2442
- # `Quarantined` state is not used.
2479
+ # A description of the current lifecycle state. The `Quarantined`
2480
+ # state is not used.
2443
2481
  # @return [String]
2444
2482
  #
2445
2483
  # @!attribute [rw] health_status
2446
2484
  # The last reported health status of the instance. "Healthy" means
2447
2485
  # that the instance is healthy and should remain in service.
2448
- # "Unhealthy" means that the instance is unhealthy and Amazon EC2
2449
- # Auto Scaling should terminate and replace it.
2486
+ # "Unhealthy" means that the instance is unhealthy and that Amazon
2487
+ # EC2 Auto Scaling should terminate and replace it.
2450
2488
  # @return [String]
2451
2489
  #
2452
2490
  # @!attribute [rw] launch_configuration_name
@@ -2497,6 +2535,94 @@ module Aws::AutoScaling
2497
2535
  include Aws::Structure
2498
2536
  end
2499
2537
 
2538
+ # Describes an instances distribution for an Auto Scaling group with
2539
+ # MixedInstancesPolicy.
2540
+ #
2541
+ # The instances distribution specifies the distribution of On-Demand
2542
+ # Instances and Spot Instances, the maximum price to pay for Spot
2543
+ # Instances, and how the Auto Scaling group allocates instance types.
2544
+ #
2545
+ # @note When making an API call, you may pass InstancesDistribution
2546
+ # data as a hash:
2547
+ #
2548
+ # {
2549
+ # on_demand_allocation_strategy: "XmlString",
2550
+ # on_demand_base_capacity: 1,
2551
+ # on_demand_percentage_above_base_capacity: 1,
2552
+ # spot_allocation_strategy: "XmlString",
2553
+ # spot_instance_pools: 1,
2554
+ # spot_max_price: "SpotPrice",
2555
+ # }
2556
+ #
2557
+ # @!attribute [rw] on_demand_allocation_strategy
2558
+ # Indicates how to allocate instance types to fulfill On-Demand
2559
+ # capacity.
2560
+ #
2561
+ # The only valid value is `prioritized`, which is also the default
2562
+ # value. This strategy uses the order of instance types in the
2563
+ # **Overrides** array of LaunchTemplate to define the launch priority
2564
+ # of each instance type. The first instance type in the array is
2565
+ # prioritized higher than the last. If all your On-Demand capacity
2566
+ # cannot be fulfilled using your highest priority instance, then the
2567
+ # Auto Scaling groups launches the remaining capacity using the second
2568
+ # priority instance type, and so on.
2569
+ # @return [String]
2570
+ #
2571
+ # @!attribute [rw] on_demand_base_capacity
2572
+ # The minimum amount of the Auto Scaling group's capacity that must
2573
+ # be fulfilled by On-Demand Instances. This base portion is
2574
+ # provisioned first as your group scales.
2575
+ #
2576
+ # The default value is 0. If you leave this parameter set to 0,
2577
+ # On-Demand Instances are launched as a percentage of the Auto Scaling
2578
+ # group's desired capacity, per the
2579
+ # **OnDemandPercentageAboveBaseCapacity** setting.
2580
+ # @return [Integer]
2581
+ #
2582
+ # @!attribute [rw] on_demand_percentage_above_base_capacity
2583
+ # Controls the percentages of On-Demand Instances and Spot Instances
2584
+ # for your additional capacity beyond **OnDemandBaseCapacity**.
2585
+ #
2586
+ # The range is 0–100. The default value is 100. If you leave this
2587
+ # parameter set to 100, the percentages are 100% for On-Demand
2588
+ # Instances and 0% for Spot Instances.
2589
+ # @return [Integer]
2590
+ #
2591
+ # @!attribute [rw] spot_allocation_strategy
2592
+ # Indicates how to allocate Spot capacity across Spot pools.
2593
+ #
2594
+ # The only valid value is `lowest-price`, which is also the default
2595
+ # value. The Auto Scaling group selects the cheapest Spot pools and
2596
+ # evenly allocates your Spot capacity across the number of Spot pools
2597
+ # that you specify.
2598
+ # @return [String]
2599
+ #
2600
+ # @!attribute [rw] spot_instance_pools
2601
+ # The number of Spot pools to use to allocate your Spot capacity. The
2602
+ # Spot pools are determined from the different instance types in the
2603
+ # **Overrides** array of LaunchTemplate.
2604
+ #
2605
+ # The range is 1–20 and the default is 2.
2606
+ # @return [Integer]
2607
+ #
2608
+ # @!attribute [rw] spot_max_price
2609
+ # The maximum price per unit hour that you are willing to pay for a
2610
+ # Spot Instance. If you leave this value blank (which is the default),
2611
+ # the maximum Spot price is set at the On-Demand price.
2612
+ # @return [String]
2613
+ #
2614
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/InstancesDistribution AWS API Documentation
2615
+ #
2616
+ class InstancesDistribution < Struct.new(
2617
+ :on_demand_allocation_strategy,
2618
+ :on_demand_base_capacity,
2619
+ :on_demand_percentage_above_base_capacity,
2620
+ :spot_allocation_strategy,
2621
+ :spot_instance_pools,
2622
+ :spot_max_price)
2623
+ include Aws::Structure
2624
+ end
2625
+
2500
2626
  # Describes a launch configuration.
2501
2627
  #
2502
2628
  # @!attribute [rw] launch_configuration_name
@@ -2690,7 +2816,86 @@ module Aws::AutoScaling
2690
2816
  include Aws::Structure
2691
2817
  end
2692
2818
 
2693
- # Describes a launch template.
2819
+ # Describes a launch template and overrides.
2820
+ #
2821
+ # The overrides are used to override the instance type specified by the
2822
+ # launch template with multiple instance types that can be used to
2823
+ # launch On-Demand Instances and Spot Instances.
2824
+ #
2825
+ # @note When making an API call, you may pass LaunchTemplate
2826
+ # data as a hash:
2827
+ #
2828
+ # {
2829
+ # launch_template_specification: {
2830
+ # launch_template_id: "XmlStringMaxLen255",
2831
+ # launch_template_name: "LaunchTemplateName",
2832
+ # version: "XmlStringMaxLen255",
2833
+ # },
2834
+ # overrides: [
2835
+ # {
2836
+ # instance_type: "XmlStringMaxLen255",
2837
+ # },
2838
+ # ],
2839
+ # }
2840
+ #
2841
+ # @!attribute [rw] launch_template_specification
2842
+ # The launch template to use. You must specify either the launch
2843
+ # template ID or launch template name in the request.
2844
+ # @return [Types::LaunchTemplateSpecification]
2845
+ #
2846
+ # @!attribute [rw] overrides
2847
+ # Any parameters that you specify override the same parameters in the
2848
+ # launch template. Currently, the only supported override is instance
2849
+ # type.
2850
+ #
2851
+ # You must specify between 2 and 20 overrides.
2852
+ # @return [Array<Types::LaunchTemplateOverrides>]
2853
+ #
2854
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/LaunchTemplate AWS API Documentation
2855
+ #
2856
+ class LaunchTemplate < Struct.new(
2857
+ :launch_template_specification,
2858
+ :overrides)
2859
+ include Aws::Structure
2860
+ end
2861
+
2862
+ # Describes an override for a launch template.
2863
+ #
2864
+ # @note When making an API call, you may pass LaunchTemplateOverrides
2865
+ # data as a hash:
2866
+ #
2867
+ # {
2868
+ # instance_type: "XmlStringMaxLen255",
2869
+ # }
2870
+ #
2871
+ # @!attribute [rw] instance_type
2872
+ # The instance type.
2873
+ #
2874
+ # For information about available instance types, see [Available
2875
+ # Instance Types][1] in the *Amazon Elastic Compute Cloud User Guide.*
2876
+ #
2877
+ #
2878
+ #
2879
+ # [1]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#AvailableInstanceTypes
2880
+ # @return [String]
2881
+ #
2882
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/LaunchTemplateOverrides AWS API Documentation
2883
+ #
2884
+ class LaunchTemplateOverrides < Struct.new(
2885
+ :instance_type)
2886
+ include Aws::Structure
2887
+ end
2888
+
2889
+ # Describes a launch template and the launch template version.
2890
+ #
2891
+ # The launch template that is specified must be configured for use with
2892
+ # an Auto Scaling group. For more information, see [Creating a Launch
2893
+ # Template for an Auto Scaling group][1] in the *Amazon EC2 Auto Scaling
2894
+ # User Guide*.
2895
+ #
2896
+ #
2897
+ #
2898
+ # [1]: http://docs.aws.amazon.com/autoscaling/ec2/userguide/create-launch-template.html
2694
2899
  #
2695
2900
  # @note When making an API call, you may pass LaunchTemplateSpecification
2696
2901
  # data as a hash:
@@ -2749,8 +2954,8 @@ module Aws::AutoScaling
2749
2954
  # @return [String]
2750
2955
  #
2751
2956
  # @!attribute [rw] lifecycle_transition
2752
- # The state of the EC2 instance to which you want to attach the
2753
- # lifecycle hook. The following are possible values:
2957
+ # The state of the EC2 instance to which to attach the lifecycle hook.
2958
+ # The following are possible values:
2754
2959
  #
2755
2960
  # * autoscaling:EC2\_INSTANCE\_LAUNCHING
2756
2961
  #
@@ -2897,11 +3102,11 @@ module Aws::AutoScaling
2897
3102
  #
2898
3103
  # If you attach a load balancer to an existing Auto Scaling group, the
2899
3104
  # initial state is `Adding`. The state transitions to `Added` after all
2900
- # instances in the group are registered with the load balancer. If ELB
2901
- # health checks are enabled for the load balancer, the state transitions
2902
- # to `InService` after at least one instance in the group passes the
2903
- # health check. If EC2 health checks are enabled instead, the load
2904
- # balancer remains in the `Added` state.
3105
+ # instances in the group are registered with the load balancer. If
3106
+ # Elastic Load Balancing health checks are enabled for the load
3107
+ # balancer, the state transitions to `InService` after at least one
3108
+ # instance in the group passes the health check. If EC2 health checks
3109
+ # are enabled instead, the load balancer remains in the `Added` state.
2905
3110
  #
2906
3111
  # @!attribute [rw] load_balancer_name
2907
3112
  # The name of the load balancer.
@@ -2940,11 +3145,11 @@ module Aws::AutoScaling
2940
3145
  #
2941
3146
  # If you attach a target group to an existing Auto Scaling group, the
2942
3147
  # initial state is `Adding`. The state transitions to `Added` after all
2943
- # Auto Scaling instances are registered with the target group. If ELB
2944
- # health checks are enabled, the state transitions to `InService` after
2945
- # at least one Auto Scaling instance passes the health check. If EC2
2946
- # health checks are enabled instead, the target group remains in the
2947
- # `Added` state.
3148
+ # Auto Scaling instances are registered with the target group. If
3149
+ # Elastic Load Balancing health checks are enabled, the state
3150
+ # transitions to `InService` after at least one Auto Scaling instance
3151
+ # passes the health check. If EC2 health checks are enabled instead, the
3152
+ # target group remains in the `Added` state.
2948
3153
  #
2949
3154
  # @!attribute [rw] load_balancer_target_group_arn
2950
3155
  # The Amazon Resource Name (ARN) of the target group.
@@ -3047,6 +3252,70 @@ module Aws::AutoScaling
3047
3252
  include Aws::Structure
3048
3253
  end
3049
3254
 
3255
+ # Describes a mixed instances policy for an Auto Scaling group. With
3256
+ # mixed instances, your Auto Scaling group can provision a combination
3257
+ # of On-Demand Instances and Spot Instances across multiple instance
3258
+ # types. For more information, see [Using Multiple Instance Types and
3259
+ # Purchase Options][1] in the *Amazon EC2 Auto Scaling User Guide*.
3260
+ #
3261
+ # When you create your Auto Scaling group, you can specify a launch
3262
+ # configuration or template as a parameter for the top-level object, or
3263
+ # you can specify a mixed instances policy, but not both at the same
3264
+ # time.
3265
+ #
3266
+ #
3267
+ #
3268
+ # [1]: http://docs.aws.amazon.com/autoscaling/ec2/userguide/AutoScalingGroup.html#asg-purchase-options
3269
+ #
3270
+ # @note When making an API call, you may pass MixedInstancesPolicy
3271
+ # data as a hash:
3272
+ #
3273
+ # {
3274
+ # launch_template: {
3275
+ # launch_template_specification: {
3276
+ # launch_template_id: "XmlStringMaxLen255",
3277
+ # launch_template_name: "LaunchTemplateName",
3278
+ # version: "XmlStringMaxLen255",
3279
+ # },
3280
+ # overrides: [
3281
+ # {
3282
+ # instance_type: "XmlStringMaxLen255",
3283
+ # },
3284
+ # ],
3285
+ # },
3286
+ # instances_distribution: {
3287
+ # on_demand_allocation_strategy: "XmlString",
3288
+ # on_demand_base_capacity: 1,
3289
+ # on_demand_percentage_above_base_capacity: 1,
3290
+ # spot_allocation_strategy: "XmlString",
3291
+ # spot_instance_pools: 1,
3292
+ # spot_max_price: "SpotPrice",
3293
+ # },
3294
+ # }
3295
+ #
3296
+ # @!attribute [rw] launch_template
3297
+ # The launch template and overrides.
3298
+ #
3299
+ # This parameter is required when creating an Auto Scaling group with
3300
+ # a mixed instances policy, but is not required when updating the
3301
+ # group.
3302
+ # @return [Types::LaunchTemplate]
3303
+ #
3304
+ # @!attribute [rw] instances_distribution
3305
+ # The instances distribution to use.
3306
+ #
3307
+ # If you leave this parameter unspecified when creating the group, the
3308
+ # default values are used.
3309
+ # @return [Types::InstancesDistribution]
3310
+ #
3311
+ # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/MixedInstancesPolicy AWS API Documentation
3312
+ #
3313
+ class MixedInstancesPolicy < Struct.new(
3314
+ :launch_template,
3315
+ :instances_distribution)
3316
+ include Aws::Structure
3317
+ end
3318
+
3050
3319
  # Describes a notification.
3051
3320
  #
3052
3321
  # @!attribute [rw] auto_scaling_group_name
@@ -3055,7 +3324,7 @@ module Aws::AutoScaling
3055
3324
  #
3056
3325
  # @!attribute [rw] topic_arn
3057
3326
  # The Amazon Resource Name (ARN) of the Amazon Simple Notification
3058
- # Service (SNS) topic.
3327
+ # Service (Amazon SNS) topic.
3059
3328
  # @return [String]
3060
3329
  #
3061
3330
  # @!attribute [rw] notification_type
@@ -3134,17 +3403,17 @@ module Aws::AutoScaling
3134
3403
  # Identifies the resource associated with the metric type. The
3135
3404
  # following predefined metrics are available:
3136
3405
  #
3137
- # * `ASGAverageCPUUtilization` - average CPU utilization of the Auto
3138
- # Scaling group
3406
+ # * `ASGAverageCPUUtilization` - Average CPU utilization of the Auto
3407
+ # Scaling group.
3139
3408
  #
3140
- # * `ASGAverageNetworkIn` - average number of bytes received on all
3141
- # network interfaces by the Auto Scaling group
3409
+ # * `ASGAverageNetworkIn` - Average number of bytes received on all
3410
+ # network interfaces by the Auto Scaling group.
3142
3411
  #
3143
- # * `ASGAverageNetworkOut` - average number of bytes sent out on all
3144
- # network interfaces by the Auto Scaling group
3412
+ # * `ASGAverageNetworkOut` - Average number of bytes sent out on all
3413
+ # network interfaces by the Auto Scaling group.
3145
3414
  #
3146
- # * `ALBRequestCountPerTarget` - number of requests completed per
3147
- # target in an Application Load Balancer target group
3415
+ # * `ALBRequestCountPerTarget` - Number of requests completed per
3416
+ # target in an Application Load Balancer target group.
3148
3417
  #
3149
3418
  # For predefined metric types `ASGAverageCPUUtilization`,
3150
3419
  # `ASGAverageNetworkIn`, and `ASGAverageNetworkOut`, the parameter
@@ -3262,19 +3531,19 @@ module Aws::AutoScaling
3262
3531
  # @return [String]
3263
3532
  #
3264
3533
  # @!attribute [rw] notification_target_arn
3265
- # The ARN of the notification target that Amazon EC2 Auto Scaling will
3266
- # use to notify you when an instance is in the transition state for
3267
- # the lifecycle hook. This target can be either an SQS queue or an SNS
3534
+ # The ARN of the notification target that Amazon EC2 Auto Scaling uses
3535
+ # to notify you when an instance is in the transition state for the
3536
+ # lifecycle hook. This target can be either an SQS queue or an SNS
3268
3537
  # topic. If you specify an empty string, this overrides the current
3269
3538
  # ARN.
3270
3539
  #
3271
3540
  # This operation uses the JSON format when sending notifications to an
3272
- # Amazon SQS queue, and an email key/value pair format when sending
3541
+ # Amazon SQS queue, and an email key-value pair format when sending
3273
3542
  # notifications to an Amazon SNS topic.
3274
3543
  #
3275
3544
  # When you specify a notification target, Amazon EC2 Auto Scaling
3276
- # sends it a test message. Test messages contains the following
3277
- # additional key/value pair: `"Event":
3545
+ # sends it a test message. Test messages contain the following
3546
+ # additional key-value pair: `"Event":
3278
3547
  # "autoscaling:TEST_NOTIFICATION"`.
3279
3548
  # @return [String]
3280
3549
  #
@@ -3329,12 +3598,12 @@ module Aws::AutoScaling
3329
3598
  #
3330
3599
  # @!attribute [rw] topic_arn
3331
3600
  # The Amazon Resource Name (ARN) of the Amazon Simple Notification
3332
- # Service (SNS) topic.
3601
+ # Service (Amazon SNS) topic.
3333
3602
  # @return [String]
3334
3603
  #
3335
3604
  # @!attribute [rw] notification_types
3336
- # The type of event that will cause the notification to be sent. For
3337
- # details about notification types supported by Amazon EC2 Auto
3605
+ # The type of event that causes the notification to be sent. For more
3606
+ # information about notification types supported by Amazon EC2 Auto
3338
3607
  # Scaling, see DescribeAutoScalingNotificationTypes.
3339
3608
  # @return [Array<String>]
3340
3609
  #
@@ -3613,8 +3882,8 @@ module Aws::AutoScaling
3613
3882
  # @!attribute [rw] lifecycle_action_token
3614
3883
  # A token that uniquely identifies a specific lifecycle action
3615
3884
  # associated with an instance. Amazon EC2 Auto Scaling sends this
3616
- # token to the notification target you specified when you created the
3617
- # lifecycle hook.
3885
+ # token to the notification target that you specified when you created
3886
+ # the lifecycle hook.
3618
3887
  # @return [String]
3619
3888
  #
3620
3889
  # @!attribute [rw] instance_id
@@ -3803,8 +4072,7 @@ module Aws::AutoScaling
3803
4072
  # and time can be up to one month in the future.
3804
4073
  #
3805
4074
  # When `StartTime` and `EndTime` are specified with `Recurrence`, they
3806
- # form the boundaries of when the recurring action will start and
3807
- # stop.
4075
+ # form the boundaries of when the recurring action starts and stops.
3808
4076
  # @return [Time]
3809
4077
  #
3810
4078
  # @!attribute [rw] end_time
@@ -3968,21 +4236,20 @@ module Aws::AutoScaling
3968
4236
  # @return [String]
3969
4237
  #
3970
4238
  # @!attribute [rw] health_status
3971
- # The health status of the instance. Set to `Healthy` if you want the
3972
- # instance to remain in service. Set to `Unhealthy` if you want the
3973
- # instance to be out of service. Amazon EC2 Auto Scaling will
3974
- # terminate and replace the unhealthy instance.
4239
+ # The health status of the instance. Set to `Healthy` to have the
4240
+ # instance remain in service. Set to `Unhealthy` to have the instance
4241
+ # be out of service. Amazon EC2 Auto Scaling terminates and replaces
4242
+ # the unhealthy instance.
3975
4243
  # @return [String]
3976
4244
  #
3977
4245
  # @!attribute [rw] should_respect_grace_period
3978
4246
  # If the Auto Scaling group of the specified instance has a
3979
4247
  # `HealthCheckGracePeriod` specified for the group, by default, this
3980
- # call will respect the grace period. Set this to `False`, if you do
3981
- # not want the call to respect the grace period associated with the
3982
- # group.
4248
+ # call respects the grace period. Set this to `False`, to have the
4249
+ # call not respect the grace period associated with the group.
3983
4250
  #
3984
- # For more information, see the description of the health check grace
3985
- # period for CreateAutoScalingGroup.
4251
+ # For more information about the health check grace period, see
4252
+ # CreateAutoScalingGroup.
3986
4253
  # @return [Boolean]
3987
4254
  #
3988
4255
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/SetInstanceHealthQuery AWS API Documentation
@@ -4036,25 +4303,25 @@ module Aws::AutoScaling
4036
4303
  # For the following examples, suppose that you have an alarm with a
4037
4304
  # breach threshold of 50:
4038
4305
  #
4039
- # * If you want the adjustment to be triggered when the metric is
4040
- # greater than or equal to 50 and less than 60, specify a lower bound
4041
- # of 0 and an upper bound of 10.
4306
+ # * To trigger the adjustment when the metric is greater than or equal
4307
+ # to 50 and less than 60, specify a lower bound of 0 and an upper
4308
+ # bound of 10.
4042
4309
  #
4043
- # * If you want the adjustment to be triggered when the metric is
4044
- # greater than 40 and less than or equal to 50, specify a lower bound
4045
- # of -10 and an upper bound of 0.
4310
+ # * To trigger the adjustment when the metric is greater than 40 and
4311
+ # less than or equal to 50, specify a lower bound of -10 and an upper
4312
+ # bound of 0.
4046
4313
  #
4047
4314
  # There are a few rules for the step adjustments for your step policy:
4048
4315
  #
4049
4316
  # * The ranges of your step adjustments can't overlap or have a gap.
4050
4317
  #
4051
- # * At most one step adjustment can have a null lower bound. If one step
4052
- # adjustment has a negative lower bound, then there must be a step
4053
- # adjustment with a null lower bound.
4318
+ # * At most, one step adjustment can have a null lower bound. If one
4319
+ # step adjustment has a negative lower bound, then there must be a
4320
+ # step adjustment with a null lower bound.
4054
4321
  #
4055
- # * At most one step adjustment can have a null upper bound. If one step
4056
- # adjustment has a positive upper bound, then there must be a step
4057
- # adjustment with a null upper bound.
4322
+ # * At most, one step adjustment can have a null upper bound. If one
4323
+ # step adjustment has a positive upper bound, then there must be a
4324
+ # step adjustment with a null upper bound.
4058
4325
  #
4059
4326
  # * The upper and lower bound can't be null in the same step
4060
4327
  # adjustment.
@@ -4260,11 +4527,11 @@ module Aws::AutoScaling
4260
4527
  # @return [Float]
4261
4528
  #
4262
4529
  # @!attribute [rw] disable_scale_in
4263
- # Indicates whether scale in by the target tracking policy is
4264
- # disabled. If scale in is disabled, the target tracking policy won't
4265
- # remove instances from the Auto Scaling group. Otherwise, the target
4266
- # tracking policy can remove instances from the Auto Scaling group.
4267
- # The default is disabled.
4530
+ # Indicates whether scaling in by the target tracking policy is
4531
+ # disabled. If scaling in is disabled, the target tracking policy
4532
+ # doesn't remove instances from the Auto Scaling group. Otherwise,
4533
+ # the target tracking policy can remove instances from the Auto
4534
+ # Scaling group. The default is disabled.
4268
4535
  # @return [Boolean]
4269
4536
  #
4270
4537
  # @see http://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/TargetTrackingConfiguration AWS API Documentation
@@ -4313,6 +4580,28 @@ module Aws::AutoScaling
4313
4580
  # launch_template_name: "LaunchTemplateName",
4314
4581
  # version: "XmlStringMaxLen255",
4315
4582
  # },
4583
+ # mixed_instances_policy: {
4584
+ # launch_template: {
4585
+ # launch_template_specification: {
4586
+ # launch_template_id: "XmlStringMaxLen255",
4587
+ # launch_template_name: "LaunchTemplateName",
4588
+ # version: "XmlStringMaxLen255",
4589
+ # },
4590
+ # overrides: [
4591
+ # {
4592
+ # instance_type: "XmlStringMaxLen255",
4593
+ # },
4594
+ # ],
4595
+ # },
4596
+ # instances_distribution: {
4597
+ # on_demand_allocation_strategy: "XmlString",
4598
+ # on_demand_base_capacity: 1,
4599
+ # on_demand_percentage_above_base_capacity: 1,
4600
+ # spot_allocation_strategy: "XmlString",
4601
+ # spot_instance_pools: 1,
4602
+ # spot_max_price: "SpotPrice",
4603
+ # },
4604
+ # },
4316
4605
  # min_size: 1,
4317
4606
  # max_size: 1,
4318
4607
  # desired_capacity: 1,
@@ -4332,15 +4621,22 @@ module Aws::AutoScaling
4332
4621
  # @return [String]
4333
4622
  #
4334
4623
  # @!attribute [rw] launch_configuration_name
4335
- # The name of the launch configuration. If you specify a launch
4336
- # configuration, you can't specify a launch template.
4624
+ # The name of the launch configuration. If you specify this parameter,
4625
+ # you can't specify a launch template or a mixed instances policy.
4337
4626
  # @return [String]
4338
4627
  #
4339
4628
  # @!attribute [rw] launch_template
4340
- # The launch template to use to specify the updates. If you specify a
4341
- # launch template, you can't specify a launch configuration.
4629
+ # The launch template and version to use to specify the updates. If
4630
+ # you specify this parameter, you can't specify a launch
4631
+ # configuration or a mixed instances policy.
4342
4632
  # @return [Types::LaunchTemplateSpecification]
4343
4633
  #
4634
+ # @!attribute [rw] mixed_instances_policy
4635
+ # The mixed instances policy to use to specify the updates. If you
4636
+ # specify this parameter, you can't specify a launch configuration or
4637
+ # a launch template.
4638
+ # @return [Types::MixedInstancesPolicy]
4639
+ #
4344
4640
  # @!attribute [rw] min_size
4345
4641
  # The minimum size of the Auto Scaling group.
4346
4642
  # @return [Integer]
@@ -4391,9 +4687,9 @@ module Aws::AutoScaling
4391
4687
  # @return [Integer]
4392
4688
  #
4393
4689
  # @!attribute [rw] placement_group
4394
- # The name of the placement group into which you'll launch your
4395
- # instances, if any. For more information, see [Placement Groups][1]
4396
- # in the *Amazon Elastic Compute Cloud User Guide*.
4690
+ # The name of the placement group into which to launch your instances,
4691
+ # if any. For more information, see [Placement Groups][1] in the
4692
+ # *Amazon Elastic Compute Cloud User Guide*.
4397
4693
  #
4398
4694
  #
4399
4695
  #
@@ -4445,6 +4741,7 @@ module Aws::AutoScaling
4445
4741
  :auto_scaling_group_name,
4446
4742
  :launch_configuration_name,
4447
4743
  :launch_template,
4744
+ :mixed_instances_policy,
4448
4745
  :min_size,
4449
4746
  :max_size,
4450
4747
  :desired_capacity,