aws-sdk-autoscaling 1.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,2764 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing for info on making contributions:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ require 'seahorse/client/plugins/content_length.rb'
9
+ require 'aws-sdk-core/plugins/credentials_configuration.rb'
10
+ require 'aws-sdk-core/plugins/logging.rb'
11
+ require 'aws-sdk-core/plugins/param_converter.rb'
12
+ require 'aws-sdk-core/plugins/param_validator.rb'
13
+ require 'aws-sdk-core/plugins/user_agent.rb'
14
+ require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
15
+ require 'aws-sdk-core/plugins/retry_errors.rb'
16
+ require 'aws-sdk-core/plugins/global_configuration.rb'
17
+ require 'aws-sdk-core/plugins/regional_endpoint.rb'
18
+ require 'aws-sdk-core/plugins/response_paging.rb'
19
+ require 'aws-sdk-core/plugins/stub_responses.rb'
20
+ require 'aws-sdk-core/plugins/idempotency_token.rb'
21
+ require 'aws-sdk-core/plugins/signature_v4.rb'
22
+ require 'aws-sdk-core/plugins/protocols/query.rb'
23
+
24
+ Aws::Plugins::GlobalConfiguration.add_identifier(:autoscaling)
25
+
26
+ module Aws
27
+ module AutoScaling
28
+ class Client < Seahorse::Client::Base
29
+
30
+ include Aws::ClientStubs
31
+
32
+ @identifier = :autoscaling
33
+
34
+ set_api(ClientApi::API)
35
+
36
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
37
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
38
+ add_plugin(Aws::Plugins::Logging)
39
+ add_plugin(Aws::Plugins::ParamConverter)
40
+ add_plugin(Aws::Plugins::ParamValidator)
41
+ add_plugin(Aws::Plugins::UserAgent)
42
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
43
+ add_plugin(Aws::Plugins::RetryErrors)
44
+ add_plugin(Aws::Plugins::GlobalConfiguration)
45
+ add_plugin(Aws::Plugins::RegionalEndpoint)
46
+ add_plugin(Aws::Plugins::ResponsePaging)
47
+ add_plugin(Aws::Plugins::StubResponses)
48
+ add_plugin(Aws::Plugins::IdempotencyToken)
49
+ add_plugin(Aws::Plugins::SignatureV4)
50
+ add_plugin(Aws::Plugins::Protocols::Query)
51
+
52
+ # @option options [required, Aws::CredentialProvider] :credentials
53
+ # Your AWS credentials. This can be an instance of any one of the
54
+ # following classes:
55
+ #
56
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
57
+ # credentials.
58
+ #
59
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
60
+ # from an EC2 IMDS on an EC2 instance.
61
+ #
62
+ # * `Aws::SharedCredentials` - Used for loading credentials from a
63
+ # shared file, such as `~/.aws/config`.
64
+ #
65
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
66
+ #
67
+ # When `:credentials` are not configured directly, the following
68
+ # locations will be searched for credentials:
69
+ #
70
+ # * `Aws.config[:credentials]`
71
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
72
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
73
+ # * `~/.aws/credentials`
74
+ # * `~/.aws/config`
75
+ # * EC2 IMDS instance profile - When used by default, the timeouts are
76
+ # very aggressive. Construct and pass an instance of
77
+ # `Aws::InstanceProfileCredentails` to enable retries and extended
78
+ # timeouts.
79
+ # @option options [required, String] :region
80
+ # The AWS region to connect to. The configured `:region` is
81
+ # used to determine the service `:endpoint`. When not passed,
82
+ # a default `:region` is search for in the following locations:
83
+ #
84
+ # * `Aws.config[:region]`
85
+ # * `ENV['AWS_REGION']`
86
+ # * `ENV['AMAZON_REGION']`
87
+ # * `ENV['AWS_DEFAULT_REGION']`
88
+ # * `~/.aws/credentials`
89
+ # * `~/.aws/config`
90
+ # @option options [String] :access_key_id
91
+ # @option options [Boolean] :convert_params (true)
92
+ # When `true`, an attempt is made to coerce request parameters into
93
+ # the required types.
94
+ # @option options [String] :endpoint
95
+ # The client endpoint is normally constructed from the `:region`
96
+ # option. You should only configure an `:endpoint` when connecting
97
+ # to test endpoints. This should be avalid HTTP(S) URI.
98
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
99
+ # The log formatter.
100
+ # @option options [Symbol] :log_level (:info)
101
+ # The log level to send messages to the `:logger` at.
102
+ # @option options [Logger] :logger
103
+ # The Logger instance to send log messages to. If this option
104
+ # is not set, logging will be disabled.
105
+ # @option options [String] :profile ("default")
106
+ # Used when loading credentials from the shared credentials file
107
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
108
+ # @option options [Integer] :retry_limit (3)
109
+ # The maximum number of times to retry failed requests. Only
110
+ # ~ 500 level server errors and certain ~ 400 level client errors
111
+ # are retried. Generally, these are throttling errors, data
112
+ # checksum errors, networking errors, timeout errors and auth
113
+ # errors from expired credentials.
114
+ # @option options [String] :secret_access_key
115
+ # @option options [String] :session_token
116
+ # @option options [Boolean] :stub_responses (false)
117
+ # Causes the client to return stubbed responses. By default
118
+ # fake responses are generated and returned. You can specify
119
+ # the response data to return or errors to raise by calling
120
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
121
+ #
122
+ # ** Please note ** When response stubbing is enabled, no HTTP
123
+ # requests are made, and retries are disabled.
124
+ # @option options [Boolean] :validate_params (true)
125
+ # When `true`, request parameters are validated before
126
+ # sending the request.
127
+ def initialize(*args)
128
+ super
129
+ end
130
+
131
+ # @!group API Operations
132
+
133
+ # Attaches one or more EC2 instances to the specified Auto Scaling
134
+ # group.
135
+ #
136
+ # When you attach instances, Auto Scaling increases the desired capacity
137
+ # of the group by the number of instances being attached. If the number
138
+ # of instances being attached plus the desired capacity of the group
139
+ # exceeds the maximum size of the group, the operation fails.
140
+ #
141
+ # If there is a Classic load balancer attached to your Auto Scaling
142
+ # group, the instances are also registered with the load balancer. If
143
+ # there are target groups attached to your Auto Scaling group, the
144
+ # instances are also registered with the target groups.
145
+ #
146
+ # For more information, see [Attach EC2 Instances to Your Auto Scaling
147
+ # Group][1] in the *Auto Scaling User Guide*.
148
+ #
149
+ #
150
+ #
151
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/attach-instance-asg.html
152
+ # @option params [Array<String>] :instance_ids
153
+ # One or more instance IDs.
154
+ # @option params [required, String] :auto_scaling_group_name
155
+ # The name of the group.
156
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
157
+ #
158
+ # @example Request syntax with placeholder values
159
+ # resp = client.attach_instances({
160
+ # instance_ids: ["XmlStringMaxLen19"],
161
+ # auto_scaling_group_name: "ResourceName", # required
162
+ # })
163
+ # @overload attach_instances(params = {})
164
+ # @param [Hash] params ({})
165
+ def attach_instances(params = {}, options = {})
166
+ req = build_request(:attach_instances, params)
167
+ req.send_request(options)
168
+ end
169
+
170
+ # Attaches one or more target groups to the specified Auto Scaling
171
+ # group.
172
+ #
173
+ # To describe the target groups for an Auto Scaling group, use
174
+ # DescribeLoadBalancerTargetGroups. To detach the target group from the
175
+ # Auto Scaling group, use DetachLoadBalancerTargetGroups.
176
+ #
177
+ # For more information, see [Attach a Load Balancer to Your Auto Scaling
178
+ # Group][1] in the *Auto Scaling User Guide*.
179
+ #
180
+ #
181
+ #
182
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/attach-load-balancer-asg.html
183
+ # @option params [required, String] :auto_scaling_group_name
184
+ # The name of the Auto Scaling group.
185
+ # @option params [required, Array<String>] :target_group_arns
186
+ # The Amazon Resource Names (ARN) of the target groups.
187
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
188
+ #
189
+ # @example Request syntax with placeholder values
190
+ # resp = client.attach_load_balancer_target_groups({
191
+ # auto_scaling_group_name: "ResourceName", # required
192
+ # target_group_arns: ["XmlStringMaxLen511"], # required
193
+ # })
194
+ # @overload attach_load_balancer_target_groups(params = {})
195
+ # @param [Hash] params ({})
196
+ def attach_load_balancer_target_groups(params = {}, options = {})
197
+ req = build_request(:attach_load_balancer_target_groups, params)
198
+ req.send_request(options)
199
+ end
200
+
201
+ # Attaches one or more Classic load balancers to the specified Auto
202
+ # Scaling group.
203
+ #
204
+ # To attach an Application load balancer instead, see
205
+ # AttachLoadBalancerTargetGroups.
206
+ #
207
+ # To describe the load balancers for an Auto Scaling group, use
208
+ # DescribeLoadBalancers. To detach the load balancer from the Auto
209
+ # Scaling group, use DetachLoadBalancers.
210
+ #
211
+ # For more information, see [Attach a Load Balancer to Your Auto Scaling
212
+ # Group][1] in the *Auto Scaling User Guide*.
213
+ #
214
+ #
215
+ #
216
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/attach-load-balancer-asg.html
217
+ # @option params [required, String] :auto_scaling_group_name
218
+ # The name of the group.
219
+ # @option params [required, Array<String>] :load_balancer_names
220
+ # One or more load balancer names.
221
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
222
+ #
223
+ # @example Request syntax with placeholder values
224
+ # resp = client.attach_load_balancers({
225
+ # auto_scaling_group_name: "ResourceName", # required
226
+ # load_balancer_names: ["XmlStringMaxLen255"], # required
227
+ # })
228
+ # @overload attach_load_balancers(params = {})
229
+ # @param [Hash] params ({})
230
+ def attach_load_balancers(params = {}, options = {})
231
+ req = build_request(:attach_load_balancers, params)
232
+ req.send_request(options)
233
+ end
234
+
235
+ # Completes the lifecycle action for the specified token or instance
236
+ # with the specified result.
237
+ #
238
+ # This step is a part of the procedure for adding a lifecycle hook to an
239
+ # Auto Scaling group:
240
+ #
241
+ # 1. (Optional) Create a Lambda function and a rule that allows
242
+ # CloudWatch Events to invoke your Lambda function when Auto Scaling
243
+ # launches or terminates instances.
244
+ #
245
+ # 2. (Optional) Create a notification target and an IAM role. The
246
+ # target can be either an Amazon SQS queue or an Amazon SNS topic.
247
+ # The role allows Auto Scaling to publish lifecycle notifications to
248
+ # the target.
249
+ #
250
+ # 3. Create the lifecycle hook. Specify whether the hook is used when
251
+ # the instances launch or terminate.
252
+ #
253
+ # 4. If you need more time, record the lifecycle action heartbeat to
254
+ # keep the instance in a pending state.
255
+ #
256
+ # 5. **If you finish before the timeout period ends, complete the
257
+ # lifecycle action.**
258
+ #
259
+ # For more information, see [Auto Scaling Lifecycle][1] in the *Auto
260
+ # Scaling User Guide*.
261
+ #
262
+ #
263
+ #
264
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/AutoScalingGroupLifecycle.html
265
+ # @option params [required, String] :lifecycle_hook_name
266
+ # The name of the lifecycle hook.
267
+ # @option params [required, String] :auto_scaling_group_name
268
+ # The name of the group for the lifecycle hook.
269
+ # @option params [String] :lifecycle_action_token
270
+ # A universally unique identifier (UUID) that identifies a specific
271
+ # lifecycle action associated with an instance. Auto Scaling sends this
272
+ # token to the notification target you specified when you created the
273
+ # lifecycle hook.
274
+ # @option params [required, String] :lifecycle_action_result
275
+ # The action for the group to take. This parameter can be either
276
+ # `CONTINUE` or `ABANDON`.
277
+ # @option params [String] :instance_id
278
+ # The ID of the instance.
279
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
280
+ #
281
+ # @example Request syntax with placeholder values
282
+ # resp = client.complete_lifecycle_action({
283
+ # lifecycle_hook_name: "AsciiStringMaxLen255", # required
284
+ # auto_scaling_group_name: "ResourceName", # required
285
+ # lifecycle_action_token: "LifecycleActionToken",
286
+ # lifecycle_action_result: "LifecycleActionResult", # required
287
+ # instance_id: "XmlStringMaxLen19",
288
+ # })
289
+ # @overload complete_lifecycle_action(params = {})
290
+ # @param [Hash] params ({})
291
+ def complete_lifecycle_action(params = {}, options = {})
292
+ req = build_request(:complete_lifecycle_action, params)
293
+ req.send_request(options)
294
+ end
295
+
296
+ # Creates an Auto Scaling group with the specified name and attributes.
297
+ #
298
+ # If you exceed your maximum limit of Auto Scaling groups, which by
299
+ # default is 20 per region, the call fails. For information about
300
+ # viewing and updating this limit, see DescribeAccountLimits.
301
+ #
302
+ # For more information, see [Auto Scaling Groups][1] in the *Auto
303
+ # Scaling User Guide*.
304
+ #
305
+ #
306
+ #
307
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/AutoScalingGroup.html
308
+ # @option params [required, String] :auto_scaling_group_name
309
+ # The name of the group. This name must be unique within the scope of
310
+ # your AWS account.
311
+ # @option params [String] :launch_configuration_name
312
+ # The name of the launch configuration. Alternatively, specify an EC2
313
+ # instance instead of a launch configuration.
314
+ # @option params [String] :instance_id
315
+ # The ID of the instance used to create a launch configuration for the
316
+ # group. Alternatively, specify a launch configuration instead of an EC2
317
+ # instance.
318
+ #
319
+ # When you specify an ID of an instance, Auto Scaling creates a new
320
+ # launch configuration and associates it with the group. This launch
321
+ # configuration derives its attributes from the specified instance, with
322
+ # the exception of the block device mapping.
323
+ #
324
+ # For more information, see [Create an Auto Scaling Group Using an EC2
325
+ # Instance][1] in the *Auto Scaling User Guide*.
326
+ #
327
+ #
328
+ #
329
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/create-asg-from-instance.html
330
+ # @option params [required, Integer] :min_size
331
+ # The minimum size of the group.
332
+ # @option params [required, Integer] :max_size
333
+ # The maximum size of the group.
334
+ # @option params [Integer] :desired_capacity
335
+ # The number of EC2 instances that should be running in the group. This
336
+ # number must be greater than or equal to the minimum size of the group
337
+ # and less than or equal to the maximum size of the group.
338
+ # @option params [Integer] :default_cooldown
339
+ # The amount of time, in seconds, after a scaling activity completes
340
+ # before another scaling activity can start. The default is 300.
341
+ #
342
+ # For more information, see [Auto Scaling Cooldowns][1] in the *Auto
343
+ # Scaling User Guide*.
344
+ #
345
+ #
346
+ #
347
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/Cooldown.html
348
+ # @option params [Array<String>] :availability_zones
349
+ # One or more Availability Zones for the group. This parameter is
350
+ # optional if you specify one or more subnets.
351
+ # @option params [Array<String>] :load_balancer_names
352
+ # One or more Classic load balancers. To specify an Application load
353
+ # balancer, use `TargetGroupARNs` instead.
354
+ #
355
+ # For more information, see [Using a Load Balancer With an Auto Scaling
356
+ # Group][1] in the *Auto Scaling User Guide*.
357
+ #
358
+ #
359
+ #
360
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/create-asg-from-instance.html
361
+ # @option params [Array<String>] :target_group_arns
362
+ # The Amazon Resource Names (ARN) of the target groups.
363
+ # @option params [String] :health_check_type
364
+ # The service to use for the health checks. The valid values are `EC2`
365
+ # and `ELB`.
366
+ #
367
+ # By default, health checks use Amazon EC2 instance status checks to
368
+ # determine the health of an instance. For more information, see [Health
369
+ # Checks][1] in the *Auto Scaling User Guide*.
370
+ #
371
+ #
372
+ #
373
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/healthcheck.html
374
+ # @option params [Integer] :health_check_grace_period
375
+ # The amount of time, in seconds, that Auto Scaling waits before
376
+ # checking the health status of an EC2 instance that has come into
377
+ # service. During this time, any health check failures for the instance
378
+ # are ignored. The default is 0.
379
+ #
380
+ # This parameter is required if you are adding an `ELB` health check.
381
+ #
382
+ # For more information, see [Health Checks][1] in the *Auto Scaling User
383
+ # Guide*.
384
+ #
385
+ #
386
+ #
387
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/healthcheck.html
388
+ # @option params [String] :placement_group
389
+ # The name of the placement group into which you'll launch your
390
+ # instances, if any. For more information, see [Placement Groups][1] in
391
+ # the *Amazon Elastic Compute Cloud User Guide*.
392
+ #
393
+ #
394
+ #
395
+ # [1]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html
396
+ # @option params [String] :vpc_zone_identifier
397
+ # A comma-separated list of subnet identifiers for your virtual private
398
+ # cloud (VPC).
399
+ #
400
+ # If you specify subnets and Availability Zones with this call, ensure
401
+ # that the subnets' Availability Zones match the Availability Zones
402
+ # specified.
403
+ #
404
+ # For more information, see [Launching Auto Scaling Instances in a
405
+ # VPC][1] in the *Auto Scaling User Guide*.
406
+ #
407
+ #
408
+ #
409
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/asg-in-vpc.html
410
+ # @option params [Array<String>] :termination_policies
411
+ # One or more termination policies used to select the instance to
412
+ # terminate. These policies are executed in the order that they are
413
+ # listed.
414
+ #
415
+ # For more information, see [Controlling Which Instances Auto Scaling
416
+ # Terminates During Scale In][1] in the *Auto Scaling User Guide*.
417
+ #
418
+ #
419
+ #
420
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/as-instance-termination.html
421
+ # @option params [Boolean] :new_instances_protected_from_scale_in
422
+ # Indicates whether newly launched instances are protected from
423
+ # termination by Auto Scaling when scaling in.
424
+ # @option params [Array<Types::Tag>] :tags
425
+ # One or more tags.
426
+ #
427
+ # For more information, see [Tagging Auto Scaling Groups and
428
+ # Instances][1] in the *Auto Scaling User Guide*.
429
+ #
430
+ #
431
+ #
432
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/autoscaling-tagging.html
433
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
434
+ #
435
+ # @example Request syntax with placeholder values
436
+ # resp = client.create_auto_scaling_group({
437
+ # auto_scaling_group_name: "XmlStringMaxLen255", # required
438
+ # launch_configuration_name: "ResourceName",
439
+ # instance_id: "XmlStringMaxLen19",
440
+ # min_size: 1, # required
441
+ # max_size: 1, # required
442
+ # desired_capacity: 1,
443
+ # default_cooldown: 1,
444
+ # availability_zones: ["XmlStringMaxLen255"],
445
+ # load_balancer_names: ["XmlStringMaxLen255"],
446
+ # target_group_arns: ["XmlStringMaxLen511"],
447
+ # health_check_type: "XmlStringMaxLen32",
448
+ # health_check_grace_period: 1,
449
+ # placement_group: "XmlStringMaxLen255",
450
+ # vpc_zone_identifier: "XmlStringMaxLen2047",
451
+ # termination_policies: ["XmlStringMaxLen1600"],
452
+ # new_instances_protected_from_scale_in: false,
453
+ # tags: [
454
+ # {
455
+ # resource_id: "XmlString",
456
+ # resource_type: "XmlString",
457
+ # key: "TagKey", # required
458
+ # value: "TagValue",
459
+ # propagate_at_launch: false,
460
+ # },
461
+ # ],
462
+ # })
463
+ # @overload create_auto_scaling_group(params = {})
464
+ # @param [Hash] params ({})
465
+ def create_auto_scaling_group(params = {}, options = {})
466
+ req = build_request(:create_auto_scaling_group, params)
467
+ req.send_request(options)
468
+ end
469
+
470
+ # Creates a launch configuration.
471
+ #
472
+ # If you exceed your maximum limit of launch configurations, which by
473
+ # default is 100 per region, the call fails. For information about
474
+ # viewing and updating this limit, see DescribeAccountLimits.
475
+ #
476
+ # For more information, see [Launch Configurations][1] in the *Auto
477
+ # Scaling User Guide*.
478
+ #
479
+ #
480
+ #
481
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/LaunchConfiguration.html
482
+ # @option params [required, String] :launch_configuration_name
483
+ # The name of the launch configuration. This name must be unique within
484
+ # the scope of your AWS account.
485
+ # @option params [String] :image_id
486
+ # The ID of the Amazon Machine Image (AMI) to use to launch your EC2
487
+ # instances. For more information, see [Finding an AMI][1] in the
488
+ # *Amazon Elastic Compute Cloud User Guide*.
489
+ #
490
+ #
491
+ #
492
+ # [1]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html
493
+ # @option params [String] :key_name
494
+ # The name of the key pair. For more information, see [Amazon EC2 Key
495
+ # Pairs][1] in the *Amazon Elastic Compute Cloud User Guide*.
496
+ #
497
+ #
498
+ #
499
+ # [1]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html
500
+ # @option params [Array<String>] :security_groups
501
+ # One or more security groups with which to associate the instances.
502
+ #
503
+ # If your instances are launched in EC2-Classic, you can either specify
504
+ # security group names or the security group IDs. For more information
505
+ # about security groups for EC2-Classic, see [Amazon EC2 Security
506
+ # Groups][1] in the *Amazon Elastic Compute Cloud User Guide*.
507
+ #
508
+ # If your instances are launched into a VPC, specify security group IDs.
509
+ # For more information, see [Security Groups for Your VPC][2] in the
510
+ # *Amazon Virtual Private Cloud User Guide*.
511
+ #
512
+ #
513
+ #
514
+ # [1]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html
515
+ # [2]: http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html
516
+ # @option params [String] :classic_link_vpc_id
517
+ # The ID of a ClassicLink-enabled VPC to link your EC2-Classic instances
518
+ # to. This parameter is supported only if you are launching EC2-Classic
519
+ # instances. For more information, see [ClassicLink][1] in the *Amazon
520
+ # Elastic Compute Cloud User Guide*.
521
+ #
522
+ #
523
+ #
524
+ # [1]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html
525
+ # @option params [Array<String>] :classic_link_vpc_security_groups
526
+ # The IDs of one or more security groups for the specified
527
+ # ClassicLink-enabled VPC. This parameter is required if you specify a
528
+ # ClassicLink-enabled VPC, and is not supported otherwise. For more
529
+ # information, see [ClassicLink][1] in the *Amazon Elastic Compute Cloud
530
+ # User Guide*.
531
+ #
532
+ #
533
+ #
534
+ # [1]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vpc-classiclink.html
535
+ # @option params [String] :user_data
536
+ # The user data to make available to the launched EC2 instances. For
537
+ # more information, see [Instance Metadata and User Data][1] in the
538
+ # *Amazon Elastic Compute Cloud User Guide*.
539
+ #
540
+ #
541
+ #
542
+ # [1]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html
543
+ # @option params [String] :instance_id
544
+ # The ID of the instance to use to create the launch configuration.
545
+ #
546
+ # The new launch configuration derives attributes from the instance,
547
+ # with the exception of the block device mapping.
548
+ #
549
+ # To create a launch configuration with a block device mapping or
550
+ # override any other instance attributes, specify them as part of the
551
+ # same request.
552
+ #
553
+ # For more information, see [Create a Launch Configuration Using an EC2
554
+ # Instance][1] in the *Auto Scaling User Guide*.
555
+ #
556
+ #
557
+ #
558
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/create-lc-with-instanceID.html
559
+ # @option params [String] :instance_type
560
+ # The instance type of the EC2 instance. For information about available
561
+ # instance types, see [ Available Instance Types][1] in the *Amazon
562
+ # Elastic Compute Cloud User Guide.*
563
+ #
564
+ #
565
+ #
566
+ # [1]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#AvailableInstanceTypes
567
+ # @option params [String] :kernel_id
568
+ # The ID of the kernel associated with the AMI.
569
+ # @option params [String] :ramdisk_id
570
+ # The ID of the RAM disk associated with the AMI.
571
+ # @option params [Array<Types::BlockDeviceMapping>] :block_device_mappings
572
+ # One or more mappings that specify how block devices are exposed to the
573
+ # instance. For more information, see [Block Device Mapping][1] in the
574
+ # *Amazon Elastic Compute Cloud User Guide*.
575
+ #
576
+ #
577
+ #
578
+ # [1]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html
579
+ # @option params [Types::InstanceMonitoring] :instance_monitoring
580
+ # Enables detailed monitoring (`true`) or basic monitoring (`false`) for
581
+ # the Auto Scaling instances.
582
+ # @option params [String] :spot_price
583
+ # The maximum hourly price to be paid for any Spot Instance launched to
584
+ # fulfill the request. Spot Instances are launched when the price you
585
+ # specify exceeds the current Spot market price. For more information,
586
+ # see [Launching Spot Instances in Your Auto Scaling Group][1] in the
587
+ # *Auto Scaling User Guide*.
588
+ #
589
+ #
590
+ #
591
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/US-SpotInstances.html
592
+ # @option params [String] :iam_instance_profile
593
+ # The name or the Amazon Resource Name (ARN) of the instance profile
594
+ # associated with the IAM role for the instance.
595
+ #
596
+ # EC2 instances launched with an IAM role will automatically have AWS
597
+ # security credentials available. You can use IAM roles with Auto
598
+ # Scaling to automatically enable applications running on your EC2
599
+ # instances to securely access other AWS resources. For more
600
+ # information, see [Launch Auto Scaling Instances with an IAM Role][1]
601
+ # in the *Auto Scaling User Guide*.
602
+ #
603
+ #
604
+ #
605
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/us-iam-role.html
606
+ # @option params [Boolean] :ebs_optimized
607
+ # Indicates whether the instance is optimized for Amazon EBS I/O. By
608
+ # default, the instance is not optimized for EBS I/O. The optimization
609
+ # provides dedicated throughput to Amazon EBS and an optimized
610
+ # configuration stack to provide optimal I/O performance. This
611
+ # optimization is not available with all instance types. Additional
612
+ # usage charges apply. For more information, see [Amazon EBS-Optimized
613
+ # Instances][1] in the *Amazon Elastic Compute Cloud User Guide*.
614
+ #
615
+ #
616
+ #
617
+ # [1]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html
618
+ # @option params [Boolean] :associate_public_ip_address
619
+ # Used for groups that launch instances into a virtual private cloud
620
+ # (VPC). Specifies whether to assign a public IP address to each
621
+ # instance. For more information, see [Launching Auto Scaling Instances
622
+ # in a VPC][1] in the *Auto Scaling User Guide*.
623
+ #
624
+ # If you specify this parameter, be sure to specify at least one subnet
625
+ # when you create your group.
626
+ #
627
+ # Default: If the instance is launched into a default subnet, the
628
+ # default is `true`. If the instance is launched into a nondefault
629
+ # subnet, the default is `false`. For more information, see [Supported
630
+ # Platforms][2] in the *Amazon Elastic Compute Cloud User Guide*.
631
+ #
632
+ #
633
+ #
634
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/asg-in-vpc.html
635
+ # [2]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-supported-platforms.html
636
+ # @option params [String] :placement_tenancy
637
+ # The tenancy of the instance. An instance with a tenancy of `dedicated`
638
+ # runs on single-tenant hardware and can only be launched into a VPC.
639
+ #
640
+ # You must set the value of this parameter to `dedicated` if want to
641
+ # launch Dedicated Instances into a shared tenancy VPC (VPC with
642
+ # instance placement tenancy attribute set to `default`).
643
+ #
644
+ # If you specify this parameter, be sure to specify at least one subnet
645
+ # when you create your group.
646
+ #
647
+ # For more information, see [Launching Auto Scaling Instances in a
648
+ # VPC][1] in the *Auto Scaling User Guide*.
649
+ #
650
+ # Valid values: `default` \| `dedicated`
651
+ #
652
+ #
653
+ #
654
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/asg-in-vpc.html
655
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
656
+ #
657
+ # @example Request syntax with placeholder values
658
+ # resp = client.create_launch_configuration({
659
+ # launch_configuration_name: "XmlStringMaxLen255", # required
660
+ # image_id: "XmlStringMaxLen255",
661
+ # key_name: "XmlStringMaxLen255",
662
+ # security_groups: ["XmlString"],
663
+ # classic_link_vpc_id: "XmlStringMaxLen255",
664
+ # classic_link_vpc_security_groups: ["XmlStringMaxLen255"],
665
+ # user_data: "XmlStringUserData",
666
+ # instance_id: "XmlStringMaxLen19",
667
+ # instance_type: "XmlStringMaxLen255",
668
+ # kernel_id: "XmlStringMaxLen255",
669
+ # ramdisk_id: "XmlStringMaxLen255",
670
+ # block_device_mappings: [
671
+ # {
672
+ # virtual_name: "XmlStringMaxLen255",
673
+ # device_name: "XmlStringMaxLen255", # required
674
+ # ebs: {
675
+ # snapshot_id: "XmlStringMaxLen255",
676
+ # volume_size: 1,
677
+ # volume_type: "BlockDeviceEbsVolumeType",
678
+ # delete_on_termination: false,
679
+ # iops: 1,
680
+ # encrypted: false,
681
+ # },
682
+ # no_device: false,
683
+ # },
684
+ # ],
685
+ # instance_monitoring: {
686
+ # enabled: false,
687
+ # },
688
+ # spot_price: "SpotPrice",
689
+ # iam_instance_profile: "XmlStringMaxLen1600",
690
+ # ebs_optimized: false,
691
+ # associate_public_ip_address: false,
692
+ # placement_tenancy: "XmlStringMaxLen64",
693
+ # })
694
+ # @overload create_launch_configuration(params = {})
695
+ # @param [Hash] params ({})
696
+ def create_launch_configuration(params = {}, options = {})
697
+ req = build_request(:create_launch_configuration, params)
698
+ req.send_request(options)
699
+ end
700
+
701
+ # Creates or updates tags for the specified Auto Scaling group.
702
+ #
703
+ # When you specify a tag with a key that already exists, the operation
704
+ # overwrites the previous tag definition, and you do not get an error
705
+ # message.
706
+ #
707
+ # For more information, see [Tagging Auto Scaling Groups and
708
+ # Instances][1] in the *Auto Scaling User Guide*.
709
+ #
710
+ #
711
+ #
712
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/autoscaling-tagging.html
713
+ # @option params [required, Array<Types::Tag>] :tags
714
+ # One or more tags.
715
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
716
+ #
717
+ # @example Request syntax with placeholder values
718
+ # resp = client.create_or_update_tags({
719
+ # tags: [ # required
720
+ # {
721
+ # resource_id: "XmlString",
722
+ # resource_type: "XmlString",
723
+ # key: "TagKey", # required
724
+ # value: "TagValue",
725
+ # propagate_at_launch: false,
726
+ # },
727
+ # ],
728
+ # })
729
+ # @overload create_or_update_tags(params = {})
730
+ # @param [Hash] params ({})
731
+ def create_or_update_tags(params = {}, options = {})
732
+ req = build_request(:create_or_update_tags, params)
733
+ req.send_request(options)
734
+ end
735
+
736
+ # Deletes the specified Auto Scaling group.
737
+ #
738
+ # If the group has instances or scaling activities in progress, you must
739
+ # specify the option to force the deletion in order for it to succeed.
740
+ #
741
+ # If the group has policies, deleting the group deletes the policies,
742
+ # the underlying alarm actions, and any alarm that no longer has an
743
+ # associated action.
744
+ #
745
+ # To remove instances from the Auto Scaling group before deleting it,
746
+ # call DetachInstances with the list of instances and the option to
747
+ # decrement the desired capacity so that Auto Scaling does not launch
748
+ # replacement instances.
749
+ #
750
+ # To terminate all instances before deleting the Auto Scaling group,
751
+ # call UpdateAutoScalingGroup and set the minimum size and desired
752
+ # capacity of the Auto Scaling group to zero.
753
+ # @option params [required, String] :auto_scaling_group_name
754
+ # The name of the group to delete.
755
+ # @option params [Boolean] :force_delete
756
+ # Specifies that the group will be deleted along with all instances
757
+ # associated with the group, without waiting for all instances to be
758
+ # terminated. This parameter also deletes any lifecycle actions
759
+ # associated with the group.
760
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
761
+ #
762
+ # @example Request syntax with placeholder values
763
+ # resp = client.delete_auto_scaling_group({
764
+ # auto_scaling_group_name: "ResourceName", # required
765
+ # force_delete: false,
766
+ # })
767
+ # @overload delete_auto_scaling_group(params = {})
768
+ # @param [Hash] params ({})
769
+ def delete_auto_scaling_group(params = {}, options = {})
770
+ req = build_request(:delete_auto_scaling_group, params)
771
+ req.send_request(options)
772
+ end
773
+
774
+ # Deletes the specified launch configuration.
775
+ #
776
+ # The launch configuration must not be attached to an Auto Scaling
777
+ # group. When this call completes, the launch configuration is no longer
778
+ # available for use.
779
+ # @option params [required, String] :launch_configuration_name
780
+ # The name of the launch configuration.
781
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
782
+ #
783
+ # @example Request syntax with placeholder values
784
+ # resp = client.delete_launch_configuration({
785
+ # launch_configuration_name: "ResourceName", # required
786
+ # })
787
+ # @overload delete_launch_configuration(params = {})
788
+ # @param [Hash] params ({})
789
+ def delete_launch_configuration(params = {}, options = {})
790
+ req = build_request(:delete_launch_configuration, params)
791
+ req.send_request(options)
792
+ end
793
+
794
+ # Deletes the specified lifecycle hook.
795
+ #
796
+ # If there are any outstanding lifecycle actions, they are completed
797
+ # first (`ABANDON` for launching instances, `CONTINUE` for terminating
798
+ # instances).
799
+ # @option params [required, String] :lifecycle_hook_name
800
+ # The name of the lifecycle hook.
801
+ # @option params [required, String] :auto_scaling_group_name
802
+ # The name of the Auto Scaling group for the lifecycle hook.
803
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
804
+ #
805
+ # @example Request syntax with placeholder values
806
+ # resp = client.delete_lifecycle_hook({
807
+ # lifecycle_hook_name: "AsciiStringMaxLen255", # required
808
+ # auto_scaling_group_name: "ResourceName", # required
809
+ # })
810
+ # @overload delete_lifecycle_hook(params = {})
811
+ # @param [Hash] params ({})
812
+ def delete_lifecycle_hook(params = {}, options = {})
813
+ req = build_request(:delete_lifecycle_hook, params)
814
+ req.send_request(options)
815
+ end
816
+
817
+ # Deletes the specified notification.
818
+ # @option params [required, String] :auto_scaling_group_name
819
+ # The name of the Auto Scaling group.
820
+ # @option params [required, String] :topic_arn
821
+ # The Amazon Resource Name (ARN) of the Amazon Simple Notification
822
+ # Service (SNS) topic.
823
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
824
+ #
825
+ # @example Request syntax with placeholder values
826
+ # resp = client.delete_notification_configuration({
827
+ # auto_scaling_group_name: "ResourceName", # required
828
+ # topic_arn: "ResourceName", # required
829
+ # })
830
+ # @overload delete_notification_configuration(params = {})
831
+ # @param [Hash] params ({})
832
+ def delete_notification_configuration(params = {}, options = {})
833
+ req = build_request(:delete_notification_configuration, params)
834
+ req.send_request(options)
835
+ end
836
+
837
+ # Deletes the specified Auto Scaling policy.
838
+ #
839
+ # Deleting a policy deletes the underlying alarm action, but does not
840
+ # delete the alarm, even if it no longer has an associated action.
841
+ # @option params [String] :auto_scaling_group_name
842
+ # The name of the Auto Scaling group.
843
+ # @option params [required, String] :policy_name
844
+ # The name or Amazon Resource Name (ARN) of the policy.
845
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
846
+ #
847
+ # @example Request syntax with placeholder values
848
+ # resp = client.delete_policy({
849
+ # auto_scaling_group_name: "ResourceName",
850
+ # policy_name: "ResourceName", # required
851
+ # })
852
+ # @overload delete_policy(params = {})
853
+ # @param [Hash] params ({})
854
+ def delete_policy(params = {}, options = {})
855
+ req = build_request(:delete_policy, params)
856
+ req.send_request(options)
857
+ end
858
+
859
+ # Deletes the specified scheduled action.
860
+ # @option params [required, String] :auto_scaling_group_name
861
+ # The name of the Auto Scaling group.
862
+ # @option params [required, String] :scheduled_action_name
863
+ # The name of the action to delete.
864
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
865
+ #
866
+ # @example Request syntax with placeholder values
867
+ # resp = client.delete_scheduled_action({
868
+ # auto_scaling_group_name: "ResourceName", # required
869
+ # scheduled_action_name: "ResourceName", # required
870
+ # })
871
+ # @overload delete_scheduled_action(params = {})
872
+ # @param [Hash] params ({})
873
+ def delete_scheduled_action(params = {}, options = {})
874
+ req = build_request(:delete_scheduled_action, params)
875
+ req.send_request(options)
876
+ end
877
+
878
+ # Deletes the specified tags.
879
+ # @option params [required, Array<Types::Tag>] :tags
880
+ # One or more tags.
881
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
882
+ #
883
+ # @example Request syntax with placeholder values
884
+ # resp = client.delete_tags({
885
+ # tags: [ # required
886
+ # {
887
+ # resource_id: "XmlString",
888
+ # resource_type: "XmlString",
889
+ # key: "TagKey", # required
890
+ # value: "TagValue",
891
+ # propagate_at_launch: false,
892
+ # },
893
+ # ],
894
+ # })
895
+ # @overload delete_tags(params = {})
896
+ # @param [Hash] params ({})
897
+ def delete_tags(params = {}, options = {})
898
+ req = build_request(:delete_tags, params)
899
+ req.send_request(options)
900
+ end
901
+
902
+ # Describes the current Auto Scaling resource limits for your AWS
903
+ # account.
904
+ #
905
+ # For information about requesting an increase in these limits, see [AWS
906
+ # Service Limits][1] in the *Amazon Web Services General Reference*.
907
+ #
908
+ #
909
+ #
910
+ # [1]: http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html
911
+ # @return [Types::DescribeAccountLimitsAnswer] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
912
+ #
913
+ # * {Types::DescribeAccountLimitsAnswer#max_number_of_auto_scaling_groups #MaxNumberOfAutoScalingGroups} => Integer
914
+ # * {Types::DescribeAccountLimitsAnswer#max_number_of_launch_configurations #MaxNumberOfLaunchConfigurations} => Integer
915
+ # * {Types::DescribeAccountLimitsAnswer#number_of_auto_scaling_groups #NumberOfAutoScalingGroups} => Integer
916
+ # * {Types::DescribeAccountLimitsAnswer#number_of_launch_configurations #NumberOfLaunchConfigurations} => Integer
917
+ #
918
+ # @example Response structure
919
+ # resp.max_number_of_auto_scaling_groups #=> Integer
920
+ # resp.max_number_of_launch_configurations #=> Integer
921
+ # resp.number_of_auto_scaling_groups #=> Integer
922
+ # resp.number_of_launch_configurations #=> Integer
923
+ # @overload describe_account_limits(params = {})
924
+ # @param [Hash] params ({})
925
+ def describe_account_limits(params = {}, options = {})
926
+ req = build_request(:describe_account_limits, params)
927
+ req.send_request(options)
928
+ end
929
+
930
+ # Describes the policy adjustment types for use with PutScalingPolicy.
931
+ # @return [Types::DescribeAdjustmentTypesAnswer] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
932
+ #
933
+ # * {Types::DescribeAdjustmentTypesAnswer#adjustment_types #AdjustmentTypes} => Array&lt;Types::AdjustmentType&gt;
934
+ #
935
+ # @example Response structure
936
+ # resp.adjustment_types #=> Array
937
+ # resp.adjustment_types[0].adjustment_type #=> String
938
+ # @overload describe_adjustment_types(params = {})
939
+ # @param [Hash] params ({})
940
+ def describe_adjustment_types(params = {}, options = {})
941
+ req = build_request(:describe_adjustment_types, params)
942
+ req.send_request(options)
943
+ end
944
+
945
+ # Describes one or more Auto Scaling groups.
946
+ # @option params [Array<String>] :auto_scaling_group_names
947
+ # The group names. If you omit this parameter, all Auto Scaling groups
948
+ # are described.
949
+ # @option params [String] :next_token
950
+ # The token for the next set of items to return. (You received this
951
+ # token from a previous call.)
952
+ # @option params [Integer] :max_records
953
+ # The maximum number of items to return with this call.
954
+ # @return [Types::AutoScalingGroupsType] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
955
+ #
956
+ # * {Types::AutoScalingGroupsType#auto_scaling_groups #AutoScalingGroups} => Array&lt;Types::AutoScalingGroup&gt;
957
+ # * {Types::AutoScalingGroupsType#next_token #NextToken} => String
958
+ #
959
+ # @example Request syntax with placeholder values
960
+ # resp = client.describe_auto_scaling_groups({
961
+ # auto_scaling_group_names: ["ResourceName"],
962
+ # next_token: "XmlString",
963
+ # max_records: 1,
964
+ # })
965
+ #
966
+ # @example Response structure
967
+ # resp.auto_scaling_groups #=> Array
968
+ # resp.auto_scaling_groups[0].auto_scaling_group_name #=> String
969
+ # resp.auto_scaling_groups[0].auto_scaling_group_arn #=> String
970
+ # resp.auto_scaling_groups[0].launch_configuration_name #=> String
971
+ # resp.auto_scaling_groups[0].min_size #=> Integer
972
+ # resp.auto_scaling_groups[0].max_size #=> Integer
973
+ # resp.auto_scaling_groups[0].desired_capacity #=> Integer
974
+ # resp.auto_scaling_groups[0].default_cooldown #=> Integer
975
+ # resp.auto_scaling_groups[0].availability_zones #=> Array
976
+ # resp.auto_scaling_groups[0].availability_zones[0] #=> String
977
+ # resp.auto_scaling_groups[0].load_balancer_names #=> Array
978
+ # resp.auto_scaling_groups[0].load_balancer_names[0] #=> String
979
+ # resp.auto_scaling_groups[0].target_group_arns #=> Array
980
+ # resp.auto_scaling_groups[0].target_group_arns[0] #=> String
981
+ # resp.auto_scaling_groups[0].health_check_type #=> String
982
+ # resp.auto_scaling_groups[0].health_check_grace_period #=> Integer
983
+ # resp.auto_scaling_groups[0].instances #=> Array
984
+ # resp.auto_scaling_groups[0].instances[0].instance_id #=> String
985
+ # resp.auto_scaling_groups[0].instances[0].availability_zone #=> String
986
+ # resp.auto_scaling_groups[0].instances[0].lifecycle_state #=> String, one of "Pending", "Pending:Wait", "Pending:Proceed", "Quarantined", "InService", "Terminating", "Terminating:Wait", "Terminating:Proceed", "Terminated", "Detaching", "Detached", "EnteringStandby", "Standby"
987
+ # resp.auto_scaling_groups[0].instances[0].health_status #=> String
988
+ # resp.auto_scaling_groups[0].instances[0].launch_configuration_name #=> String
989
+ # resp.auto_scaling_groups[0].instances[0].protected_from_scale_in #=> Boolean
990
+ # resp.auto_scaling_groups[0].created_time #=> Time
991
+ # resp.auto_scaling_groups[0].suspended_processes #=> Array
992
+ # resp.auto_scaling_groups[0].suspended_processes[0].process_name #=> String
993
+ # resp.auto_scaling_groups[0].suspended_processes[0].suspension_reason #=> String
994
+ # resp.auto_scaling_groups[0].placement_group #=> String
995
+ # resp.auto_scaling_groups[0].vpc_zone_identifier #=> String
996
+ # resp.auto_scaling_groups[0].enabled_metrics #=> Array
997
+ # resp.auto_scaling_groups[0].enabled_metrics[0].metric #=> String
998
+ # resp.auto_scaling_groups[0].enabled_metrics[0].granularity #=> String
999
+ # resp.auto_scaling_groups[0].status #=> String
1000
+ # resp.auto_scaling_groups[0].tags #=> Array
1001
+ # resp.auto_scaling_groups[0].tags[0].resource_id #=> String
1002
+ # resp.auto_scaling_groups[0].tags[0].resource_type #=> String
1003
+ # resp.auto_scaling_groups[0].tags[0].key #=> String
1004
+ # resp.auto_scaling_groups[0].tags[0].value #=> String
1005
+ # resp.auto_scaling_groups[0].tags[0].propagate_at_launch #=> Boolean
1006
+ # resp.auto_scaling_groups[0].termination_policies #=> Array
1007
+ # resp.auto_scaling_groups[0].termination_policies[0] #=> String
1008
+ # resp.auto_scaling_groups[0].new_instances_protected_from_scale_in #=> Boolean
1009
+ # resp.next_token #=> String
1010
+ # @overload describe_auto_scaling_groups(params = {})
1011
+ # @param [Hash] params ({})
1012
+ def describe_auto_scaling_groups(params = {}, options = {})
1013
+ req = build_request(:describe_auto_scaling_groups, params)
1014
+ req.send_request(options)
1015
+ end
1016
+
1017
+ # Describes one or more Auto Scaling instances.
1018
+ # @option params [Array<String>] :instance_ids
1019
+ # The instances to describe; up to 50 instance IDs. If you omit this
1020
+ # parameter, all Auto Scaling instances are described. If you specify an
1021
+ # ID that does not exist, it is ignored with no error.
1022
+ # @option params [Integer] :max_records
1023
+ # The maximum number of items to return with this call.
1024
+ # @option params [String] :next_token
1025
+ # The token for the next set of items to return. (You received this
1026
+ # token from a previous call.)
1027
+ # @return [Types::AutoScalingInstancesType] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1028
+ #
1029
+ # * {Types::AutoScalingInstancesType#auto_scaling_instances #AutoScalingInstances} => Array&lt;Types::AutoScalingInstanceDetails&gt;
1030
+ # * {Types::AutoScalingInstancesType#next_token #NextToken} => String
1031
+ #
1032
+ # @example Request syntax with placeholder values
1033
+ # resp = client.describe_auto_scaling_instances({
1034
+ # instance_ids: ["XmlStringMaxLen19"],
1035
+ # max_records: 1,
1036
+ # next_token: "XmlString",
1037
+ # })
1038
+ #
1039
+ # @example Response structure
1040
+ # resp.auto_scaling_instances #=> Array
1041
+ # resp.auto_scaling_instances[0].instance_id #=> String
1042
+ # resp.auto_scaling_instances[0].auto_scaling_group_name #=> String
1043
+ # resp.auto_scaling_instances[0].availability_zone #=> String
1044
+ # resp.auto_scaling_instances[0].lifecycle_state #=> String
1045
+ # resp.auto_scaling_instances[0].health_status #=> String
1046
+ # resp.auto_scaling_instances[0].launch_configuration_name #=> String
1047
+ # resp.auto_scaling_instances[0].protected_from_scale_in #=> Boolean
1048
+ # resp.next_token #=> String
1049
+ # @overload describe_auto_scaling_instances(params = {})
1050
+ # @param [Hash] params ({})
1051
+ def describe_auto_scaling_instances(params = {}, options = {})
1052
+ req = build_request(:describe_auto_scaling_instances, params)
1053
+ req.send_request(options)
1054
+ end
1055
+
1056
+ # Describes the notification types that are supported by Auto Scaling.
1057
+ # @return [Types::DescribeAutoScalingNotificationTypesAnswer] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1058
+ #
1059
+ # * {Types::DescribeAutoScalingNotificationTypesAnswer#auto_scaling_notification_types #AutoScalingNotificationTypes} => Array&lt;String&gt;
1060
+ #
1061
+ # @example Response structure
1062
+ # resp.auto_scaling_notification_types #=> Array
1063
+ # resp.auto_scaling_notification_types[0] #=> String
1064
+ # @overload describe_auto_scaling_notification_types(params = {})
1065
+ # @param [Hash] params ({})
1066
+ def describe_auto_scaling_notification_types(params = {}, options = {})
1067
+ req = build_request(:describe_auto_scaling_notification_types, params)
1068
+ req.send_request(options)
1069
+ end
1070
+
1071
+ # Describes one or more launch configurations.
1072
+ # @option params [Array<String>] :launch_configuration_names
1073
+ # The launch configuration names. If you omit this parameter, all launch
1074
+ # configurations are described.
1075
+ # @option params [String] :next_token
1076
+ # The token for the next set of items to return. (You received this
1077
+ # token from a previous call.)
1078
+ # @option params [Integer] :max_records
1079
+ # The maximum number of items to return with this call. The default is
1080
+ # 100.
1081
+ # @return [Types::LaunchConfigurationsType] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1082
+ #
1083
+ # * {Types::LaunchConfigurationsType#launch_configurations #LaunchConfigurations} => Array&lt;Types::LaunchConfiguration&gt;
1084
+ # * {Types::LaunchConfigurationsType#next_token #NextToken} => String
1085
+ #
1086
+ # @example Request syntax with placeholder values
1087
+ # resp = client.describe_launch_configurations({
1088
+ # launch_configuration_names: ["ResourceName"],
1089
+ # next_token: "XmlString",
1090
+ # max_records: 1,
1091
+ # })
1092
+ #
1093
+ # @example Response structure
1094
+ # resp.launch_configurations #=> Array
1095
+ # resp.launch_configurations[0].launch_configuration_name #=> String
1096
+ # resp.launch_configurations[0].launch_configuration_arn #=> String
1097
+ # resp.launch_configurations[0].image_id #=> String
1098
+ # resp.launch_configurations[0].key_name #=> String
1099
+ # resp.launch_configurations[0].security_groups #=> Array
1100
+ # resp.launch_configurations[0].security_groups[0] #=> String
1101
+ # resp.launch_configurations[0].classic_link_vpc_id #=> String
1102
+ # resp.launch_configurations[0].classic_link_vpc_security_groups #=> Array
1103
+ # resp.launch_configurations[0].classic_link_vpc_security_groups[0] #=> String
1104
+ # resp.launch_configurations[0].user_data #=> String
1105
+ # resp.launch_configurations[0].instance_type #=> String
1106
+ # resp.launch_configurations[0].kernel_id #=> String
1107
+ # resp.launch_configurations[0].ramdisk_id #=> String
1108
+ # resp.launch_configurations[0].block_device_mappings #=> Array
1109
+ # resp.launch_configurations[0].block_device_mappings[0].virtual_name #=> String
1110
+ # resp.launch_configurations[0].block_device_mappings[0].device_name #=> String
1111
+ # resp.launch_configurations[0].block_device_mappings[0].ebs.snapshot_id #=> String
1112
+ # resp.launch_configurations[0].block_device_mappings[0].ebs.volume_size #=> Integer
1113
+ # resp.launch_configurations[0].block_device_mappings[0].ebs.volume_type #=> String
1114
+ # resp.launch_configurations[0].block_device_mappings[0].ebs.delete_on_termination #=> Boolean
1115
+ # resp.launch_configurations[0].block_device_mappings[0].ebs.iops #=> Integer
1116
+ # resp.launch_configurations[0].block_device_mappings[0].ebs.encrypted #=> Boolean
1117
+ # resp.launch_configurations[0].block_device_mappings[0].no_device #=> Boolean
1118
+ # resp.launch_configurations[0].instance_monitoring.enabled #=> Boolean
1119
+ # resp.launch_configurations[0].spot_price #=> String
1120
+ # resp.launch_configurations[0].iam_instance_profile #=> String
1121
+ # resp.launch_configurations[0].created_time #=> Time
1122
+ # resp.launch_configurations[0].ebs_optimized #=> Boolean
1123
+ # resp.launch_configurations[0].associate_public_ip_address #=> Boolean
1124
+ # resp.launch_configurations[0].placement_tenancy #=> String
1125
+ # resp.next_token #=> String
1126
+ # @overload describe_launch_configurations(params = {})
1127
+ # @param [Hash] params ({})
1128
+ def describe_launch_configurations(params = {}, options = {})
1129
+ req = build_request(:describe_launch_configurations, params)
1130
+ req.send_request(options)
1131
+ end
1132
+
1133
+ # Describes the available types of lifecycle hooks.
1134
+ # @return [Types::DescribeLifecycleHookTypesAnswer] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1135
+ #
1136
+ # * {Types::DescribeLifecycleHookTypesAnswer#lifecycle_hook_types #LifecycleHookTypes} => Array&lt;String&gt;
1137
+ #
1138
+ # @example Response structure
1139
+ # resp.lifecycle_hook_types #=> Array
1140
+ # resp.lifecycle_hook_types[0] #=> String
1141
+ # @overload describe_lifecycle_hook_types(params = {})
1142
+ # @param [Hash] params ({})
1143
+ def describe_lifecycle_hook_types(params = {}, options = {})
1144
+ req = build_request(:describe_lifecycle_hook_types, params)
1145
+ req.send_request(options)
1146
+ end
1147
+
1148
+ # Describes the lifecycle hooks for the specified Auto Scaling group.
1149
+ # @option params [required, String] :auto_scaling_group_name
1150
+ # The name of the group.
1151
+ # @option params [Array<String>] :lifecycle_hook_names
1152
+ # The names of one or more lifecycle hooks. If you omit this parameter,
1153
+ # all lifecycle hooks are described.
1154
+ # @return [Types::DescribeLifecycleHooksAnswer] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1155
+ #
1156
+ # * {Types::DescribeLifecycleHooksAnswer#lifecycle_hooks #LifecycleHooks} => Array&lt;Types::LifecycleHook&gt;
1157
+ #
1158
+ # @example Request syntax with placeholder values
1159
+ # resp = client.describe_lifecycle_hooks({
1160
+ # auto_scaling_group_name: "ResourceName", # required
1161
+ # lifecycle_hook_names: ["AsciiStringMaxLen255"],
1162
+ # })
1163
+ #
1164
+ # @example Response structure
1165
+ # resp.lifecycle_hooks #=> Array
1166
+ # resp.lifecycle_hooks[0].lifecycle_hook_name #=> String
1167
+ # resp.lifecycle_hooks[0].auto_scaling_group_name #=> String
1168
+ # resp.lifecycle_hooks[0].lifecycle_transition #=> String
1169
+ # resp.lifecycle_hooks[0].notification_target_arn #=> String
1170
+ # resp.lifecycle_hooks[0].role_arn #=> String
1171
+ # resp.lifecycle_hooks[0].notification_metadata #=> String
1172
+ # resp.lifecycle_hooks[0].heartbeat_timeout #=> Integer
1173
+ # resp.lifecycle_hooks[0].global_timeout #=> Integer
1174
+ # resp.lifecycle_hooks[0].default_result #=> String
1175
+ # @overload describe_lifecycle_hooks(params = {})
1176
+ # @param [Hash] params ({})
1177
+ def describe_lifecycle_hooks(params = {}, options = {})
1178
+ req = build_request(:describe_lifecycle_hooks, params)
1179
+ req.send_request(options)
1180
+ end
1181
+
1182
+ # Describes the target groups for the specified Auto Scaling group.
1183
+ # @option params [required, String] :auto_scaling_group_name
1184
+ # The name of the Auto Scaling group.
1185
+ # @option params [String] :next_token
1186
+ # The token for the next set of items to return. (You received this
1187
+ # token from a previous call.)
1188
+ # @option params [Integer] :max_records
1189
+ # The maximum number of items to return with this call.
1190
+ # @return [Types::DescribeLoadBalancerTargetGroupsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1191
+ #
1192
+ # * {Types::DescribeLoadBalancerTargetGroupsResponse#load_balancer_target_groups #LoadBalancerTargetGroups} => Array&lt;Types::LoadBalancerTargetGroupState&gt;
1193
+ # * {Types::DescribeLoadBalancerTargetGroupsResponse#next_token #NextToken} => String
1194
+ #
1195
+ # @example Request syntax with placeholder values
1196
+ # resp = client.describe_load_balancer_target_groups({
1197
+ # auto_scaling_group_name: "ResourceName", # required
1198
+ # next_token: "XmlString",
1199
+ # max_records: 1,
1200
+ # })
1201
+ #
1202
+ # @example Response structure
1203
+ # resp.load_balancer_target_groups #=> Array
1204
+ # resp.load_balancer_target_groups[0].load_balancer_target_group_arn #=> String
1205
+ # resp.load_balancer_target_groups[0].state #=> String
1206
+ # resp.next_token #=> String
1207
+ # @overload describe_load_balancer_target_groups(params = {})
1208
+ # @param [Hash] params ({})
1209
+ def describe_load_balancer_target_groups(params = {}, options = {})
1210
+ req = build_request(:describe_load_balancer_target_groups, params)
1211
+ req.send_request(options)
1212
+ end
1213
+
1214
+ # Describes the load balancers for the specified Auto Scaling group.
1215
+ #
1216
+ # Note that this operation describes only Classic load balancers. If you
1217
+ # have Application load balancers, use DescribeLoadBalancerTargetGroups
1218
+ # instead.
1219
+ # @option params [required, String] :auto_scaling_group_name
1220
+ # The name of the group.
1221
+ # @option params [String] :next_token
1222
+ # The token for the next set of items to return. (You received this
1223
+ # token from a previous call.)
1224
+ # @option params [Integer] :max_records
1225
+ # The maximum number of items to return with this call.
1226
+ # @return [Types::DescribeLoadBalancersResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1227
+ #
1228
+ # * {Types::DescribeLoadBalancersResponse#load_balancers #LoadBalancers} => Array&lt;Types::LoadBalancerState&gt;
1229
+ # * {Types::DescribeLoadBalancersResponse#next_token #NextToken} => String
1230
+ #
1231
+ # @example Request syntax with placeholder values
1232
+ # resp = client.describe_load_balancers({
1233
+ # auto_scaling_group_name: "ResourceName", # required
1234
+ # next_token: "XmlString",
1235
+ # max_records: 1,
1236
+ # })
1237
+ #
1238
+ # @example Response structure
1239
+ # resp.load_balancers #=> Array
1240
+ # resp.load_balancers[0].load_balancer_name #=> String
1241
+ # resp.load_balancers[0].state #=> String
1242
+ # resp.next_token #=> String
1243
+ # @overload describe_load_balancers(params = {})
1244
+ # @param [Hash] params ({})
1245
+ def describe_load_balancers(params = {}, options = {})
1246
+ req = build_request(:describe_load_balancers, params)
1247
+ req.send_request(options)
1248
+ end
1249
+
1250
+ # Describes the available CloudWatch metrics for Auto Scaling.
1251
+ #
1252
+ # Note that the `GroupStandbyInstances` metric is not returned by
1253
+ # default. You must explicitly request this metric when calling
1254
+ # EnableMetricsCollection.
1255
+ # @return [Types::DescribeMetricCollectionTypesAnswer] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1256
+ #
1257
+ # * {Types::DescribeMetricCollectionTypesAnswer#metrics #Metrics} => Array&lt;Types::MetricCollectionType&gt;
1258
+ # * {Types::DescribeMetricCollectionTypesAnswer#granularities #Granularities} => Array&lt;Types::MetricGranularityType&gt;
1259
+ #
1260
+ # @example Response structure
1261
+ # resp.metrics #=> Array
1262
+ # resp.metrics[0].metric #=> String
1263
+ # resp.granularities #=> Array
1264
+ # resp.granularities[0].granularity #=> String
1265
+ # @overload describe_metric_collection_types(params = {})
1266
+ # @param [Hash] params ({})
1267
+ def describe_metric_collection_types(params = {}, options = {})
1268
+ req = build_request(:describe_metric_collection_types, params)
1269
+ req.send_request(options)
1270
+ end
1271
+
1272
+ # Describes the notification actions associated with the specified Auto
1273
+ # Scaling group.
1274
+ # @option params [Array<String>] :auto_scaling_group_names
1275
+ # The name of the group.
1276
+ # @option params [String] :next_token
1277
+ # The token for the next set of items to return. (You received this
1278
+ # token from a previous call.)
1279
+ # @option params [Integer] :max_records
1280
+ # The maximum number of items to return with this call.
1281
+ # @return [Types::DescribeNotificationConfigurationsAnswer] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1282
+ #
1283
+ # * {Types::DescribeNotificationConfigurationsAnswer#notification_configurations #NotificationConfigurations} => Array&lt;Types::NotificationConfiguration&gt;
1284
+ # * {Types::DescribeNotificationConfigurationsAnswer#next_token #NextToken} => String
1285
+ #
1286
+ # @example Request syntax with placeholder values
1287
+ # resp = client.describe_notification_configurations({
1288
+ # auto_scaling_group_names: ["ResourceName"],
1289
+ # next_token: "XmlString",
1290
+ # max_records: 1,
1291
+ # })
1292
+ #
1293
+ # @example Response structure
1294
+ # resp.notification_configurations #=> Array
1295
+ # resp.notification_configurations[0].auto_scaling_group_name #=> String
1296
+ # resp.notification_configurations[0].topic_arn #=> String
1297
+ # resp.notification_configurations[0].notification_type #=> String
1298
+ # resp.next_token #=> String
1299
+ # @overload describe_notification_configurations(params = {})
1300
+ # @param [Hash] params ({})
1301
+ def describe_notification_configurations(params = {}, options = {})
1302
+ req = build_request(:describe_notification_configurations, params)
1303
+ req.send_request(options)
1304
+ end
1305
+
1306
+ # Describes the policies for the specified Auto Scaling group.
1307
+ # @option params [String] :auto_scaling_group_name
1308
+ # The name of the group.
1309
+ # @option params [Array<String>] :policy_names
1310
+ # One or more policy names or policy ARNs to be described. If you omit
1311
+ # this parameter, all policy names are described. If an group name is
1312
+ # provided, the results are limited to that group. This list is limited
1313
+ # to 50 items. If you specify an unknown policy name, it is ignored with
1314
+ # no error.
1315
+ # @option params [Array<String>] :policy_types
1316
+ # One or more policy types. Valid values are `SimpleScaling` and
1317
+ # `StepScaling`.
1318
+ # @option params [String] :next_token
1319
+ # The token for the next set of items to return. (You received this
1320
+ # token from a previous call.)
1321
+ # @option params [Integer] :max_records
1322
+ # The maximum number of items to be returned with each call.
1323
+ # @return [Types::PoliciesType] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1324
+ #
1325
+ # * {Types::PoliciesType#scaling_policies #ScalingPolicies} => Array&lt;Types::ScalingPolicy&gt;
1326
+ # * {Types::PoliciesType#next_token #NextToken} => String
1327
+ #
1328
+ # @example Request syntax with placeholder values
1329
+ # resp = client.describe_policies({
1330
+ # auto_scaling_group_name: "ResourceName",
1331
+ # policy_names: ["ResourceName"],
1332
+ # policy_types: ["XmlStringMaxLen64"],
1333
+ # next_token: "XmlString",
1334
+ # max_records: 1,
1335
+ # })
1336
+ #
1337
+ # @example Response structure
1338
+ # resp.scaling_policies #=> Array
1339
+ # resp.scaling_policies[0].auto_scaling_group_name #=> String
1340
+ # resp.scaling_policies[0].policy_name #=> String
1341
+ # resp.scaling_policies[0].policy_arn #=> String
1342
+ # resp.scaling_policies[0].policy_type #=> String
1343
+ # resp.scaling_policies[0].adjustment_type #=> String
1344
+ # resp.scaling_policies[0].min_adjustment_step #=> Integer
1345
+ # resp.scaling_policies[0].min_adjustment_magnitude #=> Integer
1346
+ # resp.scaling_policies[0].scaling_adjustment #=> Integer
1347
+ # resp.scaling_policies[0].cooldown #=> Integer
1348
+ # resp.scaling_policies[0].step_adjustments #=> Array
1349
+ # resp.scaling_policies[0].step_adjustments[0].metric_interval_lower_bound #=> Float
1350
+ # resp.scaling_policies[0].step_adjustments[0].metric_interval_upper_bound #=> Float
1351
+ # resp.scaling_policies[0].step_adjustments[0].scaling_adjustment #=> Integer
1352
+ # resp.scaling_policies[0].metric_aggregation_type #=> String
1353
+ # resp.scaling_policies[0].estimated_instance_warmup #=> Integer
1354
+ # resp.scaling_policies[0].alarms #=> Array
1355
+ # resp.scaling_policies[0].alarms[0].alarm_name #=> String
1356
+ # resp.scaling_policies[0].alarms[0].alarm_arn #=> String
1357
+ # resp.next_token #=> String
1358
+ # @overload describe_policies(params = {})
1359
+ # @param [Hash] params ({})
1360
+ def describe_policies(params = {}, options = {})
1361
+ req = build_request(:describe_policies, params)
1362
+ req.send_request(options)
1363
+ end
1364
+
1365
+ # Describes one or more scaling activities for the specified Auto
1366
+ # Scaling group.
1367
+ # @option params [Array<String>] :activity_ids
1368
+ # The activity IDs of the desired scaling activities. If you omit this
1369
+ # parameter, all activities for the past six weeks are described. If you
1370
+ # specify an Auto Scaling group, the results are limited to that group.
1371
+ # The list of requested activities cannot contain more than 50 items. If
1372
+ # unknown activities are requested, they are ignored with no error.
1373
+ # @option params [String] :auto_scaling_group_name
1374
+ # The name of the group.
1375
+ # @option params [Integer] :max_records
1376
+ # The maximum number of items to return with this call.
1377
+ # @option params [String] :next_token
1378
+ # The token for the next set of items to return. (You received this
1379
+ # token from a previous call.)
1380
+ # @return [Types::ActivitiesType] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1381
+ #
1382
+ # * {Types::ActivitiesType#activities #Activities} => Array&lt;Types::Activity&gt;
1383
+ # * {Types::ActivitiesType#next_token #NextToken} => String
1384
+ #
1385
+ # @example Request syntax with placeholder values
1386
+ # resp = client.describe_scaling_activities({
1387
+ # activity_ids: ["XmlString"],
1388
+ # auto_scaling_group_name: "ResourceName",
1389
+ # max_records: 1,
1390
+ # next_token: "XmlString",
1391
+ # })
1392
+ #
1393
+ # @example Response structure
1394
+ # resp.activities #=> Array
1395
+ # resp.activities[0].activity_id #=> String
1396
+ # resp.activities[0].auto_scaling_group_name #=> String
1397
+ # resp.activities[0].description #=> String
1398
+ # resp.activities[0].cause #=> String
1399
+ # resp.activities[0].start_time #=> Time
1400
+ # resp.activities[0].end_time #=> Time
1401
+ # resp.activities[0].status_code #=> String, one of "PendingSpotBidPlacement", "WaitingForSpotInstanceRequestId", "WaitingForSpotInstanceId", "WaitingForInstanceId", "PreInService", "InProgress", "WaitingForELBConnectionDraining", "MidLifecycleAction", "WaitingForInstanceWarmup", "Successful", "Failed", "Cancelled"
1402
+ # resp.activities[0].status_message #=> String
1403
+ # resp.activities[0].progress #=> Integer
1404
+ # resp.activities[0].details #=> String
1405
+ # resp.next_token #=> String
1406
+ # @overload describe_scaling_activities(params = {})
1407
+ # @param [Hash] params ({})
1408
+ def describe_scaling_activities(params = {}, options = {})
1409
+ req = build_request(:describe_scaling_activities, params)
1410
+ req.send_request(options)
1411
+ end
1412
+
1413
+ # Describes the scaling process types for use with ResumeProcesses and
1414
+ # SuspendProcesses.
1415
+ # @return [Types::ProcessesType] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1416
+ #
1417
+ # * {Types::ProcessesType#processes #Processes} => Array&lt;Types::ProcessType&gt;
1418
+ #
1419
+ # @example Response structure
1420
+ # resp.processes #=> Array
1421
+ # resp.processes[0].process_name #=> String
1422
+ # @overload describe_scaling_process_types(params = {})
1423
+ # @param [Hash] params ({})
1424
+ def describe_scaling_process_types(params = {}, options = {})
1425
+ req = build_request(:describe_scaling_process_types, params)
1426
+ req.send_request(options)
1427
+ end
1428
+
1429
+ # Describes the actions scheduled for your Auto Scaling group that
1430
+ # haven't run. To describe the actions that have already run, use
1431
+ # DescribeScalingActivities.
1432
+ # @option params [String] :auto_scaling_group_name
1433
+ # The name of the group.
1434
+ # @option params [Array<String>] :scheduled_action_names
1435
+ # Describes one or more scheduled actions. If you omit this parameter,
1436
+ # all scheduled actions are described. If you specify an unknown
1437
+ # scheduled action, it is ignored with no error.
1438
+ #
1439
+ # You can describe up to a maximum of 50 instances with a single call.
1440
+ # If there are more items to return, the call returns a token. To get
1441
+ # the next set of items, repeat the call with the returned token.
1442
+ # @option params [Time,DateTime,Date,Integer,String] :start_time
1443
+ # The earliest scheduled start time to return. If scheduled action names
1444
+ # are provided, this parameter is ignored.
1445
+ # @option params [Time,DateTime,Date,Integer,String] :end_time
1446
+ # The latest scheduled start time to return. If scheduled action names
1447
+ # are provided, this parameter is ignored.
1448
+ # @option params [String] :next_token
1449
+ # The token for the next set of items to return. (You received this
1450
+ # token from a previous call.)
1451
+ # @option params [Integer] :max_records
1452
+ # The maximum number of items to return with this call.
1453
+ # @return [Types::ScheduledActionsType] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1454
+ #
1455
+ # * {Types::ScheduledActionsType#scheduled_update_group_actions #ScheduledUpdateGroupActions} => Array&lt;Types::ScheduledUpdateGroupAction&gt;
1456
+ # * {Types::ScheduledActionsType#next_token #NextToken} => String
1457
+ #
1458
+ # @example Request syntax with placeholder values
1459
+ # resp = client.describe_scheduled_actions({
1460
+ # auto_scaling_group_name: "ResourceName",
1461
+ # scheduled_action_names: ["ResourceName"],
1462
+ # start_time: Time.now,
1463
+ # end_time: Time.now,
1464
+ # next_token: "XmlString",
1465
+ # max_records: 1,
1466
+ # })
1467
+ #
1468
+ # @example Response structure
1469
+ # resp.scheduled_update_group_actions #=> Array
1470
+ # resp.scheduled_update_group_actions[0].auto_scaling_group_name #=> String
1471
+ # resp.scheduled_update_group_actions[0].scheduled_action_name #=> String
1472
+ # resp.scheduled_update_group_actions[0].scheduled_action_arn #=> String
1473
+ # resp.scheduled_update_group_actions[0].time #=> Time
1474
+ # resp.scheduled_update_group_actions[0].start_time #=> Time
1475
+ # resp.scheduled_update_group_actions[0].end_time #=> Time
1476
+ # resp.scheduled_update_group_actions[0].recurrence #=> String
1477
+ # resp.scheduled_update_group_actions[0].min_size #=> Integer
1478
+ # resp.scheduled_update_group_actions[0].max_size #=> Integer
1479
+ # resp.scheduled_update_group_actions[0].desired_capacity #=> Integer
1480
+ # resp.next_token #=> String
1481
+ # @overload describe_scheduled_actions(params = {})
1482
+ # @param [Hash] params ({})
1483
+ def describe_scheduled_actions(params = {}, options = {})
1484
+ req = build_request(:describe_scheduled_actions, params)
1485
+ req.send_request(options)
1486
+ end
1487
+
1488
+ # Describes the specified tags.
1489
+ #
1490
+ # You can use filters to limit the results. For example, you can query
1491
+ # for the tags for a specific Auto Scaling group. You can specify
1492
+ # multiple values for a filter. A tag must match at least one of the
1493
+ # specified values for it to be included in the results.
1494
+ #
1495
+ # You can also specify multiple filters. The result includes information
1496
+ # for a particular tag only if it matches all the filters. If there's
1497
+ # no match, no special message is returned.
1498
+ # @option params [Array<Types::Filter>] :filters
1499
+ # A filter used to scope the tags to return.
1500
+ # @option params [String] :next_token
1501
+ # The token for the next set of items to return. (You received this
1502
+ # token from a previous call.)
1503
+ # @option params [Integer] :max_records
1504
+ # The maximum number of items to return with this call.
1505
+ # @return [Types::TagsType] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1506
+ #
1507
+ # * {Types::TagsType#tags #Tags} => Array&lt;Types::TagDescription&gt;
1508
+ # * {Types::TagsType#next_token #NextToken} => String
1509
+ #
1510
+ # @example Request syntax with placeholder values
1511
+ # resp = client.describe_tags({
1512
+ # filters: [
1513
+ # {
1514
+ # name: "XmlString",
1515
+ # values: ["XmlString"],
1516
+ # },
1517
+ # ],
1518
+ # next_token: "XmlString",
1519
+ # max_records: 1,
1520
+ # })
1521
+ #
1522
+ # @example Response structure
1523
+ # resp.tags #=> Array
1524
+ # resp.tags[0].resource_id #=> String
1525
+ # resp.tags[0].resource_type #=> String
1526
+ # resp.tags[0].key #=> String
1527
+ # resp.tags[0].value #=> String
1528
+ # resp.tags[0].propagate_at_launch #=> Boolean
1529
+ # resp.next_token #=> String
1530
+ # @overload describe_tags(params = {})
1531
+ # @param [Hash] params ({})
1532
+ def describe_tags(params = {}, options = {})
1533
+ req = build_request(:describe_tags, params)
1534
+ req.send_request(options)
1535
+ end
1536
+
1537
+ # Describes the termination policies supported by Auto Scaling.
1538
+ # @return [Types::DescribeTerminationPolicyTypesAnswer] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1539
+ #
1540
+ # * {Types::DescribeTerminationPolicyTypesAnswer#termination_policy_types #TerminationPolicyTypes} => Array&lt;String&gt;
1541
+ #
1542
+ # @example Response structure
1543
+ # resp.termination_policy_types #=> Array
1544
+ # resp.termination_policy_types[0] #=> String
1545
+ # @overload describe_termination_policy_types(params = {})
1546
+ # @param [Hash] params ({})
1547
+ def describe_termination_policy_types(params = {}, options = {})
1548
+ req = build_request(:describe_termination_policy_types, params)
1549
+ req.send_request(options)
1550
+ end
1551
+
1552
+ # Removes one or more instances from the specified Auto Scaling group.
1553
+ #
1554
+ # After the instances are detached, you can manage them independently
1555
+ # from the rest of the Auto Scaling group.
1556
+ #
1557
+ # If you do not specify the option to decrement the desired capacity,
1558
+ # Auto Scaling launches instances to replace the ones that are detached.
1559
+ #
1560
+ # If there is a Classic load balancer attached to the Auto Scaling
1561
+ # group, the instances are deregistered from the load balancer. If there
1562
+ # are target groups attached to the Auto Scaling group, the instances
1563
+ # are deregistered from the target groups.
1564
+ #
1565
+ # For more information, see [Detach EC2 Instances from Your Auto Scaling
1566
+ # Group][1] in the *Auto Scaling User Guide*.
1567
+ #
1568
+ #
1569
+ #
1570
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/detach-instance-asg.html
1571
+ # @option params [Array<String>] :instance_ids
1572
+ # One or more instance IDs.
1573
+ # @option params [required, String] :auto_scaling_group_name
1574
+ # The name of the group.
1575
+ # @option params [required, Boolean] :should_decrement_desired_capacity
1576
+ # If `True`, the Auto Scaling group decrements the desired capacity
1577
+ # value by the number of instances detached.
1578
+ # @return [Types::DetachInstancesAnswer] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1579
+ #
1580
+ # * {Types::DetachInstancesAnswer#activities #Activities} => Array&lt;Types::Activity&gt;
1581
+ #
1582
+ # @example Request syntax with placeholder values
1583
+ # resp = client.detach_instances({
1584
+ # instance_ids: ["XmlStringMaxLen19"],
1585
+ # auto_scaling_group_name: "ResourceName", # required
1586
+ # should_decrement_desired_capacity: false, # required
1587
+ # })
1588
+ #
1589
+ # @example Response structure
1590
+ # resp.activities #=> Array
1591
+ # resp.activities[0].activity_id #=> String
1592
+ # resp.activities[0].auto_scaling_group_name #=> String
1593
+ # resp.activities[0].description #=> String
1594
+ # resp.activities[0].cause #=> String
1595
+ # resp.activities[0].start_time #=> Time
1596
+ # resp.activities[0].end_time #=> Time
1597
+ # resp.activities[0].status_code #=> String, one of "PendingSpotBidPlacement", "WaitingForSpotInstanceRequestId", "WaitingForSpotInstanceId", "WaitingForInstanceId", "PreInService", "InProgress", "WaitingForELBConnectionDraining", "MidLifecycleAction", "WaitingForInstanceWarmup", "Successful", "Failed", "Cancelled"
1598
+ # resp.activities[0].status_message #=> String
1599
+ # resp.activities[0].progress #=> Integer
1600
+ # resp.activities[0].details #=> String
1601
+ # @overload detach_instances(params = {})
1602
+ # @param [Hash] params ({})
1603
+ def detach_instances(params = {}, options = {})
1604
+ req = build_request(:detach_instances, params)
1605
+ req.send_request(options)
1606
+ end
1607
+
1608
+ # Detaches one or more target groups from the specified Auto Scaling
1609
+ # group.
1610
+ # @option params [required, String] :auto_scaling_group_name
1611
+ # The name of the Auto Scaling group.
1612
+ # @option params [required, Array<String>] :target_group_arns
1613
+ # The Amazon Resource Names (ARN) of the target groups.
1614
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1615
+ #
1616
+ # @example Request syntax with placeholder values
1617
+ # resp = client.detach_load_balancer_target_groups({
1618
+ # auto_scaling_group_name: "ResourceName", # required
1619
+ # target_group_arns: ["XmlStringMaxLen511"], # required
1620
+ # })
1621
+ # @overload detach_load_balancer_target_groups(params = {})
1622
+ # @param [Hash] params ({})
1623
+ def detach_load_balancer_target_groups(params = {}, options = {})
1624
+ req = build_request(:detach_load_balancer_target_groups, params)
1625
+ req.send_request(options)
1626
+ end
1627
+
1628
+ # Detaches one or more Classic load balancers from the specified Auto
1629
+ # Scaling group.
1630
+ #
1631
+ # Note that this operation detaches only Classic load balancers. If you
1632
+ # have Application load balancers, use DetachLoadBalancerTargetGroups
1633
+ # instead.
1634
+ #
1635
+ # When you detach a load balancer, it enters the `Removing` state while
1636
+ # deregistering the instances in the group. When all instances are
1637
+ # deregistered, then you can no longer describe the load balancer using
1638
+ # DescribeLoadBalancers. Note that the instances remain running.
1639
+ # @option params [required, String] :auto_scaling_group_name
1640
+ # The name of the Auto Scaling group.
1641
+ # @option params [required, Array<String>] :load_balancer_names
1642
+ # One or more load balancer names.
1643
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1644
+ #
1645
+ # @example Request syntax with placeholder values
1646
+ # resp = client.detach_load_balancers({
1647
+ # auto_scaling_group_name: "ResourceName", # required
1648
+ # load_balancer_names: ["XmlStringMaxLen255"], # required
1649
+ # })
1650
+ # @overload detach_load_balancers(params = {})
1651
+ # @param [Hash] params ({})
1652
+ def detach_load_balancers(params = {}, options = {})
1653
+ req = build_request(:detach_load_balancers, params)
1654
+ req.send_request(options)
1655
+ end
1656
+
1657
+ # Disables group metrics for the specified Auto Scaling group.
1658
+ # @option params [required, String] :auto_scaling_group_name
1659
+ # The name or Amazon Resource Name (ARN) of the group.
1660
+ # @option params [Array<String>] :metrics
1661
+ # One or more of the following metrics. If you omit this parameter, all
1662
+ # metrics are disabled.
1663
+ #
1664
+ # * `GroupMinSize`
1665
+ #
1666
+ # * `GroupMaxSize`
1667
+ #
1668
+ # * `GroupDesiredCapacity`
1669
+ #
1670
+ # * `GroupInServiceInstances`
1671
+ #
1672
+ # * `GroupPendingInstances`
1673
+ #
1674
+ # * `GroupStandbyInstances`
1675
+ #
1676
+ # * `GroupTerminatingInstances`
1677
+ #
1678
+ # * `GroupTotalInstances`
1679
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1680
+ #
1681
+ # @example Request syntax with placeholder values
1682
+ # resp = client.disable_metrics_collection({
1683
+ # auto_scaling_group_name: "ResourceName", # required
1684
+ # metrics: ["XmlStringMaxLen255"],
1685
+ # })
1686
+ # @overload disable_metrics_collection(params = {})
1687
+ # @param [Hash] params ({})
1688
+ def disable_metrics_collection(params = {}, options = {})
1689
+ req = build_request(:disable_metrics_collection, params)
1690
+ req.send_request(options)
1691
+ end
1692
+
1693
+ # Enables group metrics for the specified Auto Scaling group. For more
1694
+ # information, see [Monitoring Your Auto Scaling Groups and
1695
+ # Instances][1] in the *Auto Scaling User Guide*.
1696
+ #
1697
+ #
1698
+ #
1699
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/as-instance-monitoring.html
1700
+ # @option params [required, String] :auto_scaling_group_name
1701
+ # The name or ARN of the Auto Scaling group.
1702
+ # @option params [Array<String>] :metrics
1703
+ # One or more of the following metrics. If you omit this parameter, all
1704
+ # metrics are enabled.
1705
+ #
1706
+ # * `GroupMinSize`
1707
+ #
1708
+ # * `GroupMaxSize`
1709
+ #
1710
+ # * `GroupDesiredCapacity`
1711
+ #
1712
+ # * `GroupInServiceInstances`
1713
+ #
1714
+ # * `GroupPendingInstances`
1715
+ #
1716
+ # * `GroupStandbyInstances`
1717
+ #
1718
+ # * `GroupTerminatingInstances`
1719
+ #
1720
+ # * `GroupTotalInstances`
1721
+ # @option params [required, String] :granularity
1722
+ # The granularity to associate with the metrics to collect. The only
1723
+ # valid value is `1Minute`.
1724
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1725
+ #
1726
+ # @example Request syntax with placeholder values
1727
+ # resp = client.enable_metrics_collection({
1728
+ # auto_scaling_group_name: "ResourceName", # required
1729
+ # metrics: ["XmlStringMaxLen255"],
1730
+ # granularity: "XmlStringMaxLen255", # required
1731
+ # })
1732
+ # @overload enable_metrics_collection(params = {})
1733
+ # @param [Hash] params ({})
1734
+ def enable_metrics_collection(params = {}, options = {})
1735
+ req = build_request(:enable_metrics_collection, params)
1736
+ req.send_request(options)
1737
+ end
1738
+
1739
+ # Moves the specified instances into `Standby` mode.
1740
+ #
1741
+ # For more information, see [Auto Scaling Lifecycle][1] in the *Auto
1742
+ # Scaling User Guide*.
1743
+ #
1744
+ #
1745
+ #
1746
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/AutoScalingGroupLifecycle.html
1747
+ # @option params [Array<String>] :instance_ids
1748
+ # One or more instances to move into `Standby` mode. You must specify at
1749
+ # least one instance ID.
1750
+ # @option params [required, String] :auto_scaling_group_name
1751
+ # The name of the Auto Scaling group.
1752
+ # @option params [required, Boolean] :should_decrement_desired_capacity
1753
+ # Specifies whether the instances moved to `Standby` mode count as part
1754
+ # of the Auto Scaling group's desired capacity. If set, the desired
1755
+ # capacity for the Auto Scaling group decrements by the number of
1756
+ # instances moved to `Standby` mode.
1757
+ # @return [Types::EnterStandbyAnswer] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1758
+ #
1759
+ # * {Types::EnterStandbyAnswer#activities #Activities} => Array&lt;Types::Activity&gt;
1760
+ #
1761
+ # @example Request syntax with placeholder values
1762
+ # resp = client.enter_standby({
1763
+ # instance_ids: ["XmlStringMaxLen19"],
1764
+ # auto_scaling_group_name: "ResourceName", # required
1765
+ # should_decrement_desired_capacity: false, # required
1766
+ # })
1767
+ #
1768
+ # @example Response structure
1769
+ # resp.activities #=> Array
1770
+ # resp.activities[0].activity_id #=> String
1771
+ # resp.activities[0].auto_scaling_group_name #=> String
1772
+ # resp.activities[0].description #=> String
1773
+ # resp.activities[0].cause #=> String
1774
+ # resp.activities[0].start_time #=> Time
1775
+ # resp.activities[0].end_time #=> Time
1776
+ # resp.activities[0].status_code #=> String, one of "PendingSpotBidPlacement", "WaitingForSpotInstanceRequestId", "WaitingForSpotInstanceId", "WaitingForInstanceId", "PreInService", "InProgress", "WaitingForELBConnectionDraining", "MidLifecycleAction", "WaitingForInstanceWarmup", "Successful", "Failed", "Cancelled"
1777
+ # resp.activities[0].status_message #=> String
1778
+ # resp.activities[0].progress #=> Integer
1779
+ # resp.activities[0].details #=> String
1780
+ # @overload enter_standby(params = {})
1781
+ # @param [Hash] params ({})
1782
+ def enter_standby(params = {}, options = {})
1783
+ req = build_request(:enter_standby, params)
1784
+ req.send_request(options)
1785
+ end
1786
+
1787
+ # Executes the specified policy.
1788
+ # @option params [String] :auto_scaling_group_name
1789
+ # The name or Amazon Resource Name (ARN) of the Auto Scaling group.
1790
+ # @option params [required, String] :policy_name
1791
+ # The name or ARN of the policy.
1792
+ # @option params [Boolean] :honor_cooldown
1793
+ # If this parameter is true, Auto Scaling waits for the cooldown period
1794
+ # to complete before executing the policy. Otherwise, Auto Scaling
1795
+ # executes the policy without waiting for the cooldown period to
1796
+ # complete.
1797
+ #
1798
+ # This parameter is not supported if the policy type is `StepScaling`.
1799
+ #
1800
+ # For more information, see [Auto Scaling Cooldowns][1] in the *Auto
1801
+ # Scaling User Guide*.
1802
+ #
1803
+ #
1804
+ #
1805
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/Cooldown.html
1806
+ # @option params [Float] :metric_value
1807
+ # The metric value to compare to `BreachThreshold`. This enables you to
1808
+ # execute a policy of type `StepScaling` and determine which step
1809
+ # adjustment to use. For example, if the breach threshold is 50 and you
1810
+ # want to use a step adjustment with a lower bound of 0 and an upper
1811
+ # bound of 10, you can set the metric value to 59.
1812
+ #
1813
+ # If you specify a metric value that doesn't correspond to a step
1814
+ # adjustment for the policy, the call returns an error.
1815
+ #
1816
+ # This parameter is required if the policy type is `StepScaling` and not
1817
+ # supported otherwise.
1818
+ # @option params [Float] :breach_threshold
1819
+ # The breach threshold for the alarm.
1820
+ #
1821
+ # This parameter is required if the policy type is `StepScaling` and not
1822
+ # supported otherwise.
1823
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1824
+ #
1825
+ # @example Request syntax with placeholder values
1826
+ # resp = client.execute_policy({
1827
+ # auto_scaling_group_name: "ResourceName",
1828
+ # policy_name: "ResourceName", # required
1829
+ # honor_cooldown: false,
1830
+ # metric_value: 1.0,
1831
+ # breach_threshold: 1.0,
1832
+ # })
1833
+ # @overload execute_policy(params = {})
1834
+ # @param [Hash] params ({})
1835
+ def execute_policy(params = {}, options = {})
1836
+ req = build_request(:execute_policy, params)
1837
+ req.send_request(options)
1838
+ end
1839
+
1840
+ # Moves the specified instances out of `Standby` mode.
1841
+ #
1842
+ # For more information, see [Auto Scaling Lifecycle][1] in the *Auto
1843
+ # Scaling User Guide*.
1844
+ #
1845
+ #
1846
+ #
1847
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/AutoScalingGroupLifecycle.html
1848
+ # @option params [Array<String>] :instance_ids
1849
+ # One or more instance IDs. You must specify at least one instance ID.
1850
+ # @option params [required, String] :auto_scaling_group_name
1851
+ # The name of the Auto Scaling group.
1852
+ # @return [Types::ExitStandbyAnswer] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1853
+ #
1854
+ # * {Types::ExitStandbyAnswer#activities #Activities} => Array&lt;Types::Activity&gt;
1855
+ #
1856
+ # @example Request syntax with placeholder values
1857
+ # resp = client.exit_standby({
1858
+ # instance_ids: ["XmlStringMaxLen19"],
1859
+ # auto_scaling_group_name: "ResourceName", # required
1860
+ # })
1861
+ #
1862
+ # @example Response structure
1863
+ # resp.activities #=> Array
1864
+ # resp.activities[0].activity_id #=> String
1865
+ # resp.activities[0].auto_scaling_group_name #=> String
1866
+ # resp.activities[0].description #=> String
1867
+ # resp.activities[0].cause #=> String
1868
+ # resp.activities[0].start_time #=> Time
1869
+ # resp.activities[0].end_time #=> Time
1870
+ # resp.activities[0].status_code #=> String, one of "PendingSpotBidPlacement", "WaitingForSpotInstanceRequestId", "WaitingForSpotInstanceId", "WaitingForInstanceId", "PreInService", "InProgress", "WaitingForELBConnectionDraining", "MidLifecycleAction", "WaitingForInstanceWarmup", "Successful", "Failed", "Cancelled"
1871
+ # resp.activities[0].status_message #=> String
1872
+ # resp.activities[0].progress #=> Integer
1873
+ # resp.activities[0].details #=> String
1874
+ # @overload exit_standby(params = {})
1875
+ # @param [Hash] params ({})
1876
+ def exit_standby(params = {}, options = {})
1877
+ req = build_request(:exit_standby, params)
1878
+ req.send_request(options)
1879
+ end
1880
+
1881
+ # Creates or updates a lifecycle hook for the specified Auto Scaling
1882
+ # Group.
1883
+ #
1884
+ # A lifecycle hook tells Auto Scaling that you want to perform an action
1885
+ # on an instance that is not actively in service; for example, either
1886
+ # when the instance launches or before the instance terminates.
1887
+ #
1888
+ # This step is a part of the procedure for adding a lifecycle hook to an
1889
+ # Auto Scaling group:
1890
+ #
1891
+ # 1. (Optional) Create a Lambda function and a rule that allows
1892
+ # CloudWatch Events to invoke your Lambda function when Auto Scaling
1893
+ # launches or terminates instances.
1894
+ #
1895
+ # 2. (Optional) Create a notification target and an IAM role. The
1896
+ # target can be either an Amazon SQS queue or an Amazon SNS topic.
1897
+ # The role allows Auto Scaling to publish lifecycle notifications to
1898
+ # the target.
1899
+ #
1900
+ # 3. **Create the lifecycle hook. Specify whether the hook is used when
1901
+ # the instances launch or terminate.**
1902
+ #
1903
+ # 4. If you need more time, record the lifecycle action heartbeat to
1904
+ # keep the instance in a pending state.
1905
+ #
1906
+ # 5. If you finish before the timeout period ends, complete the
1907
+ # lifecycle action.
1908
+ #
1909
+ # For more information, see [Auto Scaling Lifecycle Hooks][1] in the
1910
+ # *Auto Scaling User Guide*.
1911
+ #
1912
+ # If you exceed your maximum limit of lifecycle hooks, which by default
1913
+ # is 50 per Auto Scaling group, the call fails. For information about
1914
+ # updating this limit, see [AWS Service Limits][2] in the *Amazon Web
1915
+ # Services General Reference*.
1916
+ #
1917
+ #
1918
+ #
1919
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/lifecycle-hooks.html
1920
+ # [2]: http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html
1921
+ # @option params [required, String] :lifecycle_hook_name
1922
+ # The name of the lifecycle hook.
1923
+ # @option params [required, String] :auto_scaling_group_name
1924
+ # The name of the Auto Scaling group to which you want to assign the
1925
+ # lifecycle hook.
1926
+ # @option params [String] :lifecycle_transition
1927
+ # The instance state to which you want to attach the lifecycle hook. For
1928
+ # a list of lifecycle hook types, see DescribeLifecycleHookTypes.
1929
+ #
1930
+ # This parameter is required for new lifecycle hooks, but optional when
1931
+ # updating existing hooks.
1932
+ # @option params [String] :role_arn
1933
+ # The ARN of the IAM role that allows the Auto Scaling group to publish
1934
+ # to the specified notification target.
1935
+ #
1936
+ # This parameter is required for new lifecycle hooks, but optional when
1937
+ # updating existing hooks.
1938
+ # @option params [String] :notification_target_arn
1939
+ # The ARN of the notification target that Auto Scaling will use to
1940
+ # notify you when an instance is in the transition state for the
1941
+ # lifecycle hook. This target can be either an SQS queue or an SNS
1942
+ # topic. If you specify an empty string, this overrides the current ARN.
1943
+ #
1944
+ # This operation uses the JSON format when sending notifications to an
1945
+ # Amazon SQS queue, and an email key/value pair format when sending
1946
+ # notifications to an Amazon SNS topic.
1947
+ #
1948
+ # When you specify a notification target, Auto Scaling sends it a test
1949
+ # message. Test messages contains the following additional key/value
1950
+ # pair: `"Event": "autoscaling:TEST_NOTIFICATION"`.
1951
+ # @option params [String] :notification_metadata
1952
+ # Contains additional information that you want to include any time Auto
1953
+ # Scaling sends a message to the notification target.
1954
+ # @option params [Integer] :heartbeat_timeout
1955
+ # The amount of time, in seconds, that can elapse before the lifecycle
1956
+ # hook times out. When the lifecycle hook times out, Auto Scaling
1957
+ # performs the default action. You can prevent the lifecycle hook from
1958
+ # timing out by calling RecordLifecycleActionHeartbeat. The default is
1959
+ # 3600 seconds (1 hour).
1960
+ # @option params [String] :default_result
1961
+ # Defines the action the Auto Scaling group should take when the
1962
+ # lifecycle hook timeout elapses or if an unexpected failure occurs.
1963
+ # This parameter can be either `CONTINUE` or `ABANDON`. The default
1964
+ # value is `ABANDON`.
1965
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1966
+ #
1967
+ # @example Request syntax with placeholder values
1968
+ # resp = client.put_lifecycle_hook({
1969
+ # lifecycle_hook_name: "AsciiStringMaxLen255", # required
1970
+ # auto_scaling_group_name: "ResourceName", # required
1971
+ # lifecycle_transition: "LifecycleTransition",
1972
+ # role_arn: "ResourceName",
1973
+ # notification_target_arn: "NotificationTargetResourceName",
1974
+ # notification_metadata: "XmlStringMaxLen1023",
1975
+ # heartbeat_timeout: 1,
1976
+ # default_result: "LifecycleActionResult",
1977
+ # })
1978
+ # @overload put_lifecycle_hook(params = {})
1979
+ # @param [Hash] params ({})
1980
+ def put_lifecycle_hook(params = {}, options = {})
1981
+ req = build_request(:put_lifecycle_hook, params)
1982
+ req.send_request(options)
1983
+ end
1984
+
1985
+ # Configures an Auto Scaling group to send notifications when specified
1986
+ # events take place. Subscribers to the specified topic can have
1987
+ # messages delivered to an endpoint such as a web server or an email
1988
+ # address.
1989
+ #
1990
+ # This configuration overwrites any existing configuration.
1991
+ #
1992
+ # For more information see [Getting SNS Notifications When Your Auto
1993
+ # Scaling Group Scales][1] in the *Auto Scaling User Guide*.
1994
+ #
1995
+ #
1996
+ #
1997
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/ASGettingNotifications.html
1998
+ # @option params [required, String] :auto_scaling_group_name
1999
+ # The name of the Auto Scaling group.
2000
+ # @option params [required, String] :topic_arn
2001
+ # The Amazon Resource Name (ARN) of the Amazon Simple Notification
2002
+ # Service (SNS) topic.
2003
+ # @option params [required, Array<String>] :notification_types
2004
+ # The type of event that will cause the notification to be sent. For
2005
+ # details about notification types supported by Auto Scaling, see
2006
+ # DescribeAutoScalingNotificationTypes.
2007
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2008
+ #
2009
+ # @example Request syntax with placeholder values
2010
+ # resp = client.put_notification_configuration({
2011
+ # auto_scaling_group_name: "ResourceName", # required
2012
+ # topic_arn: "ResourceName", # required
2013
+ # notification_types: ["XmlStringMaxLen255"], # required
2014
+ # })
2015
+ # @overload put_notification_configuration(params = {})
2016
+ # @param [Hash] params ({})
2017
+ def put_notification_configuration(params = {}, options = {})
2018
+ req = build_request(:put_notification_configuration, params)
2019
+ req.send_request(options)
2020
+ end
2021
+
2022
+ # Creates or updates a policy for an Auto Scaling group. To update an
2023
+ # existing policy, use the existing policy name and set the parameters
2024
+ # you want to change. Any existing parameter not changed in an update to
2025
+ # an existing policy is not changed in this update request.
2026
+ #
2027
+ # If you exceed your maximum limit of step adjustments, which by default
2028
+ # is 20 per region, the call fails. For information about updating this
2029
+ # limit, see [AWS Service Limits][1] in the *Amazon Web Services General
2030
+ # Reference*.
2031
+ #
2032
+ #
2033
+ #
2034
+ # [1]: http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html
2035
+ # @option params [required, String] :auto_scaling_group_name
2036
+ # The name or ARN of the group.
2037
+ # @option params [required, String] :policy_name
2038
+ # The name of the policy.
2039
+ # @option params [String] :policy_type
2040
+ # The policy type. Valid values are `SimpleScaling` and `StepScaling`.
2041
+ # If the policy type is null, the value is treated as `SimpleScaling`.
2042
+ # @option params [required, String] :adjustment_type
2043
+ # The adjustment type. Valid values are `ChangeInCapacity`,
2044
+ # `ExactCapacity`, and `PercentChangeInCapacity`.
2045
+ #
2046
+ # For more information, see [Dynamic Scaling][1] in the *Auto Scaling
2047
+ # User Guide*.
2048
+ #
2049
+ #
2050
+ #
2051
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/as-scale-based-on-demand.html
2052
+ # @option params [Integer] :min_adjustment_step
2053
+ # Available for backward compatibility. Use `MinAdjustmentMagnitude`
2054
+ # instead.
2055
+ # @option params [Integer] :min_adjustment_magnitude
2056
+ # The minimum number of instances to scale. If the value of
2057
+ # `AdjustmentType` is `PercentChangeInCapacity`, the scaling policy
2058
+ # changes the `DesiredCapacity` of the Auto Scaling group by at least
2059
+ # this many instances. Otherwise, the error is `ValidationError`.
2060
+ # @option params [Integer] :scaling_adjustment
2061
+ # The amount by which to scale, based on the specified adjustment type.
2062
+ # A positive value adds to the current capacity while a negative number
2063
+ # removes from the current capacity.
2064
+ #
2065
+ # This parameter is required if the policy type is `SimpleScaling` and
2066
+ # not supported otherwise.
2067
+ # @option params [Integer] :cooldown
2068
+ # The amount of time, in seconds, after a scaling activity completes and
2069
+ # before the next scaling activity can start. If this parameter is not
2070
+ # specified, the default cooldown period for the group applies.
2071
+ #
2072
+ # This parameter is not supported unless the policy type is
2073
+ # `SimpleScaling`.
2074
+ #
2075
+ # For more information, see [Auto Scaling Cooldowns][1] in the *Auto
2076
+ # Scaling User Guide*.
2077
+ #
2078
+ #
2079
+ #
2080
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/Cooldown.html
2081
+ # @option params [String] :metric_aggregation_type
2082
+ # The aggregation type for the CloudWatch metrics. Valid values are
2083
+ # `Minimum`, `Maximum`, and `Average`. If the aggregation type is null,
2084
+ # the value is treated as `Average`.
2085
+ #
2086
+ # This parameter is not supported if the policy type is `SimpleScaling`.
2087
+ # @option params [Array<Types::StepAdjustment>] :step_adjustments
2088
+ # A set of adjustments that enable you to scale based on the size of the
2089
+ # alarm breach.
2090
+ #
2091
+ # This parameter is required if the policy type is `StepScaling` and not
2092
+ # supported otherwise.
2093
+ # @option params [Integer] :estimated_instance_warmup
2094
+ # The estimated time, in seconds, until a newly launched instance can
2095
+ # contribute to the CloudWatch metrics. The default is to use the value
2096
+ # specified for the default cooldown period for the group.
2097
+ #
2098
+ # This parameter is not supported if the policy type is `SimpleScaling`.
2099
+ # @return [Types::PolicyARNType] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2100
+ #
2101
+ # * {Types::PolicyARNType#policy_arn #PolicyARN} => String
2102
+ #
2103
+ # @example Request syntax with placeholder values
2104
+ # resp = client.put_scaling_policy({
2105
+ # auto_scaling_group_name: "ResourceName", # required
2106
+ # policy_name: "XmlStringMaxLen255", # required
2107
+ # policy_type: "XmlStringMaxLen64",
2108
+ # adjustment_type: "XmlStringMaxLen255", # required
2109
+ # min_adjustment_step: 1,
2110
+ # min_adjustment_magnitude: 1,
2111
+ # scaling_adjustment: 1,
2112
+ # cooldown: 1,
2113
+ # metric_aggregation_type: "XmlStringMaxLen32",
2114
+ # step_adjustments: [
2115
+ # {
2116
+ # metric_interval_lower_bound: 1.0,
2117
+ # metric_interval_upper_bound: 1.0,
2118
+ # scaling_adjustment: 1, # required
2119
+ # },
2120
+ # ],
2121
+ # estimated_instance_warmup: 1,
2122
+ # })
2123
+ #
2124
+ # @example Response structure
2125
+ # resp.policy_arn #=> String
2126
+ # @overload put_scaling_policy(params = {})
2127
+ # @param [Hash] params ({})
2128
+ def put_scaling_policy(params = {}, options = {})
2129
+ req = build_request(:put_scaling_policy, params)
2130
+ req.send_request(options)
2131
+ end
2132
+
2133
+ # Creates or updates a scheduled scaling action for an Auto Scaling
2134
+ # group. When updating a scheduled scaling action, if you leave a
2135
+ # parameter unspecified, the corresponding value remains unchanged.
2136
+ #
2137
+ # For more information, see [Scheduled Scaling][1] in the *Auto Scaling
2138
+ # User Guide*.
2139
+ #
2140
+ #
2141
+ #
2142
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/schedule_time.html
2143
+ # @option params [required, String] :auto_scaling_group_name
2144
+ # The name or Amazon Resource Name (ARN) of the Auto Scaling group.
2145
+ # @option params [required, String] :scheduled_action_name
2146
+ # The name of this scaling action.
2147
+ # @option params [Time,DateTime,Date,Integer,String] :time
2148
+ # This parameter is deprecated.
2149
+ # @option params [Time,DateTime,Date,Integer,String] :start_time
2150
+ # The time for this action to start, in "YYYY-MM-DDThh:mm:ssZ" format
2151
+ # in UTC/GMT only (for example, `2014-06-01T00:00:00Z`).
2152
+ #
2153
+ # If you specify `Recurrence` and `StartTime`, Auto Scaling performs the
2154
+ # action at this time, and then performs the action based on the
2155
+ # specified recurrence.
2156
+ #
2157
+ # If you try to schedule your action in the past, Auto Scaling returns
2158
+ # an error message.
2159
+ # @option params [Time,DateTime,Date,Integer,String] :end_time
2160
+ # The time for the recurring schedule to end. Auto Scaling does not
2161
+ # perform the action after this time.
2162
+ # @option params [String] :recurrence
2163
+ # The recurring schedule for this action, in Unix cron syntax format.
2164
+ # For more information, see [Cron][1] in Wikipedia.
2165
+ #
2166
+ #
2167
+ #
2168
+ # [1]: http://en.wikipedia.org/wiki/Cron
2169
+ # @option params [Integer] :min_size
2170
+ # The minimum size for the Auto Scaling group.
2171
+ # @option params [Integer] :max_size
2172
+ # The maximum size for the Auto Scaling group.
2173
+ # @option params [Integer] :desired_capacity
2174
+ # The number of EC2 instances that should be running in the group.
2175
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2176
+ #
2177
+ # @example Request syntax with placeholder values
2178
+ # resp = client.put_scheduled_update_group_action({
2179
+ # auto_scaling_group_name: "ResourceName", # required
2180
+ # scheduled_action_name: "XmlStringMaxLen255", # required
2181
+ # time: Time.now,
2182
+ # start_time: Time.now,
2183
+ # end_time: Time.now,
2184
+ # recurrence: "XmlStringMaxLen255",
2185
+ # min_size: 1,
2186
+ # max_size: 1,
2187
+ # desired_capacity: 1,
2188
+ # })
2189
+ # @overload put_scheduled_update_group_action(params = {})
2190
+ # @param [Hash] params ({})
2191
+ def put_scheduled_update_group_action(params = {}, options = {})
2192
+ req = build_request(:put_scheduled_update_group_action, params)
2193
+ req.send_request(options)
2194
+ end
2195
+
2196
+ # Records a heartbeat for the lifecycle action associated with the
2197
+ # specified token or instance. This extends the timeout by the length of
2198
+ # time defined using PutLifecycleHook.
2199
+ #
2200
+ # This step is a part of the procedure for adding a lifecycle hook to an
2201
+ # Auto Scaling group:
2202
+ #
2203
+ # 1. (Optional) Create a Lambda function and a rule that allows
2204
+ # CloudWatch Events to invoke your Lambda function when Auto Scaling
2205
+ # launches or terminates instances.
2206
+ #
2207
+ # 2. (Optional) Create a notification target and an IAM role. The
2208
+ # target can be either an Amazon SQS queue or an Amazon SNS topic.
2209
+ # The role allows Auto Scaling to publish lifecycle notifications to
2210
+ # the target.
2211
+ #
2212
+ # 3. Create the lifecycle hook. Specify whether the hook is used when
2213
+ # the instances launch or terminate.
2214
+ #
2215
+ # 4. **If you need more time, record the lifecycle action heartbeat to
2216
+ # keep the instance in a pending state.**
2217
+ #
2218
+ # 5. If you finish before the timeout period ends, complete the
2219
+ # lifecycle action.
2220
+ #
2221
+ # For more information, see [Auto Scaling Lifecycle][1] in the *Auto
2222
+ # Scaling User Guide*.
2223
+ #
2224
+ #
2225
+ #
2226
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/AutoScalingGroupLifecycle.html
2227
+ # @option params [required, String] :lifecycle_hook_name
2228
+ # The name of the lifecycle hook.
2229
+ # @option params [required, String] :auto_scaling_group_name
2230
+ # The name of the Auto Scaling group for the hook.
2231
+ # @option params [String] :lifecycle_action_token
2232
+ # A token that uniquely identifies a specific lifecycle action
2233
+ # associated with an instance. Auto Scaling sends this token to the
2234
+ # notification target you specified when you created the lifecycle hook.
2235
+ # @option params [String] :instance_id
2236
+ # The ID of the instance.
2237
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2238
+ #
2239
+ # @example Request syntax with placeholder values
2240
+ # resp = client.record_lifecycle_action_heartbeat({
2241
+ # lifecycle_hook_name: "AsciiStringMaxLen255", # required
2242
+ # auto_scaling_group_name: "ResourceName", # required
2243
+ # lifecycle_action_token: "LifecycleActionToken",
2244
+ # instance_id: "XmlStringMaxLen19",
2245
+ # })
2246
+ # @overload record_lifecycle_action_heartbeat(params = {})
2247
+ # @param [Hash] params ({})
2248
+ def record_lifecycle_action_heartbeat(params = {}, options = {})
2249
+ req = build_request(:record_lifecycle_action_heartbeat, params)
2250
+ req.send_request(options)
2251
+ end
2252
+
2253
+ # Resumes the specified suspended Auto Scaling processes, or all
2254
+ # suspended process, for the specified Auto Scaling group.
2255
+ #
2256
+ # For more information, see [Suspending and Resuming Auto Scaling
2257
+ # Processes][1] in the *Auto Scaling User Guide*.
2258
+ #
2259
+ #
2260
+ #
2261
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/as-suspend-resume-processes.html
2262
+ # @option params [required, String] :auto_scaling_group_name
2263
+ # The name or Amazon Resource Name (ARN) of the Auto Scaling group.
2264
+ # @option params [Array<String>] :scaling_processes
2265
+ # One or more of the following processes. If you omit this parameter,
2266
+ # all processes are specified.
2267
+ #
2268
+ # * `Launch`
2269
+ #
2270
+ # * `Terminate`
2271
+ #
2272
+ # * `HealthCheck`
2273
+ #
2274
+ # * `ReplaceUnhealthy`
2275
+ #
2276
+ # * `AZRebalance`
2277
+ #
2278
+ # * `AlarmNotification`
2279
+ #
2280
+ # * `ScheduledActions`
2281
+ #
2282
+ # * `AddToLoadBalancer`
2283
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2284
+ #
2285
+ # @example Request syntax with placeholder values
2286
+ # resp = client.resume_processes({
2287
+ # auto_scaling_group_name: "ResourceName", # required
2288
+ # scaling_processes: ["XmlStringMaxLen255"],
2289
+ # })
2290
+ # @overload resume_processes(params = {})
2291
+ # @param [Hash] params ({})
2292
+ def resume_processes(params = {}, options = {})
2293
+ req = build_request(:resume_processes, params)
2294
+ req.send_request(options)
2295
+ end
2296
+
2297
+ # Sets the size of the specified Auto Scaling group.
2298
+ #
2299
+ # For more information about desired capacity, see [What Is Auto
2300
+ # Scaling?][1] in the *Auto Scaling User Guide*.
2301
+ #
2302
+ #
2303
+ #
2304
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/WhatIsAutoScaling.html
2305
+ # @option params [required, String] :auto_scaling_group_name
2306
+ # The name of the Auto Scaling group.
2307
+ # @option params [required, Integer] :desired_capacity
2308
+ # The number of EC2 instances that should be running in the Auto Scaling
2309
+ # group.
2310
+ # @option params [Boolean] :honor_cooldown
2311
+ # By default, `SetDesiredCapacity` overrides any cooldown period
2312
+ # associated with the Auto Scaling group. Specify `True` to make Auto
2313
+ # Scaling to wait for the cool-down period associated with the Auto
2314
+ # Scaling group to complete before initiating a scaling activity to set
2315
+ # your Auto Scaling group to its new capacity.
2316
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2317
+ #
2318
+ # @example Request syntax with placeholder values
2319
+ # resp = client.set_desired_capacity({
2320
+ # auto_scaling_group_name: "ResourceName", # required
2321
+ # desired_capacity: 1, # required
2322
+ # honor_cooldown: false,
2323
+ # })
2324
+ # @overload set_desired_capacity(params = {})
2325
+ # @param [Hash] params ({})
2326
+ def set_desired_capacity(params = {}, options = {})
2327
+ req = build_request(:set_desired_capacity, params)
2328
+ req.send_request(options)
2329
+ end
2330
+
2331
+ # Sets the health status of the specified instance.
2332
+ #
2333
+ # For more information, see [Health Checks][1] in the *Auto Scaling User
2334
+ # Guide*.
2335
+ #
2336
+ #
2337
+ #
2338
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/healthcheck.html
2339
+ # @option params [required, String] :instance_id
2340
+ # The ID of the instance.
2341
+ # @option params [required, String] :health_status
2342
+ # The health status of the instance. Set to `Healthy` if you want the
2343
+ # instance to remain in service. Set to `Unhealthy` if you want the
2344
+ # instance to be out of service. Auto Scaling will terminate and replace
2345
+ # the unhealthy instance.
2346
+ # @option params [Boolean] :should_respect_grace_period
2347
+ # If the Auto Scaling group of the specified instance has a
2348
+ # `HealthCheckGracePeriod` specified for the group, by default, this
2349
+ # call will respect the grace period. Set this to `False`, if you do not
2350
+ # want the call to respect the grace period associated with the group.
2351
+ #
2352
+ # For more information, see the description of the health check grace
2353
+ # period for CreateAutoScalingGroup.
2354
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2355
+ #
2356
+ # @example Request syntax with placeholder values
2357
+ # resp = client.set_instance_health({
2358
+ # instance_id: "XmlStringMaxLen19", # required
2359
+ # health_status: "XmlStringMaxLen32", # required
2360
+ # should_respect_grace_period: false,
2361
+ # })
2362
+ # @overload set_instance_health(params = {})
2363
+ # @param [Hash] params ({})
2364
+ def set_instance_health(params = {}, options = {})
2365
+ req = build_request(:set_instance_health, params)
2366
+ req.send_request(options)
2367
+ end
2368
+
2369
+ # Updates the instance protection settings of the specified instances.
2370
+ #
2371
+ # For more information, see [Instance Protection][1] in the *Auto
2372
+ # Scaling User Guide*.
2373
+ #
2374
+ #
2375
+ #
2376
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/as-instance-termination.html#instance-protection
2377
+ # @option params [required, Array<String>] :instance_ids
2378
+ # One or more instance IDs.
2379
+ # @option params [required, String] :auto_scaling_group_name
2380
+ # The name of the group.
2381
+ # @option params [required, Boolean] :protected_from_scale_in
2382
+ # Indicates whether the instance is protected from termination by Auto
2383
+ # Scaling when scaling in.
2384
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2385
+ #
2386
+ # @example Request syntax with placeholder values
2387
+ # resp = client.set_instance_protection({
2388
+ # instance_ids: ["XmlStringMaxLen19"], # required
2389
+ # auto_scaling_group_name: "ResourceName", # required
2390
+ # protected_from_scale_in: false, # required
2391
+ # })
2392
+ # @overload set_instance_protection(params = {})
2393
+ # @param [Hash] params ({})
2394
+ def set_instance_protection(params = {}, options = {})
2395
+ req = build_request(:set_instance_protection, params)
2396
+ req.send_request(options)
2397
+ end
2398
+
2399
+ # Suspends the specified Auto Scaling processes, or all processes, for
2400
+ # the specified Auto Scaling group.
2401
+ #
2402
+ # Note that if you suspend either the `Launch` or `Terminate` process
2403
+ # types, it can prevent other process types from functioning properly.
2404
+ #
2405
+ # To resume processes that have been suspended, use ResumeProcesses.
2406
+ #
2407
+ # For more information, see [Suspending and Resuming Auto Scaling
2408
+ # Processes][1] in the *Auto Scaling User Guide*.
2409
+ #
2410
+ #
2411
+ #
2412
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/as-suspend-resume-processes.html
2413
+ # @option params [required, String] :auto_scaling_group_name
2414
+ # The name or Amazon Resource Name (ARN) of the Auto Scaling group.
2415
+ # @option params [Array<String>] :scaling_processes
2416
+ # One or more of the following processes. If you omit this parameter,
2417
+ # all processes are specified.
2418
+ #
2419
+ # * `Launch`
2420
+ #
2421
+ # * `Terminate`
2422
+ #
2423
+ # * `HealthCheck`
2424
+ #
2425
+ # * `ReplaceUnhealthy`
2426
+ #
2427
+ # * `AZRebalance`
2428
+ #
2429
+ # * `AlarmNotification`
2430
+ #
2431
+ # * `ScheduledActions`
2432
+ #
2433
+ # * `AddToLoadBalancer`
2434
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2435
+ #
2436
+ # @example Request syntax with placeholder values
2437
+ # resp = client.suspend_processes({
2438
+ # auto_scaling_group_name: "ResourceName", # required
2439
+ # scaling_processes: ["XmlStringMaxLen255"],
2440
+ # })
2441
+ # @overload suspend_processes(params = {})
2442
+ # @param [Hash] params ({})
2443
+ def suspend_processes(params = {}, options = {})
2444
+ req = build_request(:suspend_processes, params)
2445
+ req.send_request(options)
2446
+ end
2447
+
2448
+ # Terminates the specified instance and optionally adjusts the desired
2449
+ # group size.
2450
+ #
2451
+ # This call simply makes a termination request. The instance is not
2452
+ # terminated immediately.
2453
+ # @option params [required, String] :instance_id
2454
+ # The ID of the instance.
2455
+ # @option params [required, Boolean] :should_decrement_desired_capacity
2456
+ # If `true`, terminating the instance also decrements the size of the
2457
+ # Auto Scaling group.
2458
+ # @return [Types::ActivityType] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2459
+ #
2460
+ # * {Types::ActivityType#activity #Activity} => Types::Activity
2461
+ #
2462
+ # @example Request syntax with placeholder values
2463
+ # resp = client.terminate_instance_in_auto_scaling_group({
2464
+ # instance_id: "XmlStringMaxLen19", # required
2465
+ # should_decrement_desired_capacity: false, # required
2466
+ # })
2467
+ #
2468
+ # @example Response structure
2469
+ # resp.activity.activity_id #=> String
2470
+ # resp.activity.auto_scaling_group_name #=> String
2471
+ # resp.activity.description #=> String
2472
+ # resp.activity.cause #=> String
2473
+ # resp.activity.start_time #=> Time
2474
+ # resp.activity.end_time #=> Time
2475
+ # resp.activity.status_code #=> String, one of "PendingSpotBidPlacement", "WaitingForSpotInstanceRequestId", "WaitingForSpotInstanceId", "WaitingForInstanceId", "PreInService", "InProgress", "WaitingForELBConnectionDraining", "MidLifecycleAction", "WaitingForInstanceWarmup", "Successful", "Failed", "Cancelled"
2476
+ # resp.activity.status_message #=> String
2477
+ # resp.activity.progress #=> Integer
2478
+ # resp.activity.details #=> String
2479
+ # @overload terminate_instance_in_auto_scaling_group(params = {})
2480
+ # @param [Hash] params ({})
2481
+ def terminate_instance_in_auto_scaling_group(params = {}, options = {})
2482
+ req = build_request(:terminate_instance_in_auto_scaling_group, params)
2483
+ req.send_request(options)
2484
+ end
2485
+
2486
+ # Updates the configuration for the specified Auto Scaling group.
2487
+ #
2488
+ # To update an Auto Scaling group with a launch configuration with
2489
+ # `InstanceMonitoring` set to `False`, you must first disable the
2490
+ # collection of group metrics. Otherwise, you will get an error. If you
2491
+ # have previously enabled the collection of group metrics, you can
2492
+ # disable it using DisableMetricsCollection.
2493
+ #
2494
+ # The new settings are registered upon the completion of this call. Any
2495
+ # launch configuration settings take effect on any triggers after this
2496
+ # call returns. Scaling activities that are currently in progress
2497
+ # aren't affected.
2498
+ #
2499
+ # Note the following:
2500
+ #
2501
+ # * If you specify a new value for `MinSize` without specifying a value
2502
+ # for `DesiredCapacity`, and the new `MinSize` is larger than the
2503
+ # current size of the group, we implicitly call SetDesiredCapacity to
2504
+ # set the size of the group to the new value of `MinSize`.
2505
+ #
2506
+ # * If you specify a new value for `MaxSize` without specifying a value
2507
+ # for `DesiredCapacity`, and the new `MaxSize` is smaller than the
2508
+ # current size of the group, we implicitly call SetDesiredCapacity to
2509
+ # set the size of the group to the new value of `MaxSize`.
2510
+ #
2511
+ # * All other optional parameters are left unchanged if not specified.
2512
+ # @option params [required, String] :auto_scaling_group_name
2513
+ # The name of the Auto Scaling group.
2514
+ # @option params [String] :launch_configuration_name
2515
+ # The name of the launch configuration.
2516
+ # @option params [Integer] :min_size
2517
+ # The minimum size of the Auto Scaling group.
2518
+ # @option params [Integer] :max_size
2519
+ # The maximum size of the Auto Scaling group.
2520
+ # @option params [Integer] :desired_capacity
2521
+ # The number of EC2 instances that should be running in the Auto Scaling
2522
+ # group. This number must be greater than or equal to the minimum size
2523
+ # of the group and less than or equal to the maximum size of the group.
2524
+ # @option params [Integer] :default_cooldown
2525
+ # The amount of time, in seconds, after a scaling activity completes
2526
+ # before another scaling activity can start. The default is 300.
2527
+ #
2528
+ # For more information, see [Auto Scaling Cooldowns][1] in the *Auto
2529
+ # Scaling User Guide*.
2530
+ #
2531
+ #
2532
+ #
2533
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/Cooldown.html
2534
+ # @option params [Array<String>] :availability_zones
2535
+ # One or more Availability Zones for the group.
2536
+ # @option params [String] :health_check_type
2537
+ # The service to use for the health checks. The valid values are `EC2`
2538
+ # and `ELB`.
2539
+ # @option params [Integer] :health_check_grace_period
2540
+ # The amount of time, in seconds, that Auto Scaling waits before
2541
+ # checking the health status of an EC2 instance that has come into
2542
+ # service. The default is 0.
2543
+ #
2544
+ # For more information, see [Health Checks][1] in the *Auto Scaling User
2545
+ # Guide*.
2546
+ #
2547
+ #
2548
+ #
2549
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/healthcheck.html
2550
+ # @option params [String] :placement_group
2551
+ # The name of the placement group into which you'll launch your
2552
+ # instances, if any. For more information, see [Placement Groups][1] in
2553
+ # the *Amazon Elastic Compute Cloud User Guide*.
2554
+ #
2555
+ #
2556
+ #
2557
+ # [1]: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html
2558
+ # @option params [String] :vpc_zone_identifier
2559
+ # The ID of the subnet, if you are launching into a VPC. You can specify
2560
+ # several subnets in a comma-separated list.
2561
+ #
2562
+ # When you specify `VPCZoneIdentifier` with `AvailabilityZones`, ensure
2563
+ # that the subnets' Availability Zones match the values you specify for
2564
+ # `AvailabilityZones`.
2565
+ #
2566
+ # For more information, see [Launching Auto Scaling Instances in a
2567
+ # VPC][1] in the *Auto Scaling User Guide*.
2568
+ #
2569
+ #
2570
+ #
2571
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/asg-in-vpc.html
2572
+ # @option params [Array<String>] :termination_policies
2573
+ # A standalone termination policy or a list of termination policies used
2574
+ # to select the instance to terminate. The policies are executed in the
2575
+ # order that they are listed.
2576
+ #
2577
+ # For more information, see [Controlling Which Instances Auto Scaling
2578
+ # Terminates During Scale In][1] in the *Auto Scaling User Guide*.
2579
+ #
2580
+ #
2581
+ #
2582
+ # [1]: http://docs.aws.amazon.com/autoscaling/latest/userguide/as-instance-termination.html
2583
+ # @option params [Boolean] :new_instances_protected_from_scale_in
2584
+ # Indicates whether newly launched instances are protected from
2585
+ # termination by Auto Scaling when scaling in.
2586
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2587
+ #
2588
+ # @example Request syntax with placeholder values
2589
+ # resp = client.update_auto_scaling_group({
2590
+ # auto_scaling_group_name: "ResourceName", # required
2591
+ # launch_configuration_name: "ResourceName",
2592
+ # min_size: 1,
2593
+ # max_size: 1,
2594
+ # desired_capacity: 1,
2595
+ # default_cooldown: 1,
2596
+ # availability_zones: ["XmlStringMaxLen255"],
2597
+ # health_check_type: "XmlStringMaxLen32",
2598
+ # health_check_grace_period: 1,
2599
+ # placement_group: "XmlStringMaxLen255",
2600
+ # vpc_zone_identifier: "XmlStringMaxLen2047",
2601
+ # termination_policies: ["XmlStringMaxLen1600"],
2602
+ # new_instances_protected_from_scale_in: false,
2603
+ # })
2604
+ # @overload update_auto_scaling_group(params = {})
2605
+ # @param [Hash] params ({})
2606
+ def update_auto_scaling_group(params = {}, options = {})
2607
+ req = build_request(:update_auto_scaling_group, params)
2608
+ req.send_request(options)
2609
+ end
2610
+
2611
+ # @!endgroup
2612
+
2613
+ # @param params ({})
2614
+ # @api private
2615
+ def build_request(operation_name, params = {})
2616
+ handlers = @handlers.for(operation_name)
2617
+ context = Seahorse::Client::RequestContext.new(
2618
+ operation_name: operation_name,
2619
+ operation: config.api.operation(operation_name),
2620
+ client: self,
2621
+ params: params,
2622
+ config: config)
2623
+ context[:gem_name] = 'aws-sdk-autoscaling'
2624
+ context[:gem_version] = '1.0.0.rc1'
2625
+ Seahorse::Client::Request.new(handlers, context)
2626
+ end
2627
+
2628
+ # Polls an API operation until a resource enters a desired state.
2629
+ #
2630
+ # ## Basic Usage
2631
+ #
2632
+ # A waiter will call an API operation until:
2633
+ #
2634
+ # * It is successful
2635
+ # * It enters a terminal state
2636
+ # * It makes the maximum number of attempts
2637
+ #
2638
+ # In between attempts, the waiter will sleep.
2639
+ #
2640
+ # # polls in a loop, sleeping between attempts
2641
+ # client.waiter_until(waiter_name, params)
2642
+ #
2643
+ # ## Configuration
2644
+ #
2645
+ # You can configure the maximum number of polling attempts, and the
2646
+ # delay (in seconds) between each polling attempt. You can pass
2647
+ # configuration as the final arguments hash.
2648
+ #
2649
+ # # poll for ~25 seconds
2650
+ # client.wait_until(waiter_name, params, {
2651
+ # max_attempts: 5,
2652
+ # delay: 5,
2653
+ # })
2654
+ #
2655
+ # ## Callbacks
2656
+ #
2657
+ # You can be notified before each polling attempt and before each
2658
+ # delay. If you throw `:success` or `:failure` from these callbacks,
2659
+ # it will terminate the waiter.
2660
+ #
2661
+ # started_at = Time.now
2662
+ # client.wait_until(waiter_name, params, {
2663
+ #
2664
+ # # disable max attempts
2665
+ # max_attempts: nil,
2666
+ #
2667
+ # # poll for 1 hour, instead of a number of attempts
2668
+ # before_wait: -> (attempts, response) do
2669
+ # throw :failure if Time.now - started_at > 3600
2670
+ # end
2671
+ # })
2672
+ #
2673
+ # ## Handling Errors
2674
+ #
2675
+ # When a waiter is unsuccessful, it will raise an error.
2676
+ # All of the failure errors extend from
2677
+ # {Aws::Waiters::Errors::WaiterFailed}.
2678
+ #
2679
+ # begin
2680
+ # client.wait_until(...)
2681
+ # rescue Aws::Waiters::Errors::WaiterFailed
2682
+ # # resource did not enter the desired state in time
2683
+ # end
2684
+ #
2685
+ # ## Valid Waiters
2686
+ #
2687
+ # The following table lists the valid waiter names, the operations they call,
2688
+ # and the default `:delay` and `:max_attempts` values.
2689
+ #
2690
+ # | waiter_name | params | :delay | :max_attempts |
2691
+ # | ---------------- | ------------------------------- | -------- | ------------- |
2692
+ # | group_exists | {#describe_auto_scaling_groups} | 5 | 10 |
2693
+ # | group_in_service | {#describe_auto_scaling_groups} | 15 | 40 |
2694
+ # | group_not_exists | {#describe_auto_scaling_groups} | 15 | 40 |
2695
+ #
2696
+ # @raise [Errors::FailureStateError] Raised when the waiter terminates
2697
+ # because the waiter has entered a state that it will not transition
2698
+ # out of, preventing success.
2699
+ #
2700
+ # @raise [Errors::TooManyAttemptsError] Raised when the configured
2701
+ # maximum number of attempts have been made, and the waiter is not
2702
+ # yet successful.
2703
+ #
2704
+ # @raise [Errors::UnexpectedError] Raised when an error is encounted
2705
+ # while polling for a resource that is not expected.
2706
+ #
2707
+ # @raise [Errors::NoSuchWaiterError] Raised when you request to wait
2708
+ # for an unknown state.
2709
+ #
2710
+ # @return [Boolean] Returns `true` if the waiter was successful.
2711
+ # @param [Symbol] waiter_name
2712
+ # @param [Hash] params ({})
2713
+ # @param [Hash] options ({})
2714
+ # @option options [Integer] :max_attempts
2715
+ # @option options [Integer] :delay
2716
+ # @option options [Proc] :before_attempt
2717
+ # @option options [Proc] :before_wait
2718
+ def wait_until(waiter_name, params = {}, options = {})
2719
+ w = waiter(waiter_name, options)
2720
+ yield(w.waiter) if block_given? # deprecated
2721
+ w.wait(params)
2722
+ end
2723
+
2724
+ # @api private
2725
+ # @deprecated
2726
+ def waiter_names
2727
+ waiters.keys
2728
+ end
2729
+
2730
+ private
2731
+
2732
+ # @param [Symbol] waiter_name
2733
+ # @param [Hash] options ({})
2734
+ def waiter(waiter_name, options = {})
2735
+ waiter_class = waiters[waiter_name]
2736
+ if waiter_class
2737
+ waiter_class.new(options.merge(client: self))
2738
+ else
2739
+ raise Aws::Waiters::Errors::NoSuchWaiterError.new(waiter_name, waiters.keys)
2740
+ end
2741
+ end
2742
+
2743
+ def waiters
2744
+ {
2745
+ group_exists: Waiters::GroupExists,
2746
+ group_in_service: Waiters::GroupInService,
2747
+ group_not_exists: Waiters::GroupNotExists
2748
+ }
2749
+ end
2750
+
2751
+ class << self
2752
+
2753
+ # @api private
2754
+ attr_reader :identifier
2755
+
2756
+ # @api private
2757
+ def errors_module
2758
+ Errors
2759
+ end
2760
+
2761
+ end
2762
+ end
2763
+ end
2764
+ end