aws-sdk-cloudformation 1.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
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