aws-sdk-cloudformation 1.0.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 8705ef1b3b859eced6bd27f74658675c346188f5
4
+ data.tar.gz: b8570d2cd5a5c55d1a331841cdb42f8ab8844968
5
+ SHA512:
6
+ metadata.gz: 2838270a16a8140d114e71db91f909e31d18d5f860f6c77ffb3556d226926282df682bc2cc17ae57a496f024faff961f08481fe56043dc73ffa63ffd6a19ba28
7
+ data.tar.gz: 5812ac0631f76c43fcb02f7c02dd7e67988c399b529f5aabfec2d99ba2dce4fe31cf32edc5edffbb64fa55ddd17326916bd3ec8feded4988ebc52e730e474647
@@ -0,0 +1,52 @@
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 'aws-sdk-core'
9
+ require 'aws-sigv4'
10
+
11
+ require_relative 'aws-sdk-cloudformation/types'
12
+ require_relative 'aws-sdk-cloudformation/client_api'
13
+ require_relative 'aws-sdk-cloudformation/client'
14
+ require_relative 'aws-sdk-cloudformation/errors'
15
+ require_relative 'aws-sdk-cloudformation/waiters'
16
+ require_relative 'aws-sdk-cloudformation/resource'
17
+ require_relative 'aws-sdk-cloudformation/event'
18
+ require_relative 'aws-sdk-cloudformation/stack'
19
+ require_relative 'aws-sdk-cloudformation/stack_resource'
20
+ require_relative 'aws-sdk-cloudformation/stack_resource_summary'
21
+ require_relative 'aws-sdk-cloudformation/customizations'
22
+
23
+ # This module provides support for AWS CloudFormation. This module is available in the
24
+ # `aws-sdk-cloudformation` gem.
25
+ #
26
+ # # Client
27
+ #
28
+ # The {Client} class provides one method for each API operation. Operation
29
+ # methods each accept a hash of request parameters and return a response
30
+ # structure.
31
+ #
32
+ # See {Client} for more information.
33
+ #
34
+ # # Errors
35
+ #
36
+ # Errors returned from AWS CloudFormation all
37
+ # extend {Errors::ServiceError}.
38
+ #
39
+ # begin
40
+ # # do stuff
41
+ # rescue Aws::CloudFormation::Errors::ServiceError
42
+ # # rescues all service API errors
43
+ # end
44
+ #
45
+ # See {Errors} for more information.
46
+ #
47
+ # @service
48
+ module Aws::CloudFormation
49
+
50
+ GEM_VERSION = '1.0.0.rc1'
51
+
52
+ end
@@ -0,0 +1,2014 @@
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(:cloudformation)
25
+
26
+ module Aws
27
+ module CloudFormation
28
+ class Client < Seahorse::Client::Base
29
+
30
+ include Aws::ClientStubs
31
+
32
+ @identifier = :cloudformation
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
+ # Cancels an update on the specified stack. If the call completes
134
+ # successfully, the stack rolls back the update and reverts to the
135
+ # previous stack configuration.
136
+ #
137
+ # <note markdown="1"> You can cancel only stacks that are in the UPDATE\_IN\_PROGRESS state.
138
+ #
139
+ # </note>
140
+ # @option params [required, String] :stack_name
141
+ # The name or the unique stack ID that is associated with the stack.
142
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
143
+ #
144
+ # @example Request syntax with placeholder values
145
+ # resp = client.cancel_update_stack({
146
+ # stack_name: "StackName", # required
147
+ # })
148
+ # @overload cancel_update_stack(params = {})
149
+ # @param [Hash] params ({})
150
+ def cancel_update_stack(params = {}, options = {})
151
+ req = build_request(:cancel_update_stack, params)
152
+ req.send_request(options)
153
+ end
154
+
155
+ # For a specified stack that is in the `UPDATE_ROLLBACK_FAILED` state,
156
+ # continues rolling it back to the `UPDATE_ROLLBACK_COMPLETE` state.
157
+ # Depending on the cause of the failure, you can manually [ fix the
158
+ # error][1] and continue the rollback. By continuing the rollback, you
159
+ # can return your stack to a working state (the
160
+ # `UPDATE_ROLLBACK_COMPLETE` state), and then try to update the stack
161
+ # again.
162
+ #
163
+ # A stack goes into the `UPDATE_ROLLBACK_FAILED` state when AWS
164
+ # CloudFormation cannot roll back all changes after a failed stack
165
+ # update. For example, you might have a stack that is rolling back to an
166
+ # old database instance that was deleted outside of AWS CloudFormation.
167
+ # Because AWS CloudFormation doesn't know the database was deleted, it
168
+ # assumes that the database instance still exists and attempts to roll
169
+ # back to it, causing the update rollback to fail.
170
+ #
171
+ #
172
+ #
173
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed
174
+ # @option params [required, String] :stack_name
175
+ # The name or the unique ID of the stack that you want to continue
176
+ # rolling back.
177
+ #
178
+ # <note markdown="1"> Don't specify the name of a nested stack (a stack that was created by
179
+ # using the `AWS::CloudFormation::Stack` resource). Instead, use this
180
+ # operation on the parent stack (the stack that contains the
181
+ # `AWS::CloudFormation::Stack` resource).
182
+ #
183
+ # </note>
184
+ # @option params [String] :role_arn
185
+ # The Amazon Resource Name (ARN) of an AWS Identity and Access
186
+ # Management (IAM) role that AWS CloudFormation assumes to roll back the
187
+ # stack. AWS CloudFormation uses the role's credentials to make calls
188
+ # on your behalf. AWS CloudFormation always uses this role for all
189
+ # future operations on the stack. As long as users have permission to
190
+ # operate on the stack, AWS CloudFormation uses this role even if the
191
+ # users don't have permission to pass it. Ensure that the role grants
192
+ # least privilege.
193
+ #
194
+ # If you don't specify a value, AWS CloudFormation uses the role that
195
+ # was previously associated with the stack. If no role is available, AWS
196
+ # CloudFormation uses a temporary session that is generated from your
197
+ # user credentials.
198
+ # @option params [Array<String>] :resources_to_skip
199
+ # A list of the logical IDs of the resources that AWS CloudFormation
200
+ # skips during the continue update rollback operation. You can specify
201
+ # only resources that are in the `UPDATE_FAILED` state because a
202
+ # rollback failed. You can't specify resources that are in the
203
+ # `UPDATE_FAILED` state for other reasons, for example, because an
204
+ # update was canceled. To check why a resource update failed, use the
205
+ # DescribeStackResources action, and view the resource status reason.
206
+ #
207
+ # Specify this property to skip rolling back resources that AWS
208
+ # CloudFormation can't successfully roll back. We recommend that you [
209
+ # troubleshoot][1] resources before skipping them. AWS CloudFormation
210
+ # sets the status of the specified resources to `UPDATE_COMPLETE` and
211
+ # continues to roll back the stack. After the rollback is complete, the
212
+ # state of the skipped resources will be inconsistent with the state of
213
+ # the resources in the stack template. Before performing another stack
214
+ # update, you must update the stack or resources to be consistent with
215
+ # each other. If you don't, subsequent stack updates might fail, and
216
+ # the stack will become unrecoverable.
217
+ #
218
+ # Specify the minimum number of resources required to successfully roll
219
+ # back your stack. For example, a failed resource update might cause
220
+ # dependent resources to fail. In this case, it might not be necessary
221
+ # to skip the dependent resources.
222
+ #
223
+ # To specify resources in a nested stack, use the following format:
224
+ # `NestedStackName.ResourceLogicalID`. You can specify a nested stack
225
+ # resource (the logical ID of an `AWS::CloudFormation::Stack` resource)
226
+ # only if it's in one of the following states: `DELETE_IN_PROGRESS`,
227
+ # `DELETE_COMPLETE`, or `DELETE_FAILED`.
228
+ #
229
+ #
230
+ #
231
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed
232
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
233
+ #
234
+ # @example Request syntax with placeholder values
235
+ # resp = client.continue_update_rollback({
236
+ # stack_name: "StackNameOrId", # required
237
+ # role_arn: "RoleARN",
238
+ # resources_to_skip: ["ResourceToSkip"],
239
+ # })
240
+ # @overload continue_update_rollback(params = {})
241
+ # @param [Hash] params ({})
242
+ def continue_update_rollback(params = {}, options = {})
243
+ req = build_request(:continue_update_rollback, params)
244
+ req.send_request(options)
245
+ end
246
+
247
+ # Creates a list of changes for a stack. AWS CloudFormation generates
248
+ # the change set by comparing the template's information with the
249
+ # information that you submit. A change set can help you understand
250
+ # which resources AWS CloudFormation will change, and how it will change
251
+ # them, before you update your stack. Change sets allow you to check
252
+ # before making a change to avoid deleting or replacing critical
253
+ # resources.
254
+ #
255
+ # AWS CloudFormation doesn't make any changes to the stack when you
256
+ # create a change set. To make the specified changes, you must execute
257
+ # the change set by using the ExecuteChangeSet action.
258
+ #
259
+ # After the call successfully completes, AWS CloudFormation starts
260
+ # creating the change set. To check the status of the change set, use
261
+ # the DescribeChangeSet action.
262
+ # @option params [required, String] :stack_name
263
+ # The name or the unique ID of the stack for which you are creating a
264
+ # change set. AWS CloudFormation generates the change set by comparing
265
+ # this stack's information with the information that you submit, such
266
+ # as a modified template or different parameter input values.
267
+ # @option params [String] :template_body
268
+ # A structure that contains the body of the revised template, with a
269
+ # minimum length of 1 byte and a maximum length of 51,200 bytes. AWS
270
+ # CloudFormation generates the change set by comparing this template
271
+ # with the template of the stack that you specified.
272
+ #
273
+ # Conditional: You must specify only `TemplateBody` or `TemplateURL`.
274
+ # @option params [String] :template_url
275
+ # The location of the file that contains the revised template. The URL
276
+ # must point to a template (max size: 460,800 bytes) that is located in
277
+ # an S3 bucket. AWS CloudFormation generates the change set by comparing
278
+ # this template with the stack that you specified.
279
+ #
280
+ # Conditional: You must specify only `TemplateBody` or `TemplateURL`.
281
+ # @option params [Boolean] :use_previous_template
282
+ # Whether to reuse the template that is associated with the stack to
283
+ # create the change set.
284
+ # @option params [Array<Types::Parameter>] :parameters
285
+ # A list of `Parameter` structures that specify input parameters for the
286
+ # change set. For more information, see the [Parameter][1] data type.
287
+ #
288
+ #
289
+ #
290
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html
291
+ # @option params [Array<String>] :capabilities
292
+ # A list of values that you must specify before AWS CloudFormation can
293
+ # update certain stacks. Some stack templates might include resources
294
+ # that can affect permissions in your AWS account, for example, by
295
+ # creating new AWS Identity and Access Management (IAM) users. For those
296
+ # stacks, you must explicitly acknowledge their capabilities by
297
+ # specifying this parameter.
298
+ #
299
+ # The only valid values are `CAPABILITY_IAM` and `CAPABILITY_NAMED_IAM`.
300
+ # The following resources require you to specify this parameter: [
301
+ # AWS::IAM::AccessKey][1], [ AWS::IAM::Group][2], [
302
+ # AWS::IAM::InstanceProfile][3], [ AWS::IAM::Policy][4], [
303
+ # AWS::IAM::Role][5], [ AWS::IAM::User][6], and [
304
+ # AWS::IAM::UserToGroupAddition][7]. If your stack template contains
305
+ # these resources, we recommend that you review all permissions
306
+ # associated with them and edit their permissions if necessary.
307
+ #
308
+ # If you have IAM resources, you can specify either capability. If you
309
+ # have IAM resources with custom names, you must specify
310
+ # `CAPABILITY_NAMED_IAM`. If you don't specify this parameter, this
311
+ # action returns an `InsufficientCapabilities` error.
312
+ #
313
+ # For more information, see [Acknowledging IAM Resources in AWS
314
+ # CloudFormation Templates][8].
315
+ #
316
+ #
317
+ #
318
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html
319
+ # [2]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html
320
+ # [3]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html
321
+ # [4]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html
322
+ # [5]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html
323
+ # [6]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html
324
+ # [7]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html
325
+ # [8]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities
326
+ # @option params [Array<String>] :resource_types
327
+ # The template resource types that you have permissions to work with if
328
+ # you execute this change set, such as `AWS::EC2::Instance`,
329
+ # `AWS::EC2::*`, or `Custom::MyCustomInstance`.
330
+ #
331
+ # If the list of resource types doesn't include a resource type that
332
+ # you're updating, the stack update fails. By default, AWS
333
+ # CloudFormation grants permissions to all resource types. AWS Identity
334
+ # and Access Management (IAM) uses this parameter for condition keys in
335
+ # IAM policies for AWS CloudFormation. For more information, see
336
+ # [Controlling Access with AWS Identity and Access Management][1] in the
337
+ # AWS CloudFormation User Guide.
338
+ #
339
+ #
340
+ #
341
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html
342
+ # @option params [String] :role_arn
343
+ # The Amazon Resource Name (ARN) of an AWS Identity and Access
344
+ # Management (IAM) role that AWS CloudFormation assumes when executing
345
+ # the change set. AWS CloudFormation uses the role's credentials to
346
+ # make calls on your behalf. AWS CloudFormation uses this role for all
347
+ # future operations on the stack. As long as users have permission to
348
+ # operate on the stack, AWS CloudFormation uses this role even if the
349
+ # users don't have permission to pass it. Ensure that the role grants
350
+ # least privilege.
351
+ #
352
+ # If you don't specify a value, AWS CloudFormation uses the role that
353
+ # was previously associated with the stack. If no role is available, AWS
354
+ # CloudFormation uses a temporary session that is generated from your
355
+ # user credentials.
356
+ # @option params [Array<String>] :notification_arns
357
+ # The Amazon Resource Names (ARNs) of Amazon Simple Notification Service
358
+ # (Amazon SNS) topics that AWS CloudFormation associates with the stack.
359
+ # To remove all associated notification topics, specify an empty list.
360
+ # @option params [Array<Types::Tag>] :tags
361
+ # Key-value pairs to associate with this stack. AWS CloudFormation also
362
+ # propagates these tags to resources in the stack. You can specify a
363
+ # maximum of 10 tags.
364
+ # @option params [required, String] :change_set_name
365
+ # The name of the change set. The name must be unique among all change
366
+ # sets that are associated with the specified stack.
367
+ #
368
+ # A change set name can contain only alphanumeric, case sensitive
369
+ # characters and hyphens. It must start with an alphabetic character and
370
+ # cannot exceed 128 characters.
371
+ # @option params [String] :client_token
372
+ # A unique identifier for this `CreateChangeSet` request. Specify this
373
+ # token if you plan to retry requests so that AWS CloudFormation knows
374
+ # that you're not attempting to create another change set with the same
375
+ # name. You might retry `CreateChangeSet` requests to ensure that AWS
376
+ # CloudFormation successfully received them.
377
+ # @option params [String] :description
378
+ # A description to help you identify this change set.
379
+ # @option params [String] :change_set_type
380
+ # The type of change set operation. To create a change set for a new
381
+ # stack, specify `CREATE`. To create a change set for an existing stack,
382
+ # specify `UPDATE`.
383
+ #
384
+ # If you create a change set for a new stack, AWS Cloudformation creates
385
+ # a stack with a unique stack ID, but no template or resources. The
386
+ # stack will be in the [ `REVIEW_IN_PROGRESS` ][1] state until you
387
+ # execute the change set.
388
+ #
389
+ # By default, AWS CloudFormation specifies `UPDATE`. You can't use the
390
+ # `UPDATE` type to create a change set for a new stack or the `CREATE`
391
+ # type to create a change set for an existing stack.
392
+ #
393
+ #
394
+ #
395
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-describing-stacks.html#d0e11995
396
+ # @return [Types::CreateChangeSetOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
397
+ #
398
+ # * {Types::CreateChangeSetOutput#id #Id} => String
399
+ # * {Types::CreateChangeSetOutput#stack_id #StackId} => String
400
+ #
401
+ # @example Request syntax with placeholder values
402
+ # resp = client.create_change_set({
403
+ # stack_name: "StackNameOrId", # required
404
+ # template_body: "TemplateBody",
405
+ # template_url: "TemplateURL",
406
+ # use_previous_template: false,
407
+ # parameters: [
408
+ # {
409
+ # parameter_key: "ParameterKey",
410
+ # parameter_value: "ParameterValue",
411
+ # use_previous_value: false,
412
+ # },
413
+ # ],
414
+ # capabilities: ["CAPABILITY_IAM"], # accepts CAPABILITY_IAM, CAPABILITY_NAMED_IAM
415
+ # resource_types: ["ResourceType"],
416
+ # role_arn: "RoleARN",
417
+ # notification_arns: ["NotificationARN"],
418
+ # tags: [
419
+ # {
420
+ # key: "TagKey",
421
+ # value: "TagValue",
422
+ # },
423
+ # ],
424
+ # change_set_name: "ChangeSetName", # required
425
+ # client_token: "ClientToken",
426
+ # description: "Description",
427
+ # change_set_type: "CREATE", # accepts CREATE, UPDATE
428
+ # })
429
+ #
430
+ # @example Response structure
431
+ # resp.id #=> String
432
+ # resp.stack_id #=> String
433
+ # @overload create_change_set(params = {})
434
+ # @param [Hash] params ({})
435
+ def create_change_set(params = {}, options = {})
436
+ req = build_request(:create_change_set, params)
437
+ req.send_request(options)
438
+ end
439
+
440
+ # Creates a stack as specified in the template. After the call completes
441
+ # successfully, the stack creation starts. You can check the status of
442
+ # the stack via the DescribeStacks API.
443
+ # @option params [required, String] :stack_name
444
+ # The name that is associated with the stack. The name must be unique in
445
+ # the region in which you are creating the stack.
446
+ #
447
+ # <note markdown="1"> A stack name can contain only alphanumeric characters (case sensitive)
448
+ # and hyphens. It must start with an alphabetic character and cannot be
449
+ # longer than 128 characters.
450
+ #
451
+ # </note>
452
+ # @option params [String] :template_body
453
+ # Structure containing the template body with a minimum length of 1 byte
454
+ # and a maximum length of 51,200 bytes. For more information, go to
455
+ # [Template Anatomy][1] in the AWS CloudFormation User Guide.
456
+ #
457
+ # Conditional: You must specify either the `TemplateBody` or the
458
+ # `TemplateURL` parameter, but not both.
459
+ #
460
+ #
461
+ #
462
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
463
+ # @option params [String] :template_url
464
+ # Location of file containing the template body. The URL must point to a
465
+ # template (max size: 460,800 bytes) that is located in an Amazon S3
466
+ # bucket. For more information, go to the [Template Anatomy][1] in the
467
+ # AWS CloudFormation User Guide.
468
+ #
469
+ # Conditional: You must specify either the `TemplateBody` or the
470
+ # `TemplateURL` parameter, but not both.
471
+ #
472
+ #
473
+ #
474
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
475
+ # @option params [Array<Types::Parameter>] :parameters
476
+ # A list of `Parameter` structures that specify input parameters for the
477
+ # stack. For more information, see the [Parameter][1] data type.
478
+ #
479
+ #
480
+ #
481
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html
482
+ # @option params [Boolean] :disable_rollback
483
+ # Set to `true` to disable rollback of the stack if stack creation
484
+ # failed. You can specify either `DisableRollback` or `OnFailure`, but
485
+ # not both.
486
+ #
487
+ # Default: `false`
488
+ # @option params [Integer] :timeout_in_minutes
489
+ # The amount of time that can pass before the stack status becomes
490
+ # CREATE\_FAILED; if `DisableRollback` is not set or is set to `false`,
491
+ # the stack will be rolled back.
492
+ # @option params [Array<String>] :notification_arns
493
+ # The Simple Notification Service (SNS) topic ARNs to publish stack
494
+ # related events. You can find your SNS topic ARNs using the [SNS
495
+ # console][1] or your Command Line Interface (CLI).
496
+ #
497
+ #
498
+ #
499
+ # [1]: https://console.aws.amazon.com/sns
500
+ # @option params [Array<String>] :capabilities
501
+ # A list of values that you must specify before AWS CloudFormation can
502
+ # create certain stacks. Some stack templates might include resources
503
+ # that can affect permissions in your AWS account, for example, by
504
+ # creating new AWS Identity and Access Management (IAM) users. For those
505
+ # stacks, you must explicitly acknowledge their capabilities by
506
+ # specifying this parameter.
507
+ #
508
+ # The only valid values are `CAPABILITY_IAM` and `CAPABILITY_NAMED_IAM`.
509
+ # The following resources require you to specify this parameter: [
510
+ # AWS::IAM::AccessKey][1], [ AWS::IAM::Group][2], [
511
+ # AWS::IAM::InstanceProfile][3], [ AWS::IAM::Policy][4], [
512
+ # AWS::IAM::Role][5], [ AWS::IAM::User][6], and [
513
+ # AWS::IAM::UserToGroupAddition][7]. If your stack template contains
514
+ # these resources, we recommend that you review all permissions
515
+ # associated with them and edit their permissions if necessary.
516
+ #
517
+ # If you have IAM resources, you can specify either capability. If you
518
+ # have IAM resources with custom names, you must specify
519
+ # `CAPABILITY_NAMED_IAM`. If you don't specify this parameter, this
520
+ # action returns an `InsufficientCapabilities` error.
521
+ #
522
+ # For more information, see [Acknowledging IAM Resources in AWS
523
+ # CloudFormation Templates][8].
524
+ #
525
+ #
526
+ #
527
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html
528
+ # [2]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html
529
+ # [3]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html
530
+ # [4]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html
531
+ # [5]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html
532
+ # [6]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html
533
+ # [7]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html
534
+ # [8]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities
535
+ # @option params [Array<String>] :resource_types
536
+ # The template resource types that you have permissions to work with for
537
+ # this create stack action, such as `AWS::EC2::Instance`, `AWS::EC2::*`,
538
+ # or `Custom::MyCustomInstance`. Use the following syntax to describe
539
+ # template resource types: `AWS::*` (for all AWS resource), `Custom::*`
540
+ # (for all custom resources), `Custom::logical_ID ` (for a specific
541
+ # custom resource), `AWS::service_name::*` (for all resources of a
542
+ # particular AWS service), and `AWS::service_name::resource_logical_ID `
543
+ # (for a specific AWS resource).
544
+ #
545
+ # If the list of resource types doesn't include a resource that you're
546
+ # creating, the stack creation fails. By default, AWS CloudFormation
547
+ # grants permissions to all resource types. AWS Identity and Access
548
+ # Management (IAM) uses this parameter for AWS CloudFormation-specific
549
+ # condition keys in IAM policies. For more information, see [Controlling
550
+ # Access with AWS Identity and Access Management][1].
551
+ #
552
+ #
553
+ #
554
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html
555
+ # @option params [String] :role_arn
556
+ # The Amazon Resource Name (ARN) of an AWS Identity and Access
557
+ # Management (IAM) role that AWS CloudFormation assumes to create the
558
+ # stack. AWS CloudFormation uses the role's credentials to make calls
559
+ # on your behalf. AWS CloudFormation always uses this role for all
560
+ # future operations on the stack. As long as users have permission to
561
+ # operate on the stack, AWS CloudFormation uses this role even if the
562
+ # users don't have permission to pass it. Ensure that the role grants
563
+ # least privilege.
564
+ #
565
+ # If you don't specify a value, AWS CloudFormation uses the role that
566
+ # was previously associated with the stack. If no role is available, AWS
567
+ # CloudFormation uses a temporary session that is generated from your
568
+ # user credentials.
569
+ # @option params [String] :on_failure
570
+ # Determines what action will be taken if stack creation fails. This
571
+ # must be one of: DO\_NOTHING, ROLLBACK, or DELETE. You can specify
572
+ # either `OnFailure` or `DisableRollback`, but not both.
573
+ #
574
+ # Default: `ROLLBACK`
575
+ # @option params [String] :stack_policy_body
576
+ # Structure containing the stack policy body. For more information, go
577
+ # to [ Prevent Updates to Stack Resources][1] in the *AWS CloudFormation
578
+ # User Guide*. You can specify either the `StackPolicyBody` or the
579
+ # `StackPolicyURL` parameter, but not both.
580
+ #
581
+ #
582
+ #
583
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html
584
+ # @option params [String] :stack_policy_url
585
+ # Location of a file containing the stack policy. The URL must point to
586
+ # a policy (maximum size: 16 KB) located in an S3 bucket in the same
587
+ # region as the stack. You can specify either the `StackPolicyBody` or
588
+ # the `StackPolicyURL` parameter, but not both.
589
+ # @option params [Array<Types::Tag>] :tags
590
+ # Key-value pairs to associate with this stack. AWS CloudFormation also
591
+ # propagates these tags to the resources created in the stack. A maximum
592
+ # number of 10 tags can be specified.
593
+ # @return [Types::CreateStackOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
594
+ #
595
+ # * {Types::CreateStackOutput#stack_id #StackId} => String
596
+ #
597
+ # @example Request syntax with placeholder values
598
+ # resp = client.create_stack({
599
+ # stack_name: "StackName", # required
600
+ # template_body: "TemplateBody",
601
+ # template_url: "TemplateURL",
602
+ # parameters: [
603
+ # {
604
+ # parameter_key: "ParameterKey",
605
+ # parameter_value: "ParameterValue",
606
+ # use_previous_value: false,
607
+ # },
608
+ # ],
609
+ # disable_rollback: false,
610
+ # timeout_in_minutes: 1,
611
+ # notification_arns: ["NotificationARN"],
612
+ # capabilities: ["CAPABILITY_IAM"], # accepts CAPABILITY_IAM, CAPABILITY_NAMED_IAM
613
+ # resource_types: ["ResourceType"],
614
+ # role_arn: "RoleARN",
615
+ # on_failure: "DO_NOTHING", # accepts DO_NOTHING, ROLLBACK, DELETE
616
+ # stack_policy_body: "StackPolicyBody",
617
+ # stack_policy_url: "StackPolicyURL",
618
+ # tags: [
619
+ # {
620
+ # key: "TagKey",
621
+ # value: "TagValue",
622
+ # },
623
+ # ],
624
+ # })
625
+ #
626
+ # @example Response structure
627
+ # resp.stack_id #=> String
628
+ # @overload create_stack(params = {})
629
+ # @param [Hash] params ({})
630
+ def create_stack(params = {}, options = {})
631
+ req = build_request(:create_stack, params)
632
+ req.send_request(options)
633
+ end
634
+
635
+ # Deletes the specified change set. Deleting change sets ensures that no
636
+ # one executes the wrong change set.
637
+ #
638
+ # If the call successfully completes, AWS CloudFormation successfully
639
+ # deleted the change set.
640
+ # @option params [required, String] :change_set_name
641
+ # The name or Amazon Resource Name (ARN) of the change set that you want
642
+ # to delete.
643
+ # @option params [String] :stack_name
644
+ # If you specified the name of a change set to delete, specify the stack
645
+ # name or ID (ARN) that is associated with it.
646
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
647
+ #
648
+ # @example Request syntax with placeholder values
649
+ # resp = client.delete_change_set({
650
+ # change_set_name: "ChangeSetNameOrId", # required
651
+ # stack_name: "StackNameOrId",
652
+ # })
653
+ # @overload delete_change_set(params = {})
654
+ # @param [Hash] params ({})
655
+ def delete_change_set(params = {}, options = {})
656
+ req = build_request(:delete_change_set, params)
657
+ req.send_request(options)
658
+ end
659
+
660
+ # Deletes a specified stack. Once the call completes successfully, stack
661
+ # deletion starts. Deleted stacks do not show up in the DescribeStacks
662
+ # API if the deletion has been completed successfully.
663
+ # @option params [required, String] :stack_name
664
+ # The name or the unique stack ID that is associated with the stack.
665
+ # @option params [Array<String>] :retain_resources
666
+ # For stacks in the `DELETE_FAILED` state, a list of resource logical
667
+ # IDs that are associated with the resources you want to retain. During
668
+ # deletion, AWS CloudFormation deletes the stack but does not delete the
669
+ # retained resources.
670
+ #
671
+ # Retaining resources is useful when you cannot delete a resource, such
672
+ # as a non-empty S3 bucket, but you want to delete the stack.
673
+ # @option params [String] :role_arn
674
+ # The Amazon Resource Name (ARN) of an AWS Identity and Access
675
+ # Management (IAM) role that AWS CloudFormation assumes to delete the
676
+ # stack. AWS CloudFormation uses the role's credentials to make calls
677
+ # on your behalf.
678
+ #
679
+ # If you don't specify a value, AWS CloudFormation uses the role that
680
+ # was previously associated with the stack. If no role is available, AWS
681
+ # CloudFormation uses a temporary session that is generated from your
682
+ # user credentials.
683
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
684
+ #
685
+ # @example Request syntax with placeholder values
686
+ # resp = client.delete_stack({
687
+ # stack_name: "StackName", # required
688
+ # retain_resources: ["LogicalResourceId"],
689
+ # role_arn: "RoleARN",
690
+ # })
691
+ # @overload delete_stack(params = {})
692
+ # @param [Hash] params ({})
693
+ def delete_stack(params = {}, options = {})
694
+ req = build_request(:delete_stack, params)
695
+ req.send_request(options)
696
+ end
697
+
698
+ # Retrieves your account's AWS CloudFormation limits, such as the
699
+ # maximum number of stacks that you can create in your account.
700
+ # @option params [String] :next_token
701
+ # A string that identifies the next page of limits that you want to
702
+ # retrieve.
703
+ # @return [Types::DescribeAccountLimitsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
704
+ #
705
+ # * {Types::DescribeAccountLimitsOutput#account_limits #AccountLimits} => Array&lt;Types::AccountLimit&gt;
706
+ # * {Types::DescribeAccountLimitsOutput#next_token #NextToken} => String
707
+ #
708
+ # @example Request syntax with placeholder values
709
+ # resp = client.describe_account_limits({
710
+ # next_token: "NextToken",
711
+ # })
712
+ #
713
+ # @example Response structure
714
+ # resp.account_limits #=> Array
715
+ # resp.account_limits[0].name #=> String
716
+ # resp.account_limits[0].value #=> Integer
717
+ # resp.next_token #=> String
718
+ # @overload describe_account_limits(params = {})
719
+ # @param [Hash] params ({})
720
+ def describe_account_limits(params = {}, options = {})
721
+ req = build_request(:describe_account_limits, params)
722
+ req.send_request(options)
723
+ end
724
+
725
+ # Returns the inputs for the change set and a list of changes that AWS
726
+ # CloudFormation will make if you execute the change set. For more
727
+ # information, see [Updating Stacks Using Change Sets][1] in the AWS
728
+ # CloudFormation User Guide.
729
+ #
730
+ #
731
+ #
732
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html
733
+ # @option params [required, String] :change_set_name
734
+ # The name or Amazon Resource Name (ARN) of the change set that you want
735
+ # to describe.
736
+ # @option params [String] :stack_name
737
+ # If you specified the name of a change set, specify the stack name or
738
+ # ID (ARN) of the change set you want to describe.
739
+ # @option params [String] :next_token
740
+ # A string (provided by the DescribeChangeSet response output) that
741
+ # identifies the next page of information that you want to retrieve.
742
+ # @return [Types::DescribeChangeSetOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
743
+ #
744
+ # * {Types::DescribeChangeSetOutput#change_set_name #ChangeSetName} => String
745
+ # * {Types::DescribeChangeSetOutput#change_set_id #ChangeSetId} => String
746
+ # * {Types::DescribeChangeSetOutput#stack_id #StackId} => String
747
+ # * {Types::DescribeChangeSetOutput#stack_name #StackName} => String
748
+ # * {Types::DescribeChangeSetOutput#description #Description} => String
749
+ # * {Types::DescribeChangeSetOutput#parameters #Parameters} => Array&lt;Types::Parameter&gt;
750
+ # * {Types::DescribeChangeSetOutput#creation_time #CreationTime} => Time
751
+ # * {Types::DescribeChangeSetOutput#execution_status #ExecutionStatus} => String
752
+ # * {Types::DescribeChangeSetOutput#status #Status} => String
753
+ # * {Types::DescribeChangeSetOutput#status_reason #StatusReason} => String
754
+ # * {Types::DescribeChangeSetOutput#notification_arns #NotificationARNs} => Array&lt;String&gt;
755
+ # * {Types::DescribeChangeSetOutput#capabilities #Capabilities} => Array&lt;String&gt;
756
+ # * {Types::DescribeChangeSetOutput#tags #Tags} => Array&lt;Types::Tag&gt;
757
+ # * {Types::DescribeChangeSetOutput#changes #Changes} => Array&lt;Types::Change&gt;
758
+ # * {Types::DescribeChangeSetOutput#next_token #NextToken} => String
759
+ #
760
+ # @example Request syntax with placeholder values
761
+ # resp = client.describe_change_set({
762
+ # change_set_name: "ChangeSetNameOrId", # required
763
+ # stack_name: "StackNameOrId",
764
+ # next_token: "NextToken",
765
+ # })
766
+ #
767
+ # @example Response structure
768
+ # resp.change_set_name #=> String
769
+ # resp.change_set_id #=> String
770
+ # resp.stack_id #=> String
771
+ # resp.stack_name #=> String
772
+ # resp.description #=> String
773
+ # resp.parameters #=> Array
774
+ # resp.parameters[0].parameter_key #=> String
775
+ # resp.parameters[0].parameter_value #=> String
776
+ # resp.parameters[0].use_previous_value #=> Boolean
777
+ # resp.creation_time #=> Time
778
+ # resp.execution_status #=> String, one of "UNAVAILABLE", "AVAILABLE", "EXECUTE_IN_PROGRESS", "EXECUTE_COMPLETE", "EXECUTE_FAILED", "OBSOLETE"
779
+ # resp.status #=> String, one of "CREATE_PENDING", "CREATE_IN_PROGRESS", "CREATE_COMPLETE", "DELETE_COMPLETE", "FAILED"
780
+ # resp.status_reason #=> String
781
+ # resp.notification_arns #=> Array
782
+ # resp.notification_arns[0] #=> String
783
+ # resp.capabilities #=> Array
784
+ # resp.capabilities[0] #=> String, one of "CAPABILITY_IAM", "CAPABILITY_NAMED_IAM"
785
+ # resp.tags #=> Array
786
+ # resp.tags[0].key #=> String
787
+ # resp.tags[0].value #=> String
788
+ # resp.changes #=> Array
789
+ # resp.changes[0].type #=> String, one of "Resource"
790
+ # resp.changes[0].resource_change.action #=> String, one of "Add", "Modify", "Remove"
791
+ # resp.changes[0].resource_change.logical_resource_id #=> String
792
+ # resp.changes[0].resource_change.physical_resource_id #=> String
793
+ # resp.changes[0].resource_change.resource_type #=> String
794
+ # resp.changes[0].resource_change.replacement #=> String, one of "True", "False", "Conditional"
795
+ # resp.changes[0].resource_change.scope #=> Array
796
+ # resp.changes[0].resource_change.scope[0] #=> String, one of "Properties", "Metadata", "CreationPolicy", "UpdatePolicy", "DeletionPolicy", "Tags"
797
+ # resp.changes[0].resource_change.details #=> Array
798
+ # resp.changes[0].resource_change.details[0].target.attribute #=> String, one of "Properties", "Metadata", "CreationPolicy", "UpdatePolicy", "DeletionPolicy", "Tags"
799
+ # resp.changes[0].resource_change.details[0].target.name #=> String
800
+ # resp.changes[0].resource_change.details[0].target.requires_recreation #=> String, one of "Never", "Conditionally", "Always"
801
+ # resp.changes[0].resource_change.details[0].evaluation #=> String, one of "Static", "Dynamic"
802
+ # resp.changes[0].resource_change.details[0].change_source #=> String, one of "ResourceReference", "ParameterReference", "ResourceAttribute", "DirectModification", "Automatic"
803
+ # resp.changes[0].resource_change.details[0].causing_entity #=> String
804
+ # resp.next_token #=> String
805
+ # @overload describe_change_set(params = {})
806
+ # @param [Hash] params ({})
807
+ def describe_change_set(params = {}, options = {})
808
+ req = build_request(:describe_change_set, params)
809
+ req.send_request(options)
810
+ end
811
+
812
+ # Returns all stack related events for a specified stack in reverse
813
+ # chronological order. For more information about a stack's event
814
+ # history, go to [Stacks][1] in the AWS CloudFormation User Guide.
815
+ #
816
+ # <note markdown="1"> You can list events for stacks that have failed to create or have been
817
+ # deleted by specifying the unique stack identifier (stack ID).
818
+ #
819
+ # </note>
820
+ #
821
+ #
822
+ #
823
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/concept-stack.html
824
+ # @option params [String] :stack_name
825
+ # The name or the unique stack ID that is associated with the stack,
826
+ # which are not always interchangeable:
827
+ #
828
+ # * Running stacks: You can specify either the stack's name or its
829
+ # unique stack ID.
830
+ #
831
+ # * Deleted stacks: You must specify the unique stack ID.
832
+ #
833
+ # Default: There is no default value.
834
+ # @option params [String] :next_token
835
+ # A string that identifies the next page of events that you want to
836
+ # retrieve.
837
+ # @return [Types::DescribeStackEventsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
838
+ #
839
+ # * {Types::DescribeStackEventsOutput#stack_events #StackEvents} => Array&lt;Types::StackEvent&gt;
840
+ # * {Types::DescribeStackEventsOutput#next_token #NextToken} => String
841
+ #
842
+ # @example Request syntax with placeholder values
843
+ # resp = client.describe_stack_events({
844
+ # stack_name: "StackName",
845
+ # next_token: "NextToken",
846
+ # })
847
+ #
848
+ # @example Response structure
849
+ # resp.stack_events #=> Array
850
+ # resp.stack_events[0].stack_id #=> String
851
+ # resp.stack_events[0].event_id #=> String
852
+ # resp.stack_events[0].stack_name #=> String
853
+ # resp.stack_events[0].logical_resource_id #=> String
854
+ # resp.stack_events[0].physical_resource_id #=> String
855
+ # resp.stack_events[0].resource_type #=> String
856
+ # resp.stack_events[0].timestamp #=> Time
857
+ # resp.stack_events[0].resource_status #=> String, one of "CREATE_IN_PROGRESS", "CREATE_FAILED", "CREATE_COMPLETE", "DELETE_IN_PROGRESS", "DELETE_FAILED", "DELETE_COMPLETE", "DELETE_SKIPPED", "UPDATE_IN_PROGRESS", "UPDATE_FAILED", "UPDATE_COMPLETE"
858
+ # resp.stack_events[0].resource_status_reason #=> String
859
+ # resp.stack_events[0].resource_properties #=> String
860
+ # resp.next_token #=> String
861
+ # @overload describe_stack_events(params = {})
862
+ # @param [Hash] params ({})
863
+ def describe_stack_events(params = {}, options = {})
864
+ req = build_request(:describe_stack_events, params)
865
+ req.send_request(options)
866
+ end
867
+
868
+ # Returns a description of the specified resource in the specified
869
+ # stack.
870
+ #
871
+ # For deleted stacks, DescribeStackResource returns resource information
872
+ # for up to 90 days after the stack has been deleted.
873
+ # @option params [required, String] :stack_name
874
+ # The name or the unique stack ID that is associated with the stack,
875
+ # which are not always interchangeable:
876
+ #
877
+ # * Running stacks: You can specify either the stack's name or its
878
+ # unique stack ID.
879
+ #
880
+ # * Deleted stacks: You must specify the unique stack ID.
881
+ #
882
+ # Default: There is no default value.
883
+ # @option params [required, String] :logical_resource_id
884
+ # The logical name of the resource as specified in the template.
885
+ #
886
+ # Default: There is no default value.
887
+ # @return [Types::DescribeStackResourceOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
888
+ #
889
+ # * {Types::DescribeStackResourceOutput#stack_resource_detail #StackResourceDetail} => Types::StackResourceDetail
890
+ #
891
+ # @example Request syntax with placeholder values
892
+ # resp = client.describe_stack_resource({
893
+ # stack_name: "StackName", # required
894
+ # logical_resource_id: "LogicalResourceId", # required
895
+ # })
896
+ #
897
+ # @example Response structure
898
+ # resp.stack_resource_detail.stack_name #=> String
899
+ # resp.stack_resource_detail.stack_id #=> String
900
+ # resp.stack_resource_detail.logical_resource_id #=> String
901
+ # resp.stack_resource_detail.physical_resource_id #=> String
902
+ # resp.stack_resource_detail.resource_type #=> String
903
+ # resp.stack_resource_detail.last_updated_timestamp #=> Time
904
+ # resp.stack_resource_detail.resource_status #=> String, one of "CREATE_IN_PROGRESS", "CREATE_FAILED", "CREATE_COMPLETE", "DELETE_IN_PROGRESS", "DELETE_FAILED", "DELETE_COMPLETE", "DELETE_SKIPPED", "UPDATE_IN_PROGRESS", "UPDATE_FAILED", "UPDATE_COMPLETE"
905
+ # resp.stack_resource_detail.resource_status_reason #=> String
906
+ # resp.stack_resource_detail.description #=> String
907
+ # resp.stack_resource_detail.metadata #=> String
908
+ # @overload describe_stack_resource(params = {})
909
+ # @param [Hash] params ({})
910
+ def describe_stack_resource(params = {}, options = {})
911
+ req = build_request(:describe_stack_resource, params)
912
+ req.send_request(options)
913
+ end
914
+
915
+ # Returns AWS resource descriptions for running and deleted stacks. If
916
+ # `StackName` is specified, all the associated resources that are part
917
+ # of the stack are returned. If `PhysicalResourceId` is specified, the
918
+ # associated resources of the stack that the resource belongs to are
919
+ # returned.
920
+ #
921
+ # <note markdown="1"> Only the first 100 resources will be returned. If your stack has more
922
+ # resources than this, you should use `ListStackResources` instead.
923
+ #
924
+ # </note>
925
+ #
926
+ # For deleted stacks, `DescribeStackResources` returns resource
927
+ # information for up to 90 days after the stack has been deleted.
928
+ #
929
+ # You must specify either `StackName` or `PhysicalResourceId`, but not
930
+ # both. In addition, you can specify `LogicalResourceId` to filter the
931
+ # returned result. For more information about resources, the
932
+ # `LogicalResourceId` and `PhysicalResourceId`, go to the [AWS
933
+ # CloudFormation User Guide][1].
934
+ #
935
+ # <note markdown="1"> A `ValidationError` is returned if you specify both `StackName` and
936
+ # `PhysicalResourceId` in the same request.
937
+ #
938
+ # </note>
939
+ #
940
+ #
941
+ #
942
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/
943
+ # @option params [String] :stack_name
944
+ # The name or the unique stack ID that is associated with the stack,
945
+ # which are not always interchangeable:
946
+ #
947
+ # * Running stacks: You can specify either the stack's name or its
948
+ # unique stack ID.
949
+ #
950
+ # * Deleted stacks: You must specify the unique stack ID.
951
+ #
952
+ # Default: There is no default value.
953
+ #
954
+ # Required: Conditional. If you do not specify `StackName`, you must
955
+ # specify `PhysicalResourceId`.
956
+ # @option params [String] :logical_resource_id
957
+ # The logical name of the resource as specified in the template.
958
+ #
959
+ # Default: There is no default value.
960
+ # @option params [String] :physical_resource_id
961
+ # The name or unique identifier that corresponds to a physical instance
962
+ # ID of a resource supported by AWS CloudFormation.
963
+ #
964
+ # For example, for an Amazon Elastic Compute Cloud (EC2) instance,
965
+ # `PhysicalResourceId` corresponds to the `InstanceId`. You can pass the
966
+ # EC2 `InstanceId` to `DescribeStackResources` to find which stack the
967
+ # instance belongs to and what other resources are part of the stack.
968
+ #
969
+ # Required: Conditional. If you do not specify `PhysicalResourceId`, you
970
+ # must specify `StackName`.
971
+ #
972
+ # Default: There is no default value.
973
+ # @return [Types::DescribeStackResourcesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
974
+ #
975
+ # * {Types::DescribeStackResourcesOutput#stack_resources #StackResources} => Array&lt;Types::StackResource&gt;
976
+ #
977
+ # @example Request syntax with placeholder values
978
+ # resp = client.describe_stack_resources({
979
+ # stack_name: "StackName",
980
+ # logical_resource_id: "LogicalResourceId",
981
+ # physical_resource_id: "PhysicalResourceId",
982
+ # })
983
+ #
984
+ # @example Response structure
985
+ # resp.stack_resources #=> Array
986
+ # resp.stack_resources[0].stack_name #=> String
987
+ # resp.stack_resources[0].stack_id #=> String
988
+ # resp.stack_resources[0].logical_resource_id #=> String
989
+ # resp.stack_resources[0].physical_resource_id #=> String
990
+ # resp.stack_resources[0].resource_type #=> String
991
+ # resp.stack_resources[0].timestamp #=> Time
992
+ # resp.stack_resources[0].resource_status #=> String, one of "CREATE_IN_PROGRESS", "CREATE_FAILED", "CREATE_COMPLETE", "DELETE_IN_PROGRESS", "DELETE_FAILED", "DELETE_COMPLETE", "DELETE_SKIPPED", "UPDATE_IN_PROGRESS", "UPDATE_FAILED", "UPDATE_COMPLETE"
993
+ # resp.stack_resources[0].resource_status_reason #=> String
994
+ # resp.stack_resources[0].description #=> String
995
+ # @overload describe_stack_resources(params = {})
996
+ # @param [Hash] params ({})
997
+ def describe_stack_resources(params = {}, options = {})
998
+ req = build_request(:describe_stack_resources, params)
999
+ req.send_request(options)
1000
+ end
1001
+
1002
+ # Returns the description for the specified stack; if no stack name was
1003
+ # specified, then it returns the description for all the stacks created.
1004
+ #
1005
+ # <note markdown="1"> If the stack does not exist, an `AmazonCloudFormationException` is
1006
+ # returned.
1007
+ #
1008
+ # </note>
1009
+ # @option params [String] :stack_name
1010
+ # The name or the unique stack ID that is associated with the stack,
1011
+ # which are not always interchangeable:
1012
+ #
1013
+ # * Running stacks: You can specify either the stack's name or its
1014
+ # unique stack ID.
1015
+ #
1016
+ # * Deleted stacks: You must specify the unique stack ID.
1017
+ #
1018
+ # Default: There is no default value.
1019
+ # @option params [String] :next_token
1020
+ # A string that identifies the next page of stacks that you want to
1021
+ # retrieve.
1022
+ # @return [Types::DescribeStacksOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1023
+ #
1024
+ # * {Types::DescribeStacksOutput#stacks #Stacks} => Array&lt;Types::Stack&gt;
1025
+ # * {Types::DescribeStacksOutput#next_token #NextToken} => String
1026
+ #
1027
+ # @example Request syntax with placeholder values
1028
+ # resp = client.describe_stacks({
1029
+ # stack_name: "StackName",
1030
+ # next_token: "NextToken",
1031
+ # })
1032
+ #
1033
+ # @example Response structure
1034
+ # resp.stacks #=> Array
1035
+ # resp.stacks[0].stack_id #=> String
1036
+ # resp.stacks[0].stack_name #=> String
1037
+ # resp.stacks[0].change_set_id #=> String
1038
+ # resp.stacks[0].description #=> String
1039
+ # resp.stacks[0].parameters #=> Array
1040
+ # resp.stacks[0].parameters[0].parameter_key #=> String
1041
+ # resp.stacks[0].parameters[0].parameter_value #=> String
1042
+ # resp.stacks[0].parameters[0].use_previous_value #=> Boolean
1043
+ # resp.stacks[0].creation_time #=> Time
1044
+ # resp.stacks[0].last_updated_time #=> Time
1045
+ # resp.stacks[0].stack_status #=> String, one of "CREATE_IN_PROGRESS", "CREATE_FAILED", "CREATE_COMPLETE", "ROLLBACK_IN_PROGRESS", "ROLLBACK_FAILED", "ROLLBACK_COMPLETE", "DELETE_IN_PROGRESS", "DELETE_FAILED", "DELETE_COMPLETE", "UPDATE_IN_PROGRESS", "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS", "UPDATE_COMPLETE", "UPDATE_ROLLBACK_IN_PROGRESS", "UPDATE_ROLLBACK_FAILED", "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS", "UPDATE_ROLLBACK_COMPLETE", "REVIEW_IN_PROGRESS"
1046
+ # resp.stacks[0].stack_status_reason #=> String
1047
+ # resp.stacks[0].disable_rollback #=> Boolean
1048
+ # resp.stacks[0].notification_arns #=> Array
1049
+ # resp.stacks[0].notification_arns[0] #=> String
1050
+ # resp.stacks[0].timeout_in_minutes #=> Integer
1051
+ # resp.stacks[0].capabilities #=> Array
1052
+ # resp.stacks[0].capabilities[0] #=> String, one of "CAPABILITY_IAM", "CAPABILITY_NAMED_IAM"
1053
+ # resp.stacks[0].outputs #=> Array
1054
+ # resp.stacks[0].outputs[0].output_key #=> String
1055
+ # resp.stacks[0].outputs[0].output_value #=> String
1056
+ # resp.stacks[0].outputs[0].description #=> String
1057
+ # resp.stacks[0].role_arn #=> String
1058
+ # resp.stacks[0].tags #=> Array
1059
+ # resp.stacks[0].tags[0].key #=> String
1060
+ # resp.stacks[0].tags[0].value #=> String
1061
+ # resp.next_token #=> String
1062
+ # @overload describe_stacks(params = {})
1063
+ # @param [Hash] params ({})
1064
+ def describe_stacks(params = {}, options = {})
1065
+ req = build_request(:describe_stacks, params)
1066
+ req.send_request(options)
1067
+ end
1068
+
1069
+ # Returns the estimated monthly cost of a template. The return value is
1070
+ # an AWS Simple Monthly Calculator URL with a query string that
1071
+ # describes the resources required to run the template.
1072
+ # @option params [String] :template_body
1073
+ # Structure containing the template body with a minimum length of 1 byte
1074
+ # and a maximum length of 51,200 bytes. (For more information, go to
1075
+ # [Template Anatomy][1] in the AWS CloudFormation User Guide.)
1076
+ #
1077
+ # Conditional: You must pass `TemplateBody` or `TemplateURL`. If both
1078
+ # are passed, only `TemplateBody` is used.
1079
+ #
1080
+ #
1081
+ #
1082
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
1083
+ # @option params [String] :template_url
1084
+ # Location of file containing the template body. The URL must point to a
1085
+ # template that is located in an Amazon S3 bucket. For more information,
1086
+ # go to [Template Anatomy][1] in the AWS CloudFormation User Guide.
1087
+ #
1088
+ # Conditional: You must pass `TemplateURL` or `TemplateBody`. If both
1089
+ # are passed, only `TemplateBody` is used.
1090
+ #
1091
+ #
1092
+ #
1093
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
1094
+ # @option params [Array<Types::Parameter>] :parameters
1095
+ # A list of `Parameter` structures that specify input parameters.
1096
+ # @return [Types::EstimateTemplateCostOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1097
+ #
1098
+ # * {Types::EstimateTemplateCostOutput#url #Url} => String
1099
+ #
1100
+ # @example Request syntax with placeholder values
1101
+ # resp = client.estimate_template_cost({
1102
+ # template_body: "TemplateBody",
1103
+ # template_url: "TemplateURL",
1104
+ # parameters: [
1105
+ # {
1106
+ # parameter_key: "ParameterKey",
1107
+ # parameter_value: "ParameterValue",
1108
+ # use_previous_value: false,
1109
+ # },
1110
+ # ],
1111
+ # })
1112
+ #
1113
+ # @example Response structure
1114
+ # resp.url #=> String
1115
+ # @overload estimate_template_cost(params = {})
1116
+ # @param [Hash] params ({})
1117
+ def estimate_template_cost(params = {}, options = {})
1118
+ req = build_request(:estimate_template_cost, params)
1119
+ req.send_request(options)
1120
+ end
1121
+
1122
+ # Updates a stack using the input information that was provided when the
1123
+ # specified change set was created. After the call successfully
1124
+ # completes, AWS CloudFormation starts updating the stack. Use the
1125
+ # DescribeStacks action to view the status of the update.
1126
+ #
1127
+ # When you execute a change set, AWS CloudFormation deletes all other
1128
+ # change sets associated with the stack because they aren't valid for
1129
+ # the updated stack.
1130
+ #
1131
+ # If a stack policy is associated with the stack, AWS CloudFormation
1132
+ # enforces the policy during the update. You can't specify a temporary
1133
+ # stack policy that overrides the current policy.
1134
+ # @option params [required, String] :change_set_name
1135
+ # The name or ARN of the change set that you want use to update the
1136
+ # specified stack.
1137
+ # @option params [String] :stack_name
1138
+ # If you specified the name of a change set, specify the stack name or
1139
+ # ID (ARN) that is associated with the change set you want to execute.
1140
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1141
+ #
1142
+ # @example Request syntax with placeholder values
1143
+ # resp = client.execute_change_set({
1144
+ # change_set_name: "ChangeSetNameOrId", # required
1145
+ # stack_name: "StackNameOrId",
1146
+ # })
1147
+ # @overload execute_change_set(params = {})
1148
+ # @param [Hash] params ({})
1149
+ def execute_change_set(params = {}, options = {})
1150
+ req = build_request(:execute_change_set, params)
1151
+ req.send_request(options)
1152
+ end
1153
+
1154
+ # Returns the stack policy for a specified stack. If a stack doesn't
1155
+ # have a policy, a null value is returned.
1156
+ # @option params [required, String] :stack_name
1157
+ # The name or unique stack ID that is associated with the stack whose
1158
+ # policy you want to get.
1159
+ # @return [Types::GetStackPolicyOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1160
+ #
1161
+ # * {Types::GetStackPolicyOutput#stack_policy_body #StackPolicyBody} => String
1162
+ #
1163
+ # @example Request syntax with placeholder values
1164
+ # resp = client.get_stack_policy({
1165
+ # stack_name: "StackName", # required
1166
+ # })
1167
+ #
1168
+ # @example Response structure
1169
+ # resp.stack_policy_body #=> String
1170
+ # @overload get_stack_policy(params = {})
1171
+ # @param [Hash] params ({})
1172
+ def get_stack_policy(params = {}, options = {})
1173
+ req = build_request(:get_stack_policy, params)
1174
+ req.send_request(options)
1175
+ end
1176
+
1177
+ # Returns the template body for a specified stack. You can get the
1178
+ # template for running or deleted stacks.
1179
+ #
1180
+ # For deleted stacks, GetTemplate returns the template for up to 90 days
1181
+ # after the stack has been deleted.
1182
+ #
1183
+ # <note markdown="1"> If the template does not exist, a `ValidationError` is returned.
1184
+ #
1185
+ # </note>
1186
+ # @option params [String] :stack_name
1187
+ # The name or the unique stack ID that is associated with the stack,
1188
+ # which are not always interchangeable:
1189
+ #
1190
+ # * Running stacks: You can specify either the stack's name or its
1191
+ # unique stack ID.
1192
+ #
1193
+ # * Deleted stacks: You must specify the unique stack ID.
1194
+ #
1195
+ # Default: There is no default value.
1196
+ # @option params [String] :change_set_name
1197
+ # The name or Amazon Resource Name (ARN) of a change set for which AWS
1198
+ # CloudFormation returns the associated template. If you specify a name,
1199
+ # you must also specify the `StackName`.
1200
+ # @option params [String] :template_stage
1201
+ # For templates that include transforms, the stage of the template that
1202
+ # AWS CloudFormation returns. To get the user-submitted template,
1203
+ # specify `Original`. To get the template after AWS CloudFormation has
1204
+ # processed all transforms, specify `Processed`.
1205
+ #
1206
+ # If the template doesn't include transforms, `Original` and
1207
+ # `Processed` return the same template. By default, AWS CloudFormation
1208
+ # specifies `Original`.
1209
+ # @return [Types::GetTemplateOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1210
+ #
1211
+ # * {Types::GetTemplateOutput#template_body #TemplateBody} => String
1212
+ # * {Types::GetTemplateOutput#stages_available #StagesAvailable} => Array&lt;String&gt;
1213
+ #
1214
+ # @example Request syntax with placeholder values
1215
+ # resp = client.get_template({
1216
+ # stack_name: "StackName",
1217
+ # change_set_name: "ChangeSetNameOrId",
1218
+ # template_stage: "Original", # accepts Original, Processed
1219
+ # })
1220
+ #
1221
+ # @example Response structure
1222
+ # resp.template_body #=> String
1223
+ # resp.stages_available #=> Array
1224
+ # resp.stages_available[0] #=> String, one of "Original", "Processed"
1225
+ # @overload get_template(params = {})
1226
+ # @param [Hash] params ({})
1227
+ def get_template(params = {}, options = {})
1228
+ req = build_request(:get_template, params)
1229
+ req.send_request(options)
1230
+ end
1231
+
1232
+ # Returns information about a new or existing template. The
1233
+ # `GetTemplateSummary` action is useful for viewing parameter
1234
+ # information, such as default parameter values and parameter types,
1235
+ # before you create or update a stack.
1236
+ #
1237
+ # You can use the `GetTemplateSummary` action when you submit a
1238
+ # template, or you can get template information for a running or deleted
1239
+ # stack.
1240
+ #
1241
+ # For deleted stacks, `GetTemplateSummary` returns the template
1242
+ # information for up to 90 days after the stack has been deleted. If the
1243
+ # template does not exist, a `ValidationError` is returned.
1244
+ # @option params [String] :template_body
1245
+ # Structure containing the template body with a minimum length of 1 byte
1246
+ # and a maximum length of 51,200 bytes. For more information about
1247
+ # templates, see [Template Anatomy][1] in the AWS CloudFormation User
1248
+ # Guide.
1249
+ #
1250
+ # Conditional: You must specify only one of the following parameters:
1251
+ # `StackName`, `TemplateBody`, or `TemplateURL`.
1252
+ #
1253
+ #
1254
+ #
1255
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
1256
+ # @option params [String] :template_url
1257
+ # Location of file containing the template body. The URL must point to a
1258
+ # template (max size: 460,800 bytes) that is located in an Amazon S3
1259
+ # bucket. For more information about templates, see [Template
1260
+ # Anatomy][1] in the AWS CloudFormation User Guide.
1261
+ #
1262
+ # Conditional: You must specify only one of the following parameters:
1263
+ # `StackName`, `TemplateBody`, or `TemplateURL`.
1264
+ #
1265
+ #
1266
+ #
1267
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
1268
+ # @option params [String] :stack_name
1269
+ # The name or the stack ID that is associated with the stack, which are
1270
+ # not always interchangeable. For running stacks, you can specify either
1271
+ # the stack's name or its unique stack ID. For deleted stack, you must
1272
+ # specify the unique stack ID.
1273
+ #
1274
+ # Conditional: You must specify only one of the following parameters:
1275
+ # `StackName`, `TemplateBody`, or `TemplateURL`.
1276
+ # @return [Types::GetTemplateSummaryOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1277
+ #
1278
+ # * {Types::GetTemplateSummaryOutput#parameters #Parameters} => Array&lt;Types::ParameterDeclaration&gt;
1279
+ # * {Types::GetTemplateSummaryOutput#description #Description} => String
1280
+ # * {Types::GetTemplateSummaryOutput#capabilities #Capabilities} => Array&lt;String&gt;
1281
+ # * {Types::GetTemplateSummaryOutput#capabilities_reason #CapabilitiesReason} => String
1282
+ # * {Types::GetTemplateSummaryOutput#resource_types #ResourceTypes} => Array&lt;String&gt;
1283
+ # * {Types::GetTemplateSummaryOutput#version #Version} => String
1284
+ # * {Types::GetTemplateSummaryOutput#metadata #Metadata} => String
1285
+ # * {Types::GetTemplateSummaryOutput#declared_transforms #DeclaredTransforms} => Array&lt;String&gt;
1286
+ #
1287
+ # @example Request syntax with placeholder values
1288
+ # resp = client.get_template_summary({
1289
+ # template_body: "TemplateBody",
1290
+ # template_url: "TemplateURL",
1291
+ # stack_name: "StackNameOrId",
1292
+ # })
1293
+ #
1294
+ # @example Response structure
1295
+ # resp.parameters #=> Array
1296
+ # resp.parameters[0].parameter_key #=> String
1297
+ # resp.parameters[0].default_value #=> String
1298
+ # resp.parameters[0].parameter_type #=> String
1299
+ # resp.parameters[0].no_echo #=> Boolean
1300
+ # resp.parameters[0].description #=> String
1301
+ # resp.parameters[0].parameter_constraints.allowed_values #=> Array
1302
+ # resp.parameters[0].parameter_constraints.allowed_values[0] #=> String
1303
+ # resp.description #=> String
1304
+ # resp.capabilities #=> Array
1305
+ # resp.capabilities[0] #=> String, one of "CAPABILITY_IAM", "CAPABILITY_NAMED_IAM"
1306
+ # resp.capabilities_reason #=> String
1307
+ # resp.resource_types #=> Array
1308
+ # resp.resource_types[0] #=> String
1309
+ # resp.version #=> String
1310
+ # resp.metadata #=> String
1311
+ # resp.declared_transforms #=> Array
1312
+ # resp.declared_transforms[0] #=> String
1313
+ # @overload get_template_summary(params = {})
1314
+ # @param [Hash] params ({})
1315
+ def get_template_summary(params = {}, options = {})
1316
+ req = build_request(:get_template_summary, params)
1317
+ req.send_request(options)
1318
+ end
1319
+
1320
+ # Returns the ID and status of each active change set for a stack. For
1321
+ # example, AWS CloudFormation lists change sets that are in the
1322
+ # `CREATE_IN_PROGRESS` or `CREATE_PENDING` state.
1323
+ # @option params [required, String] :stack_name
1324
+ # The name or the Amazon Resource Name (ARN) of the stack for which you
1325
+ # want to list change sets.
1326
+ # @option params [String] :next_token
1327
+ # A string (provided by the ListChangeSets response output) that
1328
+ # identifies the next page of change sets that you want to retrieve.
1329
+ # @return [Types::ListChangeSetsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1330
+ #
1331
+ # * {Types::ListChangeSetsOutput#summaries #Summaries} => Array&lt;Types::ChangeSetSummary&gt;
1332
+ # * {Types::ListChangeSetsOutput#next_token #NextToken} => String
1333
+ #
1334
+ # @example Request syntax with placeholder values
1335
+ # resp = client.list_change_sets({
1336
+ # stack_name: "StackNameOrId", # required
1337
+ # next_token: "NextToken",
1338
+ # })
1339
+ #
1340
+ # @example Response structure
1341
+ # resp.summaries #=> Array
1342
+ # resp.summaries[0].stack_id #=> String
1343
+ # resp.summaries[0].stack_name #=> String
1344
+ # resp.summaries[0].change_set_id #=> String
1345
+ # resp.summaries[0].change_set_name #=> String
1346
+ # resp.summaries[0].execution_status #=> String, one of "UNAVAILABLE", "AVAILABLE", "EXECUTE_IN_PROGRESS", "EXECUTE_COMPLETE", "EXECUTE_FAILED", "OBSOLETE"
1347
+ # resp.summaries[0].status #=> String, one of "CREATE_PENDING", "CREATE_IN_PROGRESS", "CREATE_COMPLETE", "DELETE_COMPLETE", "FAILED"
1348
+ # resp.summaries[0].status_reason #=> String
1349
+ # resp.summaries[0].creation_time #=> Time
1350
+ # resp.summaries[0].description #=> String
1351
+ # resp.next_token #=> String
1352
+ # @overload list_change_sets(params = {})
1353
+ # @param [Hash] params ({})
1354
+ def list_change_sets(params = {}, options = {})
1355
+ req = build_request(:list_change_sets, params)
1356
+ req.send_request(options)
1357
+ end
1358
+
1359
+ # Lists all exported output values in the account and region in which
1360
+ # you call this action. Use this action to see the exported output
1361
+ # values that you can import into other stacks. To import values, use
1362
+ # the [ `Fn::ImportValue` ][1] function.
1363
+ #
1364
+ # For more information, see [ AWS CloudFormation Export Stack Output
1365
+ # Values][2].
1366
+ #
1367
+ #
1368
+ #
1369
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html
1370
+ # [2]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-exports.html
1371
+ # @option params [String] :next_token
1372
+ # A string (provided by the ListExports response output) that identifies
1373
+ # the next page of exported output values that you asked to retrieve.
1374
+ # @return [Types::ListExportsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1375
+ #
1376
+ # * {Types::ListExportsOutput#exports #Exports} => Array&lt;Types::Export&gt;
1377
+ # * {Types::ListExportsOutput#next_token #NextToken} => String
1378
+ #
1379
+ # @example Request syntax with placeholder values
1380
+ # resp = client.list_exports({
1381
+ # next_token: "NextToken",
1382
+ # })
1383
+ #
1384
+ # @example Response structure
1385
+ # resp.exports #=> Array
1386
+ # resp.exports[0].exporting_stack_id #=> String
1387
+ # resp.exports[0].name #=> String
1388
+ # resp.exports[0].value #=> String
1389
+ # resp.next_token #=> String
1390
+ # @overload list_exports(params = {})
1391
+ # @param [Hash] params ({})
1392
+ def list_exports(params = {}, options = {})
1393
+ req = build_request(:list_exports, params)
1394
+ req.send_request(options)
1395
+ end
1396
+
1397
+ # Lists all stacks that are importing an exported output value. To
1398
+ # modify or remove an exported output value, first use this action to
1399
+ # see which stacks are using it. To see the exported output values in
1400
+ # your account, see ListExports.
1401
+ #
1402
+ # For more information about importing an exported output value, see the
1403
+ # [ `Fn::ImportValue` ][1] function.
1404
+ #
1405
+ #
1406
+ #
1407
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html
1408
+ # @option params [required, String] :export_name
1409
+ # The name of the exported output value. AWS CloudFormation returns the
1410
+ # stack names that are importing this value.
1411
+ # @option params [String] :next_token
1412
+ # A string (provided by the ListImports response output) that identifies
1413
+ # the next page of stacks that are importing the specified exported
1414
+ # output value.
1415
+ # @return [Types::ListImportsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1416
+ #
1417
+ # * {Types::ListImportsOutput#imports #Imports} => Array&lt;String&gt;
1418
+ # * {Types::ListImportsOutput#next_token #NextToken} => String
1419
+ #
1420
+ # @example Request syntax with placeholder values
1421
+ # resp = client.list_imports({
1422
+ # export_name: "ExportName", # required
1423
+ # next_token: "NextToken",
1424
+ # })
1425
+ #
1426
+ # @example Response structure
1427
+ # resp.imports #=> Array
1428
+ # resp.imports[0] #=> String
1429
+ # resp.next_token #=> String
1430
+ # @overload list_imports(params = {})
1431
+ # @param [Hash] params ({})
1432
+ def list_imports(params = {}, options = {})
1433
+ req = build_request(:list_imports, params)
1434
+ req.send_request(options)
1435
+ end
1436
+
1437
+ # Returns descriptions of all resources of the specified stack.
1438
+ #
1439
+ # For deleted stacks, ListStackResources returns resource information
1440
+ # for up to 90 days after the stack has been deleted.
1441
+ # @option params [required, String] :stack_name
1442
+ # The name or the unique stack ID that is associated with the stack,
1443
+ # which are not always interchangeable:
1444
+ #
1445
+ # * Running stacks: You can specify either the stack's name or its
1446
+ # unique stack ID.
1447
+ #
1448
+ # * Deleted stacks: You must specify the unique stack ID.
1449
+ #
1450
+ # Default: There is no default value.
1451
+ # @option params [String] :next_token
1452
+ # A string that identifies the next page of stack resources that you
1453
+ # want to retrieve.
1454
+ # @return [Types::ListStackResourcesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1455
+ #
1456
+ # * {Types::ListStackResourcesOutput#stack_resource_summaries #StackResourceSummaries} => Array&lt;Types::StackResourceSummary&gt;
1457
+ # * {Types::ListStackResourcesOutput#next_token #NextToken} => String
1458
+ #
1459
+ # @example Request syntax with placeholder values
1460
+ # resp = client.list_stack_resources({
1461
+ # stack_name: "StackName", # required
1462
+ # next_token: "NextToken",
1463
+ # })
1464
+ #
1465
+ # @example Response structure
1466
+ # resp.stack_resource_summaries #=> Array
1467
+ # resp.stack_resource_summaries[0].logical_resource_id #=> String
1468
+ # resp.stack_resource_summaries[0].physical_resource_id #=> String
1469
+ # resp.stack_resource_summaries[0].resource_type #=> String
1470
+ # resp.stack_resource_summaries[0].last_updated_timestamp #=> Time
1471
+ # resp.stack_resource_summaries[0].resource_status #=> String, one of "CREATE_IN_PROGRESS", "CREATE_FAILED", "CREATE_COMPLETE", "DELETE_IN_PROGRESS", "DELETE_FAILED", "DELETE_COMPLETE", "DELETE_SKIPPED", "UPDATE_IN_PROGRESS", "UPDATE_FAILED", "UPDATE_COMPLETE"
1472
+ # resp.stack_resource_summaries[0].resource_status_reason #=> String
1473
+ # resp.next_token #=> String
1474
+ # @overload list_stack_resources(params = {})
1475
+ # @param [Hash] params ({})
1476
+ def list_stack_resources(params = {}, options = {})
1477
+ req = build_request(:list_stack_resources, params)
1478
+ req.send_request(options)
1479
+ end
1480
+
1481
+ # Returns the summary information for stacks whose status matches the
1482
+ # specified StackStatusFilter. Summary information for stacks that have
1483
+ # been deleted is kept for 90 days after the stack is deleted. If no
1484
+ # StackStatusFilter is specified, summary information for all stacks is
1485
+ # returned (including existing stacks and stacks that have been
1486
+ # deleted).
1487
+ # @option params [String] :next_token
1488
+ # A string that identifies the next page of stacks that you want to
1489
+ # retrieve.
1490
+ # @option params [Array<String>] :stack_status_filter
1491
+ # Stack status to use as a filter. Specify one or more stack status
1492
+ # codes to list only stacks with the specified status codes. For a
1493
+ # complete list of stack status codes, see the `StackStatus` parameter
1494
+ # of the Stack data type.
1495
+ # @return [Types::ListStacksOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1496
+ #
1497
+ # * {Types::ListStacksOutput#stack_summaries #StackSummaries} => Array&lt;Types::StackSummary&gt;
1498
+ # * {Types::ListStacksOutput#next_token #NextToken} => String
1499
+ #
1500
+ # @example Request syntax with placeholder values
1501
+ # resp = client.list_stacks({
1502
+ # next_token: "NextToken",
1503
+ # stack_status_filter: ["CREATE_IN_PROGRESS"], # accepts CREATE_IN_PROGRESS, CREATE_FAILED, CREATE_COMPLETE, ROLLBACK_IN_PROGRESS, ROLLBACK_FAILED, ROLLBACK_COMPLETE, DELETE_IN_PROGRESS, DELETE_FAILED, DELETE_COMPLETE, UPDATE_IN_PROGRESS, UPDATE_COMPLETE_CLEANUP_IN_PROGRESS, UPDATE_COMPLETE, UPDATE_ROLLBACK_IN_PROGRESS, UPDATE_ROLLBACK_FAILED, UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS, UPDATE_ROLLBACK_COMPLETE, REVIEW_IN_PROGRESS
1504
+ # })
1505
+ #
1506
+ # @example Response structure
1507
+ # resp.stack_summaries #=> Array
1508
+ # resp.stack_summaries[0].stack_id #=> String
1509
+ # resp.stack_summaries[0].stack_name #=> String
1510
+ # resp.stack_summaries[0].template_description #=> String
1511
+ # resp.stack_summaries[0].creation_time #=> Time
1512
+ # resp.stack_summaries[0].last_updated_time #=> Time
1513
+ # resp.stack_summaries[0].deletion_time #=> Time
1514
+ # resp.stack_summaries[0].stack_status #=> String, one of "CREATE_IN_PROGRESS", "CREATE_FAILED", "CREATE_COMPLETE", "ROLLBACK_IN_PROGRESS", "ROLLBACK_FAILED", "ROLLBACK_COMPLETE", "DELETE_IN_PROGRESS", "DELETE_FAILED", "DELETE_COMPLETE", "UPDATE_IN_PROGRESS", "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS", "UPDATE_COMPLETE", "UPDATE_ROLLBACK_IN_PROGRESS", "UPDATE_ROLLBACK_FAILED", "UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS", "UPDATE_ROLLBACK_COMPLETE", "REVIEW_IN_PROGRESS"
1515
+ # resp.stack_summaries[0].stack_status_reason #=> String
1516
+ # resp.next_token #=> String
1517
+ # @overload list_stacks(params = {})
1518
+ # @param [Hash] params ({})
1519
+ def list_stacks(params = {}, options = {})
1520
+ req = build_request(:list_stacks, params)
1521
+ req.send_request(options)
1522
+ end
1523
+
1524
+ # Sets a stack policy for a specified stack.
1525
+ # @option params [required, String] :stack_name
1526
+ # The name or unique stack ID that you want to associate a policy with.
1527
+ # @option params [String] :stack_policy_body
1528
+ # Structure containing the stack policy body. For more information, go
1529
+ # to [ Prevent Updates to Stack Resources][1] in the AWS CloudFormation
1530
+ # User Guide. You can specify either the `StackPolicyBody` or the
1531
+ # `StackPolicyURL` parameter, but not both.
1532
+ #
1533
+ #
1534
+ #
1535
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html
1536
+ # @option params [String] :stack_policy_url
1537
+ # Location of a file containing the stack policy. The URL must point to
1538
+ # a policy (maximum size: 16 KB) located in an S3 bucket in the same
1539
+ # region as the stack. You can specify either the `StackPolicyBody` or
1540
+ # the `StackPolicyURL` parameter, but not both.
1541
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1542
+ #
1543
+ # @example Request syntax with placeholder values
1544
+ # resp = client.set_stack_policy({
1545
+ # stack_name: "StackName", # required
1546
+ # stack_policy_body: "StackPolicyBody",
1547
+ # stack_policy_url: "StackPolicyURL",
1548
+ # })
1549
+ # @overload set_stack_policy(params = {})
1550
+ # @param [Hash] params ({})
1551
+ def set_stack_policy(params = {}, options = {})
1552
+ req = build_request(:set_stack_policy, params)
1553
+ req.send_request(options)
1554
+ end
1555
+
1556
+ # Sends a signal to the specified resource with a success or failure
1557
+ # status. You can use the SignalResource API in conjunction with a
1558
+ # creation policy or update policy. AWS CloudFormation doesn't proceed
1559
+ # with a stack creation or update until resources receive the required
1560
+ # number of signals or the timeout period is exceeded. The
1561
+ # SignalResource API is useful in cases where you want to send signals
1562
+ # from anywhere other than an Amazon EC2 instance.
1563
+ # @option params [required, String] :stack_name
1564
+ # The stack name or unique stack ID that includes the resource that you
1565
+ # want to signal.
1566
+ # @option params [required, String] :logical_resource_id
1567
+ # The logical ID of the resource that you want to signal. The logical ID
1568
+ # is the name of the resource that given in the template.
1569
+ # @option params [required, String] :unique_id
1570
+ # A unique ID of the signal. When you signal Amazon EC2 instances or
1571
+ # Auto Scaling groups, specify the instance ID that you are signaling as
1572
+ # the unique ID. If you send multiple signals to a single resource (such
1573
+ # as signaling a wait condition), each signal requires a different
1574
+ # unique ID.
1575
+ # @option params [required, String] :status
1576
+ # The status of the signal, which is either success or failure. A
1577
+ # failure signal causes AWS CloudFormation to immediately fail the stack
1578
+ # creation or update.
1579
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1580
+ #
1581
+ # @example Request syntax with placeholder values
1582
+ # resp = client.signal_resource({
1583
+ # stack_name: "StackNameOrId", # required
1584
+ # logical_resource_id: "LogicalResourceId", # required
1585
+ # unique_id: "ResourceSignalUniqueId", # required
1586
+ # status: "SUCCESS", # required, accepts SUCCESS, FAILURE
1587
+ # })
1588
+ # @overload signal_resource(params = {})
1589
+ # @param [Hash] params ({})
1590
+ def signal_resource(params = {}, options = {})
1591
+ req = build_request(:signal_resource, params)
1592
+ req.send_request(options)
1593
+ end
1594
+
1595
+ # Updates a stack as specified in the template. After the call completes
1596
+ # successfully, the stack update starts. You can check the status of the
1597
+ # stack via the DescribeStacks action.
1598
+ #
1599
+ # To get a copy of the template for an existing stack, you can use the
1600
+ # GetTemplate action.
1601
+ #
1602
+ # For more information about creating an update template, updating a
1603
+ # stack, and monitoring the progress of the update, see [Updating a
1604
+ # Stack][1].
1605
+ #
1606
+ #
1607
+ #
1608
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html
1609
+ # @option params [required, String] :stack_name
1610
+ # The name or unique stack ID of the stack to update.
1611
+ # @option params [String] :template_body
1612
+ # Structure containing the template body with a minimum length of 1 byte
1613
+ # and a maximum length of 51,200 bytes. (For more information, go to
1614
+ # [Template Anatomy][1] in the AWS CloudFormation User Guide.)
1615
+ #
1616
+ # Conditional: You must specify either the `TemplateBody` or the
1617
+ # `TemplateURL` parameter, but not both.
1618
+ #
1619
+ #
1620
+ #
1621
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
1622
+ # @option params [String] :template_url
1623
+ # Location of file containing the template body. The URL must point to a
1624
+ # template that is located in an Amazon S3 bucket. For more information,
1625
+ # go to [Template Anatomy][1] in the AWS CloudFormation User Guide.
1626
+ #
1627
+ # Conditional: You must specify either the `TemplateBody` or the
1628
+ # `TemplateURL` parameter, but not both.
1629
+ #
1630
+ #
1631
+ #
1632
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
1633
+ # @option params [Boolean] :use_previous_template
1634
+ # Reuse the existing template that is associated with the stack that you
1635
+ # are updating.
1636
+ # @option params [String] :stack_policy_during_update_body
1637
+ # Structure containing the temporary overriding stack policy body. You
1638
+ # can specify either the `StackPolicyDuringUpdateBody` or the
1639
+ # `StackPolicyDuringUpdateURL` parameter, but not both.
1640
+ #
1641
+ # If you want to update protected resources, specify a temporary
1642
+ # overriding stack policy during this update. If you do not specify a
1643
+ # stack policy, the current policy that is associated with the stack
1644
+ # will be used.
1645
+ # @option params [String] :stack_policy_during_update_url
1646
+ # Location of a file containing the temporary overriding stack policy.
1647
+ # The URL must point to a policy (max size: 16KB) located in an S3
1648
+ # bucket in the same region as the stack. You can specify either the
1649
+ # `StackPolicyDuringUpdateBody` or the `StackPolicyDuringUpdateURL`
1650
+ # parameter, but not both.
1651
+ #
1652
+ # If you want to update protected resources, specify a temporary
1653
+ # overriding stack policy during this update. If you do not specify a
1654
+ # stack policy, the current policy that is associated with the stack
1655
+ # will be used.
1656
+ # @option params [Array<Types::Parameter>] :parameters
1657
+ # A list of `Parameter` structures that specify input parameters for the
1658
+ # stack. For more information, see the [Parameter][1] data type.
1659
+ #
1660
+ #
1661
+ #
1662
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html
1663
+ # @option params [Array<String>] :capabilities
1664
+ # A list of values that you must specify before AWS CloudFormation can
1665
+ # update certain stacks. Some stack templates might include resources
1666
+ # that can affect permissions in your AWS account, for example, by
1667
+ # creating new AWS Identity and Access Management (IAM) users. For those
1668
+ # stacks, you must explicitly acknowledge their capabilities by
1669
+ # specifying this parameter.
1670
+ #
1671
+ # The only valid values are `CAPABILITY_IAM` and `CAPABILITY_NAMED_IAM`.
1672
+ # The following resources require you to specify this parameter: [
1673
+ # AWS::IAM::AccessKey][1], [ AWS::IAM::Group][2], [
1674
+ # AWS::IAM::InstanceProfile][3], [ AWS::IAM::Policy][4], [
1675
+ # AWS::IAM::Role][5], [ AWS::IAM::User][6], and [
1676
+ # AWS::IAM::UserToGroupAddition][7]. If your stack template contains
1677
+ # these resources, we recommend that you review all permissions
1678
+ # associated with them and edit their permissions if necessary.
1679
+ #
1680
+ # If you have IAM resources, you can specify either capability. If you
1681
+ # have IAM resources with custom names, you must specify
1682
+ # `CAPABILITY_NAMED_IAM`. If you don't specify this parameter, this
1683
+ # action returns an `InsufficientCapabilities` error.
1684
+ #
1685
+ # For more information, see [Acknowledging IAM Resources in AWS
1686
+ # CloudFormation Templates][8].
1687
+ #
1688
+ #
1689
+ #
1690
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html
1691
+ # [2]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html
1692
+ # [3]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html
1693
+ # [4]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html
1694
+ # [5]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html
1695
+ # [6]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html
1696
+ # [7]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html
1697
+ # [8]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities
1698
+ # @option params [Array<String>] :resource_types
1699
+ # The template resource types that you have permissions to work with for
1700
+ # this update stack action, such as `AWS::EC2::Instance`, `AWS::EC2::*`,
1701
+ # or `Custom::MyCustomInstance`.
1702
+ #
1703
+ # If the list of resource types doesn't include a resource that you're
1704
+ # updating, the stack update fails. By default, AWS CloudFormation
1705
+ # grants permissions to all resource types. AWS Identity and Access
1706
+ # Management (IAM) uses this parameter for AWS CloudFormation-specific
1707
+ # condition keys in IAM policies. For more information, see [Controlling
1708
+ # Access with AWS Identity and Access Management][1].
1709
+ #
1710
+ #
1711
+ #
1712
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html
1713
+ # @option params [String] :role_arn
1714
+ # The Amazon Resource Name (ARN) of an AWS Identity and Access
1715
+ # Management (IAM) role that AWS CloudFormation assumes to update the
1716
+ # stack. AWS CloudFormation uses the role's credentials to make calls
1717
+ # on your behalf. AWS CloudFormation always uses this role for all
1718
+ # future operations on the stack. As long as users have permission to
1719
+ # operate on the stack, AWS CloudFormation uses this role even if the
1720
+ # users don't have permission to pass it. Ensure that the role grants
1721
+ # least privilege.
1722
+ #
1723
+ # If you don't specify a value, AWS CloudFormation uses the role that
1724
+ # was previously associated with the stack. If no role is available, AWS
1725
+ # CloudFormation uses a temporary session that is generated from your
1726
+ # user credentials.
1727
+ # @option params [String] :stack_policy_body
1728
+ # Structure containing a new stack policy body. You can specify either
1729
+ # the `StackPolicyBody` or the `StackPolicyURL` parameter, but not both.
1730
+ #
1731
+ # You might update the stack policy, for example, in order to protect a
1732
+ # new resource that you created during a stack update. If you do not
1733
+ # specify a stack policy, the current policy that is associated with the
1734
+ # stack is unchanged.
1735
+ # @option params [String] :stack_policy_url
1736
+ # Location of a file containing the updated stack policy. The URL must
1737
+ # point to a policy (max size: 16KB) located in an S3 bucket in the same
1738
+ # region as the stack. You can specify either the `StackPolicyBody` or
1739
+ # the `StackPolicyURL` parameter, but not both.
1740
+ #
1741
+ # You might update the stack policy, for example, in order to protect a
1742
+ # new resource that you created during a stack update. If you do not
1743
+ # specify a stack policy, the current policy that is associated with the
1744
+ # stack is unchanged.
1745
+ # @option params [Array<String>] :notification_arns
1746
+ # Amazon Simple Notification Service topic Amazon Resource Names (ARNs)
1747
+ # that AWS CloudFormation associates with the stack. Specify an empty
1748
+ # list to remove all notification topics.
1749
+ # @option params [Array<Types::Tag>] :tags
1750
+ # Key-value pairs to associate with this stack. AWS CloudFormation also
1751
+ # propagates these tags to supported resources in the stack. You can
1752
+ # specify a maximum number of 10 tags.
1753
+ #
1754
+ # If you don't specify this parameter, AWS CloudFormation doesn't
1755
+ # modify the stack's tags. If you specify an empty value, AWS
1756
+ # CloudFormation removes all associated tags.
1757
+ # @return [Types::UpdateStackOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1758
+ #
1759
+ # * {Types::UpdateStackOutput#stack_id #StackId} => String
1760
+ #
1761
+ # @example Request syntax with placeholder values
1762
+ # resp = client.update_stack({
1763
+ # stack_name: "StackName", # required
1764
+ # template_body: "TemplateBody",
1765
+ # template_url: "TemplateURL",
1766
+ # use_previous_template: false,
1767
+ # stack_policy_during_update_body: "StackPolicyDuringUpdateBody",
1768
+ # stack_policy_during_update_url: "StackPolicyDuringUpdateURL",
1769
+ # parameters: [
1770
+ # {
1771
+ # parameter_key: "ParameterKey",
1772
+ # parameter_value: "ParameterValue",
1773
+ # use_previous_value: false,
1774
+ # },
1775
+ # ],
1776
+ # capabilities: ["CAPABILITY_IAM"], # accepts CAPABILITY_IAM, CAPABILITY_NAMED_IAM
1777
+ # resource_types: ["ResourceType"],
1778
+ # role_arn: "RoleARN",
1779
+ # stack_policy_body: "StackPolicyBody",
1780
+ # stack_policy_url: "StackPolicyURL",
1781
+ # notification_arns: ["NotificationARN"],
1782
+ # tags: [
1783
+ # {
1784
+ # key: "TagKey",
1785
+ # value: "TagValue",
1786
+ # },
1787
+ # ],
1788
+ # })
1789
+ #
1790
+ # @example Response structure
1791
+ # resp.stack_id #=> String
1792
+ # @overload update_stack(params = {})
1793
+ # @param [Hash] params ({})
1794
+ def update_stack(params = {}, options = {})
1795
+ req = build_request(:update_stack, params)
1796
+ req.send_request(options)
1797
+ end
1798
+
1799
+ # Validates a specified template. AWS CloudFormation first checks if the
1800
+ # template is valid JSON. If it isn't, AWS CloudFormation checks if the
1801
+ # template is valid YAML. If both these checks fail, AWS CloudFormation
1802
+ # returns a template validation error.
1803
+ # @option params [String] :template_body
1804
+ # Structure containing the template body with a minimum length of 1 byte
1805
+ # and a maximum length of 51,200 bytes. For more information, go to
1806
+ # [Template Anatomy][1] in the AWS CloudFormation User Guide.
1807
+ #
1808
+ # Conditional: You must pass `TemplateURL` or `TemplateBody`. If both
1809
+ # are passed, only `TemplateBody` is used.
1810
+ #
1811
+ #
1812
+ #
1813
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
1814
+ # @option params [String] :template_url
1815
+ # Location of file containing the template body. The URL must point to a
1816
+ # template (max size: 460,800 bytes) that is located in an Amazon S3
1817
+ # bucket. For more information, go to [Template Anatomy][1] in the AWS
1818
+ # CloudFormation User Guide.
1819
+ #
1820
+ # Conditional: You must pass `TemplateURL` or `TemplateBody`. If both
1821
+ # are passed, only `TemplateBody` is used.
1822
+ #
1823
+ #
1824
+ #
1825
+ # [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
1826
+ # @return [Types::ValidateTemplateOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1827
+ #
1828
+ # * {Types::ValidateTemplateOutput#parameters #Parameters} => Array&lt;Types::TemplateParameter&gt;
1829
+ # * {Types::ValidateTemplateOutput#description #Description} => String
1830
+ # * {Types::ValidateTemplateOutput#capabilities #Capabilities} => Array&lt;String&gt;
1831
+ # * {Types::ValidateTemplateOutput#capabilities_reason #CapabilitiesReason} => String
1832
+ # * {Types::ValidateTemplateOutput#declared_transforms #DeclaredTransforms} => Array&lt;String&gt;
1833
+ #
1834
+ # @example Request syntax with placeholder values
1835
+ # resp = client.validate_template({
1836
+ # template_body: "TemplateBody",
1837
+ # template_url: "TemplateURL",
1838
+ # })
1839
+ #
1840
+ # @example Response structure
1841
+ # resp.parameters #=> Array
1842
+ # resp.parameters[0].parameter_key #=> String
1843
+ # resp.parameters[0].default_value #=> String
1844
+ # resp.parameters[0].no_echo #=> Boolean
1845
+ # resp.parameters[0].description #=> String
1846
+ # resp.description #=> String
1847
+ # resp.capabilities #=> Array
1848
+ # resp.capabilities[0] #=> String, one of "CAPABILITY_IAM", "CAPABILITY_NAMED_IAM"
1849
+ # resp.capabilities_reason #=> String
1850
+ # resp.declared_transforms #=> Array
1851
+ # resp.declared_transforms[0] #=> String
1852
+ # @overload validate_template(params = {})
1853
+ # @param [Hash] params ({})
1854
+ def validate_template(params = {}, options = {})
1855
+ req = build_request(:validate_template, params)
1856
+ req.send_request(options)
1857
+ end
1858
+
1859
+ # @!endgroup
1860
+
1861
+ # @param params ({})
1862
+ # @api private
1863
+ def build_request(operation_name, params = {})
1864
+ handlers = @handlers.for(operation_name)
1865
+ context = Seahorse::Client::RequestContext.new(
1866
+ operation_name: operation_name,
1867
+ operation: config.api.operation(operation_name),
1868
+ client: self,
1869
+ params: params,
1870
+ config: config)
1871
+ context[:gem_name] = 'aws-sdk-cloudformation'
1872
+ context[:gem_version] = '1.0.0.rc1'
1873
+ Seahorse::Client::Request.new(handlers, context)
1874
+ end
1875
+
1876
+ # Polls an API operation until a resource enters a desired state.
1877
+ #
1878
+ # ## Basic Usage
1879
+ #
1880
+ # A waiter will call an API operation until:
1881
+ #
1882
+ # * It is successful
1883
+ # * It enters a terminal state
1884
+ # * It makes the maximum number of attempts
1885
+ #
1886
+ # In between attempts, the waiter will sleep.
1887
+ #
1888
+ # # polls in a loop, sleeping between attempts
1889
+ # client.waiter_until(waiter_name, params)
1890
+ #
1891
+ # ## Configuration
1892
+ #
1893
+ # You can configure the maximum number of polling attempts, and the
1894
+ # delay (in seconds) between each polling attempt. You can pass
1895
+ # configuration as the final arguments hash.
1896
+ #
1897
+ # # poll for ~25 seconds
1898
+ # client.wait_until(waiter_name, params, {
1899
+ # max_attempts: 5,
1900
+ # delay: 5,
1901
+ # })
1902
+ #
1903
+ # ## Callbacks
1904
+ #
1905
+ # You can be notified before each polling attempt and before each
1906
+ # delay. If you throw `:success` or `:failure` from these callbacks,
1907
+ # it will terminate the waiter.
1908
+ #
1909
+ # started_at = Time.now
1910
+ # client.wait_until(waiter_name, params, {
1911
+ #
1912
+ # # disable max attempts
1913
+ # max_attempts: nil,
1914
+ #
1915
+ # # poll for 1 hour, instead of a number of attempts
1916
+ # before_wait: -> (attempts, response) do
1917
+ # throw :failure if Time.now - started_at > 3600
1918
+ # end
1919
+ # })
1920
+ #
1921
+ # ## Handling Errors
1922
+ #
1923
+ # When a waiter is unsuccessful, it will raise an error.
1924
+ # All of the failure errors extend from
1925
+ # {Aws::Waiters::Errors::WaiterFailed}.
1926
+ #
1927
+ # begin
1928
+ # client.wait_until(...)
1929
+ # rescue Aws::Waiters::Errors::WaiterFailed
1930
+ # # resource did not enter the desired state in time
1931
+ # end
1932
+ #
1933
+ # ## Valid Waiters
1934
+ #
1935
+ # The following table lists the valid waiter names, the operations they call,
1936
+ # and the default `:delay` and `:max_attempts` values.
1937
+ #
1938
+ # | waiter_name | params | :delay | :max_attempts |
1939
+ # | --------------------- | ------------------ | -------- | ------------- |
1940
+ # | stack_create_complete | {#describe_stacks} | 30 | 120 |
1941
+ # | stack_delete_complete | {#describe_stacks} | 30 | 120 |
1942
+ # | stack_exists | {#describe_stacks} | 5 | 20 |
1943
+ # | stack_update_complete | {#describe_stacks} | 30 | 120 |
1944
+ #
1945
+ # @raise [Errors::FailureStateError] Raised when the waiter terminates
1946
+ # because the waiter has entered a state that it will not transition
1947
+ # out of, preventing success.
1948
+ #
1949
+ # @raise [Errors::TooManyAttemptsError] Raised when the configured
1950
+ # maximum number of attempts have been made, and the waiter is not
1951
+ # yet successful.
1952
+ #
1953
+ # @raise [Errors::UnexpectedError] Raised when an error is encounted
1954
+ # while polling for a resource that is not expected.
1955
+ #
1956
+ # @raise [Errors::NoSuchWaiterError] Raised when you request to wait
1957
+ # for an unknown state.
1958
+ #
1959
+ # @return [Boolean] Returns `true` if the waiter was successful.
1960
+ # @param [Symbol] waiter_name
1961
+ # @param [Hash] params ({})
1962
+ # @param [Hash] options ({})
1963
+ # @option options [Integer] :max_attempts
1964
+ # @option options [Integer] :delay
1965
+ # @option options [Proc] :before_attempt
1966
+ # @option options [Proc] :before_wait
1967
+ def wait_until(waiter_name, params = {}, options = {})
1968
+ w = waiter(waiter_name, options)
1969
+ yield(w.waiter) if block_given? # deprecated
1970
+ w.wait(params)
1971
+ end
1972
+
1973
+ # @api private
1974
+ # @deprecated
1975
+ def waiter_names
1976
+ waiters.keys
1977
+ end
1978
+
1979
+ private
1980
+
1981
+ # @param [Symbol] waiter_name
1982
+ # @param [Hash] options ({})
1983
+ def waiter(waiter_name, options = {})
1984
+ waiter_class = waiters[waiter_name]
1985
+ if waiter_class
1986
+ waiter_class.new(options.merge(client: self))
1987
+ else
1988
+ raise Aws::Waiters::Errors::NoSuchWaiterError.new(waiter_name, waiters.keys)
1989
+ end
1990
+ end
1991
+
1992
+ def waiters
1993
+ {
1994
+ stack_exists: Waiters::StackExists,
1995
+ stack_create_complete: Waiters::StackCreateComplete,
1996
+ stack_delete_complete: Waiters::StackDeleteComplete,
1997
+ stack_update_complete: Waiters::StackUpdateComplete
1998
+ }
1999
+ end
2000
+
2001
+ class << self
2002
+
2003
+ # @api private
2004
+ attr_reader :identifier
2005
+
2006
+ # @api private
2007
+ def errors_module
2008
+ Errors
2009
+ end
2010
+
2011
+ end
2012
+ end
2013
+ end
2014
+ end