aws-sdk-cloudformation-1.41.0/ 0000755 0001750 0001750 00000000000 13715265306 015225 5 ustar pravi pravi aws-sdk-cloudformation-1.41.0/lib/ 0000755 0001750 0001750 00000000000 13715265306 015773 5 ustar pravi pravi aws-sdk-cloudformation-1.41.0/lib/aws-sdk-cloudformation/ 0000755 0001750 0001750 00000000000 13715265306 022367 5 ustar pravi pravi aws-sdk-cloudformation-1.41.0/lib/aws-sdk-cloudformation/client.rb 0000644 0001750 0001750 00000766647 13715265306 024224 0 ustar pravi pravi # frozen_string_literal: true
# WARNING ABOUT GENERATED CODE
#
# This file is generated. See the contributing guide for more information:
# https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
#
# WARNING ABOUT GENERATED CODE
require 'seahorse/client/plugins/content_length.rb'
require 'aws-sdk-core/plugins/credentials_configuration.rb'
require 'aws-sdk-core/plugins/logging.rb'
require 'aws-sdk-core/plugins/param_converter.rb'
require 'aws-sdk-core/plugins/param_validator.rb'
require 'aws-sdk-core/plugins/user_agent.rb'
require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
require 'aws-sdk-core/plugins/retry_errors.rb'
require 'aws-sdk-core/plugins/global_configuration.rb'
require 'aws-sdk-core/plugins/regional_endpoint.rb'
require 'aws-sdk-core/plugins/endpoint_discovery.rb'
require 'aws-sdk-core/plugins/endpoint_pattern.rb'
require 'aws-sdk-core/plugins/response_paging.rb'
require 'aws-sdk-core/plugins/stub_responses.rb'
require 'aws-sdk-core/plugins/idempotency_token.rb'
require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
require 'aws-sdk-core/plugins/transfer_encoding.rb'
require 'aws-sdk-core/plugins/http_checksum.rb'
require 'aws-sdk-core/plugins/signature_v4.rb'
require 'aws-sdk-core/plugins/protocols/query.rb'
Aws::Plugins::GlobalConfiguration.add_identifier(:cloudformation)
module Aws::CloudFormation
# An API client for CloudFormation. To construct a client, you need to configure a `:region` and `:credentials`.
#
# client = Aws::CloudFormation::Client.new(
# region: region_name,
# credentials: credentials,
# # ...
# )
#
# For details on configuring region and credentials see
# the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
#
# See {#initialize} for a full list of supported configuration options.
class Client < Seahorse::Client::Base
include Aws::ClientStubs
@identifier = :cloudformation
set_api(ClientApi::API)
add_plugin(Seahorse::Client::Plugins::ContentLength)
add_plugin(Aws::Plugins::CredentialsConfiguration)
add_plugin(Aws::Plugins::Logging)
add_plugin(Aws::Plugins::ParamConverter)
add_plugin(Aws::Plugins::ParamValidator)
add_plugin(Aws::Plugins::UserAgent)
add_plugin(Aws::Plugins::HelpfulSocketErrors)
add_plugin(Aws::Plugins::RetryErrors)
add_plugin(Aws::Plugins::GlobalConfiguration)
add_plugin(Aws::Plugins::RegionalEndpoint)
add_plugin(Aws::Plugins::EndpointDiscovery)
add_plugin(Aws::Plugins::EndpointPattern)
add_plugin(Aws::Plugins::ResponsePaging)
add_plugin(Aws::Plugins::StubResponses)
add_plugin(Aws::Plugins::IdempotencyToken)
add_plugin(Aws::Plugins::JsonvalueConverter)
add_plugin(Aws::Plugins::ClientMetricsPlugin)
add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
add_plugin(Aws::Plugins::TransferEncoding)
add_plugin(Aws::Plugins::HttpChecksum)
add_plugin(Aws::Plugins::SignatureV4)
add_plugin(Aws::Plugins::Protocols::Query)
# @overload initialize(options)
# @param [Hash] options
# @option options [required, Aws::CredentialProvider] :credentials
# Your AWS credentials. This can be an instance of any one of the
# following classes:
#
# * `Aws::Credentials` - Used for configuring static, non-refreshing
# credentials.
#
# * `Aws::InstanceProfileCredentials` - Used for loading credentials
# from an EC2 IMDS on an EC2 instance.
#
# * `Aws::SharedCredentials` - Used for loading credentials from a
# shared file, such as `~/.aws/config`.
#
# * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
#
# When `:credentials` are not configured directly, the following
# locations will be searched for credentials:
#
# * `Aws.config[:credentials]`
# * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
# * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
# * `~/.aws/credentials`
# * `~/.aws/config`
# * EC2 IMDS instance profile - When used by default, the timeouts are
# very aggressive. Construct and pass an instance of
# `Aws::InstanceProfileCredentails` to enable retries and extended
# timeouts.
#
# @option options [required, String] :region
# The AWS region to connect to. The configured `:region` is
# used to determine the service `:endpoint`. When not passed,
# a default `:region` is searched for in the following locations:
#
# * `Aws.config[:region]`
# * `ENV['AWS_REGION']`
# * `ENV['AMAZON_REGION']`
# * `ENV['AWS_DEFAULT_REGION']`
# * `~/.aws/credentials`
# * `~/.aws/config`
#
# @option options [String] :access_key_id
#
# @option options [Boolean] :active_endpoint_cache (false)
# When set to `true`, a thread polling for endpoints will be running in
# the background every 60 secs (default). Defaults to `false`.
#
# @option options [Boolean] :adaptive_retry_wait_to_fill (true)
# Used only in `adaptive` retry mode. When true, the request will sleep
# until there is sufficent client side capacity to retry the request.
# When false, the request will raise a `RetryCapacityNotAvailableError` and will
# not retry instead of sleeping.
#
# @option options [Boolean] :client_side_monitoring (false)
# When `true`, client-side metrics will be collected for all API requests from
# this client.
#
# @option options [String] :client_side_monitoring_client_id ("")
# Allows you to provide an identifier for this client which will be attached to
# all generated client side metrics. Defaults to an empty string.
#
# @option options [String] :client_side_monitoring_host ("127.0.0.1")
# Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client
# side monitoring agent is running on, where client metrics will be published via UDP.
#
# @option options [Integer] :client_side_monitoring_port (31000)
# Required for publishing client metrics. The port that the client side monitoring
# agent is running on, where client metrics will be published via UDP.
#
# @option options [Aws::ClientSideMonitoring::Publisher] :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher)
# Allows you to provide a custom client-side monitoring publisher class. By default,
# will use the Client Side Monitoring Agent Publisher.
#
# @option options [Boolean] :convert_params (true)
# When `true`, an attempt is made to coerce request parameters into
# the required types.
#
# @option options [Boolean] :correct_clock_skew (true)
# Used only in `standard` and adaptive retry modes. Specifies whether to apply
# a clock skew correction and retry requests with skewed client clocks.
#
# @option options [Boolean] :disable_host_prefix_injection (false)
# Set to true to disable SDK automatically adding host prefix
# to default service endpoint when available.
#
# @option options [String] :endpoint
# The client endpoint is normally constructed from the `:region`
# option. You should only configure an `:endpoint` when connecting
# to test or custom endpoints. This should be a valid HTTP(S) URI.
#
# @option options [Integer] :endpoint_cache_max_entries (1000)
# Used for the maximum size limit of the LRU cache storing endpoints data
# for endpoint discovery enabled operations. Defaults to 1000.
#
# @option options [Integer] :endpoint_cache_max_threads (10)
# Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.
#
# @option options [Integer] :endpoint_cache_poll_interval (60)
# When :endpoint_discovery and :active_endpoint_cache is enabled,
# Use this option to config the time interval in seconds for making
# requests fetching endpoints information. Defaults to 60 sec.
#
# @option options [Boolean] :endpoint_discovery (false)
# When set to `true`, endpoint discovery will be enabled for operations when available.
#
# @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
# The log formatter.
#
# @option options [Symbol] :log_level (:info)
# The log level to send messages to the `:logger` at.
#
# @option options [Logger] :logger
# The Logger instance to send log messages to. If this option
# is not set, logging will be disabled.
#
# @option options [Integer] :max_attempts (3)
# An integer representing the maximum number attempts that will be made for
# a single request, including the initial attempt. For example,
# setting this value to 5 will result in a request being retried up to
# 4 times. Used in `standard` and `adaptive` retry modes.
#
# @option options [String] :profile ("default")
# Used when loading credentials from the shared credentials file
# at HOME/.aws/credentials. When not specified, 'default' is used.
#
# @option options [Proc] :retry_backoff
# A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
# This option is only used in the `legacy` retry mode.
#
# @option options [Float] :retry_base_delay (0.3)
# The base delay in seconds used by the default backoff function. This option
# is only used in the `legacy` retry mode.
#
# @option options [Symbol] :retry_jitter (:none)
# A delay randomiser function used by the default backoff function.
# Some predefined functions can be referenced by name - :none, :equal, :full,
# otherwise a Proc that takes and returns a number. This option is only used
# in the `legacy` retry mode.
#
# @see https://www.awsarchitectureblog.com/2015/03/backoff.html
#
# @option options [Integer] :retry_limit (3)
# The maximum number of times to retry failed requests. Only
# ~ 500 level server errors and certain ~ 400 level client errors
# are retried. Generally, these are throttling errors, data
# checksum errors, networking errors, timeout errors, auth errors,
# endpoint discovery, and errors from expired credentials.
# This option is only used in the `legacy` retry mode.
#
# @option options [Integer] :retry_max_delay (0)
# The maximum number of seconds to delay between retries (0 for no limit)
# used by the default backoff function. This option is only used in the
# `legacy` retry mode.
#
# @option options [String] :retry_mode ("legacy")
# Specifies which retry algorithm to use. Values are:
#
# * `legacy` - The pre-existing retry behavior. This is default value if
# no retry mode is provided.
#
# * `standard` - A standardized set of retry rules across the AWS SDKs.
# This includes support for retry quotas, which limit the number of
# unsuccessful retries a client can make.
#
# * `adaptive` - An experimental retry mode that includes all the
# functionality of `standard` mode along with automatic client side
# throttling. This is a provisional mode that may change behavior
# in the future.
#
#
# @option options [String] :secret_access_key
#
# @option options [String] :session_token
#
# @option options [Boolean] :stub_responses (false)
# Causes the client to return stubbed responses. By default
# fake responses are generated and returned. You can specify
# the response data to return or errors to raise by calling
# {ClientStubs#stub_responses}. See {ClientStubs} for more information.
#
# ** Please note ** When response stubbing is enabled, no HTTP
# requests are made, and retries are disabled.
#
# @option options [Boolean] :validate_params (true)
# When `true`, request parameters are validated before
# sending the request.
#
# @option options [URI::HTTP,String] :http_proxy A proxy to send
# requests through. Formatted like 'http://proxy.com:123'.
#
# @option options [Float] :http_open_timeout (15) The number of
# seconds to wait when opening a HTTP session before raising a
# `Timeout::Error`.
#
# @option options [Integer] :http_read_timeout (60) The default
# number of seconds to wait for response data. This value can
# safely be set per-request on the session.
#
# @option options [Float] :http_idle_timeout (5) The number of
# seconds a connection is allowed to sit idle before it is
# considered stale. Stale connections are closed and removed
# from the pool before making a request.
#
# @option options [Float] :http_continue_timeout (1) The number of
# seconds to wait for a 100-continue response before sending the
# request body. This option has no effect unless the request has
# "Expect" header set to "100-continue". Defaults to `nil` which
# disables this behaviour. This value can safely be set per
# request on the session.
#
# @option options [Boolean] :http_wire_trace (false) When `true`,
# HTTP debug output will be sent to the `:logger`.
#
# @option options [Boolean] :ssl_verify_peer (true) When `true`,
# SSL peer certificates are verified when establishing a
# connection.
#
# @option options [String] :ssl_ca_bundle Full path to the SSL
# certificate authority bundle file that should be used when
# verifying peer certificates. If you do not pass
# `:ssl_ca_bundle` or `:ssl_ca_directory` the the system default
# will be used if available.
#
# @option options [String] :ssl_ca_directory Full path of the
# directory that contains the unbundled SSL certificate
# authority files for verifying peer certificates. If you do
# not pass `:ssl_ca_bundle` or `:ssl_ca_directory` the the
# system default will be used if available.
#
def initialize(*args)
super
end
# @!group API Operations
# Cancels an update on the specified stack. If the call completes
# successfully, the stack rolls back the update and reverts to the
# previous stack configuration.
#
# You can cancel only stacks that are in the UPDATE\_IN\_PROGRESS state.
#
#
#
# @option params [required, String] :stack_name
# The name or the unique stack ID that is associated with the stack.
#
# @option params [String] :client_request_token
# A unique identifier for this `CancelUpdateStack` request. Specify this
# token if you plan to retry requests so that AWS CloudFormation knows
# that you're not attempting to cancel an update on a stack with the
# same name. You might retry `CancelUpdateStack` requests to ensure that
# AWS CloudFormation successfully received them.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.cancel_update_stack({
# stack_name: "StackName", # required
# client_request_token: "ClientRequestToken",
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CancelUpdateStack AWS API Documentation
#
# @overload cancel_update_stack(params = {})
# @param [Hash] params ({})
def cancel_update_stack(params = {}, options = {})
req = build_request(:cancel_update_stack, params)
req.send_request(options)
end
# For a specified stack that is in the `UPDATE_ROLLBACK_FAILED` state,
# continues rolling it back to the `UPDATE_ROLLBACK_COMPLETE` state.
# Depending on the cause of the failure, you can manually [ fix the
# error][1] and continue the rollback. By continuing the rollback, you
# can return your stack to a working state (the
# `UPDATE_ROLLBACK_COMPLETE` state), and then try to update the stack
# again.
#
# A stack goes into the `UPDATE_ROLLBACK_FAILED` state when AWS
# CloudFormation cannot roll back all changes after a failed stack
# update. For example, you might have a stack that is rolling back to an
# old database instance that was deleted outside of AWS CloudFormation.
# Because AWS CloudFormation doesn't know the database was deleted, it
# assumes that the database instance still exists and attempts to roll
# back to it, causing the update rollback to fail.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed
#
# @option params [required, String] :stack_name
# The name or the unique ID of the stack that you want to continue
# rolling back.
#
# Don't specify the name of a nested stack (a stack that was created by
# using the `AWS::CloudFormation::Stack` resource). Instead, use this
# operation on the parent stack (the stack that contains the
# `AWS::CloudFormation::Stack` resource).
#
#
#
# @option params [String] :role_arn
# The Amazon Resource Name (ARN) of an AWS Identity and Access
# Management (IAM) role that AWS CloudFormation assumes to roll back the
# stack. AWS CloudFormation uses the role's credentials to make calls
# on your behalf. AWS CloudFormation always uses this role for all
# future operations on the stack. As long as users have permission to
# operate on the stack, AWS CloudFormation uses this role even if the
# users don't have permission to pass it. Ensure that the role grants
# least privilege.
#
# If you don't specify a value, AWS CloudFormation uses the role that
# was previously associated with the stack. If no role is available, AWS
# CloudFormation uses a temporary session that is generated from your
# user credentials.
#
# @option params [Array] :resources_to_skip
# A list of the logical IDs of the resources that AWS CloudFormation
# skips during the continue update rollback operation. You can specify
# only resources that are in the `UPDATE_FAILED` state because a
# rollback failed. You can't specify resources that are in the
# `UPDATE_FAILED` state for other reasons, for example, because an
# update was cancelled. To check why a resource update failed, use the
# DescribeStackResources action, and view the resource status reason.
#
# Specify this property to skip rolling back resources that AWS
# CloudFormation can't successfully roll back. We recommend that you [
# troubleshoot][1] resources before skipping them. AWS CloudFormation
# sets the status of the specified resources to `UPDATE_COMPLETE` and
# continues to roll back the stack. After the rollback is complete, the
# state of the skipped resources will be inconsistent with the state of
# the resources in the stack template. Before performing another stack
# update, you must update the stack or resources to be consistent with
# each other. If you don't, subsequent stack updates might fail, and
# the stack will become unrecoverable.
#
# Specify the minimum number of resources required to successfully roll
# back your stack. For example, a failed resource update might cause
# dependent resources to fail. In this case, it might not be necessary
# to skip the dependent resources.
#
# To skip resources that are part of nested stacks, use the following
# format: `NestedStackName.ResourceLogicalID`. If you want to specify
# the logical ID of a stack resource (`Type:
# AWS::CloudFormation::Stack`) in the `ResourcesToSkip` list, then its
# corresponding embedded stack must be in one of the following states:
# `DELETE_IN_PROGRESS`, `DELETE_COMPLETE`, or `DELETE_FAILED`.
#
# Don't confuse a child stack's name with its corresponding logical ID
# defined in the parent stack. For an example of a continue update
# rollback operation with nested stacks, see [Using ResourcesToSkip to
# recover a nested stacks hierarchy][2].
#
#
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html#nested-stacks
#
# @option params [String] :client_request_token
# A unique identifier for this `ContinueUpdateRollback` request. Specify
# this token if you plan to retry requests so that AWS CloudFormation
# knows that you're not attempting to continue the rollback to a stack
# with the same name. You might retry `ContinueUpdateRollback` requests
# to ensure that AWS CloudFormation successfully received them.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.continue_update_rollback({
# stack_name: "StackNameOrId", # required
# role_arn: "RoleARN",
# resources_to_skip: ["ResourceToSkip"],
# client_request_token: "ClientRequestToken",
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ContinueUpdateRollback AWS API Documentation
#
# @overload continue_update_rollback(params = {})
# @param [Hash] params ({})
def continue_update_rollback(params = {}, options = {})
req = build_request(:continue_update_rollback, params)
req.send_request(options)
end
# Creates a list of changes that will be applied to a stack so that you
# can review the changes before executing them. You can create a change
# set for a stack that doesn't exist or an existing stack. If you
# create a change set for a stack that doesn't exist, the change set
# shows all of the resources that AWS CloudFormation will create. If you
# create a change set for an existing stack, AWS CloudFormation compares
# the stack's information with the information that you submit in the
# change set and lists the differences. Use change sets to understand
# which resources AWS CloudFormation will create or change, and how it
# will change resources in an existing stack, before you create or
# update a stack.
#
# To create a change set for a stack that doesn't exist, for the
# `ChangeSetType` parameter, specify `CREATE`. To create a change set
# for an existing stack, specify `UPDATE` for the `ChangeSetType`
# parameter. To create a change set for an import operation, specify
# `IMPORT` for the `ChangeSetType` parameter. After the
# `CreateChangeSet` call successfully completes, AWS CloudFormation
# starts creating the change set. To check the status of the change set
# or to review it, use the DescribeChangeSet action.
#
# When you are satisfied with the changes the change set will make,
# execute the change set by using the ExecuteChangeSet action. AWS
# CloudFormation doesn't make changes until you execute the change set.
#
# @option params [required, String] :stack_name
# The name or the unique ID of the stack for which you are creating a
# change set. AWS CloudFormation generates the change set by comparing
# this stack's information with the information that you submit, such
# as a modified template or different parameter input values.
#
# @option params [String] :template_body
# A structure that contains the body of the revised template, with a
# minimum length of 1 byte and a maximum length of 51,200 bytes. AWS
# CloudFormation generates the change set by comparing this template
# with the template of the stack that you specified.
#
# Conditional: You must specify only `TemplateBody` or `TemplateURL`.
#
# @option params [String] :template_url
# The location of the file that contains the revised template. The URL
# must point to a template (max size: 460,800 bytes) that is located in
# an S3 bucket. AWS CloudFormation generates the change set by comparing
# this template with the stack that you specified.
#
# Conditional: You must specify only `TemplateBody` or `TemplateURL`.
#
# @option params [Boolean] :use_previous_template
# Whether to reuse the template that is associated with the stack to
# create the change set.
#
# @option params [Array] :parameters
# A list of `Parameter` structures that specify input parameters for the
# change set. For more information, see the Parameter data type.
#
# @option params [Array] :capabilities
# In some cases, you must explicitly acknowledge that your stack
# template contains certain capabilities in order for AWS CloudFormation
# to create the stack.
#
# * `CAPABILITY_IAM` and `CAPABILITY_NAMED_IAM`
#
# Some stack templates might include resources that can affect
# permissions in your AWS account; for example, by creating new AWS
# Identity and Access Management (IAM) users. For those stacks, you
# must explicitly acknowledge this by specifying one of these
# capabilities.
#
# The following IAM resources require you to specify either the
# `CAPABILITY_IAM` or `CAPABILITY_NAMED_IAM` capability.
#
# * If you have IAM resources, you can specify either capability.
#
# * If you have IAM resources with custom names, you *must* specify
# `CAPABILITY_NAMED_IAM`.
#
# * If you don't specify either of these capabilities, AWS
# CloudFormation returns an `InsufficientCapabilities` error.
#
# If your stack template contains these resources, we recommend that
# you review all permissions associated with them and edit their
# permissions if necessary.
#
# * [ AWS::IAM::AccessKey][1]
#
# * [ AWS::IAM::Group][2]
#
# * [ AWS::IAM::InstanceProfile][3]
#
# * [ AWS::IAM::Policy][4]
#
# * [ AWS::IAM::Role][5]
#
# * [ AWS::IAM::User][6]
#
# * [ AWS::IAM::UserToGroupAddition][7]
#
# For more information, see [Acknowledging IAM Resources in AWS
# CloudFormation Templates][8].
#
# * `CAPABILITY_AUTO_EXPAND`
#
# Some template contain macros. Macros perform custom processing on
# templates; this can include simple actions like find-and-replace
# operations, all the way to extensive transformations of entire
# templates. Because of this, users typically create a change set from
# the processed template, so that they can review the changes
# resulting from the macros before actually creating the stack. If
# your stack template contains one or more macros, and you choose to
# create a stack directly from the processed template, without first
# reviewing the resulting changes in a change set, you must
# acknowledge this capability. This includes the [AWS::Include][9] and
# [AWS::Serverless][10] transforms, which are macros hosted by AWS
# CloudFormation.
#
# This capacity does not apply to creating change sets, and specifying
# it when creating change sets has no effect.
#
# Also, change sets do not currently support nested stacks. If you
# want to create a stack from a stack template that contains macros
# *and* nested stacks, you must create or update the stack directly
# from the template using the CreateStack or UpdateStack action, and
# specifying this capability.
#
#
#
# For more information on macros, see [Using AWS CloudFormation Macros
# to Perform Custom Processing on Templates][11].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html
# [3]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html
# [4]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html
# [5]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html
# [6]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html
# [7]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html
# [8]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities
# [9]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html
# [10]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html
# [11]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html
#
# @option params [Array] :resource_types
# The template resource types that you have permissions to work with if
# you execute this change set, such as `AWS::EC2::Instance`,
# `AWS::EC2::*`, or `Custom::MyCustomInstance`.
#
# If the list of resource types doesn't include a resource type that
# you're updating, the stack update fails. By default, AWS
# CloudFormation grants permissions to all resource types. AWS Identity
# and Access Management (IAM) uses this parameter for condition keys in
# IAM policies for AWS CloudFormation. For more information, see
# [Controlling Access with AWS Identity and Access Management][1] in the
# AWS CloudFormation User Guide.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html
#
# @option params [String] :role_arn
# The Amazon Resource Name (ARN) of an AWS Identity and Access
# Management (IAM) role that AWS CloudFormation assumes when executing
# the change set. AWS CloudFormation uses the role's credentials to
# make calls on your behalf. AWS CloudFormation uses this role for all
# future operations on the stack. As long as users have permission to
# operate on the stack, AWS CloudFormation uses this role even if the
# users don't have permission to pass it. Ensure that the role grants
# least privilege.
#
# If you don't specify a value, AWS CloudFormation uses the role that
# was previously associated with the stack. If no role is available, AWS
# CloudFormation uses a temporary session that is generated from your
# user credentials.
#
# @option params [Types::RollbackConfiguration] :rollback_configuration
# The rollback triggers for AWS CloudFormation to monitor during stack
# creation and updating operations, and for the specified monitoring
# period afterwards.
#
# @option params [Array] :notification_arns
# The Amazon Resource Names (ARNs) of Amazon Simple Notification Service
# (Amazon SNS) topics that AWS CloudFormation associates with the stack.
# To remove all associated notification topics, specify an empty list.
#
# @option params [Array] :tags
# Key-value pairs to associate with this stack. AWS CloudFormation also
# propagates these tags to resources in the stack. You can specify a
# maximum of 50 tags.
#
# @option params [required, String] :change_set_name
# The name of the change set. The name must be unique among all change
# sets that are associated with the specified stack.
#
# A change set name can contain only alphanumeric, case sensitive
# characters and hyphens. It must start with an alphabetic character and
# cannot exceed 128 characters.
#
# @option params [String] :client_token
# A unique identifier for this `CreateChangeSet` request. Specify this
# token if you plan to retry requests so that AWS CloudFormation knows
# that you're not attempting to create another change set with the same
# name. You might retry `CreateChangeSet` requests to ensure that AWS
# CloudFormation successfully received them.
#
# @option params [String] :description
# A description to help you identify this change set.
#
# @option params [String] :change_set_type
# The type of change set operation. To create a change set for a new
# stack, specify `CREATE`. To create a change set for an existing stack,
# specify `UPDATE`. To create a change set for an import operation,
# specify `IMPORT`.
#
# If you create a change set for a new stack, AWS Cloudformation creates
# a stack with a unique stack ID, but no template or resources. The
# stack will be in the [ `REVIEW_IN_PROGRESS` ][1] state until you
# execute the change set.
#
# By default, AWS CloudFormation specifies `UPDATE`. You can't use the
# `UPDATE` type to create a change set for a new stack or the `CREATE`
# type to create a change set for an existing stack.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-describing-stacks.html#d0e11995
#
# @option params [Array] :resources_to_import
# The resources to import into your stack.
#
# @return [Types::CreateChangeSetOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::CreateChangeSetOutput#id #id} => String
# * {Types::CreateChangeSetOutput#stack_id #stack_id} => String
#
# @example Request syntax with placeholder values
#
# resp = client.create_change_set({
# stack_name: "StackNameOrId", # required
# template_body: "TemplateBody",
# template_url: "TemplateURL",
# use_previous_template: false,
# parameters: [
# {
# parameter_key: "ParameterKey",
# parameter_value: "ParameterValue",
# use_previous_value: false,
# resolved_value: "ParameterValue",
# },
# ],
# capabilities: ["CAPABILITY_IAM"], # accepts CAPABILITY_IAM, CAPABILITY_NAMED_IAM, CAPABILITY_AUTO_EXPAND
# resource_types: ["ResourceType"],
# role_arn: "RoleARN",
# rollback_configuration: {
# rollback_triggers: [
# {
# arn: "Arn", # required
# type: "Type", # required
# },
# ],
# monitoring_time_in_minutes: 1,
# },
# notification_arns: ["NotificationARN"],
# tags: [
# {
# key: "TagKey", # required
# value: "TagValue", # required
# },
# ],
# change_set_name: "ChangeSetName", # required
# client_token: "ClientToken",
# description: "Description",
# change_set_type: "CREATE", # accepts CREATE, UPDATE, IMPORT
# resources_to_import: [
# {
# resource_type: "ResourceType", # required
# logical_resource_id: "LogicalResourceId", # required
# resource_identifier: { # required
# "ResourceIdentifierPropertyKey" => "ResourceIdentifierPropertyValue",
# },
# },
# ],
# })
#
# @example Response structure
#
# resp.id #=> String
# resp.stack_id #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet AWS API Documentation
#
# @overload create_change_set(params = {})
# @param [Hash] params ({})
def create_change_set(params = {}, options = {})
req = build_request(:create_change_set, params)
req.send_request(options)
end
# Creates a stack as specified in the template. After the call completes
# successfully, the stack creation starts. You can check the status of
# the stack via the DescribeStacks API.
#
# @option params [required, String] :stack_name
# The name that is associated with the stack. The name must be unique in
# the Region in which you are creating the stack.
#
# A stack name can contain only alphanumeric characters (case sensitive)
# and hyphens. It must start with an alphabetic character and cannot be
# longer than 128 characters.
#
#
#
# @option params [String] :template_body
# Structure containing the template body with a minimum length of 1 byte
# and a maximum length of 51,200 bytes. For more information, go to
# [Template Anatomy][1] in the AWS CloudFormation User Guide.
#
# Conditional: You must specify either the `TemplateBody` or the
# `TemplateURL` parameter, but not both.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
#
# @option params [String] :template_url
# Location of file containing the template body. The URL must point to a
# template (max size: 460,800 bytes) that is located in an Amazon S3
# bucket. For more information, go to the [Template Anatomy][1] in the
# AWS CloudFormation User Guide.
#
# Conditional: You must specify either the `TemplateBody` or the
# `TemplateURL` parameter, but not both.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
#
# @option params [Array] :parameters
# A list of `Parameter` structures that specify input parameters for the
# stack. For more information, see the [Parameter][1] data type.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html
#
# @option params [Boolean] :disable_rollback
# Set to `true` to disable rollback of the stack if stack creation
# failed. You can specify either `DisableRollback` or `OnFailure`, but
# not both.
#
# Default: `false`
#
# @option params [Types::RollbackConfiguration] :rollback_configuration
# The rollback triggers for AWS CloudFormation to monitor during stack
# creation and updating operations, and for the specified monitoring
# period afterwards.
#
# @option params [Integer] :timeout_in_minutes
# The amount of time that can pass before the stack status becomes
# CREATE\_FAILED; if `DisableRollback` is not set or is set to `false`,
# the stack will be rolled back.
#
# @option params [Array] :notification_arns
# The Simple Notification Service (SNS) topic ARNs to publish stack
# related events. You can find your SNS topic ARNs using the SNS console
# or your Command Line Interface (CLI).
#
# @option params [Array] :capabilities
# In some cases, you must explicitly acknowledge that your stack
# template contains certain capabilities in order for AWS CloudFormation
# to create the stack.
#
# * `CAPABILITY_IAM` and `CAPABILITY_NAMED_IAM`
#
# Some stack templates might include resources that can affect
# permissions in your AWS account; for example, by creating new AWS
# Identity and Access Management (IAM) users. For those stacks, you
# must explicitly acknowledge this by specifying one of these
# capabilities.
#
# The following IAM resources require you to specify either the
# `CAPABILITY_IAM` or `CAPABILITY_NAMED_IAM` capability.
#
# * If you have IAM resources, you can specify either capability.
#
# * If you have IAM resources with custom names, you *must* specify
# `CAPABILITY_NAMED_IAM`.
#
# * If you don't specify either of these capabilities, AWS
# CloudFormation returns an `InsufficientCapabilities` error.
#
# If your stack template contains these resources, we recommend that
# you review all permissions associated with them and edit their
# permissions if necessary.
#
# * [ AWS::IAM::AccessKey][1]
#
# * [ AWS::IAM::Group][2]
#
# * [ AWS::IAM::InstanceProfile][3]
#
# * [ AWS::IAM::Policy][4]
#
# * [ AWS::IAM::Role][5]
#
# * [ AWS::IAM::User][6]
#
# * [ AWS::IAM::UserToGroupAddition][7]
#
# For more information, see [Acknowledging IAM Resources in AWS
# CloudFormation Templates][8].
#
# * `CAPABILITY_AUTO_EXPAND`
#
# Some template contain macros. Macros perform custom processing on
# templates; this can include simple actions like find-and-replace
# operations, all the way to extensive transformations of entire
# templates. Because of this, users typically create a change set from
# the processed template, so that they can review the changes
# resulting from the macros before actually creating the stack. If
# your stack template contains one or more macros, and you choose to
# create a stack directly from the processed template, without first
# reviewing the resulting changes in a change set, you must
# acknowledge this capability. This includes the [AWS::Include][9] and
# [AWS::Serverless][10] transforms, which are macros hosted by AWS
# CloudFormation.
#
# Change sets do not currently support nested stacks. If you want to
# create a stack from a stack template that contains macros *and*
# nested stacks, you must create the stack directly from the template
# using this capability.
#
# You should only create stacks directly from a stack template that
# contains macros if you know what processing the macro performs.
#
# Each macro relies on an underlying Lambda service function for
# processing stack templates. Be aware that the Lambda function owner
# can update the function operation without AWS CloudFormation being
# notified.
#
# For more information, see [Using AWS CloudFormation Macros to
# Perform Custom Processing on Templates][11].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html
# [3]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html
# [4]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html
# [5]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html
# [6]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html
# [7]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html
# [8]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities
# [9]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html
# [10]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html
# [11]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html
#
# @option params [Array] :resource_types
# The template resource types that you have permissions to work with for
# this create stack action, such as `AWS::EC2::Instance`, `AWS::EC2::*`,
# or `Custom::MyCustomInstance`. Use the following syntax to describe
# template resource types: `AWS::*` (for all AWS resource), `Custom::*`
# (for all custom resources), `Custom::logical_ID ` (for a specific
# custom resource), `AWS::service_name::*` (for all resources of a
# particular AWS service), and `AWS::service_name::resource_logical_ID `
# (for a specific AWS resource).
#
# If the list of resource types doesn't include a resource that you're
# creating, the stack creation fails. By default, AWS CloudFormation
# grants permissions to all resource types. AWS Identity and Access
# Management (IAM) uses this parameter for AWS CloudFormation-specific
# condition keys in IAM policies. For more information, see [Controlling
# Access with AWS Identity and Access Management][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html
#
# @option params [String] :role_arn
# The Amazon Resource Name (ARN) of an AWS Identity and Access
# Management (IAM) role that AWS CloudFormation assumes to create the
# stack. AWS CloudFormation uses the role's credentials to make calls
# on your behalf. AWS CloudFormation always uses this role for all
# future operations on the stack. As long as users have permission to
# operate on the stack, AWS CloudFormation uses this role even if the
# users don't have permission to pass it. Ensure that the role grants
# least privilege.
#
# If you don't specify a value, AWS CloudFormation uses the role that
# was previously associated with the stack. If no role is available, AWS
# CloudFormation uses a temporary session that is generated from your
# user credentials.
#
# @option params [String] :on_failure
# Determines what action will be taken if stack creation fails. This
# must be one of: DO\_NOTHING, ROLLBACK, or DELETE. You can specify
# either `OnFailure` or `DisableRollback`, but not both.
#
# Default: `ROLLBACK`
#
# @option params [String] :stack_policy_body
# Structure containing the stack policy body. For more information, go
# to [ Prevent Updates to Stack Resources][1] in the *AWS CloudFormation
# User Guide*. You can specify either the `StackPolicyBody` or the
# `StackPolicyURL` parameter, but not both.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html
#
# @option params [String] :stack_policy_url
# Location of a file containing the stack policy. The URL must point to
# a policy (maximum size: 16 KB) located in an S3 bucket in the same
# Region as the stack. You can specify either the `StackPolicyBody` or
# the `StackPolicyURL` parameter, but not both.
#
# @option params [Array] :tags
# Key-value pairs to associate with this stack. AWS CloudFormation also
# propagates these tags to the resources created in the stack. A maximum
# number of 50 tags can be specified.
#
# @option params [String] :client_request_token
# A unique identifier for this `CreateStack` request. Specify this token
# if you plan to retry requests so that AWS CloudFormation knows that
# you're not attempting to create a stack with the same name. You might
# retry `CreateStack` requests to ensure that AWS CloudFormation
# successfully received them.
#
# All events triggered by a given stack operation are assigned the same
# client request token, which you can use to track operations. For
# example, if you execute a `CreateStack` operation with the token
# `token1`, then all the `StackEvents` generated by that operation will
# have `ClientRequestToken` set as `token1`.
#
# In the console, stack operations display the client request token on
# the Events tab. Stack operations that are initiated from the console
# use the token format *Console-StackOperation-ID*, which helps you
# easily identify the stack operation . For example, if you create a
# stack using the console, each stack event would be assigned the same
# token in the following format:
# `Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002`.
#
# @option params [Boolean] :enable_termination_protection
# Whether to enable termination protection on the specified stack. If a
# user attempts to delete a stack with termination protection enabled,
# the operation fails and the stack remains unchanged. For more
# information, see [Protecting a Stack From Being Deleted][1] in the
# *AWS CloudFormation User Guide*. Termination protection is disabled on
# stacks by default.
#
# For [nested stacks][2], termination protection is set on the root
# stack and cannot be changed directly on the nested stack.
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html
# [2]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html
#
# @return [Types::CreateStackOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::CreateStackOutput#stack_id #stack_id} => String
#
# @example Request syntax with placeholder values
#
# resp = client.create_stack({
# stack_name: "StackName", # required
# template_body: "TemplateBody",
# template_url: "TemplateURL",
# parameters: [
# {
# parameter_key: "ParameterKey",
# parameter_value: "ParameterValue",
# use_previous_value: false,
# resolved_value: "ParameterValue",
# },
# ],
# disable_rollback: false,
# rollback_configuration: {
# rollback_triggers: [
# {
# arn: "Arn", # required
# type: "Type", # required
# },
# ],
# monitoring_time_in_minutes: 1,
# },
# timeout_in_minutes: 1,
# notification_arns: ["NotificationARN"],
# capabilities: ["CAPABILITY_IAM"], # accepts CAPABILITY_IAM, CAPABILITY_NAMED_IAM, CAPABILITY_AUTO_EXPAND
# resource_types: ["ResourceType"],
# role_arn: "RoleARN",
# on_failure: "DO_NOTHING", # accepts DO_NOTHING, ROLLBACK, DELETE
# stack_policy_body: "StackPolicyBody",
# stack_policy_url: "StackPolicyURL",
# tags: [
# {
# key: "TagKey", # required
# value: "TagValue", # required
# },
# ],
# client_request_token: "ClientRequestToken",
# enable_termination_protection: false,
# })
#
# @example Response structure
#
# resp.stack_id #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStack AWS API Documentation
#
# @overload create_stack(params = {})
# @param [Hash] params ({})
def create_stack(params = {}, options = {})
req = build_request(:create_stack, params)
req.send_request(options)
end
# Creates stack instances for the specified accounts, within the
# specified Regions. A stack instance refers to a stack in a specific
# account and Region. You must specify at least one value for either
# `Accounts` or `DeploymentTargets`, and you must specify at least one
# value for `Regions`.
#
# @option params [required, String] :stack_set_name
# The name or unique ID of the stack set that you want to create stack
# instances from.
#
# @option params [Array] :accounts
# \[`Self-managed` permissions\] The names of one or more AWS accounts
# that you want to create stack instances in the specified Region(s)
# for.
#
# You can specify `Accounts` or `DeploymentTargets`, but not both.
#
# @option params [Types::DeploymentTargets] :deployment_targets
# \[`Service-managed` permissions\] The AWS Organizations accounts for
# which to create stack instances in the specified Regions.
#
# You can specify `Accounts` or `DeploymentTargets`, but not both.
#
# @option params [required, Array] :regions
# The names of one or more Regions where you want to create stack
# instances using the specified AWS account(s).
#
# @option params [Array] :parameter_overrides
# A list of stack set parameters whose values you want to override in
# the selected stack instances.
#
# Any overridden parameter values will be applied to all stack instances
# in the specified accounts and Regions. When specifying parameters and
# their values, be aware of how AWS CloudFormation sets parameter values
# during stack instance operations:
#
# * To override the current value for a parameter, include the parameter
# and specify its value.
#
# * To leave a parameter set to its present value, you can do one of the
# following:
#
# * Do not include the parameter in the list.
#
# * Include the parameter and specify `UsePreviousValue` as `true`.
# (You cannot specify both a value and set `UsePreviousValue` to
# `true`.)
#
# * To set all overridden parameter back to the values specified in the
# stack set, specify a parameter list but do not include any
# parameters.
#
# * To leave all parameters set to their present values, do not specify
# this property at all.
#
# During stack set updates, any parameter values overridden for a stack
# instance are not updated, but retain their overridden value.
#
# You can only override the parameter *values* that are specified in the
# stack set; to add or delete a parameter itself, use
# [UpdateStackSet][1] to update the stack set template.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html
#
# @option params [Types::StackSetOperationPreferences] :operation_preferences
# Preferences for how AWS CloudFormation performs this stack set
# operation.
#
# @option params [String] :operation_id
# The unique identifier for this stack set operation.
#
# The operation ID also functions as an idempotency token, to ensure
# that AWS CloudFormation performs the stack set operation only once,
# even if you retry the request multiple times. You might retry stack
# set operation requests to ensure that AWS CloudFormation successfully
# received them.
#
# If you don't specify an operation ID, the SDK generates one
# automatically.
#
# Repeating this stack set operation with a new operation ID retries all
# stack instances whose status is `OUTDATED`.
#
# **A suitable default value is auto-generated.** You should normally
# not need to pass this option.**
#
# @return [Types::CreateStackInstancesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::CreateStackInstancesOutput#operation_id #operation_id} => String
#
# @example Request syntax with placeholder values
#
# resp = client.create_stack_instances({
# stack_set_name: "StackSetName", # required
# accounts: ["Account"],
# deployment_targets: {
# accounts: ["Account"],
# organizational_unit_ids: ["OrganizationalUnitId"],
# },
# regions: ["Region"], # required
# parameter_overrides: [
# {
# parameter_key: "ParameterKey",
# parameter_value: "ParameterValue",
# use_previous_value: false,
# resolved_value: "ParameterValue",
# },
# ],
# operation_preferences: {
# region_order: ["Region"],
# failure_tolerance_count: 1,
# failure_tolerance_percentage: 1,
# max_concurrent_count: 1,
# max_concurrent_percentage: 1,
# },
# operation_id: "ClientRequestToken",
# })
#
# @example Response structure
#
# resp.operation_id #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackInstances AWS API Documentation
#
# @overload create_stack_instances(params = {})
# @param [Hash] params ({})
def create_stack_instances(params = {}, options = {})
req = build_request(:create_stack_instances, params)
req.send_request(options)
end
# Creates a stack set.
#
# @option params [required, String] :stack_set_name
# The name to associate with the stack set. The name must be unique in
# the Region where you create your stack set.
#
# A stack name can contain only alphanumeric characters (case-sensitive)
# and hyphens. It must start with an alphabetic character and can't be
# longer than 128 characters.
#
#
#
# @option params [String] :description
# A description of the stack set. You can use the description to
# identify the stack set's purpose or other important information.
#
# @option params [String] :template_body
# The structure that contains the template body, with a minimum length
# of 1 byte and a maximum length of 51,200 bytes. For more information,
# see [Template Anatomy][1] in the AWS CloudFormation User Guide.
#
# Conditional: You must specify either the TemplateBody or the
# TemplateURL parameter, but not both.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
#
# @option params [String] :template_url
# The location of the file that contains the template body. The URL must
# point to a template (maximum size: 460,800 bytes) that's located in
# an Amazon S3 bucket. For more information, see [Template Anatomy][1]
# in the AWS CloudFormation User Guide.
#
# Conditional: You must specify either the TemplateBody or the
# TemplateURL parameter, but not both.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
#
# @option params [Array] :parameters
# The input parameters for the stack set template.
#
# @option params [Array] :capabilities
# In some cases, you must explicitly acknowledge that your stack set
# template contains certain capabilities in order for AWS CloudFormation
# to create the stack set and related stack instances.
#
# * `CAPABILITY_IAM` and `CAPABILITY_NAMED_IAM`
#
# Some stack templates might include resources that can affect
# permissions in your AWS account; for example, by creating new AWS
# Identity and Access Management (IAM) users. For those stack sets,
# you must explicitly acknowledge this by specifying one of these
# capabilities.
#
# The following IAM resources require you to specify either the
# `CAPABILITY_IAM` or `CAPABILITY_NAMED_IAM` capability.
#
# * If you have IAM resources, you can specify either capability.
#
# * If you have IAM resources with custom names, you *must* specify
# `CAPABILITY_NAMED_IAM`.
#
# * If you don't specify either of these capabilities, AWS
# CloudFormation returns an `InsufficientCapabilities` error.
#
# If your stack template contains these resources, we recommend that
# you review all permissions associated with them and edit their
# permissions if necessary.
#
# * [ AWS::IAM::AccessKey][1]
#
# * [ AWS::IAM::Group][2]
#
# * [ AWS::IAM::InstanceProfile][3]
#
# * [ AWS::IAM::Policy][4]
#
# * [ AWS::IAM::Role][5]
#
# * [ AWS::IAM::User][6]
#
# * [ AWS::IAM::UserToGroupAddition][7]
#
# For more information, see [Acknowledging IAM Resources in AWS
# CloudFormation Templates][8].
#
# * `CAPABILITY_AUTO_EXPAND`
#
# Some templates contain macros. If your stack template contains one
# or more macros, and you choose to create a stack directly from the
# processed template, without first reviewing the resulting changes in
# a change set, you must acknowledge this capability. For more
# information, see [Using AWS CloudFormation Macros to Perform Custom
# Processing on Templates][9].
#
# Stack sets do not currently support macros in stack templates. (This
# includes the [AWS::Include][10] and [AWS::Serverless][11]
# transforms, which are macros hosted by AWS CloudFormation.) Even if
# you specify this capability, if you include a macro in your template
# the stack set operation will fail.
#
#
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html
# [3]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html
# [4]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html
# [5]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html
# [6]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html
# [7]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html
# [8]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities
# [9]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html
# [10]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html
# [11]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html
#
# @option params [Array] :tags
# The key-value pairs to associate with this stack set and the stacks
# created from it. AWS CloudFormation also propagates these tags to
# supported resources that are created in the stacks. A maximum number
# of 50 tags can be specified.
#
# If you specify tags as part of a `CreateStackSet` action, AWS
# CloudFormation checks to see if you have the required IAM permission
# to tag resources. If you don't, the entire `CreateStackSet` action
# fails with an `access denied` error, and the stack set is not created.
#
# @option params [String] :administration_role_arn
# The Amazon Resource Number (ARN) of the IAM role to use to create this
# stack set.
#
# Specify an IAM role only if you are using customized administrator
# roles to control which users or groups can manage specific stack sets
# within the same administrator account. For more information, see
# [Prerequisites: Granting Permissions for Stack Set Operations][1] in
# the *AWS CloudFormation User Guide*.
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html
#
# @option params [String] :execution_role_name
# The name of the IAM execution role to use to create the stack set. If
# you do not specify an execution role, AWS CloudFormation uses the
# `AWSCloudFormationStackSetExecutionRole` role for the stack set
# operation.
#
# Specify an IAM role only if you are using customized execution roles
# to control which stack resources users and groups can include in their
# stack sets.
#
# @option params [String] :permission_model
# Describes how the IAM roles required for stack set operations are
# created. By default, `SELF-MANAGED` is specified.
#
# * With `self-managed` permissions, you must create the administrator
# and execution roles required to deploy to target accounts. For more
# information, see [Grant Self-Managed Stack Set Permissions][1].
#
# * With `service-managed` permissions, StackSets automatically creates
# the IAM roles required to deploy to accounts managed by AWS
# Organizations. For more information, see [Grant Service-Managed
# Stack Set Permissions][2].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html
#
# @option params [Types::AutoDeployment] :auto_deployment
# Describes whether StackSets automatically deploys to AWS Organizations
# accounts that are added to the target organization or organizational
# unit (OU). Specify only if `PermissionModel` is `SERVICE_MANAGED`.
#
# @option params [String] :client_request_token
# A unique identifier for this `CreateStackSet` request. Specify this
# token if you plan to retry requests so that AWS CloudFormation knows
# that you're not attempting to create another stack set with the same
# name. You might retry `CreateStackSet` requests to ensure that AWS
# CloudFormation successfully received them.
#
# If you don't specify an operation ID, the SDK generates one
# automatically.
#
# **A suitable default value is auto-generated.** You should normally
# not need to pass this option.**
#
# @return [Types::CreateStackSetOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::CreateStackSetOutput#stack_set_id #stack_set_id} => String
#
# @example Request syntax with placeholder values
#
# resp = client.create_stack_set({
# stack_set_name: "StackSetName", # required
# description: "Description",
# template_body: "TemplateBody",
# template_url: "TemplateURL",
# parameters: [
# {
# parameter_key: "ParameterKey",
# parameter_value: "ParameterValue",
# use_previous_value: false,
# resolved_value: "ParameterValue",
# },
# ],
# capabilities: ["CAPABILITY_IAM"], # accepts CAPABILITY_IAM, CAPABILITY_NAMED_IAM, CAPABILITY_AUTO_EXPAND
# tags: [
# {
# key: "TagKey", # required
# value: "TagValue", # required
# },
# ],
# administration_role_arn: "RoleARN",
# execution_role_name: "ExecutionRoleName",
# permission_model: "SERVICE_MANAGED", # accepts SERVICE_MANAGED, SELF_MANAGED
# auto_deployment: {
# enabled: false,
# retain_stacks_on_account_removal: false,
# },
# client_request_token: "ClientRequestToken",
# })
#
# @example Response structure
#
# resp.stack_set_id #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackSet AWS API Documentation
#
# @overload create_stack_set(params = {})
# @param [Hash] params ({})
def create_stack_set(params = {}, options = {})
req = build_request(:create_stack_set, params)
req.send_request(options)
end
# Deletes the specified change set. Deleting change sets ensures that no
# one executes the wrong change set.
#
# If the call successfully completes, AWS CloudFormation successfully
# deleted the change set.
#
# @option params [required, String] :change_set_name
# The name or Amazon Resource Name (ARN) of the change set that you want
# to delete.
#
# @option params [String] :stack_name
# If you specified the name of a change set to delete, specify the stack
# name or ID (ARN) that is associated with it.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.delete_change_set({
# change_set_name: "ChangeSetNameOrId", # required
# stack_name: "StackNameOrId",
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteChangeSet AWS API Documentation
#
# @overload delete_change_set(params = {})
# @param [Hash] params ({})
def delete_change_set(params = {}, options = {})
req = build_request(:delete_change_set, params)
req.send_request(options)
end
# Deletes a specified stack. Once the call completes successfully, stack
# deletion starts. Deleted stacks do not show up in the DescribeStacks
# API if the deletion has been completed successfully.
#
# @option params [required, String] :stack_name
# The name or the unique stack ID that is associated with the stack.
#
# @option params [Array] :retain_resources
# For stacks in the `DELETE_FAILED` state, a list of resource logical
# IDs that are associated with the resources you want to retain. During
# deletion, AWS CloudFormation deletes the stack but does not delete the
# retained resources.
#
# Retaining resources is useful when you cannot delete a resource, such
# as a non-empty S3 bucket, but you want to delete the stack.
#
# @option params [String] :role_arn
# The Amazon Resource Name (ARN) of an AWS Identity and Access
# Management (IAM) role that AWS CloudFormation assumes to delete the
# stack. AWS CloudFormation uses the role's credentials to make calls
# on your behalf.
#
# If you don't specify a value, AWS CloudFormation uses the role that
# was previously associated with the stack. If no role is available, AWS
# CloudFormation uses a temporary session that is generated from your
# user credentials.
#
# @option params [String] :client_request_token
# A unique identifier for this `DeleteStack` request. Specify this token
# if you plan to retry requests so that AWS CloudFormation knows that
# you're not attempting to delete a stack with the same name. You might
# retry `DeleteStack` requests to ensure that AWS CloudFormation
# successfully received them.
#
# All events triggered by a given stack operation are assigned the same
# client request token, which you can use to track operations. For
# example, if you execute a `CreateStack` operation with the token
# `token1`, then all the `StackEvents` generated by that operation will
# have `ClientRequestToken` set as `token1`.
#
# In the console, stack operations display the client request token on
# the Events tab. Stack operations that are initiated from the console
# use the token format *Console-StackOperation-ID*, which helps you
# easily identify the stack operation . For example, if you create a
# stack using the console, each stack event would be assigned the same
# token in the following format:
# `Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002`.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.delete_stack({
# stack_name: "StackName", # required
# retain_resources: ["LogicalResourceId"],
# role_arn: "RoleARN",
# client_request_token: "ClientRequestToken",
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStack AWS API Documentation
#
# @overload delete_stack(params = {})
# @param [Hash] params ({})
def delete_stack(params = {}, options = {})
req = build_request(:delete_stack, params)
req.send_request(options)
end
# Deletes stack instances for the specified accounts, in the specified
# Regions.
#
# @option params [required, String] :stack_set_name
# The name or unique ID of the stack set that you want to delete stack
# instances for.
#
# @option params [Array] :accounts
# \[`Self-managed` permissions\] The names of the AWS accounts that you
# want to delete stack instances for.
#
# You can specify `Accounts` or `DeploymentTargets`, but not both.
#
# @option params [Types::DeploymentTargets] :deployment_targets
# \[`Service-managed` permissions\] The AWS Organizations accounts from
# which to delete stack instances.
#
# You can specify `Accounts` or `DeploymentTargets`, but not both.
#
# @option params [required, Array] :regions
# The Regions where you want to delete stack set instances.
#
# @option params [Types::StackSetOperationPreferences] :operation_preferences
# Preferences for how AWS CloudFormation performs this stack set
# operation.
#
# @option params [required, Boolean] :retain_stacks
# Removes the stack instances from the specified stack set, but doesn't
# delete the stacks. You can't reassociate a retained stack or add an
# existing, saved stack to a new stack set.
#
# For more information, see [Stack set operation options][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options
#
# @option params [String] :operation_id
# The unique identifier for this stack set operation.
#
# If you don't specify an operation ID, the SDK generates one
# automatically.
#
# The operation ID also functions as an idempotency token, to ensure
# that AWS CloudFormation performs the stack set operation only once,
# even if you retry the request multiple times. You can retry stack set
# operation requests to ensure that AWS CloudFormation successfully
# received them.
#
# Repeating this stack set operation with a new operation ID retries all
# stack instances whose status is `OUTDATED`.
#
# **A suitable default value is auto-generated.** You should normally
# not need to pass this option.**
#
# @return [Types::DeleteStackInstancesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::DeleteStackInstancesOutput#operation_id #operation_id} => String
#
# @example Request syntax with placeholder values
#
# resp = client.delete_stack_instances({
# stack_set_name: "StackSetName", # required
# accounts: ["Account"],
# deployment_targets: {
# accounts: ["Account"],
# organizational_unit_ids: ["OrganizationalUnitId"],
# },
# regions: ["Region"], # required
# operation_preferences: {
# region_order: ["Region"],
# failure_tolerance_count: 1,
# failure_tolerance_percentage: 1,
# max_concurrent_count: 1,
# max_concurrent_percentage: 1,
# },
# retain_stacks: false, # required
# operation_id: "ClientRequestToken",
# })
#
# @example Response structure
#
# resp.operation_id #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackInstances AWS API Documentation
#
# @overload delete_stack_instances(params = {})
# @param [Hash] params ({})
def delete_stack_instances(params = {}, options = {})
req = build_request(:delete_stack_instances, params)
req.send_request(options)
end
# Deletes a stack set. Before you can delete a stack set, all of its
# member stack instances must be deleted. For more information about how
# to do this, see DeleteStackInstances.
#
# @option params [required, String] :stack_set_name
# The name or unique ID of the stack set that you're deleting. You can
# obtain this value by running ListStackSets.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.delete_stack_set({
# stack_set_name: "StackSetName", # required
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackSet AWS API Documentation
#
# @overload delete_stack_set(params = {})
# @param [Hash] params ({})
def delete_stack_set(params = {}, options = {})
req = build_request(:delete_stack_set, params)
req.send_request(options)
end
# Removes a type or type version from active use in the CloudFormation
# registry. If a type or type version is deregistered, it cannot be used
# in CloudFormation operations.
#
# To deregister a type, you must individually deregister all registered
# versions of that type. If a type has only a single registered version,
# deregistering that version results in the type itself being
# deregistered.
#
# You cannot deregister the default version of a type, unless it is the
# only registered version of that type, in which case the type itself is
# deregistered as well.
#
# @option params [String] :arn
# The Amazon Resource Name (ARN) of the type.
#
# Conditional: You must specify either `TypeName` and `Type`, or `Arn`.
#
# @option params [String] :type
# The kind of type.
#
# Currently the only valid value is `RESOURCE`.
#
# Conditional: You must specify either `TypeName` and `Type`, or `Arn`.
#
# @option params [String] :type_name
# The name of the type.
#
# Conditional: You must specify either `TypeName` and `Type`, or `Arn`.
#
# @option params [String] :version_id
# The ID of a specific version of the type. The version ID is the value
# at the end of the Amazon Resource Name (ARN) assigned to the type
# version when it is registered.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.deregister_type({
# arn: "PrivateTypeArn",
# type: "RESOURCE", # accepts RESOURCE
# type_name: "TypeName",
# version_id: "TypeVersionId",
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeregisterType AWS API Documentation
#
# @overload deregister_type(params = {})
# @param [Hash] params ({})
def deregister_type(params = {}, options = {})
req = build_request(:deregister_type, params)
req.send_request(options)
end
# Retrieves your account's AWS CloudFormation limits, such as the
# maximum number of stacks that you can create in your account. For more
# information about account limits, see [AWS CloudFormation Limits][1]
# in the *AWS CloudFormation User Guide*.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html
#
# @option params [String] :next_token
# A string that identifies the next page of limits that you want to
# retrieve.
#
# @return [Types::DescribeAccountLimitsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::DescribeAccountLimitsOutput#account_limits #account_limits} => Array<Types::AccountLimit>
# * {Types::DescribeAccountLimitsOutput#next_token #next_token} => String
#
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
#
# @example Request syntax with placeholder values
#
# resp = client.describe_account_limits({
# next_token: "NextToken",
# })
#
# @example Response structure
#
# resp.account_limits #=> Array
# resp.account_limits[0].name #=> String
# resp.account_limits[0].value #=> Integer
# resp.next_token #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeAccountLimits AWS API Documentation
#
# @overload describe_account_limits(params = {})
# @param [Hash] params ({})
def describe_account_limits(params = {}, options = {})
req = build_request(:describe_account_limits, params)
req.send_request(options)
end
# Returns the inputs for the change set and a list of changes that AWS
# CloudFormation will make if you execute the change set. For more
# information, see [Updating Stacks Using Change Sets][1] in the AWS
# CloudFormation User Guide.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-changesets.html
#
# @option params [required, String] :change_set_name
# The name or Amazon Resource Name (ARN) of the change set that you want
# to describe.
#
# @option params [String] :stack_name
# If you specified the name of a change set, specify the stack name or
# ID (ARN) of the change set you want to describe.
#
# @option params [String] :next_token
# A string (provided by the DescribeChangeSet response output) that
# identifies the next page of information that you want to retrieve.
#
# @return [Types::DescribeChangeSetOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::DescribeChangeSetOutput#change_set_name #change_set_name} => String
# * {Types::DescribeChangeSetOutput#change_set_id #change_set_id} => String
# * {Types::DescribeChangeSetOutput#stack_id #stack_id} => String
# * {Types::DescribeChangeSetOutput#stack_name #stack_name} => String
# * {Types::DescribeChangeSetOutput#description #description} => String
# * {Types::DescribeChangeSetOutput#parameters #parameters} => Array<Types::Parameter>
# * {Types::DescribeChangeSetOutput#creation_time #creation_time} => Time
# * {Types::DescribeChangeSetOutput#execution_status #execution_status} => String
# * {Types::DescribeChangeSetOutput#status #status} => String
# * {Types::DescribeChangeSetOutput#status_reason #status_reason} => String
# * {Types::DescribeChangeSetOutput#notification_arns #notification_arns} => Array<String>
# * {Types::DescribeChangeSetOutput#rollback_configuration #rollback_configuration} => Types::RollbackConfiguration
# * {Types::DescribeChangeSetOutput#capabilities #capabilities} => Array<String>
# * {Types::DescribeChangeSetOutput#tags #tags} => Array<Types::Tag>
# * {Types::DescribeChangeSetOutput#changes #changes} => Array<Types::Change>
# * {Types::DescribeChangeSetOutput#next_token #next_token} => String
#
# @example Request syntax with placeholder values
#
# resp = client.describe_change_set({
# change_set_name: "ChangeSetNameOrId", # required
# stack_name: "StackNameOrId",
# next_token: "NextToken",
# })
#
# @example Response structure
#
# resp.change_set_name #=> String
# resp.change_set_id #=> String
# resp.stack_id #=> String
# resp.stack_name #=> String
# resp.description #=> String
# resp.parameters #=> Array
# resp.parameters[0].parameter_key #=> String
# resp.parameters[0].parameter_value #=> String
# resp.parameters[0].use_previous_value #=> Boolean
# resp.parameters[0].resolved_value #=> String
# resp.creation_time #=> Time
# resp.execution_status #=> String, one of "UNAVAILABLE", "AVAILABLE", "EXECUTE_IN_PROGRESS", "EXECUTE_COMPLETE", "EXECUTE_FAILED", "OBSOLETE"
# resp.status #=> String, one of "CREATE_PENDING", "CREATE_IN_PROGRESS", "CREATE_COMPLETE", "DELETE_COMPLETE", "FAILED"
# resp.status_reason #=> String
# resp.notification_arns #=> Array
# resp.notification_arns[0] #=> String
# resp.rollback_configuration.rollback_triggers #=> Array
# resp.rollback_configuration.rollback_triggers[0].arn #=> String
# resp.rollback_configuration.rollback_triggers[0].type #=> String
# resp.rollback_configuration.monitoring_time_in_minutes #=> Integer
# resp.capabilities #=> Array
# resp.capabilities[0] #=> String, one of "CAPABILITY_IAM", "CAPABILITY_NAMED_IAM", "CAPABILITY_AUTO_EXPAND"
# resp.tags #=> Array
# resp.tags[0].key #=> String
# resp.tags[0].value #=> String
# resp.changes #=> Array
# resp.changes[0].type #=> String, one of "Resource"
# resp.changes[0].resource_change.action #=> String, one of "Add", "Modify", "Remove", "Import"
# resp.changes[0].resource_change.logical_resource_id #=> String
# resp.changes[0].resource_change.physical_resource_id #=> String
# resp.changes[0].resource_change.resource_type #=> String
# resp.changes[0].resource_change.replacement #=> String, one of "True", "False", "Conditional"
# resp.changes[0].resource_change.scope #=> Array
# resp.changes[0].resource_change.scope[0] #=> String, one of "Properties", "Metadata", "CreationPolicy", "UpdatePolicy", "DeletionPolicy", "Tags"
# resp.changes[0].resource_change.details #=> Array
# resp.changes[0].resource_change.details[0].target.attribute #=> String, one of "Properties", "Metadata", "CreationPolicy", "UpdatePolicy", "DeletionPolicy", "Tags"
# resp.changes[0].resource_change.details[0].target.name #=> String
# resp.changes[0].resource_change.details[0].target.requires_recreation #=> String, one of "Never", "Conditionally", "Always"
# resp.changes[0].resource_change.details[0].evaluation #=> String, one of "Static", "Dynamic"
# resp.changes[0].resource_change.details[0].change_source #=> String, one of "ResourceReference", "ParameterReference", "ResourceAttribute", "DirectModification", "Automatic"
# resp.changes[0].resource_change.details[0].causing_entity #=> String
# resp.next_token #=> String
#
#
# The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
#
# * change_set_create_complete
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeChangeSet AWS API Documentation
#
# @overload describe_change_set(params = {})
# @param [Hash] params ({})
def describe_change_set(params = {}, options = {})
req = build_request(:describe_change_set, params)
req.send_request(options)
end
# Returns information about a stack drift detection operation. A stack
# drift detection operation detects whether a stack's actual
# configuration differs, or has *drifted*, from it's expected
# configuration, as defined in the stack template and any values
# specified as template parameters. A stack is considered to have
# drifted if one or more of its resources have drifted. For more
# information on stack and resource drift, see [Detecting Unregulated
# Configuration Changes to Stacks and Resources][1].
#
# Use DetectStackDrift to initiate a stack drift detection operation.
# `DetectStackDrift` returns a `StackDriftDetectionId` you can use to
# monitor the progress of the operation using
# `DescribeStackDriftDetectionStatus`. Once the drift detection
# operation has completed, use DescribeStackResourceDrifts to return
# drift information about the stack and its resources.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html
#
# @option params [required, String] :stack_drift_detection_id
# The ID of the drift detection results of this operation.
#
# AWS CloudFormation generates new results, with a new drift detection
# ID, each time this operation is run. However, the number of drift
# results AWS CloudFormation retains for any given stack, and for how
# long, may vary.
#
# @return [Types::DescribeStackDriftDetectionStatusOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::DescribeStackDriftDetectionStatusOutput#stack_id #stack_id} => String
# * {Types::DescribeStackDriftDetectionStatusOutput#stack_drift_detection_id #stack_drift_detection_id} => String
# * {Types::DescribeStackDriftDetectionStatusOutput#stack_drift_status #stack_drift_status} => String
# * {Types::DescribeStackDriftDetectionStatusOutput#detection_status #detection_status} => String
# * {Types::DescribeStackDriftDetectionStatusOutput#detection_status_reason #detection_status_reason} => String
# * {Types::DescribeStackDriftDetectionStatusOutput#drifted_stack_resource_count #drifted_stack_resource_count} => Integer
# * {Types::DescribeStackDriftDetectionStatusOutput#timestamp #timestamp} => Time
#
# @example Request syntax with placeholder values
#
# resp = client.describe_stack_drift_detection_status({
# stack_drift_detection_id: "StackDriftDetectionId", # required
# })
#
# @example Response structure
#
# resp.stack_id #=> String
# resp.stack_drift_detection_id #=> String
# resp.stack_drift_status #=> String, one of "DRIFTED", "IN_SYNC", "UNKNOWN", "NOT_CHECKED"
# resp.detection_status #=> String, one of "DETECTION_IN_PROGRESS", "DETECTION_FAILED", "DETECTION_COMPLETE"
# resp.detection_status_reason #=> String
# resp.drifted_stack_resource_count #=> Integer
# resp.timestamp #=> Time
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackDriftDetectionStatus AWS API Documentation
#
# @overload describe_stack_drift_detection_status(params = {})
# @param [Hash] params ({})
def describe_stack_drift_detection_status(params = {}, options = {})
req = build_request(:describe_stack_drift_detection_status, params)
req.send_request(options)
end
# Returns all stack related events for a specified stack in reverse
# chronological order. For more information about a stack's event
# history, go to [Stacks][1] in the AWS CloudFormation User Guide.
#
# You can list events for stacks that have failed to create or have been
# deleted by specifying the unique stack identifier (stack ID).
#
#
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/concept-stack.html
#
# @option params [String] :stack_name
# The name or the unique stack ID that is associated with the stack,
# which are not always interchangeable:
#
# * Running stacks: You can specify either the stack's name or its
# unique stack ID.
#
# * Deleted stacks: You must specify the unique stack ID.
#
# Default: There is no default value.
#
# @option params [String] :next_token
# A string that identifies the next page of events that you want to
# retrieve.
#
# @return [Types::DescribeStackEventsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::DescribeStackEventsOutput#stack_events #stack_events} => Array<Types::StackEvent>
# * {Types::DescribeStackEventsOutput#next_token #next_token} => String
#
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
#
# @example Request syntax with placeholder values
#
# resp = client.describe_stack_events({
# stack_name: "StackName",
# next_token: "NextToken",
# })
#
# @example Response structure
#
# resp.stack_events #=> Array
# resp.stack_events[0].stack_id #=> String
# resp.stack_events[0].event_id #=> String
# resp.stack_events[0].stack_name #=> String
# resp.stack_events[0].logical_resource_id #=> String
# resp.stack_events[0].physical_resource_id #=> String
# resp.stack_events[0].resource_type #=> String
# resp.stack_events[0].timestamp #=> Time
# 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", "IMPORT_FAILED", "IMPORT_COMPLETE", "IMPORT_IN_PROGRESS", "IMPORT_ROLLBACK_IN_PROGRESS", "IMPORT_ROLLBACK_FAILED", "IMPORT_ROLLBACK_COMPLETE"
# resp.stack_events[0].resource_status_reason #=> String
# resp.stack_events[0].resource_properties #=> String
# resp.stack_events[0].client_request_token #=> String
# resp.next_token #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackEvents AWS API Documentation
#
# @overload describe_stack_events(params = {})
# @param [Hash] params ({})
def describe_stack_events(params = {}, options = {})
req = build_request(:describe_stack_events, params)
req.send_request(options)
end
# Returns the stack instance that's associated with the specified stack
# set, AWS account, and Region.
#
# For a list of stack instances that are associated with a specific
# stack set, use ListStackInstances.
#
# @option params [required, String] :stack_set_name
# The name or the unique stack ID of the stack set that you want to get
# stack instance information for.
#
# @option params [required, String] :stack_instance_account
# The ID of an AWS account that's associated with this stack instance.
#
# @option params [required, String] :stack_instance_region
# The name of a Region that's associated with this stack instance.
#
# @return [Types::DescribeStackInstanceOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::DescribeStackInstanceOutput#stack_instance #stack_instance} => Types::StackInstance
#
# @example Request syntax with placeholder values
#
# resp = client.describe_stack_instance({
# stack_set_name: "StackSetName", # required
# stack_instance_account: "Account", # required
# stack_instance_region: "Region", # required
# })
#
# @example Response structure
#
# resp.stack_instance.stack_set_id #=> String
# resp.stack_instance.region #=> String
# resp.stack_instance.account #=> String
# resp.stack_instance.stack_id #=> String
# resp.stack_instance.parameter_overrides #=> Array
# resp.stack_instance.parameter_overrides[0].parameter_key #=> String
# resp.stack_instance.parameter_overrides[0].parameter_value #=> String
# resp.stack_instance.parameter_overrides[0].use_previous_value #=> Boolean
# resp.stack_instance.parameter_overrides[0].resolved_value #=> String
# resp.stack_instance.status #=> String, one of "CURRENT", "OUTDATED", "INOPERABLE"
# resp.stack_instance.stack_instance_status.detailed_status #=> String, one of "PENDING", "RUNNING", "SUCCEEDED", "FAILED", "CANCELLED", "INOPERABLE"
# resp.stack_instance.status_reason #=> String
# resp.stack_instance.organizational_unit_id #=> String
# resp.stack_instance.drift_status #=> String, one of "DRIFTED", "IN_SYNC", "UNKNOWN", "NOT_CHECKED"
# resp.stack_instance.last_drift_check_timestamp #=> Time
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackInstance AWS API Documentation
#
# @overload describe_stack_instance(params = {})
# @param [Hash] params ({})
def describe_stack_instance(params = {}, options = {})
req = build_request(:describe_stack_instance, params)
req.send_request(options)
end
# Returns a description of the specified resource in the specified
# stack.
#
# For deleted stacks, DescribeStackResource returns resource information
# for up to 90 days after the stack has been deleted.
#
# @option params [required, String] :stack_name
# The name or the unique stack ID that is associated with the stack,
# which are not always interchangeable:
#
# * Running stacks: You can specify either the stack's name or its
# unique stack ID.
#
# * Deleted stacks: You must specify the unique stack ID.
#
# Default: There is no default value.
#
# @option params [required, String] :logical_resource_id
# The logical name of the resource as specified in the template.
#
# Default: There is no default value.
#
# @return [Types::DescribeStackResourceOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::DescribeStackResourceOutput#stack_resource_detail #stack_resource_detail} => Types::StackResourceDetail
#
# @example Request syntax with placeholder values
#
# resp = client.describe_stack_resource({
# stack_name: "StackName", # required
# logical_resource_id: "LogicalResourceId", # required
# })
#
# @example Response structure
#
# resp.stack_resource_detail.stack_name #=> String
# resp.stack_resource_detail.stack_id #=> String
# resp.stack_resource_detail.logical_resource_id #=> String
# resp.stack_resource_detail.physical_resource_id #=> String
# resp.stack_resource_detail.resource_type #=> String
# resp.stack_resource_detail.last_updated_timestamp #=> Time
# 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", "IMPORT_FAILED", "IMPORT_COMPLETE", "IMPORT_IN_PROGRESS", "IMPORT_ROLLBACK_IN_PROGRESS", "IMPORT_ROLLBACK_FAILED", "IMPORT_ROLLBACK_COMPLETE"
# resp.stack_resource_detail.resource_status_reason #=> String
# resp.stack_resource_detail.description #=> String
# resp.stack_resource_detail.metadata #=> String
# resp.stack_resource_detail.drift_information.stack_resource_drift_status #=> String, one of "IN_SYNC", "MODIFIED", "DELETED", "NOT_CHECKED"
# resp.stack_resource_detail.drift_information.last_check_timestamp #=> Time
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResource AWS API Documentation
#
# @overload describe_stack_resource(params = {})
# @param [Hash] params ({})
def describe_stack_resource(params = {}, options = {})
req = build_request(:describe_stack_resource, params)
req.send_request(options)
end
# Returns drift information for the resources that have been checked for
# drift in the specified stack. This includes actual and expected
# configuration values for resources where AWS CloudFormation detects
# configuration drift.
#
# For a given stack, there will be one `StackResourceDrift` for each
# stack resource that has been checked for drift. Resources that have
# not yet been checked for drift are not included. Resources that do not
# currently support drift detection are not checked, and so not
# included. For a list of resources that support drift detection, see
# [Resources that Support Drift Detection][1].
#
# Use DetectStackResourceDrift to detect drift on individual resources,
# or DetectStackDrift to detect drift on all supported resources for a
# given stack.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html
#
# @option params [required, String] :stack_name
# The name of the stack for which you want drift information.
#
# @option params [Array] :stack_resource_drift_status_filters
# The resource drift status values to use as filters for the resource
# drift results returned.
#
# * `DELETED`\: The resource differs from its expected template
# configuration in that the resource has been deleted.
#
# * `MODIFIED`\: One or more resource properties differ from their
# expected template values.
#
# * `IN_SYNC`\: The resources's actual configuration matches its
# expected template configuration.
#
# * `NOT_CHECKED`\: AWS CloudFormation does not currently return this
# value.
#
# @option params [String] :next_token
# A string that identifies the next page of stack resource drift
# results.
#
# @option params [Integer] :max_results
# The maximum number of results to be returned with a single call. If
# the number of available results exceeds this maximum, the response
# includes a `NextToken` value that you can assign to the `NextToken`
# request parameter to get the next set of results.
#
# @return [Types::DescribeStackResourceDriftsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::DescribeStackResourceDriftsOutput#stack_resource_drifts #stack_resource_drifts} => Array<Types::StackResourceDrift>
# * {Types::DescribeStackResourceDriftsOutput#next_token #next_token} => String
#
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
#
# @example Request syntax with placeholder values
#
# resp = client.describe_stack_resource_drifts({
# stack_name: "StackNameOrId", # required
# stack_resource_drift_status_filters: ["IN_SYNC"], # accepts IN_SYNC, MODIFIED, DELETED, NOT_CHECKED
# next_token: "NextToken",
# max_results: 1,
# })
#
# @example Response structure
#
# resp.stack_resource_drifts #=> Array
# resp.stack_resource_drifts[0].stack_id #=> String
# resp.stack_resource_drifts[0].logical_resource_id #=> String
# resp.stack_resource_drifts[0].physical_resource_id #=> String
# resp.stack_resource_drifts[0].physical_resource_id_context #=> Array
# resp.stack_resource_drifts[0].physical_resource_id_context[0].key #=> String
# resp.stack_resource_drifts[0].physical_resource_id_context[0].value #=> String
# resp.stack_resource_drifts[0].resource_type #=> String
# resp.stack_resource_drifts[0].expected_properties #=> String
# resp.stack_resource_drifts[0].actual_properties #=> String
# resp.stack_resource_drifts[0].property_differences #=> Array
# resp.stack_resource_drifts[0].property_differences[0].property_path #=> String
# resp.stack_resource_drifts[0].property_differences[0].expected_value #=> String
# resp.stack_resource_drifts[0].property_differences[0].actual_value #=> String
# resp.stack_resource_drifts[0].property_differences[0].difference_type #=> String, one of "ADD", "REMOVE", "NOT_EQUAL"
# resp.stack_resource_drifts[0].stack_resource_drift_status #=> String, one of "IN_SYNC", "MODIFIED", "DELETED", "NOT_CHECKED"
# resp.stack_resource_drifts[0].timestamp #=> Time
# resp.next_token #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResourceDrifts AWS API Documentation
#
# @overload describe_stack_resource_drifts(params = {})
# @param [Hash] params ({})
def describe_stack_resource_drifts(params = {}, options = {})
req = build_request(:describe_stack_resource_drifts, params)
req.send_request(options)
end
# Returns AWS resource descriptions for running and deleted stacks. If
# `StackName` is specified, all the associated resources that are part
# of the stack are returned. If `PhysicalResourceId` is specified, the
# associated resources of the stack that the resource belongs to are
# returned.
#
# Only the first 100 resources will be returned. If your stack has more
# resources than this, you should use `ListStackResources` instead.
#
#
#
# For deleted stacks, `DescribeStackResources` returns resource
# information for up to 90 days after the stack has been deleted.
#
# You must specify either `StackName` or `PhysicalResourceId`, but not
# both. In addition, you can specify `LogicalResourceId` to filter the
# returned result. For more information about resources, the
# `LogicalResourceId` and `PhysicalResourceId`, go to the [AWS
# CloudFormation User Guide][1].
#
# A `ValidationError` is returned if you specify both `StackName` and
# `PhysicalResourceId` in the same request.
#
#
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/
#
# @option params [String] :stack_name
# The name or the unique stack ID that is associated with the stack,
# which are not always interchangeable:
#
# * Running stacks: You can specify either the stack's name or its
# unique stack ID.
#
# * Deleted stacks: You must specify the unique stack ID.
#
# Default: There is no default value.
#
# Required: Conditional. If you do not specify `StackName`, you must
# specify `PhysicalResourceId`.
#
# @option params [String] :logical_resource_id
# The logical name of the resource as specified in the template.
#
# Default: There is no default value.
#
# @option params [String] :physical_resource_id
# The name or unique identifier that corresponds to a physical instance
# ID of a resource supported by AWS CloudFormation.
#
# For example, for an Amazon Elastic Compute Cloud (EC2) instance,
# `PhysicalResourceId` corresponds to the `InstanceId`. You can pass the
# EC2 `InstanceId` to `DescribeStackResources` to find which stack the
# instance belongs to and what other resources are part of the stack.
#
# Required: Conditional. If you do not specify `PhysicalResourceId`, you
# must specify `StackName`.
#
# Default: There is no default value.
#
# @return [Types::DescribeStackResourcesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::DescribeStackResourcesOutput#stack_resources #stack_resources} => Array<Types::StackResource>
#
# @example Request syntax with placeholder values
#
# resp = client.describe_stack_resources({
# stack_name: "StackName",
# logical_resource_id: "LogicalResourceId",
# physical_resource_id: "PhysicalResourceId",
# })
#
# @example Response structure
#
# resp.stack_resources #=> Array
# resp.stack_resources[0].stack_name #=> String
# resp.stack_resources[0].stack_id #=> String
# resp.stack_resources[0].logical_resource_id #=> String
# resp.stack_resources[0].physical_resource_id #=> String
# resp.stack_resources[0].resource_type #=> String
# resp.stack_resources[0].timestamp #=> Time
# 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", "IMPORT_FAILED", "IMPORT_COMPLETE", "IMPORT_IN_PROGRESS", "IMPORT_ROLLBACK_IN_PROGRESS", "IMPORT_ROLLBACK_FAILED", "IMPORT_ROLLBACK_COMPLETE"
# resp.stack_resources[0].resource_status_reason #=> String
# resp.stack_resources[0].description #=> String
# resp.stack_resources[0].drift_information.stack_resource_drift_status #=> String, one of "IN_SYNC", "MODIFIED", "DELETED", "NOT_CHECKED"
# resp.stack_resources[0].drift_information.last_check_timestamp #=> Time
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResources AWS API Documentation
#
# @overload describe_stack_resources(params = {})
# @param [Hash] params ({})
def describe_stack_resources(params = {}, options = {})
req = build_request(:describe_stack_resources, params)
req.send_request(options)
end
# Returns the description of the specified stack set.
#
# @option params [required, String] :stack_set_name
# The name or unique ID of the stack set whose description you want.
#
# @return [Types::DescribeStackSetOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::DescribeStackSetOutput#stack_set #stack_set} => Types::StackSet
#
# @example Request syntax with placeholder values
#
# resp = client.describe_stack_set({
# stack_set_name: "StackSetName", # required
# })
#
# @example Response structure
#
# resp.stack_set.stack_set_name #=> String
# resp.stack_set.stack_set_id #=> String
# resp.stack_set.description #=> String
# resp.stack_set.status #=> String, one of "ACTIVE", "DELETED"
# resp.stack_set.template_body #=> String
# resp.stack_set.parameters #=> Array
# resp.stack_set.parameters[0].parameter_key #=> String
# resp.stack_set.parameters[0].parameter_value #=> String
# resp.stack_set.parameters[0].use_previous_value #=> Boolean
# resp.stack_set.parameters[0].resolved_value #=> String
# resp.stack_set.capabilities #=> Array
# resp.stack_set.capabilities[0] #=> String, one of "CAPABILITY_IAM", "CAPABILITY_NAMED_IAM", "CAPABILITY_AUTO_EXPAND"
# resp.stack_set.tags #=> Array
# resp.stack_set.tags[0].key #=> String
# resp.stack_set.tags[0].value #=> String
# resp.stack_set.stack_set_arn #=> String
# resp.stack_set.administration_role_arn #=> String
# resp.stack_set.execution_role_name #=> String
# resp.stack_set.stack_set_drift_detection_details.drift_status #=> String, one of "DRIFTED", "IN_SYNC", "NOT_CHECKED"
# resp.stack_set.stack_set_drift_detection_details.drift_detection_status #=> String, one of "COMPLETED", "FAILED", "PARTIAL_SUCCESS", "IN_PROGRESS", "STOPPED"
# resp.stack_set.stack_set_drift_detection_details.last_drift_check_timestamp #=> Time
# resp.stack_set.stack_set_drift_detection_details.total_stack_instances_count #=> Integer
# resp.stack_set.stack_set_drift_detection_details.drifted_stack_instances_count #=> Integer
# resp.stack_set.stack_set_drift_detection_details.in_sync_stack_instances_count #=> Integer
# resp.stack_set.stack_set_drift_detection_details.in_progress_stack_instances_count #=> Integer
# resp.stack_set.stack_set_drift_detection_details.failed_stack_instances_count #=> Integer
# resp.stack_set.auto_deployment.enabled #=> Boolean
# resp.stack_set.auto_deployment.retain_stacks_on_account_removal #=> Boolean
# resp.stack_set.permission_model #=> String, one of "SERVICE_MANAGED", "SELF_MANAGED"
# resp.stack_set.organizational_unit_ids #=> Array
# resp.stack_set.organizational_unit_ids[0] #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSet AWS API Documentation
#
# @overload describe_stack_set(params = {})
# @param [Hash] params ({})
def describe_stack_set(params = {}, options = {})
req = build_request(:describe_stack_set, params)
req.send_request(options)
end
# Returns the description of the specified stack set operation.
#
# @option params [required, String] :stack_set_name
# The name or the unique stack ID of the stack set for the stack
# operation.
#
# @option params [required, String] :operation_id
# The unique ID of the stack set operation.
#
# @return [Types::DescribeStackSetOperationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::DescribeStackSetOperationOutput#stack_set_operation #stack_set_operation} => Types::StackSetOperation
#
# @example Request syntax with placeholder values
#
# resp = client.describe_stack_set_operation({
# stack_set_name: "StackSetName", # required
# operation_id: "ClientRequestToken", # required
# })
#
# @example Response structure
#
# resp.stack_set_operation.operation_id #=> String
# resp.stack_set_operation.stack_set_id #=> String
# resp.stack_set_operation.action #=> String, one of "CREATE", "UPDATE", "DELETE", "DETECT_DRIFT"
# resp.stack_set_operation.status #=> String, one of "RUNNING", "SUCCEEDED", "FAILED", "STOPPING", "STOPPED", "QUEUED"
# resp.stack_set_operation.operation_preferences.region_order #=> Array
# resp.stack_set_operation.operation_preferences.region_order[0] #=> String
# resp.stack_set_operation.operation_preferences.failure_tolerance_count #=> Integer
# resp.stack_set_operation.operation_preferences.failure_tolerance_percentage #=> Integer
# resp.stack_set_operation.operation_preferences.max_concurrent_count #=> Integer
# resp.stack_set_operation.operation_preferences.max_concurrent_percentage #=> Integer
# resp.stack_set_operation.retain_stacks #=> Boolean
# resp.stack_set_operation.administration_role_arn #=> String
# resp.stack_set_operation.execution_role_name #=> String
# resp.stack_set_operation.creation_timestamp #=> Time
# resp.stack_set_operation.end_timestamp #=> Time
# resp.stack_set_operation.deployment_targets.accounts #=> Array
# resp.stack_set_operation.deployment_targets.accounts[0] #=> String
# resp.stack_set_operation.deployment_targets.organizational_unit_ids #=> Array
# resp.stack_set_operation.deployment_targets.organizational_unit_ids[0] #=> String
# resp.stack_set_operation.stack_set_drift_detection_details.drift_status #=> String, one of "DRIFTED", "IN_SYNC", "NOT_CHECKED"
# resp.stack_set_operation.stack_set_drift_detection_details.drift_detection_status #=> String, one of "COMPLETED", "FAILED", "PARTIAL_SUCCESS", "IN_PROGRESS", "STOPPED"
# resp.stack_set_operation.stack_set_drift_detection_details.last_drift_check_timestamp #=> Time
# resp.stack_set_operation.stack_set_drift_detection_details.total_stack_instances_count #=> Integer
# resp.stack_set_operation.stack_set_drift_detection_details.drifted_stack_instances_count #=> Integer
# resp.stack_set_operation.stack_set_drift_detection_details.in_sync_stack_instances_count #=> Integer
# resp.stack_set_operation.stack_set_drift_detection_details.in_progress_stack_instances_count #=> Integer
# resp.stack_set_operation.stack_set_drift_detection_details.failed_stack_instances_count #=> Integer
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSetOperation AWS API Documentation
#
# @overload describe_stack_set_operation(params = {})
# @param [Hash] params ({})
def describe_stack_set_operation(params = {}, options = {})
req = build_request(:describe_stack_set_operation, params)
req.send_request(options)
end
# Returns the description for the specified stack; if no stack name was
# specified, then it returns the description for all the stacks created.
#
# If the stack does not exist, an `AmazonCloudFormationException` is
# returned.
#
#
#
# @option params [String] :stack_name
# The name or the unique stack ID that is associated with the stack,
# which are not always interchangeable:
#
# * Running stacks: You can specify either the stack's name or its
# unique stack ID.
#
# * Deleted stacks: You must specify the unique stack ID.
#
# Default: There is no default value.
#
# @option params [String] :next_token
# A string that identifies the next page of stacks that you want to
# retrieve.
#
# @return [Types::DescribeStacksOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::DescribeStacksOutput#stacks #stacks} => Array<Types::Stack>
# * {Types::DescribeStacksOutput#next_token #next_token} => String
#
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
#
# @example Request syntax with placeholder values
#
# resp = client.describe_stacks({
# stack_name: "StackName",
# next_token: "NextToken",
# })
#
# @example Response structure
#
# resp.stacks #=> Array
# resp.stacks[0].stack_id #=> String
# resp.stacks[0].stack_name #=> String
# resp.stacks[0].change_set_id #=> String
# resp.stacks[0].description #=> String
# resp.stacks[0].parameters #=> Array
# resp.stacks[0].parameters[0].parameter_key #=> String
# resp.stacks[0].parameters[0].parameter_value #=> String
# resp.stacks[0].parameters[0].use_previous_value #=> Boolean
# resp.stacks[0].parameters[0].resolved_value #=> String
# resp.stacks[0].creation_time #=> Time
# resp.stacks[0].deletion_time #=> Time
# resp.stacks[0].last_updated_time #=> Time
# resp.stacks[0].rollback_configuration.rollback_triggers #=> Array
# resp.stacks[0].rollback_configuration.rollback_triggers[0].arn #=> String
# resp.stacks[0].rollback_configuration.rollback_triggers[0].type #=> String
# resp.stacks[0].rollback_configuration.monitoring_time_in_minutes #=> Integer
# 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", "IMPORT_IN_PROGRESS", "IMPORT_COMPLETE", "IMPORT_ROLLBACK_IN_PROGRESS", "IMPORT_ROLLBACK_FAILED", "IMPORT_ROLLBACK_COMPLETE"
# resp.stacks[0].stack_status_reason #=> String
# resp.stacks[0].disable_rollback #=> Boolean
# resp.stacks[0].notification_arns #=> Array
# resp.stacks[0].notification_arns[0] #=> String
# resp.stacks[0].timeout_in_minutes #=> Integer
# resp.stacks[0].capabilities #=> Array
# resp.stacks[0].capabilities[0] #=> String, one of "CAPABILITY_IAM", "CAPABILITY_NAMED_IAM", "CAPABILITY_AUTO_EXPAND"
# resp.stacks[0].outputs #=> Array
# resp.stacks[0].outputs[0].output_key #=> String
# resp.stacks[0].outputs[0].output_value #=> String
# resp.stacks[0].outputs[0].description #=> String
# resp.stacks[0].outputs[0].export_name #=> String
# resp.stacks[0].role_arn #=> String
# resp.stacks[0].tags #=> Array
# resp.stacks[0].tags[0].key #=> String
# resp.stacks[0].tags[0].value #=> String
# resp.stacks[0].enable_termination_protection #=> Boolean
# resp.stacks[0].parent_id #=> String
# resp.stacks[0].root_id #=> String
# resp.stacks[0].drift_information.stack_drift_status #=> String, one of "DRIFTED", "IN_SYNC", "UNKNOWN", "NOT_CHECKED"
# resp.stacks[0].drift_information.last_check_timestamp #=> Time
# resp.next_token #=> String
#
#
# The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
#
# * stack_create_complete
# * stack_delete_complete
# * stack_exists
# * stack_import_complete
# * stack_rollback_complete
# * stack_update_complete
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStacks AWS API Documentation
#
# @overload describe_stacks(params = {})
# @param [Hash] params ({})
def describe_stacks(params = {}, options = {})
req = build_request(:describe_stacks, params)
req.send_request(options)
end
# Returns detailed information about a type that has been registered.
#
# If you specify a `VersionId`, `DescribeType` returns information about
# that specific type version. Otherwise, it returns information about
# the default type version.
#
# @option params [String] :type
# The kind of type.
#
# Currently the only valid value is `RESOURCE`.
#
# Conditional: You must specify either `TypeName` and `Type`, or `Arn`.
#
# @option params [String] :type_name
# The name of the type.
#
# Conditional: You must specify either `TypeName` and `Type`, or `Arn`.
#
# @option params [String] :arn
# The Amazon Resource Name (ARN) of the type.
#
# Conditional: You must specify either `TypeName` and `Type`, or `Arn`.
#
# @option params [String] :version_id
# The ID of a specific version of the type. The version ID is the value
# at the end of the Amazon Resource Name (ARN) assigned to the type
# version when it is registered.
#
# If you specify a `VersionId`, `DescribeType` returns information about
# that specific type version. Otherwise, it returns information about
# the default type version.
#
# @return [Types::DescribeTypeOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::DescribeTypeOutput#arn #arn} => String
# * {Types::DescribeTypeOutput#type #type} => String
# * {Types::DescribeTypeOutput#type_name #type_name} => String
# * {Types::DescribeTypeOutput#default_version_id #default_version_id} => String
# * {Types::DescribeTypeOutput#is_default_version #is_default_version} => Boolean
# * {Types::DescribeTypeOutput#description #description} => String
# * {Types::DescribeTypeOutput#schema #schema} => String
# * {Types::DescribeTypeOutput#provisioning_type #provisioning_type} => String
# * {Types::DescribeTypeOutput#deprecated_status #deprecated_status} => String
# * {Types::DescribeTypeOutput#logging_config #logging_config} => Types::LoggingConfig
# * {Types::DescribeTypeOutput#execution_role_arn #execution_role_arn} => String
# * {Types::DescribeTypeOutput#visibility #visibility} => String
# * {Types::DescribeTypeOutput#source_url #source_url} => String
# * {Types::DescribeTypeOutput#documentation_url #documentation_url} => String
# * {Types::DescribeTypeOutput#last_updated #last_updated} => Time
# * {Types::DescribeTypeOutput#time_created #time_created} => Time
#
# @example Request syntax with placeholder values
#
# resp = client.describe_type({
# type: "RESOURCE", # accepts RESOURCE
# type_name: "TypeName",
# arn: "TypeArn",
# version_id: "TypeVersionId",
# })
#
# @example Response structure
#
# resp.arn #=> String
# resp.type #=> String, one of "RESOURCE"
# resp.type_name #=> String
# resp.default_version_id #=> String
# resp.is_default_version #=> Boolean
# resp.description #=> String
# resp.schema #=> String
# resp.provisioning_type #=> String, one of "NON_PROVISIONABLE", "IMMUTABLE", "FULLY_MUTABLE"
# resp.deprecated_status #=> String, one of "LIVE", "DEPRECATED"
# resp.logging_config.log_role_arn #=> String
# resp.logging_config.log_group_name #=> String
# resp.execution_role_arn #=> String
# resp.visibility #=> String, one of "PUBLIC", "PRIVATE"
# resp.source_url #=> String
# resp.documentation_url #=> String
# resp.last_updated #=> Time
# resp.time_created #=> Time
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeType AWS API Documentation
#
# @overload describe_type(params = {})
# @param [Hash] params ({})
def describe_type(params = {}, options = {})
req = build_request(:describe_type, params)
req.send_request(options)
end
# Returns information about a type's registration, including its
# current status and type and version identifiers.
#
# When you initiate a registration request using ` RegisterType `, you
# can then use ` DescribeTypeRegistration ` to monitor the progress of
# that registration request.
#
# Once the registration request has completed, use ` DescribeType ` to
# return detailed informaiton about a type.
#
# @option params [required, String] :registration_token
# The identifier for this registration request.
#
# This registration token is generated by CloudFormation when you
# initiate a registration request using ` RegisterType `.
#
# @return [Types::DescribeTypeRegistrationOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::DescribeTypeRegistrationOutput#progress_status #progress_status} => String
# * {Types::DescribeTypeRegistrationOutput#description #description} => String
# * {Types::DescribeTypeRegistrationOutput#type_arn #type_arn} => String
# * {Types::DescribeTypeRegistrationOutput#type_version_arn #type_version_arn} => String
#
# @example Request syntax with placeholder values
#
# resp = client.describe_type_registration({
# registration_token: "RegistrationToken", # required
# })
#
# @example Response structure
#
# resp.progress_status #=> String, one of "COMPLETE", "IN_PROGRESS", "FAILED"
# resp.description #=> String
# resp.type_arn #=> String
# resp.type_version_arn #=> String
#
#
# The following waiters are defined for this operation (see {Client#wait_until} for detailed usage):
#
# * type_registration_complete
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeTypeRegistration AWS API Documentation
#
# @overload describe_type_registration(params = {})
# @param [Hash] params ({})
def describe_type_registration(params = {}, options = {})
req = build_request(:describe_type_registration, params)
req.send_request(options)
end
# Detects whether a stack's actual configuration differs, or has
# *drifted*, from it's expected configuration, as defined in the stack
# template and any values specified as template parameters. For each
# resource in the stack that supports drift detection, AWS
# CloudFormation compares the actual configuration of the resource with
# its expected template configuration. Only resource properties
# explicitly defined in the stack template are checked for drift. A
# stack is considered to have drifted if one or more of its resources
# differ from their expected template configurations. For more
# information, see [Detecting Unregulated Configuration Changes to
# Stacks and Resources][1].
#
# Use `DetectStackDrift` to detect drift on all supported resources for
# a given stack, or DetectStackResourceDrift to detect drift on
# individual resources.
#
# For a list of stack resources that currently support drift detection,
# see [Resources that Support Drift Detection][2].
#
# `DetectStackDrift` can take up to several minutes, depending on the
# number of resources contained within the stack. Use
# DescribeStackDriftDetectionStatus to monitor the progress of a detect
# stack drift operation. Once the drift detection operation has
# completed, use DescribeStackResourceDrifts to return drift information
# about the stack and its resources.
#
# When detecting drift on a stack, AWS CloudFormation does not detect
# drift on any nested stacks belonging to that stack. Perform
# `DetectStackDrift` directly on the nested stack itself.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html
#
# @option params [required, String] :stack_name
# The name of the stack for which you want to detect drift.
#
# @option params [Array] :logical_resource_ids
# The logical names of any resources you want to use as filters.
#
# @return [Types::DetectStackDriftOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::DetectStackDriftOutput#stack_drift_detection_id #stack_drift_detection_id} => String
#
# @example Request syntax with placeholder values
#
# resp = client.detect_stack_drift({
# stack_name: "StackNameOrId", # required
# logical_resource_ids: ["LogicalResourceId"],
# })
#
# @example Response structure
#
# resp.stack_drift_detection_id #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackDrift AWS API Documentation
#
# @overload detect_stack_drift(params = {})
# @param [Hash] params ({})
def detect_stack_drift(params = {}, options = {})
req = build_request(:detect_stack_drift, params)
req.send_request(options)
end
# Returns information about whether a resource's actual configuration
# differs, or has *drifted*, from it's expected configuration, as
# defined in the stack template and any values specified as template
# parameters. This information includes actual and expected property
# values for resources in which AWS CloudFormation detects drift. Only
# resource properties explicitly defined in the stack template are
# checked for drift. For more information about stack and resource
# drift, see [Detecting Unregulated Configuration Changes to Stacks and
# Resources][1].
#
# Use `DetectStackResourceDrift` to detect drift on individual
# resources, or DetectStackDrift to detect drift on all resources in a
# given stack that support drift detection.
#
# Resources that do not currently support drift detection cannot be
# checked. For a list of resources that support drift detection, see
# [Resources that Support Drift Detection][2].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html
#
# @option params [required, String] :stack_name
# The name of the stack to which the resource belongs.
#
# @option params [required, String] :logical_resource_id
# The logical name of the resource for which to return drift
# information.
#
# @return [Types::DetectStackResourceDriftOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::DetectStackResourceDriftOutput#stack_resource_drift #stack_resource_drift} => Types::StackResourceDrift
#
# @example Request syntax with placeholder values
#
# resp = client.detect_stack_resource_drift({
# stack_name: "StackNameOrId", # required
# logical_resource_id: "LogicalResourceId", # required
# })
#
# @example Response structure
#
# resp.stack_resource_drift.stack_id #=> String
# resp.stack_resource_drift.logical_resource_id #=> String
# resp.stack_resource_drift.physical_resource_id #=> String
# resp.stack_resource_drift.physical_resource_id_context #=> Array
# resp.stack_resource_drift.physical_resource_id_context[0].key #=> String
# resp.stack_resource_drift.physical_resource_id_context[0].value #=> String
# resp.stack_resource_drift.resource_type #=> String
# resp.stack_resource_drift.expected_properties #=> String
# resp.stack_resource_drift.actual_properties #=> String
# resp.stack_resource_drift.property_differences #=> Array
# resp.stack_resource_drift.property_differences[0].property_path #=> String
# resp.stack_resource_drift.property_differences[0].expected_value #=> String
# resp.stack_resource_drift.property_differences[0].actual_value #=> String
# resp.stack_resource_drift.property_differences[0].difference_type #=> String, one of "ADD", "REMOVE", "NOT_EQUAL"
# resp.stack_resource_drift.stack_resource_drift_status #=> String, one of "IN_SYNC", "MODIFIED", "DELETED", "NOT_CHECKED"
# resp.stack_resource_drift.timestamp #=> Time
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackResourceDrift AWS API Documentation
#
# @overload detect_stack_resource_drift(params = {})
# @param [Hash] params ({})
def detect_stack_resource_drift(params = {}, options = {})
req = build_request(:detect_stack_resource_drift, params)
req.send_request(options)
end
# Detect drift on a stack set. When CloudFormation performs drift
# detection on a stack set, it performs drift detection on the stack
# associated with each stack instance in the stack set. For more
# information, see [How CloudFormation Performs Drift Detection on a
# Stack Set][1].
#
# `DetectStackSetDrift` returns the `OperationId` of the stack set drift
# detection operation. Use this operation id with `
# DescribeStackSetOperation ` to monitor the progress of the drift
# detection operation. The drift detection operation may take some time,
# depending on the number of stack instances included in the stack set,
# as well as the number of resources included in each stack.
#
# Once the operation has completed, use the following actions to return
# drift information:
#
# * Use ` DescribeStackSet ` to return detailed informaiton about the
# stack set, including detailed information about the last *completed*
# drift operation performed on the stack set. (Information about drift
# operations that are in progress is not included.)
#
# * Use ` ListStackInstances ` to return a list of stack instances
# belonging to the stack set, including the drift status and last
# drift time checked of each instance.
#
# * Use ` DescribeStackInstance ` to return detailed information about a
# specific stack instance, including its drift status and last drift
# time checked.
#
# For more information on performing a drift detection operation on a
# stack set, see [Detecting Unmanaged Changes in Stack Sets][1].
#
# You can only run a single drift detection operation on a given stack
# set at one time.
#
# To stop a drift detection stack set operation, use `
# StopStackSetOperation `.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html
#
# @option params [required, String] :stack_set_name
# The name of the stack set on which to perform the drift detection
# operation.
#
# @option params [Types::StackSetOperationPreferences] :operation_preferences
# The user-specified preferences for how AWS CloudFormation performs a
# stack set operation.
#
# For more information on maximum concurrent accounts and failure
# tolerance, see [Stack set operation options][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options
#
# @option params [String] :operation_id
# *The ID of the stack set operation.*
#
# **A suitable default value is auto-generated.** You should normally
# not need to pass this option.**
#
# @return [Types::DetectStackSetDriftOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::DetectStackSetDriftOutput#operation_id #operation_id} => String
#
# @example Request syntax with placeholder values
#
# resp = client.detect_stack_set_drift({
# stack_set_name: "StackSetNameOrId", # required
# operation_preferences: {
# region_order: ["Region"],
# failure_tolerance_count: 1,
# failure_tolerance_percentage: 1,
# max_concurrent_count: 1,
# max_concurrent_percentage: 1,
# },
# operation_id: "ClientRequestToken",
# })
#
# @example Response structure
#
# resp.operation_id #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackSetDrift AWS API Documentation
#
# @overload detect_stack_set_drift(params = {})
# @param [Hash] params ({})
def detect_stack_set_drift(params = {}, options = {})
req = build_request(:detect_stack_set_drift, params)
req.send_request(options)
end
# Returns the estimated monthly cost of a template. The return value is
# an AWS Simple Monthly Calculator URL with a query string that
# describes the resources required to run the template.
#
# @option params [String] :template_body
# Structure containing the template body with a minimum length of 1 byte
# and a maximum length of 51,200 bytes. (For more information, go to
# [Template Anatomy][1] in the AWS CloudFormation User Guide.)
#
# Conditional: You must pass `TemplateBody` or `TemplateURL`. If both
# are passed, only `TemplateBody` is used.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
#
# @option params [String] :template_url
# Location of file containing the template body. The URL must point to a
# template that is located in an Amazon S3 bucket. For more information,
# go to [Template Anatomy][1] in the AWS CloudFormation User Guide.
#
# Conditional: You must pass `TemplateURL` or `TemplateBody`. If both
# are passed, only `TemplateBody` is used.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
#
# @option params [Array] :parameters
# A list of `Parameter` structures that specify input parameters.
#
# @return [Types::EstimateTemplateCostOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::EstimateTemplateCostOutput#url #url} => String
#
# @example Request syntax with placeholder values
#
# resp = client.estimate_template_cost({
# template_body: "TemplateBody",
# template_url: "TemplateURL",
# parameters: [
# {
# parameter_key: "ParameterKey",
# parameter_value: "ParameterValue",
# use_previous_value: false,
# resolved_value: "ParameterValue",
# },
# ],
# })
#
# @example Response structure
#
# resp.url #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/EstimateTemplateCost AWS API Documentation
#
# @overload estimate_template_cost(params = {})
# @param [Hash] params ({})
def estimate_template_cost(params = {}, options = {})
req = build_request(:estimate_template_cost, params)
req.send_request(options)
end
# Updates a stack using the input information that was provided when the
# specified change set was created. After the call successfully
# completes, AWS CloudFormation starts updating the stack. Use the
# DescribeStacks action to view the status of the update.
#
# When you execute a change set, AWS CloudFormation deletes all other
# change sets associated with the stack because they aren't valid for
# the updated stack.
#
# If a stack policy is associated with the stack, AWS CloudFormation
# enforces the policy during the update. You can't specify a temporary
# stack policy that overrides the current policy.
#
# @option params [required, String] :change_set_name
# The name or ARN of the change set that you want use to update the
# specified stack.
#
# @option params [String] :stack_name
# If you specified the name of a change set, specify the stack name or
# ID (ARN) that is associated with the change set you want to execute.
#
# @option params [String] :client_request_token
# A unique identifier for this `ExecuteChangeSet` request. Specify this
# token if you plan to retry requests so that AWS CloudFormation knows
# that you're not attempting to execute a change set to update a stack
# with the same name. You might retry `ExecuteChangeSet` requests to
# ensure that AWS CloudFormation successfully received them.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.execute_change_set({
# change_set_name: "ChangeSetNameOrId", # required
# stack_name: "StackNameOrId",
# client_request_token: "ClientRequestToken",
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ExecuteChangeSet AWS API Documentation
#
# @overload execute_change_set(params = {})
# @param [Hash] params ({})
def execute_change_set(params = {}, options = {})
req = build_request(:execute_change_set, params)
req.send_request(options)
end
# Returns the stack policy for a specified stack. If a stack doesn't
# have a policy, a null value is returned.
#
# @option params [required, String] :stack_name
# The name or unique stack ID that is associated with the stack whose
# policy you want to get.
#
# @return [Types::GetStackPolicyOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::GetStackPolicyOutput#stack_policy_body #stack_policy_body} => String
#
# @example Request syntax with placeholder values
#
# resp = client.get_stack_policy({
# stack_name: "StackName", # required
# })
#
# @example Response structure
#
# resp.stack_policy_body #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetStackPolicy AWS API Documentation
#
# @overload get_stack_policy(params = {})
# @param [Hash] params ({})
def get_stack_policy(params = {}, options = {})
req = build_request(:get_stack_policy, params)
req.send_request(options)
end
# Returns the template body for a specified stack. You can get the
# template for running or deleted stacks.
#
# For deleted stacks, GetTemplate returns the template for up to 90 days
# after the stack has been deleted.
#
# If the template does not exist, a `ValidationError` is returned.
#
#
#
# @option params [String] :stack_name
# The name or the unique stack ID that is associated with the stack,
# which are not always interchangeable:
#
# * Running stacks: You can specify either the stack's name or its
# unique stack ID.
#
# * Deleted stacks: You must specify the unique stack ID.
#
# Default: There is no default value.
#
# @option params [String] :change_set_name
# The name or Amazon Resource Name (ARN) of a change set for which AWS
# CloudFormation returns the associated template. If you specify a name,
# you must also specify the `StackName`.
#
# @option params [String] :template_stage
# For templates that include transforms, the stage of the template that
# AWS CloudFormation returns. To get the user-submitted template,
# specify `Original`. To get the template after AWS CloudFormation has
# processed all transforms, specify `Processed`.
#
# If the template doesn't include transforms, `Original` and
# `Processed` return the same template. By default, AWS CloudFormation
# specifies `Original`.
#
# @return [Types::GetTemplateOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::GetTemplateOutput#template_body #template_body} => String
# * {Types::GetTemplateOutput#stages_available #stages_available} => Array<String>
#
# @example Request syntax with placeholder values
#
# resp = client.get_template({
# stack_name: "StackName",
# change_set_name: "ChangeSetNameOrId",
# template_stage: "Original", # accepts Original, Processed
# })
#
# @example Response structure
#
# resp.template_body #=> String
# resp.stages_available #=> Array
# resp.stages_available[0] #=> String, one of "Original", "Processed"
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplate AWS API Documentation
#
# @overload get_template(params = {})
# @param [Hash] params ({})
def get_template(params = {}, options = {})
req = build_request(:get_template, params)
req.send_request(options)
end
# Returns information about a new or existing template. The
# `GetTemplateSummary` action is useful for viewing parameter
# information, such as default parameter values and parameter types,
# before you create or update a stack or stack set.
#
# You can use the `GetTemplateSummary` action when you submit a
# template, or you can get template information for a stack set, or a
# running or deleted stack.
#
# For deleted stacks, `GetTemplateSummary` returns the template
# information for up to 90 days after the stack has been deleted. If the
# template does not exist, a `ValidationError` is returned.
#
# @option params [String] :template_body
# Structure containing the template body with a minimum length of 1 byte
# and a maximum length of 51,200 bytes. For more information about
# templates, see [Template Anatomy][1] in the AWS CloudFormation User
# Guide.
#
# Conditional: You must specify only one of the following parameters:
# `StackName`, `StackSetName`, `TemplateBody`, or `TemplateURL`.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
#
# @option params [String] :template_url
# Location of file containing the template body. The URL must point to a
# template (max size: 460,800 bytes) that is located in an Amazon S3
# bucket. For more information about templates, see [Template
# Anatomy][1] in the AWS CloudFormation User Guide.
#
# Conditional: You must specify only one of the following parameters:
# `StackName`, `StackSetName`, `TemplateBody`, or `TemplateURL`.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
#
# @option params [String] :stack_name
# The name or the stack ID that is associated with the stack, which are
# not always interchangeable. For running stacks, you can specify either
# the stack's name or its unique stack ID. For deleted stack, you must
# specify the unique stack ID.
#
# Conditional: You must specify only one of the following parameters:
# `StackName`, `StackSetName`, `TemplateBody`, or `TemplateURL`.
#
# @option params [String] :stack_set_name
# The name or unique ID of the stack set from which the stack was
# created.
#
# Conditional: You must specify only one of the following parameters:
# `StackName`, `StackSetName`, `TemplateBody`, or `TemplateURL`.
#
# @return [Types::GetTemplateSummaryOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::GetTemplateSummaryOutput#parameters #parameters} => Array<Types::ParameterDeclaration>
# * {Types::GetTemplateSummaryOutput#description #description} => String
# * {Types::GetTemplateSummaryOutput#capabilities #capabilities} => Array<String>
# * {Types::GetTemplateSummaryOutput#capabilities_reason #capabilities_reason} => String
# * {Types::GetTemplateSummaryOutput#resource_types #resource_types} => Array<String>
# * {Types::GetTemplateSummaryOutput#version #version} => String
# * {Types::GetTemplateSummaryOutput#metadata #metadata} => String
# * {Types::GetTemplateSummaryOutput#declared_transforms #declared_transforms} => Array<String>
# * {Types::GetTemplateSummaryOutput#resource_identifier_summaries #resource_identifier_summaries} => Array<Types::ResourceIdentifierSummary>
#
# @example Request syntax with placeholder values
#
# resp = client.get_template_summary({
# template_body: "TemplateBody",
# template_url: "TemplateURL",
# stack_name: "StackNameOrId",
# stack_set_name: "StackSetNameOrId",
# })
#
# @example Response structure
#
# resp.parameters #=> Array
# resp.parameters[0].parameter_key #=> String
# resp.parameters[0].default_value #=> String
# resp.parameters[0].parameter_type #=> String
# resp.parameters[0].no_echo #=> Boolean
# resp.parameters[0].description #=> String
# resp.parameters[0].parameter_constraints.allowed_values #=> Array
# resp.parameters[0].parameter_constraints.allowed_values[0] #=> String
# resp.description #=> String
# resp.capabilities #=> Array
# resp.capabilities[0] #=> String, one of "CAPABILITY_IAM", "CAPABILITY_NAMED_IAM", "CAPABILITY_AUTO_EXPAND"
# resp.capabilities_reason #=> String
# resp.resource_types #=> Array
# resp.resource_types[0] #=> String
# resp.version #=> String
# resp.metadata #=> String
# resp.declared_transforms #=> Array
# resp.declared_transforms[0] #=> String
# resp.resource_identifier_summaries #=> Array
# resp.resource_identifier_summaries[0].resource_type #=> String
# resp.resource_identifier_summaries[0].logical_resource_ids #=> Array
# resp.resource_identifier_summaries[0].logical_resource_ids[0] #=> String
# resp.resource_identifier_summaries[0].resource_identifiers #=> Array
# resp.resource_identifier_summaries[0].resource_identifiers[0] #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateSummary AWS API Documentation
#
# @overload get_template_summary(params = {})
# @param [Hash] params ({})
def get_template_summary(params = {}, options = {})
req = build_request(:get_template_summary, params)
req.send_request(options)
end
# Returns the ID and status of each active change set for a stack. For
# example, AWS CloudFormation lists change sets that are in the
# `CREATE_IN_PROGRESS` or `CREATE_PENDING` state.
#
# @option params [required, String] :stack_name
# The name or the Amazon Resource Name (ARN) of the stack for which you
# want to list change sets.
#
# @option params [String] :next_token
# A string (provided by the ListChangeSets response output) that
# identifies the next page of change sets that you want to retrieve.
#
# @return [Types::ListChangeSetsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::ListChangeSetsOutput#summaries #summaries} => Array<Types::ChangeSetSummary>
# * {Types::ListChangeSetsOutput#next_token #next_token} => String
#
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
#
# @example Request syntax with placeholder values
#
# resp = client.list_change_sets({
# stack_name: "StackNameOrId", # required
# next_token: "NextToken",
# })
#
# @example Response structure
#
# resp.summaries #=> Array
# resp.summaries[0].stack_id #=> String
# resp.summaries[0].stack_name #=> String
# resp.summaries[0].change_set_id #=> String
# resp.summaries[0].change_set_name #=> String
# resp.summaries[0].execution_status #=> String, one of "UNAVAILABLE", "AVAILABLE", "EXECUTE_IN_PROGRESS", "EXECUTE_COMPLETE", "EXECUTE_FAILED", "OBSOLETE"
# resp.summaries[0].status #=> String, one of "CREATE_PENDING", "CREATE_IN_PROGRESS", "CREATE_COMPLETE", "DELETE_COMPLETE", "FAILED"
# resp.summaries[0].status_reason #=> String
# resp.summaries[0].creation_time #=> Time
# resp.summaries[0].description #=> String
# resp.next_token #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListChangeSets AWS API Documentation
#
# @overload list_change_sets(params = {})
# @param [Hash] params ({})
def list_change_sets(params = {}, options = {})
req = build_request(:list_change_sets, params)
req.send_request(options)
end
# Lists all exported output values in the account and Region in which
# you call this action. Use this action to see the exported output
# values that you can import into other stacks. To import values, use
# the [ `Fn::ImportValue` ][1] function.
#
# For more information, see [ AWS CloudFormation Export Stack Output
# Values][2].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-exports.html
#
# @option params [String] :next_token
# A string (provided by the ListExports response output) that identifies
# the next page of exported output values that you asked to retrieve.
#
# @return [Types::ListExportsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::ListExportsOutput#exports #exports} => Array<Types::Export>
# * {Types::ListExportsOutput#next_token #next_token} => String
#
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
#
# @example Request syntax with placeholder values
#
# resp = client.list_exports({
# next_token: "NextToken",
# })
#
# @example Response structure
#
# resp.exports #=> Array
# resp.exports[0].exporting_stack_id #=> String
# resp.exports[0].name #=> String
# resp.exports[0].value #=> String
# resp.next_token #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListExports AWS API Documentation
#
# @overload list_exports(params = {})
# @param [Hash] params ({})
def list_exports(params = {}, options = {})
req = build_request(:list_exports, params)
req.send_request(options)
end
# Lists all stacks that are importing an exported output value. To
# modify or remove an exported output value, first use this action to
# see which stacks are using it. To see the exported output values in
# your account, see ListExports.
#
# For more information about importing an exported output value, see the
# [ `Fn::ImportValue` ][1] function.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html
#
# @option params [required, String] :export_name
# The name of the exported output value. AWS CloudFormation returns the
# stack names that are importing this value.
#
# @option params [String] :next_token
# A string (provided by the ListImports response output) that identifies
# the next page of stacks that are importing the specified exported
# output value.
#
# @return [Types::ListImportsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::ListImportsOutput#imports #imports} => Array<String>
# * {Types::ListImportsOutput#next_token #next_token} => String
#
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
#
# @example Request syntax with placeholder values
#
# resp = client.list_imports({
# export_name: "ExportName", # required
# next_token: "NextToken",
# })
#
# @example Response structure
#
# resp.imports #=> Array
# resp.imports[0] #=> String
# resp.next_token #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListImports AWS API Documentation
#
# @overload list_imports(params = {})
# @param [Hash] params ({})
def list_imports(params = {}, options = {})
req = build_request(:list_imports, params)
req.send_request(options)
end
# Returns summary information about stack instances that are associated
# with the specified stack set. You can filter for stack instances that
# are associated with a specific AWS account name or Region, or that
# have a specific status.
#
# @option params [required, String] :stack_set_name
# The name or unique ID of the stack set that you want to list stack
# instances for.
#
# @option params [String] :next_token
# If the previous request didn't return all of the remaining results,
# the response's `NextToken` parameter value is set to a token. To
# retrieve the next set of results, call `ListStackInstances` again and
# assign that token to the request object's `NextToken` parameter. If
# there are no remaining results, the previous response object's
# `NextToken` parameter is set to `null`.
#
# @option params [Integer] :max_results
# The maximum number of results to be returned with a single call. If
# the number of available results exceeds this maximum, the response
# includes a `NextToken` value that you can assign to the `NextToken`
# request parameter to get the next set of results.
#
# @option params [Array] :filters
# The status that stack instances are filtered by.
#
# @option params [String] :stack_instance_account
# The name of the AWS account that you want to list stack instances for.
#
# @option params [String] :stack_instance_region
# The name of the Region where you want to list stack instances.
#
# @return [Types::ListStackInstancesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::ListStackInstancesOutput#summaries #summaries} => Array<Types::StackInstanceSummary>
# * {Types::ListStackInstancesOutput#next_token #next_token} => String
#
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
#
# @example Request syntax with placeholder values
#
# resp = client.list_stack_instances({
# stack_set_name: "StackSetName", # required
# next_token: "NextToken",
# max_results: 1,
# filters: [
# {
# name: "DETAILED_STATUS", # accepts DETAILED_STATUS
# values: "StackInstanceFilterValues",
# },
# ],
# stack_instance_account: "Account",
# stack_instance_region: "Region",
# })
#
# @example Response structure
#
# resp.summaries #=> Array
# resp.summaries[0].stack_set_id #=> String
# resp.summaries[0].region #=> String
# resp.summaries[0].account #=> String
# resp.summaries[0].stack_id #=> String
# resp.summaries[0].status #=> String, one of "CURRENT", "OUTDATED", "INOPERABLE"
# resp.summaries[0].status_reason #=> String
# resp.summaries[0].stack_instance_status.detailed_status #=> String, one of "PENDING", "RUNNING", "SUCCEEDED", "FAILED", "CANCELLED", "INOPERABLE"
# resp.summaries[0].organizational_unit_id #=> String
# resp.summaries[0].drift_status #=> String, one of "DRIFTED", "IN_SYNC", "UNKNOWN", "NOT_CHECKED"
# resp.summaries[0].last_drift_check_timestamp #=> Time
# resp.next_token #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackInstances AWS API Documentation
#
# @overload list_stack_instances(params = {})
# @param [Hash] params ({})
def list_stack_instances(params = {}, options = {})
req = build_request(:list_stack_instances, params)
req.send_request(options)
end
# Returns descriptions of all resources of the specified stack.
#
# For deleted stacks, ListStackResources returns resource information
# for up to 90 days after the stack has been deleted.
#
# @option params [required, String] :stack_name
# The name or the unique stack ID that is associated with the stack,
# which are not always interchangeable:
#
# * Running stacks: You can specify either the stack's name or its
# unique stack ID.
#
# * Deleted stacks: You must specify the unique stack ID.
#
# Default: There is no default value.
#
# @option params [String] :next_token
# A string that identifies the next page of stack resources that you
# want to retrieve.
#
# @return [Types::ListStackResourcesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::ListStackResourcesOutput#stack_resource_summaries #stack_resource_summaries} => Array<Types::StackResourceSummary>
# * {Types::ListStackResourcesOutput#next_token #next_token} => String
#
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
#
# @example Request syntax with placeholder values
#
# resp = client.list_stack_resources({
# stack_name: "StackName", # required
# next_token: "NextToken",
# })
#
# @example Response structure
#
# resp.stack_resource_summaries #=> Array
# resp.stack_resource_summaries[0].logical_resource_id #=> String
# resp.stack_resource_summaries[0].physical_resource_id #=> String
# resp.stack_resource_summaries[0].resource_type #=> String
# resp.stack_resource_summaries[0].last_updated_timestamp #=> Time
# 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", "IMPORT_FAILED", "IMPORT_COMPLETE", "IMPORT_IN_PROGRESS", "IMPORT_ROLLBACK_IN_PROGRESS", "IMPORT_ROLLBACK_FAILED", "IMPORT_ROLLBACK_COMPLETE"
# resp.stack_resource_summaries[0].resource_status_reason #=> String
# resp.stack_resource_summaries[0].drift_information.stack_resource_drift_status #=> String, one of "IN_SYNC", "MODIFIED", "DELETED", "NOT_CHECKED"
# resp.stack_resource_summaries[0].drift_information.last_check_timestamp #=> Time
# resp.next_token #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackResources AWS API Documentation
#
# @overload list_stack_resources(params = {})
# @param [Hash] params ({})
def list_stack_resources(params = {}, options = {})
req = build_request(:list_stack_resources, params)
req.send_request(options)
end
# Returns summary information about the results of a stack set
# operation.
#
# @option params [required, String] :stack_set_name
# The name or unique ID of the stack set that you want to get operation
# results for.
#
# @option params [required, String] :operation_id
# The ID of the stack set operation.
#
# @option params [String] :next_token
# If the previous request didn't return all of the remaining results,
# the response object's `NextToken` parameter value is set to a token.
# To retrieve the next set of results, call
# `ListStackSetOperationResults` again and assign that token to the
# request object's `NextToken` parameter. If there are no remaining
# results, the previous response object's `NextToken` parameter is set
# to `null`.
#
# @option params [Integer] :max_results
# The maximum number of results to be returned with a single call. If
# the number of available results exceeds this maximum, the response
# includes a `NextToken` value that you can assign to the `NextToken`
# request parameter to get the next set of results.
#
# @return [Types::ListStackSetOperationResultsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::ListStackSetOperationResultsOutput#summaries #summaries} => Array<Types::StackSetOperationResultSummary>
# * {Types::ListStackSetOperationResultsOutput#next_token #next_token} => String
#
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
#
# @example Request syntax with placeholder values
#
# resp = client.list_stack_set_operation_results({
# stack_set_name: "StackSetName", # required
# operation_id: "ClientRequestToken", # required
# next_token: "NextToken",
# max_results: 1,
# })
#
# @example Response structure
#
# resp.summaries #=> Array
# resp.summaries[0].account #=> String
# resp.summaries[0].region #=> String
# resp.summaries[0].status #=> String, one of "PENDING", "RUNNING", "SUCCEEDED", "FAILED", "CANCELLED"
# resp.summaries[0].status_reason #=> String
# resp.summaries[0].account_gate_result.status #=> String, one of "SUCCEEDED", "FAILED", "SKIPPED"
# resp.summaries[0].account_gate_result.status_reason #=> String
# resp.summaries[0].organizational_unit_id #=> String
# resp.next_token #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperationResults AWS API Documentation
#
# @overload list_stack_set_operation_results(params = {})
# @param [Hash] params ({})
def list_stack_set_operation_results(params = {}, options = {})
req = build_request(:list_stack_set_operation_results, params)
req.send_request(options)
end
# Returns summary information about operations performed on a stack set.
#
# @option params [required, String] :stack_set_name
# The name or unique ID of the stack set that you want to get operation
# summaries for.
#
# @option params [String] :next_token
# If the previous paginated request didn't return all of the remaining
# results, the response object's `NextToken` parameter value is set to
# a token. To retrieve the next set of results, call
# `ListStackSetOperations` again and assign that token to the request
# object's `NextToken` parameter. If there are no remaining results,
# the previous response object's `NextToken` parameter is set to
# `null`.
#
# @option params [Integer] :max_results
# The maximum number of results to be returned with a single call. If
# the number of available results exceeds this maximum, the response
# includes a `NextToken` value that you can assign to the `NextToken`
# request parameter to get the next set of results.
#
# @return [Types::ListStackSetOperationsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::ListStackSetOperationsOutput#summaries #summaries} => Array<Types::StackSetOperationSummary>
# * {Types::ListStackSetOperationsOutput#next_token #next_token} => String
#
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
#
# @example Request syntax with placeholder values
#
# resp = client.list_stack_set_operations({
# stack_set_name: "StackSetName", # required
# next_token: "NextToken",
# max_results: 1,
# })
#
# @example Response structure
#
# resp.summaries #=> Array
# resp.summaries[0].operation_id #=> String
# resp.summaries[0].action #=> String, one of "CREATE", "UPDATE", "DELETE", "DETECT_DRIFT"
# resp.summaries[0].status #=> String, one of "RUNNING", "SUCCEEDED", "FAILED", "STOPPING", "STOPPED", "QUEUED"
# resp.summaries[0].creation_timestamp #=> Time
# resp.summaries[0].end_timestamp #=> Time
# resp.next_token #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperations AWS API Documentation
#
# @overload list_stack_set_operations(params = {})
# @param [Hash] params ({})
def list_stack_set_operations(params = {}, options = {})
req = build_request(:list_stack_set_operations, params)
req.send_request(options)
end
# Returns summary information about stack sets that are associated with
# the user.
#
# @option params [String] :next_token
# If the previous paginated request didn't return all of the remaining
# results, the response object's `NextToken` parameter value is set to
# a token. To retrieve the next set of results, call `ListStackSets`
# again and assign that token to the request object's `NextToken`
# parameter. If there are no remaining results, the previous response
# object's `NextToken` parameter is set to `null`.
#
# @option params [Integer] :max_results
# The maximum number of results to be returned with a single call. If
# the number of available results exceeds this maximum, the response
# includes a `NextToken` value that you can assign to the `NextToken`
# request parameter to get the next set of results.
#
# @option params [String] :status
# The status of the stack sets that you want to get summary information
# about.
#
# @return [Types::ListStackSetsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::ListStackSetsOutput#summaries #summaries} => Array<Types::StackSetSummary>
# * {Types::ListStackSetsOutput#next_token #next_token} => String
#
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
#
# @example Request syntax with placeholder values
#
# resp = client.list_stack_sets({
# next_token: "NextToken",
# max_results: 1,
# status: "ACTIVE", # accepts ACTIVE, DELETED
# })
#
# @example Response structure
#
# resp.summaries #=> Array
# resp.summaries[0].stack_set_name #=> String
# resp.summaries[0].stack_set_id #=> String
# resp.summaries[0].description #=> String
# resp.summaries[0].status #=> String, one of "ACTIVE", "DELETED"
# resp.summaries[0].auto_deployment.enabled #=> Boolean
# resp.summaries[0].auto_deployment.retain_stacks_on_account_removal #=> Boolean
# resp.summaries[0].permission_model #=> String, one of "SERVICE_MANAGED", "SELF_MANAGED"
# resp.summaries[0].drift_status #=> String, one of "DRIFTED", "IN_SYNC", "UNKNOWN", "NOT_CHECKED"
# resp.summaries[0].last_drift_check_timestamp #=> Time
# resp.next_token #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSets AWS API Documentation
#
# @overload list_stack_sets(params = {})
# @param [Hash] params ({})
def list_stack_sets(params = {}, options = {})
req = build_request(:list_stack_sets, params)
req.send_request(options)
end
# Returns the summary information for stacks whose status matches the
# specified StackStatusFilter. Summary information for stacks that have
# been deleted is kept for 90 days after the stack is deleted. If no
# StackStatusFilter is specified, summary information for all stacks is
# returned (including existing stacks and stacks that have been
# deleted).
#
# @option params [String] :next_token
# A string that identifies the next page of stacks that you want to
# retrieve.
#
# @option params [Array] :stack_status_filter
# Stack status to use as a filter. Specify one or more stack status
# codes to list only stacks with the specified status codes. For a
# complete list of stack status codes, see the `StackStatus` parameter
# of the Stack data type.
#
# @return [Types::ListStacksOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::ListStacksOutput#stack_summaries #stack_summaries} => Array<Types::StackSummary>
# * {Types::ListStacksOutput#next_token #next_token} => String
#
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
#
# @example Request syntax with placeholder values
#
# resp = client.list_stacks({
# next_token: "NextToken",
# 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, IMPORT_IN_PROGRESS, IMPORT_COMPLETE, IMPORT_ROLLBACK_IN_PROGRESS, IMPORT_ROLLBACK_FAILED, IMPORT_ROLLBACK_COMPLETE
# })
#
# @example Response structure
#
# resp.stack_summaries #=> Array
# resp.stack_summaries[0].stack_id #=> String
# resp.stack_summaries[0].stack_name #=> String
# resp.stack_summaries[0].template_description #=> String
# resp.stack_summaries[0].creation_time #=> Time
# resp.stack_summaries[0].last_updated_time #=> Time
# resp.stack_summaries[0].deletion_time #=> Time
# 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", "IMPORT_IN_PROGRESS", "IMPORT_COMPLETE", "IMPORT_ROLLBACK_IN_PROGRESS", "IMPORT_ROLLBACK_FAILED", "IMPORT_ROLLBACK_COMPLETE"
# resp.stack_summaries[0].stack_status_reason #=> String
# resp.stack_summaries[0].parent_id #=> String
# resp.stack_summaries[0].root_id #=> String
# resp.stack_summaries[0].drift_information.stack_drift_status #=> String, one of "DRIFTED", "IN_SYNC", "UNKNOWN", "NOT_CHECKED"
# resp.stack_summaries[0].drift_information.last_check_timestamp #=> Time
# resp.next_token #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStacks AWS API Documentation
#
# @overload list_stacks(params = {})
# @param [Hash] params ({})
def list_stacks(params = {}, options = {})
req = build_request(:list_stacks, params)
req.send_request(options)
end
# Returns a list of registration tokens for the specified type(s).
#
# @option params [String] :type
# The kind of type.
#
# Currently the only valid value is `RESOURCE`.
#
# Conditional: You must specify either `TypeName` and `Type`, or `Arn`.
#
# @option params [String] :type_name
# The name of the type.
#
# Conditional: You must specify either `TypeName` and `Type`, or `Arn`.
#
# @option params [String] :type_arn
# The Amazon Resource Name (ARN) of the type.
#
# Conditional: You must specify either `TypeName` and `Type`, or `Arn`.
#
# @option params [String] :registration_status_filter
# The current status of the type registration request.
#
# The default is `IN_PROGRESS`.
#
# @option params [Integer] :max_results
# The maximum number of results to be returned with a single call. If
# the number of available results exceeds this maximum, the response
# includes a `NextToken` value that you can assign to the `NextToken`
# request parameter to get the next set of results.
#
# @option params [String] :next_token
# If the previous paginated request didn't return all of the remaining
# results, the response object's `NextToken` parameter value is set to
# a token. To retrieve the next set of results, call this action again
# and assign that token to the request object's `NextToken` parameter.
# If there are no remaining results, the previous response object's
# `NextToken` parameter is set to `null`.
#
# @return [Types::ListTypeRegistrationsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::ListTypeRegistrationsOutput#registration_token_list #registration_token_list} => Array<String>
# * {Types::ListTypeRegistrationsOutput#next_token #next_token} => String
#
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
#
# @example Request syntax with placeholder values
#
# resp = client.list_type_registrations({
# type: "RESOURCE", # accepts RESOURCE
# type_name: "TypeName",
# type_arn: "TypeArn",
# registration_status_filter: "COMPLETE", # accepts COMPLETE, IN_PROGRESS, FAILED
# max_results: 1,
# next_token: "NextToken",
# })
#
# @example Response structure
#
# resp.registration_token_list #=> Array
# resp.registration_token_list[0] #=> String
# resp.next_token #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeRegistrations AWS API Documentation
#
# @overload list_type_registrations(params = {})
# @param [Hash] params ({})
def list_type_registrations(params = {}, options = {})
req = build_request(:list_type_registrations, params)
req.send_request(options)
end
# Returns summary information about the versions of a type.
#
# @option params [String] :type
# The kind of the type.
#
# Currently the only valid value is `RESOURCE`.
#
# Conditional: You must specify either `TypeName` and `Type`, or `Arn`.
#
# @option params [String] :type_name
# The name of the type for which you want version summary information.
#
# Conditional: You must specify either `TypeName` and `Type`, or `Arn`.
#
# @option params [String] :arn
# The Amazon Resource Name (ARN) of the type for which you want version
# summary information.
#
# Conditional: You must specify either `TypeName` and `Type`, or `Arn`.
#
# @option params [Integer] :max_results
# The maximum number of results to be returned with a single call. If
# the number of available results exceeds this maximum, the response
# includes a `NextToken` value that you can assign to the `NextToken`
# request parameter to get the next set of results.
#
# @option params [String] :next_token
# If the previous paginated request didn't return all of the remaining
# results, the response object's `NextToken` parameter value is set to
# a token. To retrieve the next set of results, call this action again
# and assign that token to the request object's `NextToken` parameter.
# If there are no remaining results, the previous response object's
# `NextToken` parameter is set to `null`.
#
# @option params [String] :deprecated_status
# The deprecation status of the type versions that you want to get
# summary information about.
#
# Valid values include:
#
# * `LIVE`\: The type version is registered and can be used in
# CloudFormation operations, dependent on its provisioning behavior
# and visibility scope.
#
# * `DEPRECATED`\: The type version has been deregistered and can no
# longer be used in CloudFormation operations.
#
# The default is `LIVE`.
#
# @return [Types::ListTypeVersionsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::ListTypeVersionsOutput#type_version_summaries #type_version_summaries} => Array<Types::TypeVersionSummary>
# * {Types::ListTypeVersionsOutput#next_token #next_token} => String
#
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
#
# @example Request syntax with placeholder values
#
# resp = client.list_type_versions({
# type: "RESOURCE", # accepts RESOURCE
# type_name: "TypeName",
# arn: "PrivateTypeArn",
# max_results: 1,
# next_token: "NextToken",
# deprecated_status: "LIVE", # accepts LIVE, DEPRECATED
# })
#
# @example Response structure
#
# resp.type_version_summaries #=> Array
# resp.type_version_summaries[0].type #=> String, one of "RESOURCE"
# resp.type_version_summaries[0].type_name #=> String
# resp.type_version_summaries[0].version_id #=> String
# resp.type_version_summaries[0].is_default_version #=> Boolean
# resp.type_version_summaries[0].arn #=> String
# resp.type_version_summaries[0].time_created #=> Time
# resp.type_version_summaries[0].description #=> String
# resp.next_token #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeVersions AWS API Documentation
#
# @overload list_type_versions(params = {})
# @param [Hash] params ({})
def list_type_versions(params = {}, options = {})
req = build_request(:list_type_versions, params)
req.send_request(options)
end
# Returns summary information about types that have been registered with
# CloudFormation.
#
# @option params [String] :visibility
# The scope at which the type is visible and usable in CloudFormation
# operations.
#
# Valid values include:
#
# * `PRIVATE`\: The type is only visible and usable within the account
# in which it is registered. Currently, AWS CloudFormation marks any
# types you create as `PRIVATE`.
#
# * `PUBLIC`\: The type is publically visible and usable within any
# Amazon account.
#
# The default is `PRIVATE`.
#
# @option params [String] :provisioning_type
# The provisioning behavior of the type. AWS CloudFormation determines
# the provisioning type during registration, based on the types of
# handlers in the schema handler package submitted.
#
# Valid values include:
#
# * `FULLY_MUTABLE`\: The type includes an update handler to process
# updates to the type during stack update operations.
#
# * `IMMUTABLE`\: The type does not include an update handler, so the
# type cannot be updated and must instead be replaced during stack
# update operations.
#
# * `NON_PROVISIONABLE`\: The type does not include create, read, and
# delete handlers, and therefore cannot actually be provisioned.
#
# @option params [String] :deprecated_status
# The deprecation status of the types that you want to get summary
# information about.
#
# Valid values include:
#
# * `LIVE`\: The type is registered for use in CloudFormation
# operations.
#
# * `DEPRECATED`\: The type has been deregistered and can no longer be
# used in CloudFormation operations.
#
# @option params [Integer] :max_results
# The maximum number of results to be returned with a single call. If
# the number of available results exceeds this maximum, the response
# includes a `NextToken` value that you can assign to the `NextToken`
# request parameter to get the next set of results.
#
# @option params [String] :next_token
# If the previous paginated request didn't return all of the remaining
# results, the response object's `NextToken` parameter value is set to
# a token. To retrieve the next set of results, call this action again
# and assign that token to the request object's `NextToken` parameter.
# If there are no remaining results, the previous response object's
# `NextToken` parameter is set to `null`.
#
# @return [Types::ListTypesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::ListTypesOutput#type_summaries #type_summaries} => Array<Types::TypeSummary>
# * {Types::ListTypesOutput#next_token #next_token} => String
#
# The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
#
# @example Request syntax with placeholder values
#
# resp = client.list_types({
# visibility: "PUBLIC", # accepts PUBLIC, PRIVATE
# provisioning_type: "NON_PROVISIONABLE", # accepts NON_PROVISIONABLE, IMMUTABLE, FULLY_MUTABLE
# deprecated_status: "LIVE", # accepts LIVE, DEPRECATED
# max_results: 1,
# next_token: "NextToken",
# })
#
# @example Response structure
#
# resp.type_summaries #=> Array
# resp.type_summaries[0].type #=> String, one of "RESOURCE"
# resp.type_summaries[0].type_name #=> String
# resp.type_summaries[0].default_version_id #=> String
# resp.type_summaries[0].type_arn #=> String
# resp.type_summaries[0].last_updated #=> Time
# resp.type_summaries[0].description #=> String
# resp.next_token #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypes AWS API Documentation
#
# @overload list_types(params = {})
# @param [Hash] params ({})
def list_types(params = {}, options = {})
req = build_request(:list_types, params)
req.send_request(options)
end
# Reports progress of a resource handler to CloudFormation.
#
# Reserved for use by the [CloudFormation CLI][1]. Do not use this API
# in your code.
#
#
#
# [1]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html
#
# @option params [required, String] :bearer_token
# Reserved for use by the [CloudFormation CLI][1].
#
#
#
# [1]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html
#
# @option params [required, String] :operation_status
# Reserved for use by the [CloudFormation CLI][1].
#
#
#
# [1]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html
#
# @option params [String] :current_operation_status
# Reserved for use by the [CloudFormation CLI][1].
#
#
#
# [1]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html
#
# @option params [String] :status_message
# Reserved for use by the [CloudFormation CLI][1].
#
#
#
# [1]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html
#
# @option params [String] :error_code
# Reserved for use by the [CloudFormation CLI][1].
#
#
#
# [1]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html
#
# @option params [String] :resource_model
# Reserved for use by the [CloudFormation CLI][1].
#
#
#
# [1]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html
#
# @option params [String] :client_request_token
# Reserved for use by the [CloudFormation CLI][1].
#
#
#
# [1]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.record_handler_progress({
# bearer_token: "ClientToken", # required
# operation_status: "PENDING", # required, accepts PENDING, IN_PROGRESS, SUCCESS, FAILED
# current_operation_status: "PENDING", # accepts PENDING, IN_PROGRESS, SUCCESS, FAILED
# status_message: "StatusMessage",
# error_code: "NotUpdatable", # accepts NotUpdatable, InvalidRequest, AccessDenied, InvalidCredentials, AlreadyExists, NotFound, ResourceConflict, Throttling, ServiceLimitExceeded, NotStabilized, GeneralServiceException, ServiceInternalError, NetworkFailure, InternalFailure
# resource_model: "ResourceModel",
# client_request_token: "ClientRequestToken",
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RecordHandlerProgress AWS API Documentation
#
# @overload record_handler_progress(params = {})
# @param [Hash] params ({})
def record_handler_progress(params = {}, options = {})
req = build_request(:record_handler_progress, params)
req.send_request(options)
end
# Registers a type with the CloudFormation service. Registering a type
# makes it available for use in CloudFormation templates in your AWS
# account, and includes:
#
# * Validating the resource schema
#
# * Determining which handlers have been specified for the resource
#
# * Making the resource type available for use in your account
#
# For more information on how to develop types and ready them for
# registeration, see [Creating Resource Providers][1] in the
# *CloudFormation CLI User Guide*.
#
# You can have a maximum of 50 resource type versions registered at a
# time. This maximum is per account and per region. Use
# [DeregisterType](AWSCloudFormation/latest/APIReference/API_DeregisterType.html)
# to deregister specific resource type versions if necessary.
#
# Once you have initiated a registration request using ` RegisterType `,
# you can use ` DescribeTypeRegistration ` to monitor the progress of
# the registration request.
#
#
#
# [1]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-types.html
#
# @option params [String] :type
# The kind of type.
#
# Currently, the only valid value is `RESOURCE`.
#
# @option params [required, String] :type_name
# The name of the type being registered.
#
# We recommend that type names adhere to the following pattern:
# *company\_or\_organization*\::*service*\::*type*.
#
# The following organization namespaces are reserved and cannot be used
# in your resource type names:
#
# * `Alexa`
#
# * `AMZN`
#
# * `Amazon`
#
# * `AWS`
#
# * `Custom`
#
# * `Dev`
#
#
#
# @option params [required, String] :schema_handler_package
# A url to the S3 bucket containing the schema handler package that
# contains the schema, event handlers, and associated files for the type
# you want to register.
#
# For information on generating a schema handler package for the type
# you want to register, see [submit][1] in the *CloudFormation CLI User
# Guide*.
#
# As part of registering a resource provider type, CloudFormation must
# be able to access the S3 bucket which contains the schema handler
# package for that resource provider. For more information, see [IAM
# Permissions for Registering a Resource Provider][2] in the *AWS
# CloudFormation User Guide*.
#
#
#
#
#
# [1]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry.html#registry-register-permissions
#
# @option params [Types::LoggingConfig] :logging_config
# Specifies logging configuration information for a type.
#
# @option params [String] :execution_role_arn
# The Amazon Resource Name (ARN) of the IAM role for CloudFormation to
# assume when invoking the resource provider. If your resource type
# calls AWS APIs in any of its handlers, you must create an IAM
# execution role that includes the necessary permissions to
# call those AWS APIs, and provision that execution role in your
# account. When CloudFormation needs to invoke the resource provider
# handler, CloudFormation assumes this execution role to create a
# temporary session token, which it then passes to the resource provider
# handler, thereby supplying your resource provider with the appropriate
# credentials.
#
# @option params [String] :client_request_token
# A unique identifier that acts as an idempotency key for this
# registration request. Specifying a client request token prevents
# CloudFormation from generating more than one version of a type from
# the same registeration request, even if the request is submitted
# multiple times.
#
# @return [Types::RegisterTypeOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::RegisterTypeOutput#registration_token #registration_token} => String
#
# @example Request syntax with placeholder values
#
# resp = client.register_type({
# type: "RESOURCE", # accepts RESOURCE
# type_name: "TypeName", # required
# schema_handler_package: "S3Url", # required
# logging_config: {
# log_role_arn: "RoleArn", # required
# log_group_name: "LogGroupName", # required
# },
# execution_role_arn: "RoleArn",
# client_request_token: "RequestToken",
# })
#
# @example Response structure
#
# resp.registration_token #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterType AWS API Documentation
#
# @overload register_type(params = {})
# @param [Hash] params ({})
def register_type(params = {}, options = {})
req = build_request(:register_type, params)
req.send_request(options)
end
# Sets a stack policy for a specified stack.
#
# @option params [required, String] :stack_name
# The name or unique stack ID that you want to associate a policy with.
#
# @option params [String] :stack_policy_body
# Structure containing the stack policy body. For more information, go
# to [ Prevent Updates to Stack Resources][1] in the AWS CloudFormation
# User Guide. You can specify either the `StackPolicyBody` or the
# `StackPolicyURL` parameter, but not both.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html
#
# @option params [String] :stack_policy_url
# Location of a file containing the stack policy. The URL must point to
# a policy (maximum size: 16 KB) located in an S3 bucket in the same
# Region as the stack. You can specify either the `StackPolicyBody` or
# the `StackPolicyURL` parameter, but not both.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.set_stack_policy({
# stack_name: "StackName", # required
# stack_policy_body: "StackPolicyBody",
# stack_policy_url: "StackPolicyURL",
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetStackPolicy AWS API Documentation
#
# @overload set_stack_policy(params = {})
# @param [Hash] params ({})
def set_stack_policy(params = {}, options = {})
req = build_request(:set_stack_policy, params)
req.send_request(options)
end
# Specify the default version of a type. The default version of a type
# will be used in CloudFormation operations.
#
# @option params [String] :arn
# The Amazon Resource Name (ARN) of the type for which you want version
# summary information.
#
# Conditional: You must specify either `TypeName` and `Type`, or `Arn`.
#
# @option params [String] :type
# The kind of type.
#
# Conditional: You must specify either `TypeName` and `Type`, or `Arn`.
#
# @option params [String] :type_name
# The name of the type.
#
# Conditional: You must specify either `TypeName` and `Type`, or `Arn`.
#
# @option params [String] :version_id
# The ID of a specific version of the type. The version ID is the value
# at the end of the Amazon Resource Name (ARN) assigned to the type
# version when it is registered.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.set_type_default_version({
# arn: "PrivateTypeArn",
# type: "RESOURCE", # accepts RESOURCE
# type_name: "TypeName",
# version_id: "TypeVersionId",
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeDefaultVersion AWS API Documentation
#
# @overload set_type_default_version(params = {})
# @param [Hash] params ({})
def set_type_default_version(params = {}, options = {})
req = build_request(:set_type_default_version, params)
req.send_request(options)
end
# Sends a signal to the specified resource with a success or failure
# status. You can use the SignalResource API in conjunction with a
# creation policy or update policy. AWS CloudFormation doesn't proceed
# with a stack creation or update until resources receive the required
# number of signals or the timeout period is exceeded. The
# SignalResource API is useful in cases where you want to send signals
# from anywhere other than an Amazon EC2 instance.
#
# @option params [required, String] :stack_name
# The stack name or unique stack ID that includes the resource that you
# want to signal.
#
# @option params [required, String] :logical_resource_id
# The logical ID of the resource that you want to signal. The logical ID
# is the name of the resource that given in the template.
#
# @option params [required, String] :unique_id
# A unique ID of the signal. When you signal Amazon EC2 instances or
# Auto Scaling groups, specify the instance ID that you are signaling as
# the unique ID. If you send multiple signals to a single resource (such
# as signaling a wait condition), each signal requires a different
# unique ID.
#
# @option params [required, String] :status
# The status of the signal, which is either success or failure. A
# failure signal causes AWS CloudFormation to immediately fail the stack
# creation or update.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.signal_resource({
# stack_name: "StackNameOrId", # required
# logical_resource_id: "LogicalResourceId", # required
# unique_id: "ResourceSignalUniqueId", # required
# status: "SUCCESS", # required, accepts SUCCESS, FAILURE
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SignalResource AWS API Documentation
#
# @overload signal_resource(params = {})
# @param [Hash] params ({})
def signal_resource(params = {}, options = {})
req = build_request(:signal_resource, params)
req.send_request(options)
end
# Stops an in-progress operation on a stack set and its associated stack
# instances.
#
# @option params [required, String] :stack_set_name
# The name or unique ID of the stack set that you want to stop the
# operation for.
#
# @option params [required, String] :operation_id
# The ID of the stack operation.
#
# @return [Struct] Returns an empty {Seahorse::Client::Response response}.
#
# @example Request syntax with placeholder values
#
# resp = client.stop_stack_set_operation({
# stack_set_name: "StackSetName", # required
# operation_id: "ClientRequestToken", # required
# })
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StopStackSetOperation AWS API Documentation
#
# @overload stop_stack_set_operation(params = {})
# @param [Hash] params ({})
def stop_stack_set_operation(params = {}, options = {})
req = build_request(:stop_stack_set_operation, params)
req.send_request(options)
end
# Updates a stack as specified in the template. After the call completes
# successfully, the stack update starts. You can check the status of the
# stack via the DescribeStacks action.
#
# To get a copy of the template for an existing stack, you can use the
# GetTemplate action.
#
# For more information about creating an update template, updating a
# stack, and monitoring the progress of the update, see [Updating a
# Stack][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks.html
#
# @option params [required, String] :stack_name
# The name or unique stack ID of the stack to update.
#
# @option params [String] :template_body
# Structure containing the template body with a minimum length of 1 byte
# and a maximum length of 51,200 bytes. (For more information, go to
# [Template Anatomy][1] in the AWS CloudFormation User Guide.)
#
# Conditional: You must specify only one of the following parameters:
# `TemplateBody`, `TemplateURL`, or set the `UsePreviousTemplate` to
# `true`.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
#
# @option params [String] :template_url
# Location of file containing the template body. The URL must point to a
# template that is located in an Amazon S3 bucket. For more information,
# go to [Template Anatomy][1] in the AWS CloudFormation User Guide.
#
# Conditional: You must specify only one of the following parameters:
# `TemplateBody`, `TemplateURL`, or set the `UsePreviousTemplate` to
# `true`.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
#
# @option params [Boolean] :use_previous_template
# Reuse the existing template that is associated with the stack that you
# are updating.
#
# Conditional: You must specify only one of the following parameters:
# `TemplateBody`, `TemplateURL`, or set the `UsePreviousTemplate` to
# `true`.
#
# @option params [String] :stack_policy_during_update_body
# Structure containing the temporary overriding stack policy body. You
# can specify either the `StackPolicyDuringUpdateBody` or the
# `StackPolicyDuringUpdateURL` parameter, but not both.
#
# If you want to update protected resources, specify a temporary
# overriding stack policy during this update. If you do not specify a
# stack policy, the current policy that is associated with the stack
# will be used.
#
# @option params [String] :stack_policy_during_update_url
# Location of a file containing the temporary overriding stack policy.
# The URL must point to a policy (max size: 16KB) located in an S3
# bucket in the same Region as the stack. You can specify either the
# `StackPolicyDuringUpdateBody` or the `StackPolicyDuringUpdateURL`
# parameter, but not both.
#
# If you want to update protected resources, specify a temporary
# overriding stack policy during this update. If you do not specify a
# stack policy, the current policy that is associated with the stack
# will be used.
#
# @option params [Array] :parameters
# A list of `Parameter` structures that specify input parameters for the
# stack. For more information, see the [Parameter][1] data type.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html
#
# @option params [Array] :capabilities
# In some cases, you must explicitly acknowledge that your stack
# template contains certain capabilities in order for AWS CloudFormation
# to update the stack.
#
# * `CAPABILITY_IAM` and `CAPABILITY_NAMED_IAM`
#
# Some stack templates might include resources that can affect
# permissions in your AWS account; for example, by creating new AWS
# Identity and Access Management (IAM) users. For those stacks, you
# must explicitly acknowledge this by specifying one of these
# capabilities.
#
# The following IAM resources require you to specify either the
# `CAPABILITY_IAM` or `CAPABILITY_NAMED_IAM` capability.
#
# * If you have IAM resources, you can specify either capability.
#
# * If you have IAM resources with custom names, you *must* specify
# `CAPABILITY_NAMED_IAM`.
#
# * If you don't specify either of these capabilities, AWS
# CloudFormation returns an `InsufficientCapabilities` error.
#
# If your stack template contains these resources, we recommend that
# you review all permissions associated with them and edit their
# permissions if necessary.
#
# * [ AWS::IAM::AccessKey][1]
#
# * [ AWS::IAM::Group][2]
#
# * [ AWS::IAM::InstanceProfile][3]
#
# * [ AWS::IAM::Policy][4]
#
# * [ AWS::IAM::Role][5]
#
# * [ AWS::IAM::User][6]
#
# * [ AWS::IAM::UserToGroupAddition][7]
#
# For more information, see [Acknowledging IAM Resources in AWS
# CloudFormation Templates][8].
#
# * `CAPABILITY_AUTO_EXPAND`
#
# Some template contain macros. Macros perform custom processing on
# templates; this can include simple actions like find-and-replace
# operations, all the way to extensive transformations of entire
# templates. Because of this, users typically create a change set from
# the processed template, so that they can review the changes
# resulting from the macros before actually updating the stack. If
# your stack template contains one or more macros, and you choose to
# update a stack directly from the processed template, without first
# reviewing the resulting changes in a change set, you must
# acknowledge this capability. This includes the [AWS::Include][9] and
# [AWS::Serverless][10] transforms, which are macros hosted by AWS
# CloudFormation.
#
# Change sets do not currently support nested stacks. If you want to
# update a stack from a stack template that contains macros *and*
# nested stacks, you must update the stack directly from the template
# using this capability.
#
# You should only update stacks directly from a stack template that
# contains macros if you know what processing the macro performs.
#
# Each macro relies on an underlying Lambda service function for
# processing stack templates. Be aware that the Lambda function owner
# can update the function operation without AWS CloudFormation being
# notified.
#
# For more information, see [Using AWS CloudFormation Macros to
# Perform Custom Processing on Templates][11].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html
# [3]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html
# [4]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html
# [5]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html
# [6]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html
# [7]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html
# [8]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities
# [9]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html
# [10]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html
# [11]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html
#
# @option params [Array] :resource_types
# The template resource types that you have permissions to work with for
# this update stack action, such as `AWS::EC2::Instance`, `AWS::EC2::*`,
# or `Custom::MyCustomInstance`.
#
# If the list of resource types doesn't include a resource that you're
# updating, the stack update fails. By default, AWS CloudFormation
# grants permissions to all resource types. AWS Identity and Access
# Management (IAM) uses this parameter for AWS CloudFormation-specific
# condition keys in IAM policies. For more information, see [Controlling
# Access with AWS Identity and Access Management][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html
#
# @option params [String] :role_arn
# The Amazon Resource Name (ARN) of an AWS Identity and Access
# Management (IAM) role that AWS CloudFormation assumes to update the
# stack. AWS CloudFormation uses the role's credentials to make calls
# on your behalf. AWS CloudFormation always uses this role for all
# future operations on the stack. As long as users have permission to
# operate on the stack, AWS CloudFormation uses this role even if the
# users don't have permission to pass it. Ensure that the role grants
# least privilege.
#
# If you don't specify a value, AWS CloudFormation uses the role that
# was previously associated with the stack. If no role is available, AWS
# CloudFormation uses a temporary session that is generated from your
# user credentials.
#
# @option params [Types::RollbackConfiguration] :rollback_configuration
# The rollback triggers for AWS CloudFormation to monitor during stack
# creation and updating operations, and for the specified monitoring
# period afterwards.
#
# @option params [String] :stack_policy_body
# Structure containing a new stack policy body. You can specify either
# the `StackPolicyBody` or the `StackPolicyURL` parameter, but not both.
#
# You might update the stack policy, for example, in order to protect a
# new resource that you created during a stack update. If you do not
# specify a stack policy, the current policy that is associated with the
# stack is unchanged.
#
# @option params [String] :stack_policy_url
# Location of a file containing the updated stack policy. The URL must
# point to a policy (max size: 16KB) located in an S3 bucket in the same
# Region as the stack. You can specify either the `StackPolicyBody` or
# the `StackPolicyURL` parameter, but not both.
#
# You might update the stack policy, for example, in order to protect a
# new resource that you created during a stack update. If you do not
# specify a stack policy, the current policy that is associated with the
# stack is unchanged.
#
# @option params [Array] :notification_arns
# Amazon Simple Notification Service topic Amazon Resource Names (ARNs)
# that AWS CloudFormation associates with the stack. Specify an empty
# list to remove all notification topics.
#
# @option params [Array] :tags
# Key-value pairs to associate with this stack. AWS CloudFormation also
# propagates these tags to supported resources in the stack. You can
# specify a maximum number of 50 tags.
#
# If you don't specify this parameter, AWS CloudFormation doesn't
# modify the stack's tags. If you specify an empty value, AWS
# CloudFormation removes all associated tags.
#
# @option params [String] :client_request_token
# A unique identifier for this `UpdateStack` request. Specify this token
# if you plan to retry requests so that AWS CloudFormation knows that
# you're not attempting to update a stack with the same name. You might
# retry `UpdateStack` requests to ensure that AWS CloudFormation
# successfully received them.
#
# All events triggered by a given stack operation are assigned the same
# client request token, which you can use to track operations. For
# example, if you execute a `CreateStack` operation with the token
# `token1`, then all the `StackEvents` generated by that operation will
# have `ClientRequestToken` set as `token1`.
#
# In the console, stack operations display the client request token on
# the Events tab. Stack operations that are initiated from the console
# use the token format *Console-StackOperation-ID*, which helps you
# easily identify the stack operation . For example, if you create a
# stack using the console, each stack event would be assigned the same
# token in the following format:
# `Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002`.
#
# @return [Types::UpdateStackOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::UpdateStackOutput#stack_id #stack_id} => String
#
# @example Request syntax with placeholder values
#
# resp = client.update_stack({
# stack_name: "StackName", # required
# template_body: "TemplateBody",
# template_url: "TemplateURL",
# use_previous_template: false,
# stack_policy_during_update_body: "StackPolicyDuringUpdateBody",
# stack_policy_during_update_url: "StackPolicyDuringUpdateURL",
# parameters: [
# {
# parameter_key: "ParameterKey",
# parameter_value: "ParameterValue",
# use_previous_value: false,
# resolved_value: "ParameterValue",
# },
# ],
# capabilities: ["CAPABILITY_IAM"], # accepts CAPABILITY_IAM, CAPABILITY_NAMED_IAM, CAPABILITY_AUTO_EXPAND
# resource_types: ["ResourceType"],
# role_arn: "RoleARN",
# rollback_configuration: {
# rollback_triggers: [
# {
# arn: "Arn", # required
# type: "Type", # required
# },
# ],
# monitoring_time_in_minutes: 1,
# },
# stack_policy_body: "StackPolicyBody",
# stack_policy_url: "StackPolicyURL",
# notification_arns: ["NotificationARN"],
# tags: [
# {
# key: "TagKey", # required
# value: "TagValue", # required
# },
# ],
# client_request_token: "ClientRequestToken",
# })
#
# @example Response structure
#
# resp.stack_id #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStack AWS API Documentation
#
# @overload update_stack(params = {})
# @param [Hash] params ({})
def update_stack(params = {}, options = {})
req = build_request(:update_stack, params)
req.send_request(options)
end
# Updates the parameter values for stack instances for the specified
# accounts, within the specified Regions. A stack instance refers to a
# stack in a specific account and Region.
#
# You can only update stack instances in Regions and accounts where they
# already exist; to create additional stack instances, use
# [CreateStackInstances][1].
#
# During stack set updates, any parameters overridden for a stack
# instance are not updated, but retain their overridden value.
#
# You can only update the parameter *values* that are specified in the
# stack set; to add or delete a parameter itself, use
# [UpdateStackSet][2] to update the stack set template. If you add a
# parameter to a template, before you can override the parameter value
# specified in the stack set you must first use [UpdateStackSet][2] to
# update all stack instances with the updated template and parameter
# value specified in the stack set. Once a stack instance has been
# updated with the new parameter, you can then override the parameter
# value using `UpdateStackInstances`.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStackInstances.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html
#
# @option params [required, String] :stack_set_name
# The name or unique ID of the stack set associated with the stack
# instances.
#
# @option params [Array] :accounts
# \[`Self-managed` permissions\] The names of one or more AWS accounts
# for which you want to update parameter values for stack instances. The
# overridden parameter values will be applied to all stack instances in
# the specified accounts and Regions.
#
# You can specify `Accounts` or `DeploymentTargets`, but not both.
#
# @option params [Types::DeploymentTargets] :deployment_targets
# \[`Service-managed` permissions\] The AWS Organizations accounts for
# which you want to update parameter values for stack instances. If your
# update targets OUs, the overridden parameter values only apply to the
# accounts that are currently in the target OUs and their child OUs.
# Accounts added to the target OUs and their child OUs in the future
# won't use the overridden values.
#
# You can specify `Accounts` or `DeploymentTargets`, but not both.
#
# @option params [required, Array] :regions
# The names of one or more Regions in which you want to update parameter
# values for stack instances. The overridden parameter values will be
# applied to all stack instances in the specified accounts and Regions.
#
# @option params [Array] :parameter_overrides
# A list of input parameters whose values you want to update for the
# specified stack instances.
#
# Any overridden parameter values will be applied to all stack instances
# in the specified accounts and Regions. When specifying parameters and
# their values, be aware of how AWS CloudFormation sets parameter values
# during stack instance update operations:
#
# * To override the current value for a parameter, include the parameter
# and specify its value.
#
# * To leave a parameter set to its present value, you can do one of the
# following:
#
# * Do not include the parameter in the list.
#
# * Include the parameter and specify `UsePreviousValue` as `true`.
# (You cannot specify both a value and set `UsePreviousValue` to
# `true`.)
#
# * To set all overridden parameter back to the values specified in the
# stack set, specify a parameter list but do not include any
# parameters.
#
# * To leave all parameters set to their present values, do not specify
# this property at all.
#
# During stack set updates, any parameter values overridden for a stack
# instance are not updated, but retain their overridden value.
#
# You can only override the parameter *values* that are specified in the
# stack set; to add or delete a parameter itself, use `UpdateStackSet`
# to update the stack set template. If you add a parameter to a
# template, before you can override the parameter value specified in the
# stack set you must first use [UpdateStackSet][1] to update all stack
# instances with the updated template and parameter value specified in
# the stack set. Once a stack instance has been updated with the new
# parameter, you can then override the parameter value using
# `UpdateStackInstances`.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html
#
# @option params [Types::StackSetOperationPreferences] :operation_preferences
# Preferences for how AWS CloudFormation performs this stack set
# operation.
#
# @option params [String] :operation_id
# The unique identifier for this stack set operation.
#
# The operation ID also functions as an idempotency token, to ensure
# that AWS CloudFormation performs the stack set operation only once,
# even if you retry the request multiple times. You might retry stack
# set operation requests to ensure that AWS CloudFormation successfully
# received them.
#
# If you don't specify an operation ID, the SDK generates one
# automatically.
#
# **A suitable default value is auto-generated.** You should normally
# not need to pass this option.**
#
# @return [Types::UpdateStackInstancesOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::UpdateStackInstancesOutput#operation_id #operation_id} => String
#
# @example Request syntax with placeholder values
#
# resp = client.update_stack_instances({
# stack_set_name: "StackSetNameOrId", # required
# accounts: ["Account"],
# deployment_targets: {
# accounts: ["Account"],
# organizational_unit_ids: ["OrganizationalUnitId"],
# },
# regions: ["Region"], # required
# parameter_overrides: [
# {
# parameter_key: "ParameterKey",
# parameter_value: "ParameterValue",
# use_previous_value: false,
# resolved_value: "ParameterValue",
# },
# ],
# operation_preferences: {
# region_order: ["Region"],
# failure_tolerance_count: 1,
# failure_tolerance_percentage: 1,
# max_concurrent_count: 1,
# max_concurrent_percentage: 1,
# },
# operation_id: "ClientRequestToken",
# })
#
# @example Response structure
#
# resp.operation_id #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackInstances AWS API Documentation
#
# @overload update_stack_instances(params = {})
# @param [Hash] params ({})
def update_stack_instances(params = {}, options = {})
req = build_request(:update_stack_instances, params)
req.send_request(options)
end
# Updates the stack set, and associated stack instances in the specified
# accounts and Regions.
#
# Even if the stack set operation created by updating the stack set
# fails (completely or partially, below or above a specified failure
# tolerance), the stack set is updated with your changes. Subsequent
# CreateStackInstances calls on the specified stack set use the updated
# stack set.
#
# @option params [required, String] :stack_set_name
# The name or unique ID of the stack set that you want to update.
#
# @option params [String] :description
# A brief description of updates that you are making.
#
# @option params [String] :template_body
# The structure that contains the template body, with a minimum length
# of 1 byte and a maximum length of 51,200 bytes. For more information,
# see [Template Anatomy][1] in the AWS CloudFormation User Guide.
#
# Conditional: You must specify only one of the following parameters:
# `TemplateBody` or `TemplateURL`—or set `UsePreviousTemplate` to true.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
#
# @option params [String] :template_url
# The location of the file that contains the template body. The URL must
# point to a template (maximum size: 460,800 bytes) that is located in
# an Amazon S3 bucket. For more information, see [Template Anatomy][1]
# in the AWS CloudFormation User Guide.
#
# Conditional: You must specify only one of the following parameters:
# `TemplateBody` or `TemplateURL`—or set `UsePreviousTemplate` to true.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
#
# @option params [Boolean] :use_previous_template
# Use the existing template that's associated with the stack set that
# you're updating.
#
# Conditional: You must specify only one of the following parameters:
# `TemplateBody` or `TemplateURL`—or set `UsePreviousTemplate` to true.
#
# @option params [Array] :parameters
# A list of input parameters for the stack set template.
#
# @option params [Array] :capabilities
# In some cases, you must explicitly acknowledge that your stack
# template contains certain capabilities in order for AWS CloudFormation
# to update the stack set and its associated stack instances.
#
# * `CAPABILITY_IAM` and `CAPABILITY_NAMED_IAM`
#
# Some stack templates might include resources that can affect
# permissions in your AWS account; for example, by creating new AWS
# Identity and Access Management (IAM) users. For those stacks sets,
# you must explicitly acknowledge this by specifying one of these
# capabilities.
#
# The following IAM resources require you to specify either the
# `CAPABILITY_IAM` or `CAPABILITY_NAMED_IAM` capability.
#
# * If you have IAM resources, you can specify either capability.
#
# * If you have IAM resources with custom names, you *must* specify
# `CAPABILITY_NAMED_IAM`.
#
# * If you don't specify either of these capabilities, AWS
# CloudFormation returns an `InsufficientCapabilities` error.
#
# If your stack template contains these resources, we recommend that
# you review all permissions associated with them and edit their
# permissions if necessary.
#
# * [ AWS::IAM::AccessKey][1]
#
# * [ AWS::IAM::Group][2]
#
# * [ AWS::IAM::InstanceProfile][3]
#
# * [ AWS::IAM::Policy][4]
#
# * [ AWS::IAM::Role][5]
#
# * [ AWS::IAM::User][6]
#
# * [ AWS::IAM::UserToGroupAddition][7]
#
# For more information, see [Acknowledging IAM Resources in AWS
# CloudFormation Templates][8].
#
# * `CAPABILITY_AUTO_EXPAND`
#
# Some templates contain macros. If your stack template contains one
# or more macros, and you choose to update a stack directly from the
# processed template, without first reviewing the resulting changes in
# a change set, you must acknowledge this capability. For more
# information, see [Using AWS CloudFormation Macros to Perform Custom
# Processing on Templates][9].
#
# Stack sets do not currently support macros in stack templates. (This
# includes the [AWS::Include][10] and [AWS::Serverless][11]
# transforms, which are macros hosted by AWS CloudFormation.) Even if
# you specify this capability, if you include a macro in your template
# the stack set operation will fail.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html
# [3]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html
# [4]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html
# [5]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html
# [6]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html
# [7]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html
# [8]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities
# [9]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html
# [10]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html
# [11]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html
#
# @option params [Array] :tags
# The key-value pairs to associate with this stack set and the stacks
# created from it. AWS CloudFormation also propagates these tags to
# supported resources that are created in the stacks. You can specify a
# maximum number of 50 tags.
#
# If you specify tags for this parameter, those tags replace any list of
# tags that are currently associated with this stack set. This means:
#
# * If you don't specify this parameter, AWS CloudFormation doesn't
# modify the stack's tags.
#
# * If you specify *any* tags using this parameter, you must specify
# *all* the tags that you want associated with this stack set, even
# tags you've specifed before (for example, when creating the stack
# set or during a previous update of the stack set.). Any tags that
# you don't include in the updated list of tags are removed from the
# stack set, and therefore from the stacks and resources as well.
#
# * If you specify an empty value, AWS CloudFormation removes all
# currently associated tags.
#
# If you specify new tags as part of an `UpdateStackSet` action, AWS
# CloudFormation checks to see if you have the required IAM permission
# to tag resources. If you omit tags that are currently associated with
# the stack set from the list of tags you specify, AWS CloudFormation
# assumes that you want to remove those tags from the stack set, and
# checks to see if you have permission to untag resources. If you don't
# have the necessary permission(s), the entire `UpdateStackSet` action
# fails with an `access denied` error, and the stack set is not updated.
#
# @option params [Types::StackSetOperationPreferences] :operation_preferences
# Preferences for how AWS CloudFormation performs this stack set
# operation.
#
# @option params [String] :administration_role_arn
# The Amazon Resource Number (ARN) of the IAM role to use to update this
# stack set.
#
# Specify an IAM role only if you are using customized administrator
# roles to control which users or groups can manage specific stack sets
# within the same administrator account. For more information, see
# [Granting Permissions for Stack Set Operations][1] in the *AWS
# CloudFormation User Guide*.
#
# If you specified a customized administrator role when you created the
# stack set, you must specify a customized administrator role, even if
# it is the same customized administrator role used with this stack set
# previously.
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html
#
# @option params [String] :execution_role_name
# The name of the IAM execution role to use to update the stack set. If
# you do not specify an execution role, AWS CloudFormation uses the
# `AWSCloudFormationStackSetExecutionRole` role for the stack set
# operation.
#
# Specify an IAM role only if you are using customized execution roles
# to control which stack resources users and groups can include in their
# stack sets.
#
# If you specify a customized execution role, AWS CloudFormation uses
# that role to update the stack. If you do not specify a customized
# execution role, AWS CloudFormation performs the update using the role
# previously associated with the stack set, so long as you have
# permissions to perform operations on the stack set.
#
# @option params [Types::DeploymentTargets] :deployment_targets
# \[`Service-managed` permissions\] The AWS Organizations accounts in
# which to update associated stack instances.
#
# To update all the stack instances associated with this stack set, do
# not specify `DeploymentTargets` or `Regions`.
#
# If the stack set update includes changes to the template (that is, if
# `TemplateBody` or `TemplateURL` is specified), or the `Parameters`,
# AWS CloudFormation marks all stack instances with a status of
# `OUTDATED` prior to updating the stack instances in the specified
# accounts and Regions. If the stack set update does not include changes
# to the template or parameters, AWS CloudFormation updates the stack
# instances in the specified accounts and Regions, while leaving all
# other stack instances with their existing stack instance status.
#
# @option params [String] :permission_model
# Describes how the IAM roles required for stack set operations are
# created. You cannot modify `PermissionModel` if there are stack
# instances associated with your stack set.
#
# * With `self-managed` permissions, you must create the administrator
# and execution roles required to deploy to target accounts. For more
# information, see [Grant Self-Managed Stack Set Permissions][1].
#
# * With `service-managed` permissions, StackSets automatically creates
# the IAM roles required to deploy to accounts managed by AWS
# Organizations. For more information, see [Grant Service-Managed
# Stack Set Permissions][2].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html
#
# @option params [Types::AutoDeployment] :auto_deployment
# \[`Service-managed` permissions\] Describes whether StackSets
# automatically deploys to AWS Organizations accounts that are added to
# a target organization or organizational unit (OU).
#
# If you specify `AutoDeployment`, do not specify `DeploymentTargets` or
# `Regions`.
#
# @option params [String] :operation_id
# The unique ID for this stack set operation.
#
# The operation ID also functions as an idempotency token, to ensure
# that AWS CloudFormation performs the stack set operation only once,
# even if you retry the request multiple times. You might retry stack
# set operation requests to ensure that AWS CloudFormation successfully
# received them.
#
# If you don't specify an operation ID, AWS CloudFormation generates
# one automatically.
#
# Repeating this stack set operation with a new operation ID retries all
# stack instances whose status is `OUTDATED`.
#
# **A suitable default value is auto-generated.** You should normally
# not need to pass this option.**
#
# @option params [Array] :accounts
# \[`Self-managed` permissions\] The accounts in which to update
# associated stack instances. If you specify accounts, you must also
# specify the Regions in which to update stack set instances.
#
# To update *all* the stack instances associated with this stack set, do
# not specify the `Accounts` or `Regions` properties.
#
# If the stack set update includes changes to the template (that is, if
# the `TemplateBody` or `TemplateURL` properties are specified), or the
# `Parameters` property, AWS CloudFormation marks all stack instances
# with a status of `OUTDATED` prior to updating the stack instances in
# the specified accounts and Regions. If the stack set update does not
# include changes to the template or parameters, AWS CloudFormation
# updates the stack instances in the specified accounts and Regions,
# while leaving all other stack instances with their existing stack
# instance status.
#
# @option params [Array] :regions
# The Regions in which to update associated stack instances. If you
# specify Regions, you must also specify accounts in which to update
# stack set instances.
#
# To update *all* the stack instances associated with this stack set, do
# not specify the `Accounts` or `Regions` properties.
#
# If the stack set update includes changes to the template (that is, if
# the `TemplateBody` or `TemplateURL` properties are specified), or the
# `Parameters` property, AWS CloudFormation marks all stack instances
# with a status of `OUTDATED` prior to updating the stack instances in
# the specified accounts and Regions. If the stack set update does not
# include changes to the template or parameters, AWS CloudFormation
# updates the stack instances in the specified accounts and Regions,
# while leaving all other stack instances with their existing stack
# instance status.
#
# @return [Types::UpdateStackSetOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::UpdateStackSetOutput#operation_id #operation_id} => String
#
# @example Request syntax with placeholder values
#
# resp = client.update_stack_set({
# stack_set_name: "StackSetName", # required
# description: "Description",
# template_body: "TemplateBody",
# template_url: "TemplateURL",
# use_previous_template: false,
# parameters: [
# {
# parameter_key: "ParameterKey",
# parameter_value: "ParameterValue",
# use_previous_value: false,
# resolved_value: "ParameterValue",
# },
# ],
# capabilities: ["CAPABILITY_IAM"], # accepts CAPABILITY_IAM, CAPABILITY_NAMED_IAM, CAPABILITY_AUTO_EXPAND
# tags: [
# {
# key: "TagKey", # required
# value: "TagValue", # required
# },
# ],
# operation_preferences: {
# region_order: ["Region"],
# failure_tolerance_count: 1,
# failure_tolerance_percentage: 1,
# max_concurrent_count: 1,
# max_concurrent_percentage: 1,
# },
# administration_role_arn: "RoleARN",
# execution_role_name: "ExecutionRoleName",
# deployment_targets: {
# accounts: ["Account"],
# organizational_unit_ids: ["OrganizationalUnitId"],
# },
# permission_model: "SERVICE_MANAGED", # accepts SERVICE_MANAGED, SELF_MANAGED
# auto_deployment: {
# enabled: false,
# retain_stacks_on_account_removal: false,
# },
# operation_id: "ClientRequestToken",
# accounts: ["Account"],
# regions: ["Region"],
# })
#
# @example Response structure
#
# resp.operation_id #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackSet AWS API Documentation
#
# @overload update_stack_set(params = {})
# @param [Hash] params ({})
def update_stack_set(params = {}, options = {})
req = build_request(:update_stack_set, params)
req.send_request(options)
end
# Updates termination protection for the specified stack. If a user
# attempts to delete a stack with termination protection enabled, the
# operation fails and the stack remains unchanged. For more information,
# see [Protecting a Stack From Being Deleted][1] in the *AWS
# CloudFormation User Guide*.
#
# For [nested stacks][2], termination protection is set on the root
# stack and cannot be changed directly on the nested stack.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html
#
# @option params [required, Boolean] :enable_termination_protection
# Whether to enable termination protection on the specified stack.
#
# @option params [required, String] :stack_name
# The name or unique ID of the stack for which you want to set
# termination protection.
#
# @return [Types::UpdateTerminationProtectionOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::UpdateTerminationProtectionOutput#stack_id #stack_id} => String
#
# @example Request syntax with placeholder values
#
# resp = client.update_termination_protection({
# enable_termination_protection: false, # required
# stack_name: "StackNameOrId", # required
# })
#
# @example Response structure
#
# resp.stack_id #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateTerminationProtection AWS API Documentation
#
# @overload update_termination_protection(params = {})
# @param [Hash] params ({})
def update_termination_protection(params = {}, options = {})
req = build_request(:update_termination_protection, params)
req.send_request(options)
end
# Validates a specified template. AWS CloudFormation first checks if the
# template is valid JSON. If it isn't, AWS CloudFormation checks if the
# template is valid YAML. If both these checks fail, AWS CloudFormation
# returns a template validation error.
#
# @option params [String] :template_body
# Structure containing the template body with a minimum length of 1 byte
# and a maximum length of 51,200 bytes. For more information, go to
# [Template Anatomy][1] in the AWS CloudFormation User Guide.
#
# Conditional: You must pass `TemplateURL` or `TemplateBody`. If both
# are passed, only `TemplateBody` is used.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
#
# @option params [String] :template_url
# Location of file containing the template body. The URL must point to a
# template (max size: 460,800 bytes) that is located in an Amazon S3
# bucket. For more information, go to [Template Anatomy][1] in the AWS
# CloudFormation User Guide.
#
# Conditional: You must pass `TemplateURL` or `TemplateBody`. If both
# are passed, only `TemplateBody` is used.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
#
# @return [Types::ValidateTemplateOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
#
# * {Types::ValidateTemplateOutput#parameters #parameters} => Array<Types::TemplateParameter>
# * {Types::ValidateTemplateOutput#description #description} => String
# * {Types::ValidateTemplateOutput#capabilities #capabilities} => Array<String>
# * {Types::ValidateTemplateOutput#capabilities_reason #capabilities_reason} => String
# * {Types::ValidateTemplateOutput#declared_transforms #declared_transforms} => Array<String>
#
# @example Request syntax with placeholder values
#
# resp = client.validate_template({
# template_body: "TemplateBody",
# template_url: "TemplateURL",
# })
#
# @example Response structure
#
# resp.parameters #=> Array
# resp.parameters[0].parameter_key #=> String
# resp.parameters[0].default_value #=> String
# resp.parameters[0].no_echo #=> Boolean
# resp.parameters[0].description #=> String
# resp.description #=> String
# resp.capabilities #=> Array
# resp.capabilities[0] #=> String, one of "CAPABILITY_IAM", "CAPABILITY_NAMED_IAM", "CAPABILITY_AUTO_EXPAND"
# resp.capabilities_reason #=> String
# resp.declared_transforms #=> Array
# resp.declared_transforms[0] #=> String
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ValidateTemplate AWS API Documentation
#
# @overload validate_template(params = {})
# @param [Hash] params ({})
def validate_template(params = {}, options = {})
req = build_request(:validate_template, params)
req.send_request(options)
end
# @!endgroup
# @param params ({})
# @api private
def build_request(operation_name, params = {})
handlers = @handlers.for(operation_name)
context = Seahorse::Client::RequestContext.new(
operation_name: operation_name,
operation: config.api.operation(operation_name),
client: self,
params: params,
config: config)
context[:gem_name] = 'aws-sdk-cloudformation'
context[:gem_version] = '1.41.0'
Seahorse::Client::Request.new(handlers, context)
end
# Polls an API operation until a resource enters a desired state.
#
# ## Basic Usage
#
# A waiter will call an API operation until:
#
# * It is successful
# * It enters a terminal state
# * It makes the maximum number of attempts
#
# In between attempts, the waiter will sleep.
#
# # polls in a loop, sleeping between attempts
# client.wait_until(waiter_name, params)
#
# ## Configuration
#
# You can configure the maximum number of polling attempts, and the
# delay (in seconds) between each polling attempt. You can pass
# configuration as the final arguments hash.
#
# # poll for ~25 seconds
# client.wait_until(waiter_name, params, {
# max_attempts: 5,
# delay: 5,
# })
#
# ## Callbacks
#
# You can be notified before each polling attempt and before each
# delay. If you throw `:success` or `:failure` from these callbacks,
# it will terminate the waiter.
#
# started_at = Time.now
# client.wait_until(waiter_name, params, {
#
# # disable max attempts
# max_attempts: nil,
#
# # poll for 1 hour, instead of a number of attempts
# before_wait: -> (attempts, response) do
# throw :failure if Time.now - started_at > 3600
# end
# })
#
# ## Handling Errors
#
# When a waiter is unsuccessful, it will raise an error.
# All of the failure errors extend from
# {Aws::Waiters::Errors::WaiterFailed}.
#
# begin
# client.wait_until(...)
# rescue Aws::Waiters::Errors::WaiterFailed
# # resource did not enter the desired state in time
# end
#
# ## Valid Waiters
#
# The following table lists the valid waiter names, the operations they call,
# and the default `:delay` and `:max_attempts` values.
#
# | waiter_name | params | :delay | :max_attempts |
# | -------------------------- | ----------------------------------- | -------- | ------------- |
# | change_set_create_complete | {Client#describe_change_set} | 30 | 120 |
# | stack_create_complete | {Client#describe_stacks} | 30 | 120 |
# | stack_delete_complete | {Client#describe_stacks} | 30 | 120 |
# | stack_exists | {Client#describe_stacks} | 5 | 20 |
# | stack_import_complete | {Client#describe_stacks} | 30 | 120 |
# | stack_rollback_complete | {Client#describe_stacks} | 30 | 120 |
# | stack_update_complete | {Client#describe_stacks} | 30 | 120 |
# | type_registration_complete | {Client#describe_type_registration} | 30 | 120 |
#
# @raise [Errors::FailureStateError] Raised when the waiter terminates
# because the waiter has entered a state that it will not transition
# out of, preventing success.
#
# @raise [Errors::TooManyAttemptsError] Raised when the configured
# maximum number of attempts have been made, and the waiter is not
# yet successful.
#
# @raise [Errors::UnexpectedError] Raised when an error is encounted
# while polling for a resource that is not expected.
#
# @raise [Errors::NoSuchWaiterError] Raised when you request to wait
# for an unknown state.
#
# @return [Boolean] Returns `true` if the waiter was successful.
# @param [Symbol] waiter_name
# @param [Hash] params ({})
# @param [Hash] options ({})
# @option options [Integer] :max_attempts
# @option options [Integer] :delay
# @option options [Proc] :before_attempt
# @option options [Proc] :before_wait
def wait_until(waiter_name, params = {}, options = {})
w = waiter(waiter_name, options)
yield(w.waiter) if block_given? # deprecated
w.wait(params)
end
# @api private
# @deprecated
def waiter_names
waiters.keys
end
private
# @param [Symbol] waiter_name
# @param [Hash] options ({})
def waiter(waiter_name, options = {})
waiter_class = waiters[waiter_name]
if waiter_class
waiter_class.new(options.merge(client: self))
else
raise Aws::Waiters::Errors::NoSuchWaiterError.new(waiter_name, waiters.keys)
end
end
def waiters
{
change_set_create_complete: Waiters::ChangeSetCreateComplete,
stack_create_complete: Waiters::StackCreateComplete,
stack_delete_complete: Waiters::StackDeleteComplete,
stack_exists: Waiters::StackExists,
stack_import_complete: Waiters::StackImportComplete,
stack_rollback_complete: Waiters::StackRollbackComplete,
stack_update_complete: Waiters::StackUpdateComplete,
type_registration_complete: Waiters::TypeRegistrationComplete
}
end
class << self
# @api private
attr_reader :identifier
# @api private
def errors_module
Errors
end
end
end
end
aws-sdk-cloudformation-1.41.0/lib/aws-sdk-cloudformation/stack_resource.rb 0000644 0001750 0001750 00000021244 13715265306 025733 0 ustar pravi pravi # frozen_string_literal: true
# WARNING ABOUT GENERATED CODE
#
# This file is generated. See the contributing guide for more information:
# https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
#
# WARNING ABOUT GENERATED CODE
module Aws::CloudFormation
class StackResource
extend Aws::Deprecations
# @overload def initialize(stack_name, logical_id, options = {})
# @param [String] stack_name
# @param [String] logical_id
# @option options [Client] :client
# @overload def initialize(options = {})
# @option options [required, String] :stack_name
# @option options [required, String] :logical_id
# @option options [Client] :client
def initialize(*args)
options = Hash === args.last ? args.pop.dup : {}
@stack_name = extract_stack_name(args, options)
@logical_id = extract_logical_id(args, options)
@data = options.delete(:data)
@client = options.delete(:client) || Client.new(options)
@waiter_block_warned = false
end
# @!group Read-Only Attributes
# @return [String]
def stack_name
@stack_name
end
# @return [String]
def logical_id
@logical_id
end
alias :logical_resource_id :logical_id
# Unique identifier of the stack.
# @return [String]
def stack_id
data[:stack_id]
end
# The name or unique identifier that corresponds to a physical instance
# ID of a resource supported by AWS CloudFormation.
# @return [String]
def physical_resource_id
data[:physical_resource_id]
end
# Type of resource. ((For more information, go to [ AWS Resource Types
# Reference][1] in the AWS CloudFormation User Guide.)
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html
# @return [String]
def resource_type
data[:resource_type]
end
# Time the status was updated.
# @return [Time]
def last_updated_timestamp
data[:last_updated_timestamp]
end
# Current status of the resource.
# @return [String]
def resource_status
data[:resource_status]
end
# Success/failure message associated with the resource.
# @return [String]
def resource_status_reason
data[:resource_status_reason]
end
# User defined description associated with the resource.
# @return [String]
def description
data[:description]
end
# The content of the `Metadata` attribute declared for the resource. For
# more information, see [Metadata Attribute][1] in the AWS
# CloudFormation User Guide.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html
# @return [String]
def metadata
data[:metadata]
end
# Information about whether the resource's actual configuration
# differs, or has *drifted*, from its expected configuration, as defined
# in the stack template and any values specified as template parameters.
# For more information, see [Detecting Unregulated Configuration Changes
# to Stacks and Resources][1].
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html
# @return [Types::StackResourceDriftInformation]
def drift_information
data[:drift_information]
end
# @!endgroup
# @return [Client]
def client
@client
end
# Loads, or reloads {#data} for the current {StackResource}.
# Returns `self` making it possible to chain methods.
#
# stack_resource.reload.data
#
# @return [self]
def load
resp = @client.describe_stack_resource(
logical_resource_id: @logical_id,
stack_name: @stack_name
)
@data = resp.stack_resource_detail
self
end
alias :reload :load
# @return [Types::StackResourceDetail]
# Returns the data for this {StackResource}. Calls
# {Client#describe_stack_resource} if {#data_loaded?} is `false`.
def data
load unless @data
@data
end
# @return [Boolean]
# Returns `true` if this resource is loaded. Accessing attributes or
# {#data} on an unloaded resource will trigger a call to {#load}.
def data_loaded?
!!@data
end
# @deprecated Use [Aws::CloudFormation::Client] #wait_until instead
#
# Waiter polls an API operation until a resource enters a desired
# state.
#
# @note The waiting operation is performed on a copy. The original resource
# remains unchanged.
#
# ## Basic Usage
#
# Waiter will polls until it is successful, it fails by
# entering a terminal state, or until a maximum number of attempts
# are made.
#
# # polls in a loop until condition is true
# resource.wait_until(options) {|resource| condition}
#
# ## Example
#
# instance.wait_until(max_attempts:10, delay:5) do |instance|
# instance.state.name == 'running'
# end
#
# ## Configuration
#
# You can configure the maximum number of polling attempts, and the
# delay (in seconds) between each polling attempt. The waiting condition is
# set by passing a block to {#wait_until}:
#
# # poll for ~25 seconds
# resource.wait_until(max_attempts:5,delay:5) {|resource|...}
#
# ## Callbacks
#
# You can be notified before each polling attempt and before each
# delay. If you throw `:success` or `:failure` from these callbacks,
# it will terminate the waiter.
#
# started_at = Time.now
# # poll for 1 hour, instead of a number of attempts
# proc = Proc.new do |attempts, response|
# throw :failure if Time.now - started_at > 3600
# end
#
# # disable max attempts
# instance.wait_until(before_wait:proc, max_attempts:nil) {...}
#
# ## Handling Errors
#
# When a waiter is successful, it returns the Resource. When a waiter
# fails, it raises an error.
#
# begin
# resource.wait_until(...)
# rescue Aws::Waiters::Errors::WaiterFailed
# # resource did not enter the desired state in time
# end
#
# @yieldparam [Resource] resource to be used in the waiting condition.
#
# @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter
# terminates because the waiter has entered a state that it will not
# transition out of, preventing success.
#
# yet successful.
#
# @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is
# encountered while polling for a resource that is not expected.
#
# @raise [NotImplementedError] Raised when the resource does not
#
# @option options [Integer] :max_attempts (10) Maximum number of
# attempts
# @option options [Integer] :delay (10) Delay between each
# attempt in seconds
# @option options [Proc] :before_attempt (nil) Callback
# invoked before each attempt
# @option options [Proc] :before_wait (nil) Callback
# invoked before each wait
# @return [Resource] if the waiter was successful
def wait_until(options = {}, &block)
self_copy = self.dup
attempts = 0
options[:max_attempts] = 10 unless options.key?(:max_attempts)
options[:delay] ||= 10
options[:poller] = Proc.new do
attempts += 1
if block.call(self_copy)
[:success, self_copy]
else
self_copy.reload unless attempts == options[:max_attempts]
:retry
end
end
Aws::Waiters::Waiter.new(options).wait({})
end
# @!group Associations
# @return [Stack]
def stack
Stack.new(
name: @stack_name,
client: @client
)
end
# @deprecated
# @api private
def identifiers
{
stack_name: @stack_name,
logical_id: @logical_id
}
end
deprecated(:identifiers)
private
def extract_stack_name(args, options)
value = args[0] || options.delete(:stack_name)
case value
when String then value
when nil then raise ArgumentError, "missing required option :stack_name"
else
msg = "expected :stack_name to be a String, got #{value.class}"
raise ArgumentError, msg
end
end
def extract_logical_id(args, options)
value = args[1] || options.delete(:logical_id)
case value
when String then value
when nil then raise ArgumentError, "missing required option :logical_id"
else
msg = "expected :logical_id to be a String, got #{value.class}"
raise ArgumentError, msg
end
end
class Collection < Aws::Resources::Collection; end
end
end
aws-sdk-cloudformation-1.41.0/lib/aws-sdk-cloudformation/event.rb 0000644 0001750 0001750 00000017540 13715265306 024044 0 ustar pravi pravi # frozen_string_literal: true
# WARNING ABOUT GENERATED CODE
#
# This file is generated. See the contributing guide for more information:
# https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
#
# WARNING ABOUT GENERATED CODE
module Aws::CloudFormation
class Event
extend Aws::Deprecations
# @overload def initialize(id, options = {})
# @param [String] id
# @option options [Client] :client
# @overload def initialize(options = {})
# @option options [required, String] :id
# @option options [Client] :client
def initialize(*args)
options = Hash === args.last ? args.pop.dup : {}
@id = extract_id(args, options)
@data = options.delete(:data)
@client = options.delete(:client) || Client.new(options)
@waiter_block_warned = false
end
# @!group Read-Only Attributes
# @return [String]
def id
@id
end
alias :event_id :id
# The unique ID name of the instance of the stack.
# @return [String]
def stack_id
data[:stack_id]
end
# The name associated with a stack.
# @return [String]
def stack_name
data[:stack_name]
end
# The logical name of the resource specified in the template.
# @return [String]
def logical_resource_id
data[:logical_resource_id]
end
# The name or unique identifier associated with the physical instance of
# the resource.
# @return [String]
def physical_resource_id
data[:physical_resource_id]
end
# Type of resource. (For more information, go to [ AWS Resource Types
# Reference][1] in the AWS CloudFormation User Guide.)
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html
# @return [String]
def resource_type
data[:resource_type]
end
# Time the status was updated.
# @return [Time]
def timestamp
data[:timestamp]
end
# Current status of the resource.
# @return [String]
def resource_status
data[:resource_status]
end
# Success/failure message associated with the resource.
# @return [String]
def resource_status_reason
data[:resource_status_reason]
end
# BLOB of the properties used to create the resource.
# @return [String]
def resource_properties
data[:resource_properties]
end
# The token passed to the operation that generated this event.
#
# All events triggered by a given stack operation are assigned the same
# client request token, which you can use to track operations. For
# example, if you execute a `CreateStack` operation with the token
# `token1`, then all the `StackEvents` generated by that operation will
# have `ClientRequestToken` set as `token1`.
#
# In the console, stack operations display the client request token on
# the Events tab. Stack operations that are initiated from the console
# use the token format *Console-StackOperation-ID*, which helps you
# easily identify the stack operation . For example, if you create a
# stack using the console, each stack event would be assigned the same
# token in the following format:
# `Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002`.
# @return [String]
def client_request_token
data[:client_request_token]
end
# @!endgroup
# @return [Client]
def client
@client
end
# @raise [NotImplementedError]
# @api private
def load
msg = "#load is not implemented, data only available via enumeration"
raise NotImplementedError, msg
end
alias :reload :load
# @raise [NotImplementedError] Raises when {#data_loaded?} is `false`.
# @return [Types::StackEvent]
# Returns the data for this {Event}.
def data
load unless @data
@data
end
# @return [Boolean]
# Returns `true` if this resource is loaded. Accessing attributes or
# {#data} on an unloaded resource will trigger a call to {#load}.
def data_loaded?
!!@data
end
# @deprecated Use [Aws::CloudFormation::Client] #wait_until instead
#
# Waiter polls an API operation until a resource enters a desired
# state.
#
# @note The waiting operation is performed on a copy. The original resource
# remains unchanged.
#
# ## Basic Usage
#
# Waiter will polls until it is successful, it fails by
# entering a terminal state, or until a maximum number of attempts
# are made.
#
# # polls in a loop until condition is true
# resource.wait_until(options) {|resource| condition}
#
# ## Example
#
# instance.wait_until(max_attempts:10, delay:5) do |instance|
# instance.state.name == 'running'
# end
#
# ## Configuration
#
# You can configure the maximum number of polling attempts, and the
# delay (in seconds) between each polling attempt. The waiting condition is
# set by passing a block to {#wait_until}:
#
# # poll for ~25 seconds
# resource.wait_until(max_attempts:5,delay:5) {|resource|...}
#
# ## Callbacks
#
# You can be notified before each polling attempt and before each
# delay. If you throw `:success` or `:failure` from these callbacks,
# it will terminate the waiter.
#
# started_at = Time.now
# # poll for 1 hour, instead of a number of attempts
# proc = Proc.new do |attempts, response|
# throw :failure if Time.now - started_at > 3600
# end
#
# # disable max attempts
# instance.wait_until(before_wait:proc, max_attempts:nil) {...}
#
# ## Handling Errors
#
# When a waiter is successful, it returns the Resource. When a waiter
# fails, it raises an error.
#
# begin
# resource.wait_until(...)
# rescue Aws::Waiters::Errors::WaiterFailed
# # resource did not enter the desired state in time
# end
#
# @yieldparam [Resource] resource to be used in the waiting condition.
#
# @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter
# terminates because the waiter has entered a state that it will not
# transition out of, preventing success.
#
# yet successful.
#
# @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is
# encountered while polling for a resource that is not expected.
#
# @raise [NotImplementedError] Raised when the resource does not
#
# @option options [Integer] :max_attempts (10) Maximum number of
# attempts
# @option options [Integer] :delay (10) Delay between each
# attempt in seconds
# @option options [Proc] :before_attempt (nil) Callback
# invoked before each attempt
# @option options [Proc] :before_wait (nil) Callback
# invoked before each wait
# @return [Resource] if the waiter was successful
def wait_until(options = {}, &block)
self_copy = self.dup
attempts = 0
options[:max_attempts] = 10 unless options.key?(:max_attempts)
options[:delay] ||= 10
options[:poller] = Proc.new do
attempts += 1
if block.call(self_copy)
[:success, self_copy]
else
self_copy.reload unless attempts == options[:max_attempts]
:retry
end
end
Aws::Waiters::Waiter.new(options).wait({})
end
# @deprecated
# @api private
def identifiers
{ id: @id }
end
deprecated(:identifiers)
private
def extract_id(args, options)
value = args[0] || options.delete(:id)
case value
when String then value
when nil then raise ArgumentError, "missing required option :id"
else
msg = "expected :id to be a String, got #{value.class}"
raise ArgumentError, msg
end
end
class Collection < Aws::Resources::Collection; end
end
end
aws-sdk-cloudformation-1.41.0/lib/aws-sdk-cloudformation/resource.rb 0000644 0001750 0001750 00000041300 13715265306 024541 0 ustar pravi pravi # frozen_string_literal: true
# WARNING ABOUT GENERATED CODE
#
# This file is generated. See the contributing guide for more information:
# https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
#
# WARNING ABOUT GENERATED CODE
module Aws::CloudFormation
# This class provides a resource oriented interface for CloudFormation.
# To create a resource object:
#
# resource = Aws::CloudFormation::Resource.new(region: 'us-west-2')
#
# You can supply a client object with custom configuration that will be used for all resource operations.
# If you do not pass `:client`, a default client will be constructed.
#
# client = Aws::CloudFormation::Client.new(region: 'us-west-2')
# resource = Aws::CloudFormation::Resource.new(client: client)
#
class Resource
# @param options ({})
# @option options [Client] :client
def initialize(options = {})
@client = options[:client] || Client.new(options)
end
# @return [Client]
def client
@client
end
# @!group Actions
# @example Request syntax with placeholder values
#
# stack = cloud_formation.create_stack({
# stack_name: "StackName", # required
# template_body: "TemplateBody",
# template_url: "TemplateURL",
# parameters: [
# {
# parameter_key: "ParameterKey",
# parameter_value: "ParameterValue",
# use_previous_value: false,
# resolved_value: "ParameterValue",
# },
# ],
# disable_rollback: false,
# rollback_configuration: {
# rollback_triggers: [
# {
# arn: "Arn", # required
# type: "Type", # required
# },
# ],
# monitoring_time_in_minutes: 1,
# },
# timeout_in_minutes: 1,
# notification_arns: ["NotificationARN"],
# capabilities: ["CAPABILITY_IAM"], # accepts CAPABILITY_IAM, CAPABILITY_NAMED_IAM, CAPABILITY_AUTO_EXPAND
# resource_types: ["ResourceType"],
# role_arn: "RoleARN",
# on_failure: "DO_NOTHING", # accepts DO_NOTHING, ROLLBACK, DELETE
# stack_policy_body: "StackPolicyBody",
# stack_policy_url: "StackPolicyURL",
# tags: [
# {
# key: "TagKey", # required
# value: "TagValue", # required
# },
# ],
# client_request_token: "ClientRequestToken",
# enable_termination_protection: false,
# })
# @param [Hash] options ({})
# @option options [required, String] :stack_name
# The name that is associated with the stack. The name must be unique in
# the Region in which you are creating the stack.
#
# A stack name can contain only alphanumeric characters (case sensitive)
# and hyphens. It must start with an alphabetic character and cannot be
# longer than 128 characters.
#
#
# @option options [String] :template_body
# Structure containing the template body with a minimum length of 1 byte
# and a maximum length of 51,200 bytes. For more information, go to
# [Template Anatomy][1] in the AWS CloudFormation User Guide.
#
# Conditional: You must specify either the `TemplateBody` or the
# `TemplateURL` parameter, but not both.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
# @option options [String] :template_url
# Location of file containing the template body. The URL must point to a
# template (max size: 460,800 bytes) that is located in an Amazon S3
# bucket. For more information, go to the [Template Anatomy][1] in the
# AWS CloudFormation User Guide.
#
# Conditional: You must specify either the `TemplateBody` or the
# `TemplateURL` parameter, but not both.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
# @option options [Array] :parameters
# A list of `Parameter` structures that specify input parameters for the
# stack. For more information, see the [Parameter][1] data type.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html
# @option options [Boolean] :disable_rollback
# Set to `true` to disable rollback of the stack if stack creation
# failed. You can specify either `DisableRollback` or `OnFailure`, but
# not both.
#
# Default: `false`
# @option options [Types::RollbackConfiguration] :rollback_configuration
# The rollback triggers for AWS CloudFormation to monitor during stack
# creation and updating operations, and for the specified monitoring
# period afterwards.
# @option options [Integer] :timeout_in_minutes
# The amount of time that can pass before the stack status becomes
# CREATE\_FAILED; if `DisableRollback` is not set or is set to `false`,
# the stack will be rolled back.
# @option options [Array] :notification_arns
# The Simple Notification Service (SNS) topic ARNs to publish stack
# related events. You can find your SNS topic ARNs using the SNS console
# or your Command Line Interface (CLI).
# @option options [Array] :capabilities
# In some cases, you must explicitly acknowledge that your stack
# template contains certain capabilities in order for AWS CloudFormation
# to create the stack.
#
# * `CAPABILITY_IAM` and `CAPABILITY_NAMED_IAM`
#
# Some stack templates might include resources that can affect
# permissions in your AWS account; for example, by creating new AWS
# Identity and Access Management (IAM) users. For those stacks, you
# must explicitly acknowledge this by specifying one of these
# capabilities.
#
# The following IAM resources require you to specify either the
# `CAPABILITY_IAM` or `CAPABILITY_NAMED_IAM` capability.
#
# * If you have IAM resources, you can specify either capability.
#
# * If you have IAM resources with custom names, you *must* specify
# `CAPABILITY_NAMED_IAM`.
#
# * If you don't specify either of these capabilities, AWS
# CloudFormation returns an `InsufficientCapabilities` error.
#
# If your stack template contains these resources, we recommend that
# you review all permissions associated with them and edit their
# permissions if necessary.
#
# * [ AWS::IAM::AccessKey][1]
#
# * [ AWS::IAM::Group][2]
#
# * [ AWS::IAM::InstanceProfile][3]
#
# * [ AWS::IAM::Policy][4]
#
# * [ AWS::IAM::Role][5]
#
# * [ AWS::IAM::User][6]
#
# * [ AWS::IAM::UserToGroupAddition][7]
#
# For more information, see [Acknowledging IAM Resources in AWS
# CloudFormation Templates][8].
#
# * `CAPABILITY_AUTO_EXPAND`
#
# Some template contain macros. Macros perform custom processing on
# templates; this can include simple actions like find-and-replace
# operations, all the way to extensive transformations of entire
# templates. Because of this, users typically create a change set from
# the processed template, so that they can review the changes
# resulting from the macros before actually creating the stack. If
# your stack template contains one or more macros, and you choose to
# create a stack directly from the processed template, without first
# reviewing the resulting changes in a change set, you must
# acknowledge this capability. This includes the [AWS::Include][9] and
# [AWS::Serverless][10] transforms, which are macros hosted by AWS
# CloudFormation.
#
# Change sets do not currently support nested stacks. If you want to
# create a stack from a stack template that contains macros *and*
# nested stacks, you must create the stack directly from the template
# using this capability.
#
# You should only create stacks directly from a stack template that
# contains macros if you know what processing the macro performs.
#
# Each macro relies on an underlying Lambda service function for
# processing stack templates. Be aware that the Lambda function owner
# can update the function operation without AWS CloudFormation being
# notified.
#
# For more information, see [Using AWS CloudFormation Macros to
# Perform Custom Processing on Templates][11].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html
# [3]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html
# [4]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html
# [5]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html
# [6]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html
# [7]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html
# [8]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities
# [9]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html
# [10]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html
# [11]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html
# @option options [Array] :resource_types
# The template resource types that you have permissions to work with for
# this create stack action, such as `AWS::EC2::Instance`, `AWS::EC2::*`,
# or `Custom::MyCustomInstance`. Use the following syntax to describe
# template resource types: `AWS::*` (for all AWS resource), `Custom::*`
# (for all custom resources), `Custom::logical_ID ` (for a specific
# custom resource), `AWS::service_name::*` (for all resources of a
# particular AWS service), and `AWS::service_name::resource_logical_ID `
# (for a specific AWS resource).
#
# If the list of resource types doesn't include a resource that you're
# creating, the stack creation fails. By default, AWS CloudFormation
# grants permissions to all resource types. AWS Identity and Access
# Management (IAM) uses this parameter for AWS CloudFormation-specific
# condition keys in IAM policies. For more information, see [Controlling
# Access with AWS Identity and Access Management][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html
# @option options [String] :role_arn
# The Amazon Resource Name (ARN) of an AWS Identity and Access
# Management (IAM) role that AWS CloudFormation assumes to create the
# stack. AWS CloudFormation uses the role's credentials to make calls
# on your behalf. AWS CloudFormation always uses this role for all
# future operations on the stack. As long as users have permission to
# operate on the stack, AWS CloudFormation uses this role even if the
# users don't have permission to pass it. Ensure that the role grants
# least privilege.
#
# If you don't specify a value, AWS CloudFormation uses the role that
# was previously associated with the stack. If no role is available, AWS
# CloudFormation uses a temporary session that is generated from your
# user credentials.
# @option options [String] :on_failure
# Determines what action will be taken if stack creation fails. This
# must be one of: DO\_NOTHING, ROLLBACK, or DELETE. You can specify
# either `OnFailure` or `DisableRollback`, but not both.
#
# Default: `ROLLBACK`
# @option options [String] :stack_policy_body
# Structure containing the stack policy body. For more information, go
# to [ Prevent Updates to Stack Resources][1] in the *AWS CloudFormation
# User Guide*. You can specify either the `StackPolicyBody` or the
# `StackPolicyURL` parameter, but not both.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html
# @option options [String] :stack_policy_url
# Location of a file containing the stack policy. The URL must point to
# a policy (maximum size: 16 KB) located in an S3 bucket in the same
# Region as the stack. You can specify either the `StackPolicyBody` or
# the `StackPolicyURL` parameter, but not both.
# @option options [Array] :tags
# Key-value pairs to associate with this stack. AWS CloudFormation also
# propagates these tags to the resources created in the stack. A maximum
# number of 50 tags can be specified.
# @option options [String] :client_request_token
# A unique identifier for this `CreateStack` request. Specify this token
# if you plan to retry requests so that AWS CloudFormation knows that
# you're not attempting to create a stack with the same name. You might
# retry `CreateStack` requests to ensure that AWS CloudFormation
# successfully received them.
#
# All events triggered by a given stack operation are assigned the same
# client request token, which you can use to track operations. For
# example, if you execute a `CreateStack` operation with the token
# `token1`, then all the `StackEvents` generated by that operation will
# have `ClientRequestToken` set as `token1`.
#
# In the console, stack operations display the client request token on
# the Events tab. Stack operations that are initiated from the console
# use the token format *Console-StackOperation-ID*, which helps you
# easily identify the stack operation . For example, if you create a
# stack using the console, each stack event would be assigned the same
# token in the following format:
# `Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002`.
# @option options [Boolean] :enable_termination_protection
# Whether to enable termination protection on the specified stack. If a
# user attempts to delete a stack with termination protection enabled,
# the operation fails and the stack remains unchanged. For more
# information, see [Protecting a Stack From Being Deleted][1] in the
# *AWS CloudFormation User Guide*. Termination protection is disabled on
# stacks by default.
#
# For [nested stacks][2], termination protection is set on the root
# stack and cannot be changed directly on the nested stack.
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html
# [2]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html
# @return [Stack]
def create_stack(options = {})
@client.create_stack(options)
Stack.new(
name: options[:stack_name],
client: @client
)
end
# @!group Associations
# @param [String] id
# @return [Event]
def event(id)
Event.new(
id: id,
client: @client
)
end
# @param [String] name
# @return [Stack]
def stack(name)
Stack.new(
name: name,
client: @client
)
end
# @example Request syntax with placeholder values
#
# stacks = cloud_formation.stacks({
# stack_name: "StackName",
# })
# @param [Hash] options ({})
# @option options [String] :stack_name
# The name or the unique stack ID that is associated with the stack,
# which are not always interchangeable:
#
# * Running stacks: You can specify either the stack's name or its
# unique stack ID.
#
# * Deleted stacks: You must specify the unique stack ID.
#
# Default: There is no default value.
# @return [Stack::Collection]
def stacks(options = {})
batches = Enumerator.new do |y|
resp = @client.describe_stacks(options)
resp.each_page do |page|
batch = []
page.data.stacks.each do |s|
batch << Stack.new(
name: s.stack_name,
data: s,
client: @client
)
end
y.yield(batch)
end
end
Stack::Collection.new(batches)
end
end
end
aws-sdk-cloudformation-1.41.0/lib/aws-sdk-cloudformation/customizations.rb 0000644 0001750 0001750 00000000364 13715265306 026012 0 ustar pravi pravi # frozen_string_literal: true
# WARNING ABOUT GENERATED CODE
#
# This file is generated. See the contributing for info on making contributions:
# https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
#
# WARNING ABOUT GENERATED CODE
aws-sdk-cloudformation-1.41.0/lib/aws-sdk-cloudformation/stack.rb 0000644 0001750 0001750 00000131633 13715265306 024030 0 ustar pravi pravi # frozen_string_literal: true
# WARNING ABOUT GENERATED CODE
#
# This file is generated. See the contributing guide for more information:
# https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
#
# WARNING ABOUT GENERATED CODE
module Aws::CloudFormation
class Stack
extend Aws::Deprecations
# @overload def initialize(name, options = {})
# @param [String] name
# @option options [Client] :client
# @overload def initialize(options = {})
# @option options [required, String] :name
# @option options [Client] :client
def initialize(*args)
options = Hash === args.last ? args.pop.dup : {}
@name = extract_name(args, options)
@data = options.delete(:data)
@client = options.delete(:client) || Client.new(options)
@waiter_block_warned = false
end
# @!group Read-Only Attributes
# @return [String]
def name
@name
end
alias :stack_name :name
# Unique identifier of the stack.
# @return [String]
def stack_id
data[:stack_id]
end
# The unique ID of the change set.
# @return [String]
def change_set_id
data[:change_set_id]
end
# A user-defined description associated with the stack.
# @return [String]
def description
data[:description]
end
# A list of `Parameter` structures.
# @return [Array]
def parameters
data[:parameters]
end
# The time at which the stack was created.
# @return [Time]
def creation_time
data[:creation_time]
end
# The time the stack was deleted.
# @return [Time]
def deletion_time
data[:deletion_time]
end
# The time the stack was last updated. This field will only be returned
# if the stack has been updated at least once.
# @return [Time]
def last_updated_time
data[:last_updated_time]
end
# The rollback triggers for AWS CloudFormation to monitor during stack
# creation and updating operations, and for the specified monitoring
# period afterwards.
# @return [Types::RollbackConfiguration]
def rollback_configuration
data[:rollback_configuration]
end
# Current status of the stack.
# @return [String]
def stack_status
data[:stack_status]
end
# Success/failure message associated with the stack status.
# @return [String]
def stack_status_reason
data[:stack_status_reason]
end
# Boolean to enable or disable rollback on stack creation failures:
#
# * `true`\: disable rollback
#
# * `false`\: enable rollback
# @return [Boolean]
def disable_rollback
data[:disable_rollback]
end
# SNS topic ARNs to which stack related events are published.
# @return [Array]
def notification_arns
data[:notification_arns]
end
# The amount of time within which stack creation should complete.
# @return [Integer]
def timeout_in_minutes
data[:timeout_in_minutes]
end
# The capabilities allowed in the stack.
# @return [Array]
def capabilities
data[:capabilities]
end
# A list of output structures.
# @return [Array]
def outputs
data[:outputs]
end
# The Amazon Resource Name (ARN) of an AWS Identity and Access
# Management (IAM) role that is associated with the stack. During a
# stack operation, AWS CloudFormation uses this role's credentials to
# make calls on your behalf.
# @return [String]
def role_arn
data[:role_arn]
end
# A list of `Tag`s that specify information about the stack.
# @return [Array]
def tags
data[:tags]
end
# Whether termination protection is enabled for the stack.
#
# For [nested stacks][1], termination protection is set on the root
# stack and cannot be changed directly on the nested stack. For more
# information, see [Protecting a Stack From Being Deleted][2] in the
# *AWS CloudFormation User Guide*.
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html
# [2]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html
# @return [Boolean]
def enable_termination_protection
data[:enable_termination_protection]
end
# For nested stacks--stacks created as resources for another stack--the
# stack ID of the direct parent of this stack. For the first level of
# nested stacks, the root stack is also the parent stack.
#
# For more information, see [Working with Nested Stacks][1] in the *AWS
# CloudFormation User Guide*.
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html
# @return [String]
def parent_id
data[:parent_id]
end
# For nested stacks--stacks created as resources for another stack--the
# stack ID of the top-level stack to which the nested stack ultimately
# belongs.
#
# For more information, see [Working with Nested Stacks][1] in the *AWS
# CloudFormation User Guide*.
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html
# @return [String]
def root_id
data[:root_id]
end
# Information on whether a stack's actual configuration differs, or has
# *drifted*, from it's expected configuration, as defined in the stack
# template and any values specified as template parameters. For more
# information, see [Detecting Unregulated Configuration Changes to
# Stacks and Resources][1].
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html
# @return [Types::StackDriftInformation]
def drift_information
data[:drift_information]
end
# @!endgroup
# @return [Client]
def client
@client
end
# Loads, or reloads {#data} for the current {Stack}.
# Returns `self` making it possible to chain methods.
#
# stack.reload.data
#
# @return [self]
def load
resp = @client.describe_stacks(stack_name: @name)
@data = resp.stacks[0]
self
end
alias :reload :load
# @return [Types::Stack]
# Returns the data for this {Stack}. Calls
# {Client#describe_stacks} if {#data_loaded?} is `false`.
def data
load unless @data
@data
end
# @return [Boolean]
# Returns `true` if this resource is loaded. Accessing attributes or
# {#data} on an unloaded resource will trigger a call to {#load}.
def data_loaded?
!!@data
end
# @param [Hash] options ({})
# @return [Boolean]
# Returns `true` if the Stack exists.
def exists?(options = {})
begin
wait_until_exists(options.merge(max_attempts: 1))
true
rescue Aws::Waiters::Errors::UnexpectedError => e
raise e.error
rescue Aws::Waiters::Errors::WaiterFailed
false
end
end
# @param [Hash] options ({})
# @option options [Integer] :max_attempts (20)
# @option options [Float] :delay (5)
# @option options [Proc] :before_attempt
# @option options [Proc] :before_wait
# @return [Stack]
def wait_until_exists(options = {}, &block)
options, params = separate_params_and_options(options)
waiter = Waiters::StackExists.new(options)
yield_waiter_and_warn(waiter, &block) if block_given?
waiter.wait(params.merge(stack_name: @name))
Stack.new({
name: @name,
client: @client
})
end
# @deprecated Use [Aws::CloudFormation::Client] #wait_until instead
#
# Waiter polls an API operation until a resource enters a desired
# state.
#
# @note The waiting operation is performed on a copy. The original resource
# remains unchanged.
#
# ## Basic Usage
#
# Waiter will polls until it is successful, it fails by
# entering a terminal state, or until a maximum number of attempts
# are made.
#
# # polls in a loop until condition is true
# resource.wait_until(options) {|resource| condition}
#
# ## Example
#
# instance.wait_until(max_attempts:10, delay:5) do |instance|
# instance.state.name == 'running'
# end
#
# ## Configuration
#
# You can configure the maximum number of polling attempts, and the
# delay (in seconds) between each polling attempt. The waiting condition is
# set by passing a block to {#wait_until}:
#
# # poll for ~25 seconds
# resource.wait_until(max_attempts:5,delay:5) {|resource|...}
#
# ## Callbacks
#
# You can be notified before each polling attempt and before each
# delay. If you throw `:success` or `:failure` from these callbacks,
# it will terminate the waiter.
#
# started_at = Time.now
# # poll for 1 hour, instead of a number of attempts
# proc = Proc.new do |attempts, response|
# throw :failure if Time.now - started_at > 3600
# end
#
# # disable max attempts
# instance.wait_until(before_wait:proc, max_attempts:nil) {...}
#
# ## Handling Errors
#
# When a waiter is successful, it returns the Resource. When a waiter
# fails, it raises an error.
#
# begin
# resource.wait_until(...)
# rescue Aws::Waiters::Errors::WaiterFailed
# # resource did not enter the desired state in time
# end
#
# @yieldparam [Resource] resource to be used in the waiting condition.
#
# @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter
# terminates because the waiter has entered a state that it will not
# transition out of, preventing success.
#
# yet successful.
#
# @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is
# encountered while polling for a resource that is not expected.
#
# @raise [NotImplementedError] Raised when the resource does not
#
# @option options [Integer] :max_attempts (10) Maximum number of
# attempts
# @option options [Integer] :delay (10) Delay between each
# attempt in seconds
# @option options [Proc] :before_attempt (nil) Callback
# invoked before each attempt
# @option options [Proc] :before_wait (nil) Callback
# invoked before each wait
# @return [Resource] if the waiter was successful
def wait_until(options = {}, &block)
self_copy = self.dup
attempts = 0
options[:max_attempts] = 10 unless options.key?(:max_attempts)
options[:delay] ||= 10
options[:poller] = Proc.new do
attempts += 1
if block.call(self_copy)
[:success, self_copy]
else
self_copy.reload unless attempts == options[:max_attempts]
:retry
end
end
Aws::Waiters::Waiter.new(options).wait({})
end
# @!group Actions
# @example Request syntax with placeholder values
#
# stack.cancel_update({
# client_request_token: "ClientRequestToken",
# })
# @param [Hash] options ({})
# @option options [String] :client_request_token
# A unique identifier for this `CancelUpdateStack` request. Specify this
# token if you plan to retry requests so that AWS CloudFormation knows
# that you're not attempting to cancel an update on a stack with the
# same name. You might retry `CancelUpdateStack` requests to ensure that
# AWS CloudFormation successfully received them.
# @return [EmptyStructure]
def cancel_update(options = {})
options = options.merge(stack_name: @name)
resp = @client.cancel_update_stack(options)
resp.data
end
# @example Request syntax with placeholder values
#
# stack.create({
# template_body: "TemplateBody",
# template_url: "TemplateURL",
# parameters: [
# {
# parameter_key: "ParameterKey",
# parameter_value: "ParameterValue",
# use_previous_value: false,
# resolved_value: "ParameterValue",
# },
# ],
# disable_rollback: false,
# rollback_configuration: {
# rollback_triggers: [
# {
# arn: "Arn", # required
# type: "Type", # required
# },
# ],
# monitoring_time_in_minutes: 1,
# },
# timeout_in_minutes: 1,
# notification_arns: ["NotificationARN"],
# capabilities: ["CAPABILITY_IAM"], # accepts CAPABILITY_IAM, CAPABILITY_NAMED_IAM, CAPABILITY_AUTO_EXPAND
# resource_types: ["ResourceType"],
# role_arn: "RoleARN",
# on_failure: "DO_NOTHING", # accepts DO_NOTHING, ROLLBACK, DELETE
# stack_policy_body: "StackPolicyBody",
# stack_policy_url: "StackPolicyURL",
# tags: [
# {
# key: "TagKey", # required
# value: "TagValue", # required
# },
# ],
# client_request_token: "ClientRequestToken",
# enable_termination_protection: false,
# })
# @param [Hash] options ({})
# @option options [String] :template_body
# Structure containing the template body with a minimum length of 1 byte
# and a maximum length of 51,200 bytes. For more information, go to
# [Template Anatomy][1] in the AWS CloudFormation User Guide.
#
# Conditional: You must specify either the `TemplateBody` or the
# `TemplateURL` parameter, but not both.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
# @option options [String] :template_url
# Location of file containing the template body. The URL must point to a
# template (max size: 460,800 bytes) that is located in an Amazon S3
# bucket. For more information, go to the [Template Anatomy][1] in the
# AWS CloudFormation User Guide.
#
# Conditional: You must specify either the `TemplateBody` or the
# `TemplateURL` parameter, but not both.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
# @option options [Array] :parameters
# A list of `Parameter` structures that specify input parameters for the
# stack. For more information, see the [Parameter][1] data type.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html
# @option options [Boolean] :disable_rollback
# Set to `true` to disable rollback of the stack if stack creation
# failed. You can specify either `DisableRollback` or `OnFailure`, but
# not both.
#
# Default: `false`
# @option options [Types::RollbackConfiguration] :rollback_configuration
# The rollback triggers for AWS CloudFormation to monitor during stack
# creation and updating operations, and for the specified monitoring
# period afterwards.
# @option options [Integer] :timeout_in_minutes
# The amount of time that can pass before the stack status becomes
# CREATE\_FAILED; if `DisableRollback` is not set or is set to `false`,
# the stack will be rolled back.
# @option options [Array] :notification_arns
# The Simple Notification Service (SNS) topic ARNs to publish stack
# related events. You can find your SNS topic ARNs using the SNS console
# or your Command Line Interface (CLI).
# @option options [Array] :capabilities
# In some cases, you must explicitly acknowledge that your stack
# template contains certain capabilities in order for AWS CloudFormation
# to create the stack.
#
# * `CAPABILITY_IAM` and `CAPABILITY_NAMED_IAM`
#
# Some stack templates might include resources that can affect
# permissions in your AWS account; for example, by creating new AWS
# Identity and Access Management (IAM) users. For those stacks, you
# must explicitly acknowledge this by specifying one of these
# capabilities.
#
# The following IAM resources require you to specify either the
# `CAPABILITY_IAM` or `CAPABILITY_NAMED_IAM` capability.
#
# * If you have IAM resources, you can specify either capability.
#
# * If you have IAM resources with custom names, you *must* specify
# `CAPABILITY_NAMED_IAM`.
#
# * If you don't specify either of these capabilities, AWS
# CloudFormation returns an `InsufficientCapabilities` error.
#
# If your stack template contains these resources, we recommend that
# you review all permissions associated with them and edit their
# permissions if necessary.
#
# * [ AWS::IAM::AccessKey][1]
#
# * [ AWS::IAM::Group][2]
#
# * [ AWS::IAM::InstanceProfile][3]
#
# * [ AWS::IAM::Policy][4]
#
# * [ AWS::IAM::Role][5]
#
# * [ AWS::IAM::User][6]
#
# * [ AWS::IAM::UserToGroupAddition][7]
#
# For more information, see [Acknowledging IAM Resources in AWS
# CloudFormation Templates][8].
#
# * `CAPABILITY_AUTO_EXPAND`
#
# Some template contain macros. Macros perform custom processing on
# templates; this can include simple actions like find-and-replace
# operations, all the way to extensive transformations of entire
# templates. Because of this, users typically create a change set from
# the processed template, so that they can review the changes
# resulting from the macros before actually creating the stack. If
# your stack template contains one or more macros, and you choose to
# create a stack directly from the processed template, without first
# reviewing the resulting changes in a change set, you must
# acknowledge this capability. This includes the [AWS::Include][9] and
# [AWS::Serverless][10] transforms, which are macros hosted by AWS
# CloudFormation.
#
# Change sets do not currently support nested stacks. If you want to
# create a stack from a stack template that contains macros *and*
# nested stacks, you must create the stack directly from the template
# using this capability.
#
# You should only create stacks directly from a stack template that
# contains macros if you know what processing the macro performs.
#
# Each macro relies on an underlying Lambda service function for
# processing stack templates. Be aware that the Lambda function owner
# can update the function operation without AWS CloudFormation being
# notified.
#
# For more information, see [Using AWS CloudFormation Macros to
# Perform Custom Processing on Templates][11].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html
# [3]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html
# [4]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html
# [5]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html
# [6]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html
# [7]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html
# [8]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities
# [9]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html
# [10]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html
# [11]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html
# @option options [Array] :resource_types
# The template resource types that you have permissions to work with for
# this create stack action, such as `AWS::EC2::Instance`, `AWS::EC2::*`,
# or `Custom::MyCustomInstance`. Use the following syntax to describe
# template resource types: `AWS::*` (for all AWS resource), `Custom::*`
# (for all custom resources), `Custom::logical_ID ` (for a specific
# custom resource), `AWS::service_name::*` (for all resources of a
# particular AWS service), and `AWS::service_name::resource_logical_ID `
# (for a specific AWS resource).
#
# If the list of resource types doesn't include a resource that you're
# creating, the stack creation fails. By default, AWS CloudFormation
# grants permissions to all resource types. AWS Identity and Access
# Management (IAM) uses this parameter for AWS CloudFormation-specific
# condition keys in IAM policies. For more information, see [Controlling
# Access with AWS Identity and Access Management][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html
# @option options [String] :role_arn
# The Amazon Resource Name (ARN) of an AWS Identity and Access
# Management (IAM) role that AWS CloudFormation assumes to create the
# stack. AWS CloudFormation uses the role's credentials to make calls
# on your behalf. AWS CloudFormation always uses this role for all
# future operations on the stack. As long as users have permission to
# operate on the stack, AWS CloudFormation uses this role even if the
# users don't have permission to pass it. Ensure that the role grants
# least privilege.
#
# If you don't specify a value, AWS CloudFormation uses the role that
# was previously associated with the stack. If no role is available, AWS
# CloudFormation uses a temporary session that is generated from your
# user credentials.
# @option options [String] :on_failure
# Determines what action will be taken if stack creation fails. This
# must be one of: DO\_NOTHING, ROLLBACK, or DELETE. You can specify
# either `OnFailure` or `DisableRollback`, but not both.
#
# Default: `ROLLBACK`
# @option options [String] :stack_policy_body
# Structure containing the stack policy body. For more information, go
# to [ Prevent Updates to Stack Resources][1] in the *AWS CloudFormation
# User Guide*. You can specify either the `StackPolicyBody` or the
# `StackPolicyURL` parameter, but not both.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html
# @option options [String] :stack_policy_url
# Location of a file containing the stack policy. The URL must point to
# a policy (maximum size: 16 KB) located in an S3 bucket in the same
# Region as the stack. You can specify either the `StackPolicyBody` or
# the `StackPolicyURL` parameter, but not both.
# @option options [Array] :tags
# Key-value pairs to associate with this stack. AWS CloudFormation also
# propagates these tags to the resources created in the stack. A maximum
# number of 50 tags can be specified.
# @option options [String] :client_request_token
# A unique identifier for this `CreateStack` request. Specify this token
# if you plan to retry requests so that AWS CloudFormation knows that
# you're not attempting to create a stack with the same name. You might
# retry `CreateStack` requests to ensure that AWS CloudFormation
# successfully received them.
#
# All events triggered by a given stack operation are assigned the same
# client request token, which you can use to track operations. For
# example, if you execute a `CreateStack` operation with the token
# `token1`, then all the `StackEvents` generated by that operation will
# have `ClientRequestToken` set as `token1`.
#
# In the console, stack operations display the client request token on
# the Events tab. Stack operations that are initiated from the console
# use the token format *Console-StackOperation-ID*, which helps you
# easily identify the stack operation . For example, if you create a
# stack using the console, each stack event would be assigned the same
# token in the following format:
# `Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002`.
# @option options [Boolean] :enable_termination_protection
# Whether to enable termination protection on the specified stack. If a
# user attempts to delete a stack with termination protection enabled,
# the operation fails and the stack remains unchanged. For more
# information, see [Protecting a Stack From Being Deleted][1] in the
# *AWS CloudFormation User Guide*. Termination protection is disabled on
# stacks by default.
#
# For [nested stacks][2], termination protection is set on the root
# stack and cannot be changed directly on the nested stack.
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html
# [2]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html
# @return [Types::CreateStackOutput]
def create(options = {})
options = options.merge(stack_name: @name)
resp = @client.create_stack(options)
resp.data
end
# @example Request syntax with placeholder values
#
# stack.delete({
# retain_resources: ["LogicalResourceId"],
# role_arn: "RoleARN",
# client_request_token: "ClientRequestToken",
# })
# @param [Hash] options ({})
# @option options [Array] :retain_resources
# For stacks in the `DELETE_FAILED` state, a list of resource logical
# IDs that are associated with the resources you want to retain. During
# deletion, AWS CloudFormation deletes the stack but does not delete the
# retained resources.
#
# Retaining resources is useful when you cannot delete a resource, such
# as a non-empty S3 bucket, but you want to delete the stack.
# @option options [String] :role_arn
# The Amazon Resource Name (ARN) of an AWS Identity and Access
# Management (IAM) role that AWS CloudFormation assumes to delete the
# stack. AWS CloudFormation uses the role's credentials to make calls
# on your behalf.
#
# If you don't specify a value, AWS CloudFormation uses the role that
# was previously associated with the stack. If no role is available, AWS
# CloudFormation uses a temporary session that is generated from your
# user credentials.
# @option options [String] :client_request_token
# A unique identifier for this `DeleteStack` request. Specify this token
# if you plan to retry requests so that AWS CloudFormation knows that
# you're not attempting to delete a stack with the same name. You might
# retry `DeleteStack` requests to ensure that AWS CloudFormation
# successfully received them.
#
# All events triggered by a given stack operation are assigned the same
# client request token, which you can use to track operations. For
# example, if you execute a `CreateStack` operation with the token
# `token1`, then all the `StackEvents` generated by that operation will
# have `ClientRequestToken` set as `token1`.
#
# In the console, stack operations display the client request token on
# the Events tab. Stack operations that are initiated from the console
# use the token format *Console-StackOperation-ID*, which helps you
# easily identify the stack operation . For example, if you create a
# stack using the console, each stack event would be assigned the same
# token in the following format:
# `Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002`.
# @return [EmptyStructure]
def delete(options = {})
options = options.merge(stack_name: @name)
resp = @client.delete_stack(options)
resp.data
end
# @example Request syntax with placeholder values
#
# stack.update({
# template_body: "TemplateBody",
# template_url: "TemplateURL",
# use_previous_template: false,
# stack_policy_during_update_body: "StackPolicyDuringUpdateBody",
# stack_policy_during_update_url: "StackPolicyDuringUpdateURL",
# parameters: [
# {
# parameter_key: "ParameterKey",
# parameter_value: "ParameterValue",
# use_previous_value: false,
# resolved_value: "ParameterValue",
# },
# ],
# capabilities: ["CAPABILITY_IAM"], # accepts CAPABILITY_IAM, CAPABILITY_NAMED_IAM, CAPABILITY_AUTO_EXPAND
# resource_types: ["ResourceType"],
# role_arn: "RoleARN",
# rollback_configuration: {
# rollback_triggers: [
# {
# arn: "Arn", # required
# type: "Type", # required
# },
# ],
# monitoring_time_in_minutes: 1,
# },
# stack_policy_body: "StackPolicyBody",
# stack_policy_url: "StackPolicyURL",
# notification_arns: ["NotificationARN"],
# tags: [
# {
# key: "TagKey", # required
# value: "TagValue", # required
# },
# ],
# client_request_token: "ClientRequestToken",
# })
# @param [Hash] options ({})
# @option options [String] :template_body
# Structure containing the template body with a minimum length of 1 byte
# and a maximum length of 51,200 bytes. (For more information, go to
# [Template Anatomy][1] in the AWS CloudFormation User Guide.)
#
# Conditional: You must specify only one of the following parameters:
# `TemplateBody`, `TemplateURL`, or set the `UsePreviousTemplate` to
# `true`.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
# @option options [String] :template_url
# Location of file containing the template body. The URL must point to a
# template that is located in an Amazon S3 bucket. For more information,
# go to [Template Anatomy][1] in the AWS CloudFormation User Guide.
#
# Conditional: You must specify only one of the following parameters:
# `TemplateBody`, `TemplateURL`, or set the `UsePreviousTemplate` to
# `true`.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
# @option options [Boolean] :use_previous_template
# Reuse the existing template that is associated with the stack that you
# are updating.
#
# Conditional: You must specify only one of the following parameters:
# `TemplateBody`, `TemplateURL`, or set the `UsePreviousTemplate` to
# `true`.
# @option options [String] :stack_policy_during_update_body
# Structure containing the temporary overriding stack policy body. You
# can specify either the `StackPolicyDuringUpdateBody` or the
# `StackPolicyDuringUpdateURL` parameter, but not both.
#
# If you want to update protected resources, specify a temporary
# overriding stack policy during this update. If you do not specify a
# stack policy, the current policy that is associated with the stack
# will be used.
# @option options [String] :stack_policy_during_update_url
# Location of a file containing the temporary overriding stack policy.
# The URL must point to a policy (max size: 16KB) located in an S3
# bucket in the same Region as the stack. You can specify either the
# `StackPolicyDuringUpdateBody` or the `StackPolicyDuringUpdateURL`
# parameter, but not both.
#
# If you want to update protected resources, specify a temporary
# overriding stack policy during this update. If you do not specify a
# stack policy, the current policy that is associated with the stack
# will be used.
# @option options [Array] :parameters
# A list of `Parameter` structures that specify input parameters for the
# stack. For more information, see the [Parameter][1] data type.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html
# @option options [Array] :capabilities
# In some cases, you must explicitly acknowledge that your stack
# template contains certain capabilities in order for AWS CloudFormation
# to update the stack.
#
# * `CAPABILITY_IAM` and `CAPABILITY_NAMED_IAM`
#
# Some stack templates might include resources that can affect
# permissions in your AWS account; for example, by creating new AWS
# Identity and Access Management (IAM) users. For those stacks, you
# must explicitly acknowledge this by specifying one of these
# capabilities.
#
# The following IAM resources require you to specify either the
# `CAPABILITY_IAM` or `CAPABILITY_NAMED_IAM` capability.
#
# * If you have IAM resources, you can specify either capability.
#
# * If you have IAM resources with custom names, you *must* specify
# `CAPABILITY_NAMED_IAM`.
#
# * If you don't specify either of these capabilities, AWS
# CloudFormation returns an `InsufficientCapabilities` error.
#
# If your stack template contains these resources, we recommend that
# you review all permissions associated with them and edit their
# permissions if necessary.
#
# * [ AWS::IAM::AccessKey][1]
#
# * [ AWS::IAM::Group][2]
#
# * [ AWS::IAM::InstanceProfile][3]
#
# * [ AWS::IAM::Policy][4]
#
# * [ AWS::IAM::Role][5]
#
# * [ AWS::IAM::User][6]
#
# * [ AWS::IAM::UserToGroupAddition][7]
#
# For more information, see [Acknowledging IAM Resources in AWS
# CloudFormation Templates][8].
#
# * `CAPABILITY_AUTO_EXPAND`
#
# Some template contain macros. Macros perform custom processing on
# templates; this can include simple actions like find-and-replace
# operations, all the way to extensive transformations of entire
# templates. Because of this, users typically create a change set from
# the processed template, so that they can review the changes
# resulting from the macros before actually updating the stack. If
# your stack template contains one or more macros, and you choose to
# update a stack directly from the processed template, without first
# reviewing the resulting changes in a change set, you must
# acknowledge this capability. This includes the [AWS::Include][9] and
# [AWS::Serverless][10] transforms, which are macros hosted by AWS
# CloudFormation.
#
# Change sets do not currently support nested stacks. If you want to
# update a stack from a stack template that contains macros *and*
# nested stacks, you must update the stack directly from the template
# using this capability.
#
# You should only update stacks directly from a stack template that
# contains macros if you know what processing the macro performs.
#
# Each macro relies on an underlying Lambda service function for
# processing stack templates. Be aware that the Lambda function owner
# can update the function operation without AWS CloudFormation being
# notified.
#
# For more information, see [Using AWS CloudFormation Macros to
# Perform Custom Processing on Templates][11].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html
# [3]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html
# [4]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html
# [5]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html
# [6]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html
# [7]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html
# [8]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities
# [9]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html
# [10]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html
# [11]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html
# @option options [Array] :resource_types
# The template resource types that you have permissions to work with for
# this update stack action, such as `AWS::EC2::Instance`, `AWS::EC2::*`,
# or `Custom::MyCustomInstance`.
#
# If the list of resource types doesn't include a resource that you're
# updating, the stack update fails. By default, AWS CloudFormation
# grants permissions to all resource types. AWS Identity and Access
# Management (IAM) uses this parameter for AWS CloudFormation-specific
# condition keys in IAM policies. For more information, see [Controlling
# Access with AWS Identity and Access Management][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html
# @option options [String] :role_arn
# The Amazon Resource Name (ARN) of an AWS Identity and Access
# Management (IAM) role that AWS CloudFormation assumes to update the
# stack. AWS CloudFormation uses the role's credentials to make calls
# on your behalf. AWS CloudFormation always uses this role for all
# future operations on the stack. As long as users have permission to
# operate on the stack, AWS CloudFormation uses this role even if the
# users don't have permission to pass it. Ensure that the role grants
# least privilege.
#
# If you don't specify a value, AWS CloudFormation uses the role that
# was previously associated with the stack. If no role is available, AWS
# CloudFormation uses a temporary session that is generated from your
# user credentials.
# @option options [Types::RollbackConfiguration] :rollback_configuration
# The rollback triggers for AWS CloudFormation to monitor during stack
# creation and updating operations, and for the specified monitoring
# period afterwards.
# @option options [String] :stack_policy_body
# Structure containing a new stack policy body. You can specify either
# the `StackPolicyBody` or the `StackPolicyURL` parameter, but not both.
#
# You might update the stack policy, for example, in order to protect a
# new resource that you created during a stack update. If you do not
# specify a stack policy, the current policy that is associated with the
# stack is unchanged.
# @option options [String] :stack_policy_url
# Location of a file containing the updated stack policy. The URL must
# point to a policy (max size: 16KB) located in an S3 bucket in the same
# Region as the stack. You can specify either the `StackPolicyBody` or
# the `StackPolicyURL` parameter, but not both.
#
# You might update the stack policy, for example, in order to protect a
# new resource that you created during a stack update. If you do not
# specify a stack policy, the current policy that is associated with the
# stack is unchanged.
# @option options [Array] :notification_arns
# Amazon Simple Notification Service topic Amazon Resource Names (ARNs)
# that AWS CloudFormation associates with the stack. Specify an empty
# list to remove all notification topics.
# @option options [Array] :tags
# Key-value pairs to associate with this stack. AWS CloudFormation also
# propagates these tags to supported resources in the stack. You can
# specify a maximum number of 50 tags.
#
# If you don't specify this parameter, AWS CloudFormation doesn't
# modify the stack's tags. If you specify an empty value, AWS
# CloudFormation removes all associated tags.
# @option options [String] :client_request_token
# A unique identifier for this `UpdateStack` request. Specify this token
# if you plan to retry requests so that AWS CloudFormation knows that
# you're not attempting to update a stack with the same name. You might
# retry `UpdateStack` requests to ensure that AWS CloudFormation
# successfully received them.
#
# All events triggered by a given stack operation are assigned the same
# client request token, which you can use to track operations. For
# example, if you execute a `CreateStack` operation with the token
# `token1`, then all the `StackEvents` generated by that operation will
# have `ClientRequestToken` set as `token1`.
#
# In the console, stack operations display the client request token on
# the Events tab. Stack operations that are initiated from the console
# use the token format *Console-StackOperation-ID*, which helps you
# easily identify the stack operation . For example, if you create a
# stack using the console, each stack event would be assigned the same
# token in the following format:
# `Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002`.
# @return [Types::UpdateStackOutput]
def update(options = {})
options = options.merge(stack_name: @name)
resp = @client.update_stack(options)
resp.data
end
# @!group Associations
# @example Request syntax with placeholder values
#
# stack.events()
# @param [Hash] options ({})
# @return [Event::Collection]
def events(options = {})
batches = Enumerator.new do |y|
options = options.merge(stack_name: @name)
resp = @client.describe_stack_events(options)
resp.each_page do |page|
batch = []
page.data.stack_events.each do |s|
batch << Event.new(
id: s.event_id,
data: s,
client: @client
)
end
y.yield(batch)
end
end
Event::Collection.new(batches)
end
# @param [String] logical_id
# @return [StackResource]
def resource(logical_id)
StackResource.new(
stack_name: @name,
logical_id: logical_id,
client: @client
)
end
# @example Request syntax with placeholder values
#
# stack.resource_summaries()
# @param [Hash] options ({})
# @return [StackResourceSummary::Collection]
def resource_summaries(options = {})
batches = Enumerator.new do |y|
options = options.merge(stack_name: @name)
resp = @client.list_stack_resources(options)
resp.each_page do |page|
batch = []
page.data.stack_resource_summaries.each do |s|
batch << StackResourceSummary.new(
logical_id: s.logical_resource_id,
stack_name: options[:stack_name],
data: s,
client: @client
)
end
y.yield(batch)
end
end
StackResourceSummary::Collection.new(batches)
end
# @deprecated
# @api private
def identifiers
{ name: @name }
end
deprecated(:identifiers)
private
def extract_name(args, options)
value = args[0] || options.delete(:name)
case value
when String then value
when nil then raise ArgumentError, "missing required option :name"
else
msg = "expected :name to be a String, got #{value.class}"
raise ArgumentError, msg
end
end
def yield_waiter_and_warn(waiter, &block)
if !@waiter_block_warned
msg = "pass options to configure the waiter; "\
"yielding the waiter is deprecated"
warn(msg)
@waiter_block_warned = true
end
yield(waiter.waiter)
end
def separate_params_and_options(options)
opts = Set.new(
[:client, :max_attempts, :delay, :before_attempt, :before_wait]
)
waiter_opts = {}
waiter_params = {}
options.each_pair do |key, value|
if opts.include?(key)
waiter_opts[key] = value
else
waiter_params[key] = value
end
end
waiter_opts[:client] ||= @client
[waiter_opts, waiter_params]
end
class Collection < Aws::Resources::Collection; end
end
end
aws-sdk-cloudformation-1.41.0/lib/aws-sdk-cloudformation/waiters.rb 0000644 0001750 0001750 00000044774 13715265306 024412 0 ustar pravi pravi # frozen_string_literal: true
# WARNING ABOUT GENERATED CODE
#
# This file is generated. See the contributing guide for more information:
# https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
#
# WARNING ABOUT GENERATED CODE
require 'aws-sdk-core/waiters'
module Aws::CloudFormation
# Waiters are utility methods that poll for a particular state to occur
# on a client. Waiters can fail after a number of attempts at a polling
# interval defined for the service client.
#
# For a list of operations that can be waited for and the
# client methods called for each operation, see the table below or the
# {Client#wait_until} field documentation for the {Client}.
#
# # Invoking a Waiter
# To invoke a waiter, call #wait_until on a {Client}. The first parameter
# is the waiter name, which is specific to the service client and indicates
# which operation is being waited for. The second parameter is a hash of
# parameters that are passed to the client method called by the waiter,
# which varies according to the waiter name.
#
# # Wait Failures
# To catch errors in a waiter, use WaiterFailed,
# as shown in the following example.
#
# rescue rescue Aws::Waiters::Errors::WaiterFailed => error
# puts "failed waiting for instance running: #{error.message}
# end
#
# # Configuring a Waiter
# Each waiter has a default polling interval and a maximum number of
# attempts it will make before returning control to your program.
# To set these values, use the `max_attempts` and `delay` parameters
# in your `#wait_until` call.
# The following example waits for up to 25 seconds, polling every five seconds.
#
# client.wait_until(...) do |w|
# w.max_attempts = 5
# w.delay = 5
# end
#
# To disable wait failures, set the value of either of these parameters
# to `nil`.
#
# # Extending a Waiter
# To modify the behavior of waiters, you can register callbacks that are
# triggered before each polling attempt and before waiting.
#
# The following example implements an exponential backoff in a waiter
# by doubling the amount of time to wait on every attempt.
#
# client.wait_until(...) do |w|
# w.interval = 0 # disable normal sleep
# w.before_wait do |n, resp|
# sleep(n ** 2)
# end
# end
#
# # Available Waiters
#
# The following table lists the valid waiter names, the operations they call,
# and the default `:delay` and `:max_attempts` values.
#
# | waiter_name | params | :delay | :max_attempts |
# | -------------------------- | ----------------------------------- | -------- | ------------- |
# | change_set_create_complete | {Client#describe_change_set} | 30 | 120 |
# | stack_create_complete | {Client#describe_stacks} | 30 | 120 |
# | stack_delete_complete | {Client#describe_stacks} | 30 | 120 |
# | stack_exists | {Client#describe_stacks} | 5 | 20 |
# | stack_import_complete | {Client#describe_stacks} | 30 | 120 |
# | stack_rollback_complete | {Client#describe_stacks} | 30 | 120 |
# | stack_update_complete | {Client#describe_stacks} | 30 | 120 |
# | type_registration_complete | {Client#describe_type_registration} | 30 | 120 |
#
module Waiters
# Wait until change set status is CREATE_COMPLETE.
class ChangeSetCreateComplete
# @param [Hash] options
# @option options [required, Client] :client
# @option options [Integer] :max_attempts (120)
# @option options [Integer] :delay (30)
# @option options [Proc] :before_attempt
# @option options [Proc] :before_wait
def initialize(options)
@client = options.fetch(:client)
@waiter = Aws::Waiters::Waiter.new({
max_attempts: 120,
delay: 30,
poller: Aws::Waiters::Poller.new(
operation_name: :describe_change_set,
acceptors: [
{
"argument" => "status",
"expected" => "CREATE_COMPLETE",
"matcher" => "path",
"state" => "success"
},
{
"argument" => "status",
"expected" => "FAILED",
"matcher" => "path",
"state" => "failure"
},
{
"expected" => "ValidationError",
"matcher" => "error",
"state" => "failure"
}
]
)
}.merge(options))
end
# @option (see Client#describe_change_set)
# @return (see Client#describe_change_set)
def wait(params = {})
@waiter.wait(client: @client, params: params)
end
# @api private
attr_reader :waiter
end
# Wait until stack status is CREATE_COMPLETE.
class StackCreateComplete
# @param [Hash] options
# @option options [required, Client] :client
# @option options [Integer] :max_attempts (120)
# @option options [Integer] :delay (30)
# @option options [Proc] :before_attempt
# @option options [Proc] :before_wait
def initialize(options)
@client = options.fetch(:client)
@waiter = Aws::Waiters::Waiter.new({
max_attempts: 120,
delay: 30,
poller: Aws::Waiters::Poller.new(
operation_name: :describe_stacks,
acceptors: [
{
"argument" => "stacks[].stack_status",
"expected" => "CREATE_COMPLETE",
"matcher" => "pathAll",
"state" => "success"
},
{
"argument" => "stacks[].stack_status",
"expected" => "CREATE_FAILED",
"matcher" => "pathAny",
"state" => "failure"
},
{
"argument" => "stacks[].stack_status",
"expected" => "DELETE_COMPLETE",
"matcher" => "pathAny",
"state" => "failure"
},
{
"argument" => "stacks[].stack_status",
"expected" => "DELETE_FAILED",
"matcher" => "pathAny",
"state" => "failure"
},
{
"argument" => "stacks[].stack_status",
"expected" => "ROLLBACK_FAILED",
"matcher" => "pathAny",
"state" => "failure"
},
{
"argument" => "stacks[].stack_status",
"expected" => "ROLLBACK_COMPLETE",
"matcher" => "pathAny",
"state" => "failure"
},
{
"expected" => "ValidationError",
"matcher" => "error",
"state" => "failure"
}
]
)
}.merge(options))
end
# @option (see Client#describe_stacks)
# @return (see Client#describe_stacks)
def wait(params = {})
@waiter.wait(client: @client, params: params)
end
# @api private
attr_reader :waiter
end
# Wait until stack status is DELETE_COMPLETE.
class StackDeleteComplete
# @param [Hash] options
# @option options [required, Client] :client
# @option options [Integer] :max_attempts (120)
# @option options [Integer] :delay (30)
# @option options [Proc] :before_attempt
# @option options [Proc] :before_wait
def initialize(options)
@client = options.fetch(:client)
@waiter = Aws::Waiters::Waiter.new({
max_attempts: 120,
delay: 30,
poller: Aws::Waiters::Poller.new(
operation_name: :describe_stacks,
acceptors: [
{
"argument" => "stacks[].stack_status",
"expected" => "DELETE_COMPLETE",
"matcher" => "pathAll",
"state" => "success"
},
{
"expected" => "ValidationError",
"matcher" => "error",
"state" => "success"
},
{
"argument" => "stacks[].stack_status",
"expected" => "DELETE_FAILED",
"matcher" => "pathAny",
"state" => "failure"
},
{
"argument" => "stacks[].stack_status",
"expected" => "CREATE_FAILED",
"matcher" => "pathAny",
"state" => "failure"
},
{
"argument" => "stacks[].stack_status",
"expected" => "ROLLBACK_FAILED",
"matcher" => "pathAny",
"state" => "failure"
},
{
"argument" => "stacks[].stack_status",
"expected" => "UPDATE_ROLLBACK_IN_PROGRESS",
"matcher" => "pathAny",
"state" => "failure"
},
{
"argument" => "stacks[].stack_status",
"expected" => "UPDATE_ROLLBACK_FAILED",
"matcher" => "pathAny",
"state" => "failure"
},
{
"argument" => "stacks[].stack_status",
"expected" => "UPDATE_ROLLBACK_COMPLETE",
"matcher" => "pathAny",
"state" => "failure"
}
]
)
}.merge(options))
end
# @option (see Client#describe_stacks)
# @return (see Client#describe_stacks)
def wait(params = {})
@waiter.wait(client: @client, params: params)
end
# @api private
attr_reader :waiter
end
class StackExists
# @param [Hash] options
# @option options [required, Client] :client
# @option options [Integer] :max_attempts (20)
# @option options [Integer] :delay (5)
# @option options [Proc] :before_attempt
# @option options [Proc] :before_wait
def initialize(options)
@client = options.fetch(:client)
@waiter = Aws::Waiters::Waiter.new({
max_attempts: 20,
delay: 5,
poller: Aws::Waiters::Poller.new(
operation_name: :describe_stacks,
acceptors: [
{
"matcher" => "status",
"expected" => 200,
"state" => "success"
},
{
"matcher" => "error",
"expected" => "ValidationError",
"state" => "retry"
}
]
)
}.merge(options))
end
# @option (see Client#describe_stacks)
# @return (see Client#describe_stacks)
def wait(params = {})
@waiter.wait(client: @client, params: params)
end
# @api private
attr_reader :waiter
end
# Wait until stack status is IMPORT_COMPLETE.
class StackImportComplete
# @param [Hash] options
# @option options [required, Client] :client
# @option options [Integer] :max_attempts (120)
# @option options [Integer] :delay (30)
# @option options [Proc] :before_attempt
# @option options [Proc] :before_wait
def initialize(options)
@client = options.fetch(:client)
@waiter = Aws::Waiters::Waiter.new({
max_attempts: 120,
delay: 30,
poller: Aws::Waiters::Poller.new(
operation_name: :describe_stacks,
acceptors: [
{
"argument" => "stacks[].stack_status",
"expected" => "IMPORT_COMPLETE",
"matcher" => "pathAll",
"state" => "success"
},
{
"expected" => "ROLLBACK_COMPLETE",
"matcher" => "pathAny",
"state" => "failure",
"argument" => "stacks[].stack_status"
},
{
"expected" => "ROLLBACK_FAILED",
"matcher" => "pathAny",
"state" => "failure",
"argument" => "stacks[].stack_status"
},
{
"argument" => "stacks[].stack_status",
"expected" => "IMPORT_ROLLBACK_IN_PROGRESS",
"matcher" => "pathAny",
"state" => "failure"
},
{
"argument" => "stacks[].stack_status",
"expected" => "IMPORT_ROLLBACK_FAILED",
"matcher" => "pathAny",
"state" => "failure"
},
{
"expected" => "IMPORT_ROLLBACK_COMPLETE",
"matcher" => "pathAny",
"state" => "failure",
"argument" => "stacks[].stack_status"
},
{
"expected" => "ValidationError",
"matcher" => "error",
"state" => "failure"
}
]
)
}.merge(options))
end
# @option (see Client#describe_stacks)
# @return (see Client#describe_stacks)
def wait(params = {})
@waiter.wait(client: @client, params: params)
end
# @api private
attr_reader :waiter
end
# Wait until stack status is UPDATE_ROLLBACK_COMPLETE.
class StackRollbackComplete
# @param [Hash] options
# @option options [required, Client] :client
# @option options [Integer] :max_attempts (120)
# @option options [Integer] :delay (30)
# @option options [Proc] :before_attempt
# @option options [Proc] :before_wait
def initialize(options)
@client = options.fetch(:client)
@waiter = Aws::Waiters::Waiter.new({
max_attempts: 120,
delay: 30,
poller: Aws::Waiters::Poller.new(
operation_name: :describe_stacks,
acceptors: [
{
"argument" => "stacks[].stack_status",
"expected" => "UPDATE_ROLLBACK_COMPLETE",
"matcher" => "pathAll",
"state" => "success"
},
{
"argument" => "stacks[].stack_status",
"expected" => "UPDATE_FAILED",
"matcher" => "pathAny",
"state" => "failure"
},
{
"argument" => "stacks[].stack_status",
"expected" => "UPDATE_ROLLBACK_FAILED",
"matcher" => "pathAny",
"state" => "failure"
},
{
"argument" => "stacks[].stack_status",
"expected" => "DELETE_FAILED",
"matcher" => "pathAny",
"state" => "failure"
},
{
"expected" => "ValidationError",
"matcher" => "error",
"state" => "failure"
}
]
)
}.merge(options))
end
# @option (see Client#describe_stacks)
# @return (see Client#describe_stacks)
def wait(params = {})
@waiter.wait(client: @client, params: params)
end
# @api private
attr_reader :waiter
end
# Wait until stack status is UPDATE_COMPLETE.
class StackUpdateComplete
# @param [Hash] options
# @option options [required, Client] :client
# @option options [Integer] :max_attempts (120)
# @option options [Integer] :delay (30)
# @option options [Proc] :before_attempt
# @option options [Proc] :before_wait
def initialize(options)
@client = options.fetch(:client)
@waiter = Aws::Waiters::Waiter.new({
max_attempts: 120,
delay: 30,
poller: Aws::Waiters::Poller.new(
operation_name: :describe_stacks,
acceptors: [
{
"argument" => "stacks[].stack_status",
"expected" => "UPDATE_COMPLETE",
"matcher" => "pathAll",
"state" => "success"
},
{
"expected" => "UPDATE_FAILED",
"matcher" => "pathAny",
"state" => "failure",
"argument" => "stacks[].stack_status"
},
{
"argument" => "stacks[].stack_status",
"expected" => "UPDATE_ROLLBACK_FAILED",
"matcher" => "pathAny",
"state" => "failure"
},
{
"expected" => "UPDATE_ROLLBACK_COMPLETE",
"matcher" => "pathAny",
"state" => "failure",
"argument" => "stacks[].stack_status"
},
{
"expected" => "ValidationError",
"matcher" => "error",
"state" => "failure"
}
]
)
}.merge(options))
end
# @option (see Client#describe_stacks)
# @return (see Client#describe_stacks)
def wait(params = {})
@waiter.wait(client: @client, params: params)
end
# @api private
attr_reader :waiter
end
# Wait until type registration is COMPLETE.
class TypeRegistrationComplete
# @param [Hash] options
# @option options [required, Client] :client
# @option options [Integer] :max_attempts (120)
# @option options [Integer] :delay (30)
# @option options [Proc] :before_attempt
# @option options [Proc] :before_wait
def initialize(options)
@client = options.fetch(:client)
@waiter = Aws::Waiters::Waiter.new({
max_attempts: 120,
delay: 30,
poller: Aws::Waiters::Poller.new(
operation_name: :describe_type_registration,
acceptors: [
{
"argument" => "progress_status",
"expected" => "COMPLETE",
"matcher" => "path",
"state" => "success"
},
{
"argument" => "progress_status",
"expected" => "FAILED",
"matcher" => "path",
"state" => "failure"
}
]
)
}.merge(options))
end
# @option (see Client#describe_type_registration)
# @return (see Client#describe_type_registration)
def wait(params = {})
@waiter.wait(client: @client, params: params)
end
# @api private
attr_reader :waiter
end
end
end
aws-sdk-cloudformation-1.41.0/lib/aws-sdk-cloudformation/errors.rb 0000644 0001750 0001750 00000021406 13715265306 024233 0 ustar pravi pravi # frozen_string_literal: true
# WARNING ABOUT GENERATED CODE
#
# This file is generated. See the contributing guide for more information:
# https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
#
# WARNING ABOUT GENERATED CODE
module Aws::CloudFormation
# When CloudFormation returns an error response, the Ruby SDK constructs and raises an error.
# These errors all extend Aws::CloudFormation::Errors::ServiceError < {Aws::Errors::ServiceError}
#
# You can rescue all CloudFormation errors using ServiceError:
#
# begin
# # do stuff
# rescue Aws::CloudFormation::Errors::ServiceError
# # rescues all CloudFormation API errors
# end
#
#
# ## Request Context
# ServiceError objects have a {Aws::Errors::ServiceError#context #context} method that returns
# information about the request that generated the error.
# See {Seahorse::Client::RequestContext} for more information.
#
# ## Error Classes
# * {AlreadyExistsException}
# * {CFNRegistryException}
# * {ChangeSetNotFoundException}
# * {CreatedButModifiedException}
# * {InsufficientCapabilitiesException}
# * {InvalidChangeSetStatusException}
# * {InvalidOperationException}
# * {InvalidStateTransitionException}
# * {LimitExceededException}
# * {NameAlreadyExistsException}
# * {OperationIdAlreadyExistsException}
# * {OperationInProgressException}
# * {OperationNotFoundException}
# * {OperationStatusCheckFailedException}
# * {StackInstanceNotFoundException}
# * {StackSetNotEmptyException}
# * {StackSetNotFoundException}
# * {StaleRequestException}
# * {TokenAlreadyExistsException}
# * {TypeNotFoundException}
#
# Additionally, error classes are dynamically generated for service errors based on the error code
# if they are not defined above.
module Errors
extend Aws::Errors::DynamicErrors
class AlreadyExistsException < ServiceError
# @param [Seahorse::Client::RequestContext] context
# @param [String] message
# @param [Aws::CloudFormation::Types::AlreadyExistsException] data
def initialize(context, message, data = Aws::EmptyStructure.new)
super(context, message, data)
end
end
class CFNRegistryException < ServiceError
# @param [Seahorse::Client::RequestContext] context
# @param [String] message
# @param [Aws::CloudFormation::Types::CFNRegistryException] data
def initialize(context, message, data = Aws::EmptyStructure.new)
super(context, message, data)
end
# @return [String]
def message
@message || @data[:message]
end
end
class ChangeSetNotFoundException < ServiceError
# @param [Seahorse::Client::RequestContext] context
# @param [String] message
# @param [Aws::CloudFormation::Types::ChangeSetNotFoundException] data
def initialize(context, message, data = Aws::EmptyStructure.new)
super(context, message, data)
end
end
class CreatedButModifiedException < ServiceError
# @param [Seahorse::Client::RequestContext] context
# @param [String] message
# @param [Aws::CloudFormation::Types::CreatedButModifiedException] data
def initialize(context, message, data = Aws::EmptyStructure.new)
super(context, message, data)
end
end
class InsufficientCapabilitiesException < ServiceError
# @param [Seahorse::Client::RequestContext] context
# @param [String] message
# @param [Aws::CloudFormation::Types::InsufficientCapabilitiesException] data
def initialize(context, message, data = Aws::EmptyStructure.new)
super(context, message, data)
end
end
class InvalidChangeSetStatusException < ServiceError
# @param [Seahorse::Client::RequestContext] context
# @param [String] message
# @param [Aws::CloudFormation::Types::InvalidChangeSetStatusException] data
def initialize(context, message, data = Aws::EmptyStructure.new)
super(context, message, data)
end
end
class InvalidOperationException < ServiceError
# @param [Seahorse::Client::RequestContext] context
# @param [String] message
# @param [Aws::CloudFormation::Types::InvalidOperationException] data
def initialize(context, message, data = Aws::EmptyStructure.new)
super(context, message, data)
end
end
class InvalidStateTransitionException < ServiceError
# @param [Seahorse::Client::RequestContext] context
# @param [String] message
# @param [Aws::CloudFormation::Types::InvalidStateTransitionException] data
def initialize(context, message, data = Aws::EmptyStructure.new)
super(context, message, data)
end
end
class LimitExceededException < ServiceError
# @param [Seahorse::Client::RequestContext] context
# @param [String] message
# @param [Aws::CloudFormation::Types::LimitExceededException] data
def initialize(context, message, data = Aws::EmptyStructure.new)
super(context, message, data)
end
end
class NameAlreadyExistsException < ServiceError
# @param [Seahorse::Client::RequestContext] context
# @param [String] message
# @param [Aws::CloudFormation::Types::NameAlreadyExistsException] data
def initialize(context, message, data = Aws::EmptyStructure.new)
super(context, message, data)
end
end
class OperationIdAlreadyExistsException < ServiceError
# @param [Seahorse::Client::RequestContext] context
# @param [String] message
# @param [Aws::CloudFormation::Types::OperationIdAlreadyExistsException] data
def initialize(context, message, data = Aws::EmptyStructure.new)
super(context, message, data)
end
end
class OperationInProgressException < ServiceError
# @param [Seahorse::Client::RequestContext] context
# @param [String] message
# @param [Aws::CloudFormation::Types::OperationInProgressException] data
def initialize(context, message, data = Aws::EmptyStructure.new)
super(context, message, data)
end
end
class OperationNotFoundException < ServiceError
# @param [Seahorse::Client::RequestContext] context
# @param [String] message
# @param [Aws::CloudFormation::Types::OperationNotFoundException] data
def initialize(context, message, data = Aws::EmptyStructure.new)
super(context, message, data)
end
end
class OperationStatusCheckFailedException < ServiceError
# @param [Seahorse::Client::RequestContext] context
# @param [String] message
# @param [Aws::CloudFormation::Types::OperationStatusCheckFailedException] data
def initialize(context, message, data = Aws::EmptyStructure.new)
super(context, message, data)
end
end
class StackInstanceNotFoundException < ServiceError
# @param [Seahorse::Client::RequestContext] context
# @param [String] message
# @param [Aws::CloudFormation::Types::StackInstanceNotFoundException] data
def initialize(context, message, data = Aws::EmptyStructure.new)
super(context, message, data)
end
end
class StackSetNotEmptyException < ServiceError
# @param [Seahorse::Client::RequestContext] context
# @param [String] message
# @param [Aws::CloudFormation::Types::StackSetNotEmptyException] data
def initialize(context, message, data = Aws::EmptyStructure.new)
super(context, message, data)
end
end
class StackSetNotFoundException < ServiceError
# @param [Seahorse::Client::RequestContext] context
# @param [String] message
# @param [Aws::CloudFormation::Types::StackSetNotFoundException] data
def initialize(context, message, data = Aws::EmptyStructure.new)
super(context, message, data)
end
end
class StaleRequestException < ServiceError
# @param [Seahorse::Client::RequestContext] context
# @param [String] message
# @param [Aws::CloudFormation::Types::StaleRequestException] data
def initialize(context, message, data = Aws::EmptyStructure.new)
super(context, message, data)
end
end
class TokenAlreadyExistsException < ServiceError
# @param [Seahorse::Client::RequestContext] context
# @param [String] message
# @param [Aws::CloudFormation::Types::TokenAlreadyExistsException] data
def initialize(context, message, data = Aws::EmptyStructure.new)
super(context, message, data)
end
end
class TypeNotFoundException < ServiceError
# @param [Seahorse::Client::RequestContext] context
# @param [String] message
# @param [Aws::CloudFormation::Types::TypeNotFoundException] data
def initialize(context, message, data = Aws::EmptyStructure.new)
super(context, message, data)
end
end
end
end
aws-sdk-cloudformation-1.41.0/lib/aws-sdk-cloudformation/stack_resource_summary.rb 0000644 0001750 0001750 00000017641 13715265306 027516 0 ustar pravi pravi # frozen_string_literal: true
# WARNING ABOUT GENERATED CODE
#
# This file is generated. See the contributing guide for more information:
# https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
#
# WARNING ABOUT GENERATED CODE
module Aws::CloudFormation
class StackResourceSummary
extend Aws::Deprecations
# @overload def initialize(stack_name, logical_id, options = {})
# @param [String] stack_name
# @param [String] logical_id
# @option options [Client] :client
# @overload def initialize(options = {})
# @option options [required, String] :stack_name
# @option options [required, String] :logical_id
# @option options [Client] :client
def initialize(*args)
options = Hash === args.last ? args.pop.dup : {}
@stack_name = extract_stack_name(args, options)
@logical_id = extract_logical_id(args, options)
@data = options.delete(:data)
@client = options.delete(:client) || Client.new(options)
@waiter_block_warned = false
end
# @!group Read-Only Attributes
# @return [String]
def stack_name
@stack_name
end
# @return [String]
def logical_id
@logical_id
end
alias :logical_resource_id :logical_id
# The name or unique identifier that corresponds to a physical instance
# ID of the resource.
# @return [String]
def physical_resource_id
data[:physical_resource_id]
end
# Type of resource. (For more information, go to [ AWS Resource Types
# Reference][1] in the AWS CloudFormation User Guide.)
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html
# @return [String]
def resource_type
data[:resource_type]
end
# Time the status was updated.
# @return [Time]
def last_updated_timestamp
data[:last_updated_timestamp]
end
# Current status of the resource.
# @return [String]
def resource_status
data[:resource_status]
end
# Success/failure message associated with the resource.
# @return [String]
def resource_status_reason
data[:resource_status_reason]
end
# Information about whether the resource's actual configuration
# differs, or has *drifted*, from its expected configuration, as defined
# in the stack template and any values specified as template parameters.
# For more information, see [Detecting Unregulated Configuration Changes
# to Stacks and Resources][1].
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html
# @return [Types::StackResourceDriftInformationSummary]
def drift_information
data[:drift_information]
end
# @!endgroup
# @return [Client]
def client
@client
end
# @raise [NotImplementedError]
# @api private
def load
msg = "#load is not implemented, data only available via enumeration"
raise NotImplementedError, msg
end
alias :reload :load
# @raise [NotImplementedError] Raises when {#data_loaded?} is `false`.
# @return [Types::StackResourceSummary]
# Returns the data for this {StackResourceSummary}.
def data
load unless @data
@data
end
# @return [Boolean]
# Returns `true` if this resource is loaded. Accessing attributes or
# {#data} on an unloaded resource will trigger a call to {#load}.
def data_loaded?
!!@data
end
# @deprecated Use [Aws::CloudFormation::Client] #wait_until instead
#
# Waiter polls an API operation until a resource enters a desired
# state.
#
# @note The waiting operation is performed on a copy. The original resource
# remains unchanged.
#
# ## Basic Usage
#
# Waiter will polls until it is successful, it fails by
# entering a terminal state, or until a maximum number of attempts
# are made.
#
# # polls in a loop until condition is true
# resource.wait_until(options) {|resource| condition}
#
# ## Example
#
# instance.wait_until(max_attempts:10, delay:5) do |instance|
# instance.state.name == 'running'
# end
#
# ## Configuration
#
# You can configure the maximum number of polling attempts, and the
# delay (in seconds) between each polling attempt. The waiting condition is
# set by passing a block to {#wait_until}:
#
# # poll for ~25 seconds
# resource.wait_until(max_attempts:5,delay:5) {|resource|...}
#
# ## Callbacks
#
# You can be notified before each polling attempt and before each
# delay. If you throw `:success` or `:failure` from these callbacks,
# it will terminate the waiter.
#
# started_at = Time.now
# # poll for 1 hour, instead of a number of attempts
# proc = Proc.new do |attempts, response|
# throw :failure if Time.now - started_at > 3600
# end
#
# # disable max attempts
# instance.wait_until(before_wait:proc, max_attempts:nil) {...}
#
# ## Handling Errors
#
# When a waiter is successful, it returns the Resource. When a waiter
# fails, it raises an error.
#
# begin
# resource.wait_until(...)
# rescue Aws::Waiters::Errors::WaiterFailed
# # resource did not enter the desired state in time
# end
#
# @yieldparam [Resource] resource to be used in the waiting condition.
#
# @raise [Aws::Waiters::Errors::FailureStateError] Raised when the waiter
# terminates because the waiter has entered a state that it will not
# transition out of, preventing success.
#
# yet successful.
#
# @raise [Aws::Waiters::Errors::UnexpectedError] Raised when an error is
# encountered while polling for a resource that is not expected.
#
# @raise [NotImplementedError] Raised when the resource does not
#
# @option options [Integer] :max_attempts (10) Maximum number of
# attempts
# @option options [Integer] :delay (10) Delay between each
# attempt in seconds
# @option options [Proc] :before_attempt (nil) Callback
# invoked before each attempt
# @option options [Proc] :before_wait (nil) Callback
# invoked before each wait
# @return [Resource] if the waiter was successful
def wait_until(options = {}, &block)
self_copy = self.dup
attempts = 0
options[:max_attempts] = 10 unless options.key?(:max_attempts)
options[:delay] ||= 10
options[:poller] = Proc.new do
attempts += 1
if block.call(self_copy)
[:success, self_copy]
else
self_copy.reload unless attempts == options[:max_attempts]
:retry
end
end
Aws::Waiters::Waiter.new(options).wait({})
end
# @!group Associations
# @return [StackResource]
def resource
StackResource.new(
logical_id: @logical_id,
stack_name: @stack_name,
client: @client
)
end
# @deprecated
# @api private
def identifiers
{
stack_name: @stack_name,
logical_id: @logical_id
}
end
deprecated(:identifiers)
private
def extract_stack_name(args, options)
value = args[0] || options.delete(:stack_name)
case value
when String then value
when nil then raise ArgumentError, "missing required option :stack_name"
else
msg = "expected :stack_name to be a String, got #{value.class}"
raise ArgumentError, msg
end
end
def extract_logical_id(args, options)
value = args[1] || options.delete(:logical_id)
case value
when String then value
when nil then raise ArgumentError, "missing required option :logical_id"
else
msg = "expected :logical_id to be a String, got #{value.class}"
raise ArgumentError, msg
end
end
class Collection < Aws::Resources::Collection; end
end
end
aws-sdk-cloudformation-1.41.0/lib/aws-sdk-cloudformation/types.rb 0000644 0001750 0001750 00001172672 13715265306 024100 0 ustar pravi pravi # frozen_string_literal: true
# WARNING ABOUT GENERATED CODE
#
# This file is generated. See the contributing guide for more information:
# https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
#
# WARNING ABOUT GENERATED CODE
module Aws::CloudFormation
module Types
# Structure that contains the results of the account gate function which
# AWS CloudFormation invokes, if present, before proceeding with a stack
# set operation in an account and Region.
#
# For each account and Region, AWS CloudFormation lets you specify a
# Lamdba function that encapsulates any requirements that must be met
# before CloudFormation can proceed with a stack set operation in that
# account and Region. CloudFormation invokes the function each time a
# stack set operation is requested for that account and Region; if the
# function returns `FAILED`, CloudFormation cancels the operation in
# that account and Region, and sets the stack set operation result
# status for that account and Region to `FAILED`.
#
# For more information, see [Configuring a target account gate][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-account-gating.html
#
# @!attribute [rw] status
# The status of the account gate function.
#
# * `SUCCEEDED`\: The account gate function has determined that the
# account and Region passes any requirements for a stack set
# operation to occur. AWS CloudFormation proceeds with the stack
# operation in that account and Region.
#
# * `FAILED`\: The account gate function has determined that the
# account and Region does not meet the requirements for a stack set
# operation to occur. AWS CloudFormation cancels the stack set
# operation in that account and Region, and sets the stack set
# operation result status for that account and Region to `FAILED`.
#
# * `SKIPPED`\: AWS CloudFormation has skipped calling the account
# gate function for this account and Region, for one of the
# following reasons:
#
# * An account gate function has not been specified for the account
# and Region. AWS CloudFormation proceeds with the stack set
# operation in this account and Region.
#
# * The `AWSCloudFormationStackSetExecutionRole` of the stack set
# adminstration account lacks permissions to invoke the function.
# AWS CloudFormation proceeds with the stack set operation in this
# account and Region.
#
# * Either no action is necessary, or no action is possible, on the
# stack. AWS CloudFormation skips the stack set operation in this
# account and Region.
# @return [String]
#
# @!attribute [rw] status_reason
# The reason for the account gate status assigned to this account and
# Region for the stack set operation.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/AccountGateResult AWS API Documentation
#
class AccountGateResult < Struct.new(
:status,
:status_reason)
SENSITIVE = []
include Aws::Structure
end
# The AccountLimit data type.
#
# CloudFormation has the following limits per account:
#
# * Number of concurrent resources
#
# * Number of stacks
#
# * Number of stack outputs
#
# For more information about these account limits, and other
# CloudFormation limits, see [AWS CloudFormation Limits][1] in the *AWS
# CloudFormation User Guide*.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html
#
# @!attribute [rw] name
# The name of the account limit.
#
# Values: `ConcurrentResourcesLimit` \| `StackLimit` \|
# `StackOutputsLimit`
# @return [String]
#
# @!attribute [rw] value
# The value that is associated with the account limit name.
# @return [Integer]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/AccountLimit AWS API Documentation
#
class AccountLimit < Struct.new(
:name,
:value)
SENSITIVE = []
include Aws::Structure
end
# The resource with the name requested already exists.
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/AlreadyExistsException AWS API Documentation
#
class AlreadyExistsException < Aws::EmptyStructure; end
# \[`Service-managed` permissions\] Describes whether StackSets
# automatically deploys to AWS Organizations accounts that are added to
# a target organization or organizational unit (OU).
#
# @note When making an API call, you may pass AutoDeployment
# data as a hash:
#
# {
# enabled: false,
# retain_stacks_on_account_removal: false,
# }
#
# @!attribute [rw] enabled
# If set to `true`, StackSets automatically deploys additional stack
# instances to AWS Organizations accounts that are added to a target
# organization or organizational unit (OU) in the specified Regions.
# If an account is removed from a target organization or OU, StackSets
# deletes stack instances from the account in the specified Regions.
# @return [Boolean]
#
# @!attribute [rw] retain_stacks_on_account_removal
# If set to `true`, stack resources are retained when an account is
# removed from a target organization or OU. If set to `false`, stack
# resources are deleted. Specify only if `Enabled` is set to `True`.
# @return [Boolean]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/AutoDeployment AWS API Documentation
#
class AutoDeployment < Struct.new(
:enabled,
:retain_stacks_on_account_removal)
SENSITIVE = []
include Aws::Structure
end
# An error occurred during a CloudFormation registry operation.
#
# @!attribute [rw] message
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CFNRegistryException AWS API Documentation
#
class CFNRegistryException < Struct.new(
:message)
SENSITIVE = []
include Aws::Structure
end
# The input for the CancelUpdateStack action.
#
# @note When making an API call, you may pass CancelUpdateStackInput
# data as a hash:
#
# {
# stack_name: "StackName", # required
# client_request_token: "ClientRequestToken",
# }
#
# @!attribute [rw] stack_name
# The name or the unique stack ID that is associated with the stack.
# @return [String]
#
# @!attribute [rw] client_request_token
# A unique identifier for this `CancelUpdateStack` request. Specify
# this token if you plan to retry requests so that AWS CloudFormation
# knows that you're not attempting to cancel an update on a stack
# with the same name. You might retry `CancelUpdateStack` requests to
# ensure that AWS CloudFormation successfully received them.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CancelUpdateStackInput AWS API Documentation
#
class CancelUpdateStackInput < Struct.new(
:stack_name,
:client_request_token)
SENSITIVE = []
include Aws::Structure
end
# The `Change` structure describes the changes AWS CloudFormation will
# perform if you execute the change set.
#
# @!attribute [rw] type
# The type of entity that AWS CloudFormation changes. Currently, the
# only entity type is `Resource`.
# @return [String]
#
# @!attribute [rw] resource_change
# A `ResourceChange` structure that describes the resource and action
# that AWS CloudFormation will perform.
# @return [Types::ResourceChange]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/Change AWS API Documentation
#
class Change < Struct.new(
:type,
:resource_change)
SENSITIVE = []
include Aws::Structure
end
# The specified change set name or ID doesn't exit. To view valid
# change sets for a stack, use the `ListChangeSets` action.
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ChangeSetNotFoundException AWS API Documentation
#
class ChangeSetNotFoundException < Aws::EmptyStructure; end
# The `ChangeSetSummary` structure describes a change set, its status,
# and the stack with which it's associated.
#
# @!attribute [rw] stack_id
# The ID of the stack with which the change set is associated.
# @return [String]
#
# @!attribute [rw] stack_name
# The name of the stack with which the change set is associated.
# @return [String]
#
# @!attribute [rw] change_set_id
# The ID of the change set.
# @return [String]
#
# @!attribute [rw] change_set_name
# The name of the change set.
# @return [String]
#
# @!attribute [rw] execution_status
# If the change set execution status is `AVAILABLE`, you can execute
# the change set. If you can’t execute the change set, the status
# indicates why. For example, a change set might be in an
# `UNAVAILABLE` state because AWS CloudFormation is still creating it
# or in an `OBSOLETE` state because the stack was already updated.
# @return [String]
#
# @!attribute [rw] status
# The state of the change set, such as `CREATE_IN_PROGRESS`,
# `CREATE_COMPLETE`, or `FAILED`.
# @return [String]
#
# @!attribute [rw] status_reason
# A description of the change set's status. For example, if your
# change set is in the `FAILED` state, AWS CloudFormation shows the
# error message.
# @return [String]
#
# @!attribute [rw] creation_time
# The start time when the change set was created, in UTC.
# @return [Time]
#
# @!attribute [rw] description
# Descriptive information about the change set.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ChangeSetSummary AWS API Documentation
#
class ChangeSetSummary < Struct.new(
:stack_id,
:stack_name,
:change_set_id,
:change_set_name,
:execution_status,
:status,
:status_reason,
:creation_time,
:description)
SENSITIVE = []
include Aws::Structure
end
# The input for the ContinueUpdateRollback action.
#
# @note When making an API call, you may pass ContinueUpdateRollbackInput
# data as a hash:
#
# {
# stack_name: "StackNameOrId", # required
# role_arn: "RoleARN",
# resources_to_skip: ["ResourceToSkip"],
# client_request_token: "ClientRequestToken",
# }
#
# @!attribute [rw] stack_name
# The name or the unique ID of the stack that you want to continue
# rolling back.
#
# Don't specify the name of a nested stack (a stack that was created
# by using the `AWS::CloudFormation::Stack` resource). Instead, use
# this operation on the parent stack (the stack that contains the
# `AWS::CloudFormation::Stack` resource).
#
#
# @return [String]
#
# @!attribute [rw] role_arn
# The Amazon Resource Name (ARN) of an AWS Identity and Access
# Management (IAM) role that AWS CloudFormation assumes to roll back
# the stack. AWS CloudFormation uses the role's credentials to make
# calls on your behalf. AWS CloudFormation always uses this role for
# all future operations on the stack. As long as users have permission
# to operate on the stack, AWS CloudFormation uses this role even if
# the users don't have permission to pass it. Ensure that the role
# grants least privilege.
#
# If you don't specify a value, AWS CloudFormation uses the role that
# was previously associated with the stack. If no role is available,
# AWS CloudFormation uses a temporary session that is generated from
# your user credentials.
# @return [String]
#
# @!attribute [rw] resources_to_skip
# A list of the logical IDs of the resources that AWS CloudFormation
# skips during the continue update rollback operation. You can specify
# only resources that are in the `UPDATE_FAILED` state because a
# rollback failed. You can't specify resources that are in the
# `UPDATE_FAILED` state for other reasons, for example, because an
# update was cancelled. To check why a resource update failed, use the
# DescribeStackResources action, and view the resource status reason.
#
# Specify this property to skip rolling back resources that AWS
# CloudFormation can't successfully roll back. We recommend that you
# [ troubleshoot][1] resources before skipping them. AWS
# CloudFormation sets the status of the specified resources to
# `UPDATE_COMPLETE` and continues to roll back the stack. After the
# rollback is complete, the state of the skipped resources will be
# inconsistent with the state of the resources in the stack template.
# Before performing another stack update, you must update the stack or
# resources to be consistent with each other. If you don't,
# subsequent stack updates might fail, and the stack will become
# unrecoverable.
#
# Specify the minimum number of resources required to successfully
# roll back your stack. For example, a failed resource update might
# cause dependent resources to fail. In this case, it might not be
# necessary to skip the dependent resources.
#
# To skip resources that are part of nested stacks, use the following
# format: `NestedStackName.ResourceLogicalID`. If you want to specify
# the logical ID of a stack resource (`Type:
# AWS::CloudFormation::Stack`) in the `ResourcesToSkip` list, then its
# corresponding embedded stack must be in one of the following states:
# `DELETE_IN_PROGRESS`, `DELETE_COMPLETE`, or `DELETE_FAILED`.
#
# Don't confuse a child stack's name with its corresponding logical
# ID defined in the parent stack. For an example of a continue update
# rollback operation with nested stacks, see [Using ResourcesToSkip to
# recover a nested stacks hierarchy][2].
#
#
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/troubleshooting.html#troubleshooting-errors-update-rollback-failed
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html#nested-stacks
# @return [Array]
#
# @!attribute [rw] client_request_token
# A unique identifier for this `ContinueUpdateRollback` request.
# Specify this token if you plan to retry requests so that AWS
# CloudFormation knows that you're not attempting to continue the
# rollback to a stack with the same name. You might retry
# `ContinueUpdateRollback` requests to ensure that AWS CloudFormation
# successfully received them.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ContinueUpdateRollbackInput AWS API Documentation
#
class ContinueUpdateRollbackInput < Struct.new(
:stack_name,
:role_arn,
:resources_to_skip,
:client_request_token)
SENSITIVE = []
include Aws::Structure
end
# The output for a ContinueUpdateRollback action.
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ContinueUpdateRollbackOutput AWS API Documentation
#
class ContinueUpdateRollbackOutput < Aws::EmptyStructure; end
# The input for the CreateChangeSet action.
#
# @note When making an API call, you may pass CreateChangeSetInput
# data as a hash:
#
# {
# stack_name: "StackNameOrId", # required
# template_body: "TemplateBody",
# template_url: "TemplateURL",
# use_previous_template: false,
# parameters: [
# {
# parameter_key: "ParameterKey",
# parameter_value: "ParameterValue",
# use_previous_value: false,
# resolved_value: "ParameterValue",
# },
# ],
# capabilities: ["CAPABILITY_IAM"], # accepts CAPABILITY_IAM, CAPABILITY_NAMED_IAM, CAPABILITY_AUTO_EXPAND
# resource_types: ["ResourceType"],
# role_arn: "RoleARN",
# rollback_configuration: {
# rollback_triggers: [
# {
# arn: "Arn", # required
# type: "Type", # required
# },
# ],
# monitoring_time_in_minutes: 1,
# },
# notification_arns: ["NotificationARN"],
# tags: [
# {
# key: "TagKey", # required
# value: "TagValue", # required
# },
# ],
# change_set_name: "ChangeSetName", # required
# client_token: "ClientToken",
# description: "Description",
# change_set_type: "CREATE", # accepts CREATE, UPDATE, IMPORT
# resources_to_import: [
# {
# resource_type: "ResourceType", # required
# logical_resource_id: "LogicalResourceId", # required
# resource_identifier: { # required
# "ResourceIdentifierPropertyKey" => "ResourceIdentifierPropertyValue",
# },
# },
# ],
# }
#
# @!attribute [rw] stack_name
# The name or the unique ID of the stack for which you are creating a
# change set. AWS CloudFormation generates the change set by comparing
# this stack's information with the information that you submit, such
# as a modified template or different parameter input values.
# @return [String]
#
# @!attribute [rw] template_body
# A structure that contains the body of the revised template, with a
# minimum length of 1 byte and a maximum length of 51,200 bytes. AWS
# CloudFormation generates the change set by comparing this template
# with the template of the stack that you specified.
#
# Conditional: You must specify only `TemplateBody` or `TemplateURL`.
# @return [String]
#
# @!attribute [rw] template_url
# The location of the file that contains the revised template. The URL
# must point to a template (max size: 460,800 bytes) that is located
# in an S3 bucket. AWS CloudFormation generates the change set by
# comparing this template with the stack that you specified.
#
# Conditional: You must specify only `TemplateBody` or `TemplateURL`.
# @return [String]
#
# @!attribute [rw] use_previous_template
# Whether to reuse the template that is associated with the stack to
# create the change set.
# @return [Boolean]
#
# @!attribute [rw] parameters
# A list of `Parameter` structures that specify input parameters for
# the change set. For more information, see the Parameter data type.
# @return [Array]
#
# @!attribute [rw] capabilities
# In some cases, you must explicitly acknowledge that your stack
# template contains certain capabilities in order for AWS
# CloudFormation to create the stack.
#
# * `CAPABILITY_IAM` and `CAPABILITY_NAMED_IAM`
#
# Some stack templates might include resources that can affect
# permissions in your AWS account; for example, by creating new AWS
# Identity and Access Management (IAM) users. For those stacks, you
# must explicitly acknowledge this by specifying one of these
# capabilities.
#
# The following IAM resources require you to specify either the
# `CAPABILITY_IAM` or `CAPABILITY_NAMED_IAM` capability.
#
# * If you have IAM resources, you can specify either capability.
#
# * If you have IAM resources with custom names, you *must* specify
# `CAPABILITY_NAMED_IAM`.
#
# * If you don't specify either of these capabilities, AWS
# CloudFormation returns an `InsufficientCapabilities` error.
#
# If your stack template contains these resources, we recommend that
# you review all permissions associated with them and edit their
# permissions if necessary.
#
# * [ AWS::IAM::AccessKey][1]
#
# * [ AWS::IAM::Group][2]
#
# * [ AWS::IAM::InstanceProfile][3]
#
# * [ AWS::IAM::Policy][4]
#
# * [ AWS::IAM::Role][5]
#
# * [ AWS::IAM::User][6]
#
# * [ AWS::IAM::UserToGroupAddition][7]
#
# For more information, see [Acknowledging IAM Resources in AWS
# CloudFormation Templates][8].
#
# * `CAPABILITY_AUTO_EXPAND`
#
# Some template contain macros. Macros perform custom processing on
# templates; this can include simple actions like find-and-replace
# operations, all the way to extensive transformations of entire
# templates. Because of this, users typically create a change set
# from the processed template, so that they can review the changes
# resulting from the macros before actually creating the stack. If
# your stack template contains one or more macros, and you choose to
# create a stack directly from the processed template, without first
# reviewing the resulting changes in a change set, you must
# acknowledge this capability. This includes the [AWS::Include][9]
# and [AWS::Serverless][10] transforms, which are macros hosted by
# AWS CloudFormation.
#
# This capacity does not apply to creating change sets, and
# specifying it when creating change sets has no effect.
#
# Also, change sets do not currently support nested stacks. If you
# want to create a stack from a stack template that contains macros
# *and* nested stacks, you must create or update the stack directly
# from the template using the CreateStack or UpdateStack action, and
# specifying this capability.
#
#
#
# For more information on macros, see [Using AWS CloudFormation
# Macros to Perform Custom Processing on Templates][11].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html
# [3]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html
# [4]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html
# [5]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html
# [6]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html
# [7]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html
# [8]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities
# [9]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html
# [10]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html
# [11]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html
# @return [Array]
#
# @!attribute [rw] resource_types
# The template resource types that you have permissions to work with
# if you execute this change set, such as `AWS::EC2::Instance`,
# `AWS::EC2::*`, or `Custom::MyCustomInstance`.
#
# If the list of resource types doesn't include a resource type that
# you're updating, the stack update fails. By default, AWS
# CloudFormation grants permissions to all resource types. AWS
# Identity and Access Management (IAM) uses this parameter for
# condition keys in IAM policies for AWS CloudFormation. For more
# information, see [Controlling Access with AWS Identity and Access
# Management][1] in the AWS CloudFormation User Guide.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html
# @return [Array]
#
# @!attribute [rw] role_arn
# The Amazon Resource Name (ARN) of an AWS Identity and Access
# Management (IAM) role that AWS CloudFormation assumes when executing
# the change set. AWS CloudFormation uses the role's credentials to
# make calls on your behalf. AWS CloudFormation uses this role for all
# future operations on the stack. As long as users have permission to
# operate on the stack, AWS CloudFormation uses this role even if the
# users don't have permission to pass it. Ensure that the role grants
# least privilege.
#
# If you don't specify a value, AWS CloudFormation uses the role that
# was previously associated with the stack. If no role is available,
# AWS CloudFormation uses a temporary session that is generated from
# your user credentials.
# @return [String]
#
# @!attribute [rw] rollback_configuration
# The rollback triggers for AWS CloudFormation to monitor during stack
# creation and updating operations, and for the specified monitoring
# period afterwards.
# @return [Types::RollbackConfiguration]
#
# @!attribute [rw] notification_arns
# The Amazon Resource Names (ARNs) of Amazon Simple Notification
# Service (Amazon SNS) topics that AWS CloudFormation associates with
# the stack. To remove all associated notification topics, specify an
# empty list.
# @return [Array]
#
# @!attribute [rw] tags
# Key-value pairs to associate with this stack. AWS CloudFormation
# also propagates these tags to resources in the stack. You can
# specify a maximum of 50 tags.
# @return [Array]
#
# @!attribute [rw] change_set_name
# The name of the change set. The name must be unique among all change
# sets that are associated with the specified stack.
#
# A change set name can contain only alphanumeric, case sensitive
# characters and hyphens. It must start with an alphabetic character
# and cannot exceed 128 characters.
# @return [String]
#
# @!attribute [rw] client_token
# A unique identifier for this `CreateChangeSet` request. Specify this
# token if you plan to retry requests so that AWS CloudFormation knows
# that you're not attempting to create another change set with the
# same name. You might retry `CreateChangeSet` requests to ensure that
# AWS CloudFormation successfully received them.
# @return [String]
#
# @!attribute [rw] description
# A description to help you identify this change set.
# @return [String]
#
# @!attribute [rw] change_set_type
# The type of change set operation. To create a change set for a new
# stack, specify `CREATE`. To create a change set for an existing
# stack, specify `UPDATE`. To create a change set for an import
# operation, specify `IMPORT`.
#
# If you create a change set for a new stack, AWS Cloudformation
# creates a stack with a unique stack ID, but no template or
# resources. The stack will be in the [ `REVIEW_IN_PROGRESS` ][1]
# state until you execute the change set.
#
# By default, AWS CloudFormation specifies `UPDATE`. You can't use
# the `UPDATE` type to create a change set for a new stack or the
# `CREATE` type to create a change set for an existing stack.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-describing-stacks.html#d0e11995
# @return [String]
#
# @!attribute [rw] resources_to_import
# The resources to import into your stack.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSetInput AWS API Documentation
#
class CreateChangeSetInput < Struct.new(
:stack_name,
:template_body,
:template_url,
:use_previous_template,
:parameters,
:capabilities,
:resource_types,
:role_arn,
:rollback_configuration,
:notification_arns,
:tags,
:change_set_name,
:client_token,
:description,
:change_set_type,
:resources_to_import)
SENSITIVE = []
include Aws::Structure
end
# The output for the CreateChangeSet action.
#
# @!attribute [rw] id
# The Amazon Resource Name (ARN) of the change set.
# @return [String]
#
# @!attribute [rw] stack_id
# The unique ID of the stack.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSetOutput AWS API Documentation
#
class CreateChangeSetOutput < Struct.new(
:id,
:stack_id)
SENSITIVE = []
include Aws::Structure
end
# The input for CreateStack action.
#
# @note When making an API call, you may pass CreateStackInput
# data as a hash:
#
# {
# stack_name: "StackName", # required
# template_body: "TemplateBody",
# template_url: "TemplateURL",
# parameters: [
# {
# parameter_key: "ParameterKey",
# parameter_value: "ParameterValue",
# use_previous_value: false,
# resolved_value: "ParameterValue",
# },
# ],
# disable_rollback: false,
# rollback_configuration: {
# rollback_triggers: [
# {
# arn: "Arn", # required
# type: "Type", # required
# },
# ],
# monitoring_time_in_minutes: 1,
# },
# timeout_in_minutes: 1,
# notification_arns: ["NotificationARN"],
# capabilities: ["CAPABILITY_IAM"], # accepts CAPABILITY_IAM, CAPABILITY_NAMED_IAM, CAPABILITY_AUTO_EXPAND
# resource_types: ["ResourceType"],
# role_arn: "RoleARN",
# on_failure: "DO_NOTHING", # accepts DO_NOTHING, ROLLBACK, DELETE
# stack_policy_body: "StackPolicyBody",
# stack_policy_url: "StackPolicyURL",
# tags: [
# {
# key: "TagKey", # required
# value: "TagValue", # required
# },
# ],
# client_request_token: "ClientRequestToken",
# enable_termination_protection: false,
# }
#
# @!attribute [rw] stack_name
# The name that is associated with the stack. The name must be unique
# in the Region in which you are creating the stack.
#
# A stack name can contain only alphanumeric characters (case
# sensitive) and hyphens. It must start with an alphabetic character
# and cannot be longer than 128 characters.
#
#
# @return [String]
#
# @!attribute [rw] template_body
# Structure containing the template body with a minimum length of 1
# byte and a maximum length of 51,200 bytes. For more information, go
# to [Template Anatomy][1] in the AWS CloudFormation User Guide.
#
# Conditional: You must specify either the `TemplateBody` or the
# `TemplateURL` parameter, but not both.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
# @return [String]
#
# @!attribute [rw] template_url
# Location of file containing the template body. The URL must point to
# a template (max size: 460,800 bytes) that is located in an Amazon S3
# bucket. For more information, go to the [Template Anatomy][1] in the
# AWS CloudFormation User Guide.
#
# Conditional: You must specify either the `TemplateBody` or the
# `TemplateURL` parameter, but not both.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
# @return [String]
#
# @!attribute [rw] parameters
# A list of `Parameter` structures that specify input parameters for
# the stack. For more information, see the [Parameter][1] data type.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html
# @return [Array]
#
# @!attribute [rw] disable_rollback
# Set to `true` to disable rollback of the stack if stack creation
# failed. You can specify either `DisableRollback` or `OnFailure`, but
# not both.
#
# Default: `false`
# @return [Boolean]
#
# @!attribute [rw] rollback_configuration
# The rollback triggers for AWS CloudFormation to monitor during stack
# creation and updating operations, and for the specified monitoring
# period afterwards.
# @return [Types::RollbackConfiguration]
#
# @!attribute [rw] timeout_in_minutes
# The amount of time that can pass before the stack status becomes
# CREATE\_FAILED; if `DisableRollback` is not set or is set to
# `false`, the stack will be rolled back.
# @return [Integer]
#
# @!attribute [rw] notification_arns
# The Simple Notification Service (SNS) topic ARNs to publish stack
# related events. You can find your SNS topic ARNs using the SNS
# console or your Command Line Interface (CLI).
# @return [Array]
#
# @!attribute [rw] capabilities
# In some cases, you must explicitly acknowledge that your stack
# template contains certain capabilities in order for AWS
# CloudFormation to create the stack.
#
# * `CAPABILITY_IAM` and `CAPABILITY_NAMED_IAM`
#
# Some stack templates might include resources that can affect
# permissions in your AWS account; for example, by creating new AWS
# Identity and Access Management (IAM) users. For those stacks, you
# must explicitly acknowledge this by specifying one of these
# capabilities.
#
# The following IAM resources require you to specify either the
# `CAPABILITY_IAM` or `CAPABILITY_NAMED_IAM` capability.
#
# * If you have IAM resources, you can specify either capability.
#
# * If you have IAM resources with custom names, you *must* specify
# `CAPABILITY_NAMED_IAM`.
#
# * If you don't specify either of these capabilities, AWS
# CloudFormation returns an `InsufficientCapabilities` error.
#
# If your stack template contains these resources, we recommend that
# you review all permissions associated with them and edit their
# permissions if necessary.
#
# * [ AWS::IAM::AccessKey][1]
#
# * [ AWS::IAM::Group][2]
#
# * [ AWS::IAM::InstanceProfile][3]
#
# * [ AWS::IAM::Policy][4]
#
# * [ AWS::IAM::Role][5]
#
# * [ AWS::IAM::User][6]
#
# * [ AWS::IAM::UserToGroupAddition][7]
#
# For more information, see [Acknowledging IAM Resources in AWS
# CloudFormation Templates][8].
#
# * `CAPABILITY_AUTO_EXPAND`
#
# Some template contain macros. Macros perform custom processing on
# templates; this can include simple actions like find-and-replace
# operations, all the way to extensive transformations of entire
# templates. Because of this, users typically create a change set
# from the processed template, so that they can review the changes
# resulting from the macros before actually creating the stack. If
# your stack template contains one or more macros, and you choose to
# create a stack directly from the processed template, without first
# reviewing the resulting changes in a change set, you must
# acknowledge this capability. This includes the [AWS::Include][9]
# and [AWS::Serverless][10] transforms, which are macros hosted by
# AWS CloudFormation.
#
# Change sets do not currently support nested stacks. If you want to
# create a stack from a stack template that contains macros *and*
# nested stacks, you must create the stack directly from the
# template using this capability.
#
# You should only create stacks directly from a stack template that
# contains macros if you know what processing the macro performs.
#
# Each macro relies on an underlying Lambda service function for
# processing stack templates. Be aware that the Lambda function
# owner can update the function operation without AWS CloudFormation
# being notified.
#
# For more information, see [Using AWS CloudFormation Macros to
# Perform Custom Processing on Templates][11].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html
# [3]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html
# [4]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html
# [5]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html
# [6]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html
# [7]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html
# [8]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities
# [9]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html
# [10]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html
# [11]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html
# @return [Array]
#
# @!attribute [rw] resource_types
# The template resource types that you have permissions to work with
# for this create stack action, such as `AWS::EC2::Instance`,
# `AWS::EC2::*`, or `Custom::MyCustomInstance`. Use the following
# syntax to describe template resource types: `AWS::*` (for all AWS
# resource), `Custom::*` (for all custom resources),
# `Custom::logical_ID ` (for a specific custom resource),
# `AWS::service_name::*` (for all resources of a particular AWS
# service), and `AWS::service_name::resource_logical_ID ` (for a
# specific AWS resource).
#
# If the list of resource types doesn't include a resource that
# you're creating, the stack creation fails. By default, AWS
# CloudFormation grants permissions to all resource types. AWS
# Identity and Access Management (IAM) uses this parameter for AWS
# CloudFormation-specific condition keys in IAM policies. For more
# information, see [Controlling Access with AWS Identity and Access
# Management][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html
# @return [Array]
#
# @!attribute [rw] role_arn
# The Amazon Resource Name (ARN) of an AWS Identity and Access
# Management (IAM) role that AWS CloudFormation assumes to create the
# stack. AWS CloudFormation uses the role's credentials to make calls
# on your behalf. AWS CloudFormation always uses this role for all
# future operations on the stack. As long as users have permission to
# operate on the stack, AWS CloudFormation uses this role even if the
# users don't have permission to pass it. Ensure that the role grants
# least privilege.
#
# If you don't specify a value, AWS CloudFormation uses the role that
# was previously associated with the stack. If no role is available,
# AWS CloudFormation uses a temporary session that is generated from
# your user credentials.
# @return [String]
#
# @!attribute [rw] on_failure
# Determines what action will be taken if stack creation fails. This
# must be one of: DO\_NOTHING, ROLLBACK, or DELETE. You can specify
# either `OnFailure` or `DisableRollback`, but not both.
#
# Default: `ROLLBACK`
# @return [String]
#
# @!attribute [rw] stack_policy_body
# Structure containing the stack policy body. For more information, go
# to [ Prevent Updates to Stack Resources][1] in the *AWS
# CloudFormation User Guide*. You can specify either the
# `StackPolicyBody` or the `StackPolicyURL` parameter, but not both.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html
# @return [String]
#
# @!attribute [rw] stack_policy_url
# Location of a file containing the stack policy. The URL must point
# to a policy (maximum size: 16 KB) located in an S3 bucket in the
# same Region as the stack. You can specify either the
# `StackPolicyBody` or the `StackPolicyURL` parameter, but not both.
# @return [String]
#
# @!attribute [rw] tags
# Key-value pairs to associate with this stack. AWS CloudFormation
# also propagates these tags to the resources created in the stack. A
# maximum number of 50 tags can be specified.
# @return [Array]
#
# @!attribute [rw] client_request_token
# A unique identifier for this `CreateStack` request. Specify this
# token if you plan to retry requests so that AWS CloudFormation knows
# that you're not attempting to create a stack with the same name.
# You might retry `CreateStack` requests to ensure that AWS
# CloudFormation successfully received them.
#
# All events triggered by a given stack operation are assigned the
# same client request token, which you can use to track operations.
# For example, if you execute a `CreateStack` operation with the token
# `token1`, then all the `StackEvents` generated by that operation
# will have `ClientRequestToken` set as `token1`.
#
# In the console, stack operations display the client request token on
# the Events tab. Stack operations that are initiated from the console
# use the token format *Console-StackOperation-ID*, which helps you
# easily identify the stack operation . For example, if you create a
# stack using the console, each stack event would be assigned the same
# token in the following format:
# `Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002`.
# @return [String]
#
# @!attribute [rw] enable_termination_protection
# Whether to enable termination protection on the specified stack. If
# a user attempts to delete a stack with termination protection
# enabled, the operation fails and the stack remains unchanged. For
# more information, see [Protecting a Stack From Being Deleted][1] in
# the *AWS CloudFormation User Guide*. Termination protection is
# disabled on stacks by default.
#
# For [nested stacks][2], termination protection is set on the root
# stack and cannot be changed directly on the nested stack.
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html
# [2]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html
# @return [Boolean]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackInput AWS API Documentation
#
class CreateStackInput < Struct.new(
:stack_name,
:template_body,
:template_url,
:parameters,
:disable_rollback,
:rollback_configuration,
:timeout_in_minutes,
:notification_arns,
:capabilities,
:resource_types,
:role_arn,
:on_failure,
:stack_policy_body,
:stack_policy_url,
:tags,
:client_request_token,
:enable_termination_protection)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass CreateStackInstancesInput
# data as a hash:
#
# {
# stack_set_name: "StackSetName", # required
# accounts: ["Account"],
# deployment_targets: {
# accounts: ["Account"],
# organizational_unit_ids: ["OrganizationalUnitId"],
# },
# regions: ["Region"], # required
# parameter_overrides: [
# {
# parameter_key: "ParameterKey",
# parameter_value: "ParameterValue",
# use_previous_value: false,
# resolved_value: "ParameterValue",
# },
# ],
# operation_preferences: {
# region_order: ["Region"],
# failure_tolerance_count: 1,
# failure_tolerance_percentage: 1,
# max_concurrent_count: 1,
# max_concurrent_percentage: 1,
# },
# operation_id: "ClientRequestToken",
# }
#
# @!attribute [rw] stack_set_name
# The name or unique ID of the stack set that you want to create stack
# instances from.
# @return [String]
#
# @!attribute [rw] accounts
# \[`Self-managed` permissions\] The names of one or more AWS accounts
# that you want to create stack instances in the specified Region(s)
# for.
#
# You can specify `Accounts` or `DeploymentTargets`, but not both.
# @return [Array]
#
# @!attribute [rw] deployment_targets
# \[`Service-managed` permissions\] The AWS Organizations accounts for
# which to create stack instances in the specified Regions.
#
# You can specify `Accounts` or `DeploymentTargets`, but not both.
# @return [Types::DeploymentTargets]
#
# @!attribute [rw] regions
# The names of one or more Regions where you want to create stack
# instances using the specified AWS account(s).
# @return [Array]
#
# @!attribute [rw] parameter_overrides
# A list of stack set parameters whose values you want to override in
# the selected stack instances.
#
# Any overridden parameter values will be applied to all stack
# instances in the specified accounts and Regions. When specifying
# parameters and their values, be aware of how AWS CloudFormation sets
# parameter values during stack instance operations:
#
# * To override the current value for a parameter, include the
# parameter and specify its value.
#
# * To leave a parameter set to its present value, you can do one of
# the following:
#
# * Do not include the parameter in the list.
#
# * Include the parameter and specify `UsePreviousValue` as `true`.
# (You cannot specify both a value and set `UsePreviousValue` to
# `true`.)
#
# * To set all overridden parameter back to the values specified in
# the stack set, specify a parameter list but do not include any
# parameters.
#
# * To leave all parameters set to their present values, do not
# specify this property at all.
#
# During stack set updates, any parameter values overridden for a
# stack instance are not updated, but retain their overridden value.
#
# You can only override the parameter *values* that are specified in
# the stack set; to add or delete a parameter itself, use
# [UpdateStackSet][1] to update the stack set template.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html
# @return [Array]
#
# @!attribute [rw] operation_preferences
# Preferences for how AWS CloudFormation performs this stack set
# operation.
# @return [Types::StackSetOperationPreferences]
#
# @!attribute [rw] operation_id
# The unique identifier for this stack set operation.
#
# The operation ID also functions as an idempotency token, to ensure
# that AWS CloudFormation performs the stack set operation only once,
# even if you retry the request multiple times. You might retry stack
# set operation requests to ensure that AWS CloudFormation
# successfully received them.
#
# If you don't specify an operation ID, the SDK generates one
# automatically.
#
# Repeating this stack set operation with a new operation ID retries
# all stack instances whose status is `OUTDATED`.
#
# **A suitable default value is auto-generated.** You should normally
# not need to pass this option.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackInstancesInput AWS API Documentation
#
class CreateStackInstancesInput < Struct.new(
:stack_set_name,
:accounts,
:deployment_targets,
:regions,
:parameter_overrides,
:operation_preferences,
:operation_id)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] operation_id
# The unique identifier for this stack set operation.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackInstancesOutput AWS API Documentation
#
class CreateStackInstancesOutput < Struct.new(
:operation_id)
SENSITIVE = []
include Aws::Structure
end
# The output for a CreateStack action.
#
# @!attribute [rw] stack_id
# Unique identifier of the stack.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackOutput AWS API Documentation
#
class CreateStackOutput < Struct.new(
:stack_id)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass CreateStackSetInput
# data as a hash:
#
# {
# stack_set_name: "StackSetName", # required
# description: "Description",
# template_body: "TemplateBody",
# template_url: "TemplateURL",
# parameters: [
# {
# parameter_key: "ParameterKey",
# parameter_value: "ParameterValue",
# use_previous_value: false,
# resolved_value: "ParameterValue",
# },
# ],
# capabilities: ["CAPABILITY_IAM"], # accepts CAPABILITY_IAM, CAPABILITY_NAMED_IAM, CAPABILITY_AUTO_EXPAND
# tags: [
# {
# key: "TagKey", # required
# value: "TagValue", # required
# },
# ],
# administration_role_arn: "RoleARN",
# execution_role_name: "ExecutionRoleName",
# permission_model: "SERVICE_MANAGED", # accepts SERVICE_MANAGED, SELF_MANAGED
# auto_deployment: {
# enabled: false,
# retain_stacks_on_account_removal: false,
# },
# client_request_token: "ClientRequestToken",
# }
#
# @!attribute [rw] stack_set_name
# The name to associate with the stack set. The name must be unique in
# the Region where you create your stack set.
#
# A stack name can contain only alphanumeric characters
# (case-sensitive) and hyphens. It must start with an alphabetic
# character and can't be longer than 128 characters.
#
#
# @return [String]
#
# @!attribute [rw] description
# A description of the stack set. You can use the description to
# identify the stack set's purpose or other important information.
# @return [String]
#
# @!attribute [rw] template_body
# The structure that contains the template body, with a minimum length
# of 1 byte and a maximum length of 51,200 bytes. For more
# information, see [Template Anatomy][1] in the AWS CloudFormation
# User Guide.
#
# Conditional: You must specify either the TemplateBody or the
# TemplateURL parameter, but not both.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
# @return [String]
#
# @!attribute [rw] template_url
# The location of the file that contains the template body. The URL
# must point to a template (maximum size: 460,800 bytes) that's
# located in an Amazon S3 bucket. For more information, see [Template
# Anatomy][1] in the AWS CloudFormation User Guide.
#
# Conditional: You must specify either the TemplateBody or the
# TemplateURL parameter, but not both.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
# @return [String]
#
# @!attribute [rw] parameters
# The input parameters for the stack set template.
# @return [Array]
#
# @!attribute [rw] capabilities
# In some cases, you must explicitly acknowledge that your stack set
# template contains certain capabilities in order for AWS
# CloudFormation to create the stack set and related stack instances.
#
# * `CAPABILITY_IAM` and `CAPABILITY_NAMED_IAM`
#
# Some stack templates might include resources that can affect
# permissions in your AWS account; for example, by creating new AWS
# Identity and Access Management (IAM) users. For those stack sets,
# you must explicitly acknowledge this by specifying one of these
# capabilities.
#
# The following IAM resources require you to specify either the
# `CAPABILITY_IAM` or `CAPABILITY_NAMED_IAM` capability.
#
# * If you have IAM resources, you can specify either capability.
#
# * If you have IAM resources with custom names, you *must* specify
# `CAPABILITY_NAMED_IAM`.
#
# * If you don't specify either of these capabilities, AWS
# CloudFormation returns an `InsufficientCapabilities` error.
#
# If your stack template contains these resources, we recommend that
# you review all permissions associated with them and edit their
# permissions if necessary.
#
# * [ AWS::IAM::AccessKey][1]
#
# * [ AWS::IAM::Group][2]
#
# * [ AWS::IAM::InstanceProfile][3]
#
# * [ AWS::IAM::Policy][4]
#
# * [ AWS::IAM::Role][5]
#
# * [ AWS::IAM::User][6]
#
# * [ AWS::IAM::UserToGroupAddition][7]
#
# For more information, see [Acknowledging IAM Resources in AWS
# CloudFormation Templates][8].
#
# * `CAPABILITY_AUTO_EXPAND`
#
# Some templates contain macros. If your stack template contains one
# or more macros, and you choose to create a stack directly from the
# processed template, without first reviewing the resulting changes
# in a change set, you must acknowledge this capability. For more
# information, see [Using AWS CloudFormation Macros to Perform
# Custom Processing on Templates][9].
#
# Stack sets do not currently support macros in stack templates.
# (This includes the [AWS::Include][10] and [AWS::Serverless][11]
# transforms, which are macros hosted by AWS CloudFormation.) Even
# if you specify this capability, if you include a macro in your
# template the stack set operation will fail.
#
#
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html
# [3]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html
# [4]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html
# [5]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html
# [6]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html
# [7]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html
# [8]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities
# [9]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html
# [10]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html
# [11]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html
# @return [Array]
#
# @!attribute [rw] tags
# The key-value pairs to associate with this stack set and the stacks
# created from it. AWS CloudFormation also propagates these tags to
# supported resources that are created in the stacks. A maximum number
# of 50 tags can be specified.
#
# If you specify tags as part of a `CreateStackSet` action, AWS
# CloudFormation checks to see if you have the required IAM permission
# to tag resources. If you don't, the entire `CreateStackSet` action
# fails with an `access denied` error, and the stack set is not
# created.
# @return [Array]
#
# @!attribute [rw] administration_role_arn
# The Amazon Resource Number (ARN) of the IAM role to use to create
# this stack set.
#
# Specify an IAM role only if you are using customized administrator
# roles to control which users or groups can manage specific stack
# sets within the same administrator account. For more information,
# see [Prerequisites: Granting Permissions for Stack Set
# Operations][1] in the *AWS CloudFormation User Guide*.
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html
# @return [String]
#
# @!attribute [rw] execution_role_name
# The name of the IAM execution role to use to create the stack set.
# If you do not specify an execution role, AWS CloudFormation uses the
# `AWSCloudFormationStackSetExecutionRole` role for the stack set
# operation.
#
# Specify an IAM role only if you are using customized execution roles
# to control which stack resources users and groups can include in
# their stack sets.
# @return [String]
#
# @!attribute [rw] permission_model
# Describes how the IAM roles required for stack set operations are
# created. By default, `SELF-MANAGED` is specified.
#
# * With `self-managed` permissions, you must create the administrator
# and execution roles required to deploy to target accounts. For
# more information, see [Grant Self-Managed Stack Set
# Permissions][1].
#
# * With `service-managed` permissions, StackSets automatically
# creates the IAM roles required to deploy to accounts managed by
# AWS Organizations. For more information, see [Grant
# Service-Managed Stack Set Permissions][2].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html
# @return [String]
#
# @!attribute [rw] auto_deployment
# Describes whether StackSets automatically deploys to AWS
# Organizations accounts that are added to the target organization or
# organizational unit (OU). Specify only if `PermissionModel` is
# `SERVICE_MANAGED`.
# @return [Types::AutoDeployment]
#
# @!attribute [rw] client_request_token
# A unique identifier for this `CreateStackSet` request. Specify this
# token if you plan to retry requests so that AWS CloudFormation knows
# that you're not attempting to create another stack set with the
# same name. You might retry `CreateStackSet` requests to ensure that
# AWS CloudFormation successfully received them.
#
# If you don't specify an operation ID, the SDK generates one
# automatically.
#
# **A suitable default value is auto-generated.** You should normally
# not need to pass this option.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackSetInput AWS API Documentation
#
class CreateStackSetInput < Struct.new(
:stack_set_name,
:description,
:template_body,
:template_url,
:parameters,
:capabilities,
:tags,
:administration_role_arn,
:execution_role_name,
:permission_model,
:auto_deployment,
:client_request_token)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] stack_set_id
# The ID of the stack set that you're creating.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateStackSetOutput AWS API Documentation
#
class CreateStackSetOutput < Struct.new(
:stack_set_id)
SENSITIVE = []
include Aws::Structure
end
# The specified resource exists, but has been changed.
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreatedButModifiedException AWS API Documentation
#
class CreatedButModifiedException < Aws::EmptyStructure; end
# The input for the DeleteChangeSet action.
#
# @note When making an API call, you may pass DeleteChangeSetInput
# data as a hash:
#
# {
# change_set_name: "ChangeSetNameOrId", # required
# stack_name: "StackNameOrId",
# }
#
# @!attribute [rw] change_set_name
# The name or Amazon Resource Name (ARN) of the change set that you
# want to delete.
# @return [String]
#
# @!attribute [rw] stack_name
# If you specified the name of a change set to delete, specify the
# stack name or ID (ARN) that is associated with it.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteChangeSetInput AWS API Documentation
#
class DeleteChangeSetInput < Struct.new(
:change_set_name,
:stack_name)
SENSITIVE = []
include Aws::Structure
end
# The output for the DeleteChangeSet action.
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteChangeSetOutput AWS API Documentation
#
class DeleteChangeSetOutput < Aws::EmptyStructure; end
# The input for DeleteStack action.
#
# @note When making an API call, you may pass DeleteStackInput
# data as a hash:
#
# {
# stack_name: "StackName", # required
# retain_resources: ["LogicalResourceId"],
# role_arn: "RoleARN",
# client_request_token: "ClientRequestToken",
# }
#
# @!attribute [rw] stack_name
# The name or the unique stack ID that is associated with the stack.
# @return [String]
#
# @!attribute [rw] retain_resources
# For stacks in the `DELETE_FAILED` state, a list of resource logical
# IDs that are associated with the resources you want to retain.
# During deletion, AWS CloudFormation deletes the stack but does not
# delete the retained resources.
#
# Retaining resources is useful when you cannot delete a resource,
# such as a non-empty S3 bucket, but you want to delete the stack.
# @return [Array]
#
# @!attribute [rw] role_arn
# The Amazon Resource Name (ARN) of an AWS Identity and Access
# Management (IAM) role that AWS CloudFormation assumes to delete the
# stack. AWS CloudFormation uses the role's credentials to make calls
# on your behalf.
#
# If you don't specify a value, AWS CloudFormation uses the role that
# was previously associated with the stack. If no role is available,
# AWS CloudFormation uses a temporary session that is generated from
# your user credentials.
# @return [String]
#
# @!attribute [rw] client_request_token
# A unique identifier for this `DeleteStack` request. Specify this
# token if you plan to retry requests so that AWS CloudFormation knows
# that you're not attempting to delete a stack with the same name.
# You might retry `DeleteStack` requests to ensure that AWS
# CloudFormation successfully received them.
#
# All events triggered by a given stack operation are assigned the
# same client request token, which you can use to track operations.
# For example, if you execute a `CreateStack` operation with the token
# `token1`, then all the `StackEvents` generated by that operation
# will have `ClientRequestToken` set as `token1`.
#
# In the console, stack operations display the client request token on
# the Events tab. Stack operations that are initiated from the console
# use the token format *Console-StackOperation-ID*, which helps you
# easily identify the stack operation . For example, if you create a
# stack using the console, each stack event would be assigned the same
# token in the following format:
# `Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002`.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackInput AWS API Documentation
#
class DeleteStackInput < Struct.new(
:stack_name,
:retain_resources,
:role_arn,
:client_request_token)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass DeleteStackInstancesInput
# data as a hash:
#
# {
# stack_set_name: "StackSetName", # required
# accounts: ["Account"],
# deployment_targets: {
# accounts: ["Account"],
# organizational_unit_ids: ["OrganizationalUnitId"],
# },
# regions: ["Region"], # required
# operation_preferences: {
# region_order: ["Region"],
# failure_tolerance_count: 1,
# failure_tolerance_percentage: 1,
# max_concurrent_count: 1,
# max_concurrent_percentage: 1,
# },
# retain_stacks: false, # required
# operation_id: "ClientRequestToken",
# }
#
# @!attribute [rw] stack_set_name
# The name or unique ID of the stack set that you want to delete stack
# instances for.
# @return [String]
#
# @!attribute [rw] accounts
# \[`Self-managed` permissions\] The names of the AWS accounts that
# you want to delete stack instances for.
#
# You can specify `Accounts` or `DeploymentTargets`, but not both.
# @return [Array]
#
# @!attribute [rw] deployment_targets
# \[`Service-managed` permissions\] The AWS Organizations accounts
# from which to delete stack instances.
#
# You can specify `Accounts` or `DeploymentTargets`, but not both.
# @return [Types::DeploymentTargets]
#
# @!attribute [rw] regions
# The Regions where you want to delete stack set instances.
# @return [Array]
#
# @!attribute [rw] operation_preferences
# Preferences for how AWS CloudFormation performs this stack set
# operation.
# @return [Types::StackSetOperationPreferences]
#
# @!attribute [rw] retain_stacks
# Removes the stack instances from the specified stack set, but
# doesn't delete the stacks. You can't reassociate a retained stack
# or add an existing, saved stack to a new stack set.
#
# For more information, see [Stack set operation options][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options
# @return [Boolean]
#
# @!attribute [rw] operation_id
# The unique identifier for this stack set operation.
#
# If you don't specify an operation ID, the SDK generates one
# automatically.
#
# The operation ID also functions as an idempotency token, to ensure
# that AWS CloudFormation performs the stack set operation only once,
# even if you retry the request multiple times. You can retry stack
# set operation requests to ensure that AWS CloudFormation
# successfully received them.
#
# Repeating this stack set operation with a new operation ID retries
# all stack instances whose status is `OUTDATED`.
#
# **A suitable default value is auto-generated.** You should normally
# not need to pass this option.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackInstancesInput AWS API Documentation
#
class DeleteStackInstancesInput < Struct.new(
:stack_set_name,
:accounts,
:deployment_targets,
:regions,
:operation_preferences,
:retain_stacks,
:operation_id)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] operation_id
# The unique identifier for this stack set operation.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackInstancesOutput AWS API Documentation
#
class DeleteStackInstancesOutput < Struct.new(
:operation_id)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass DeleteStackSetInput
# data as a hash:
#
# {
# stack_set_name: "StackSetName", # required
# }
#
# @!attribute [rw] stack_set_name
# The name or unique ID of the stack set that you're deleting. You
# can obtain this value by running ListStackSets.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackSetInput AWS API Documentation
#
class DeleteStackSetInput < Struct.new(
:stack_set_name)
SENSITIVE = []
include Aws::Structure
end
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeleteStackSetOutput AWS API Documentation
#
class DeleteStackSetOutput < Aws::EmptyStructure; end
# \[`Service-managed` permissions\] The AWS Organizations accounts to
# which StackSets deploys. StackSets does not deploy stack instances to
# the organization master account, even if the master account is in your
# organization or in an OU in your organization.
#
# For update operations, you can specify either `Accounts` or
# `OrganizationalUnitIds`. For create and delete operations, specify
# `OrganizationalUnitIds`.
#
# @note When making an API call, you may pass DeploymentTargets
# data as a hash:
#
# {
# accounts: ["Account"],
# organizational_unit_ids: ["OrganizationalUnitId"],
# }
#
# @!attribute [rw] accounts
# The names of one or more AWS accounts for which you want to deploy
# stack set updates.
# @return [Array]
#
# @!attribute [rw] organizational_unit_ids
# The organization root ID or organizational unit (OU) IDs to which
# StackSets deploys.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeploymentTargets AWS API Documentation
#
class DeploymentTargets < Struct.new(
:accounts,
:organizational_unit_ids)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass DeregisterTypeInput
# data as a hash:
#
# {
# arn: "PrivateTypeArn",
# type: "RESOURCE", # accepts RESOURCE
# type_name: "TypeName",
# version_id: "TypeVersionId",
# }
#
# @!attribute [rw] arn
# The Amazon Resource Name (ARN) of the type.
#
# Conditional: You must specify either `TypeName` and `Type`, or
# `Arn`.
# @return [String]
#
# @!attribute [rw] type
# The kind of type.
#
# Currently the only valid value is `RESOURCE`.
#
# Conditional: You must specify either `TypeName` and `Type`, or
# `Arn`.
# @return [String]
#
# @!attribute [rw] type_name
# The name of the type.
#
# Conditional: You must specify either `TypeName` and `Type`, or
# `Arn`.
# @return [String]
#
# @!attribute [rw] version_id
# The ID of a specific version of the type. The version ID is the
# value at the end of the Amazon Resource Name (ARN) assigned to the
# type version when it is registered.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeregisterTypeInput AWS API Documentation
#
class DeregisterTypeInput < Struct.new(
:arn,
:type,
:type_name,
:version_id)
SENSITIVE = []
include Aws::Structure
end
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DeregisterTypeOutput AWS API Documentation
#
class DeregisterTypeOutput < Aws::EmptyStructure; end
# The input for the DescribeAccountLimits action.
#
# @note When making an API call, you may pass DescribeAccountLimitsInput
# data as a hash:
#
# {
# next_token: "NextToken",
# }
#
# @!attribute [rw] next_token
# A string that identifies the next page of limits that you want to
# retrieve.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeAccountLimitsInput AWS API Documentation
#
class DescribeAccountLimitsInput < Struct.new(
:next_token)
SENSITIVE = []
include Aws::Structure
end
# The output for the DescribeAccountLimits action.
#
# @!attribute [rw] account_limits
# An account limit structure that contain a list of AWS CloudFormation
# account limits and their values.
# @return [Array]
#
# @!attribute [rw] next_token
# If the output exceeds 1 MB in size, a string that identifies the
# next page of limits. If no additional page exists, this value is
# null.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeAccountLimitsOutput AWS API Documentation
#
class DescribeAccountLimitsOutput < Struct.new(
:account_limits,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# The input for the DescribeChangeSet action.
#
# @note When making an API call, you may pass DescribeChangeSetInput
# data as a hash:
#
# {
# change_set_name: "ChangeSetNameOrId", # required
# stack_name: "StackNameOrId",
# next_token: "NextToken",
# }
#
# @!attribute [rw] change_set_name
# The name or Amazon Resource Name (ARN) of the change set that you
# want to describe.
# @return [String]
#
# @!attribute [rw] stack_name
# If you specified the name of a change set, specify the stack name or
# ID (ARN) of the change set you want to describe.
# @return [String]
#
# @!attribute [rw] next_token
# A string (provided by the DescribeChangeSet response output) that
# identifies the next page of information that you want to retrieve.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeChangeSetInput AWS API Documentation
#
class DescribeChangeSetInput < Struct.new(
:change_set_name,
:stack_name,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# The output for the DescribeChangeSet action.
#
# @!attribute [rw] change_set_name
# The name of the change set.
# @return [String]
#
# @!attribute [rw] change_set_id
# The ARN of the change set.
# @return [String]
#
# @!attribute [rw] stack_id
# The ARN of the stack that is associated with the change set.
# @return [String]
#
# @!attribute [rw] stack_name
# The name of the stack that is associated with the change set.
# @return [String]
#
# @!attribute [rw] description
# Information about the change set.
# @return [String]
#
# @!attribute [rw] parameters
# A list of `Parameter` structures that describes the input parameters
# and their values used to create the change set. For more
# information, see the [Parameter][1] data type.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html
# @return [Array]
#
# @!attribute [rw] creation_time
# The start time when the change set was created, in UTC.
# @return [Time]
#
# @!attribute [rw] execution_status
# If the change set execution status is `AVAILABLE`, you can execute
# the change set. If you can’t execute the change set, the status
# indicates why. For example, a change set might be in an
# `UNAVAILABLE` state because AWS CloudFormation is still creating it
# or in an `OBSOLETE` state because the stack was already updated.
# @return [String]
#
# @!attribute [rw] status
# The current status of the change set, such as `CREATE_IN_PROGRESS`,
# `CREATE_COMPLETE`, or `FAILED`.
# @return [String]
#
# @!attribute [rw] status_reason
# A description of the change set's status. For example, if your
# attempt to create a change set failed, AWS CloudFormation shows the
# error message.
# @return [String]
#
# @!attribute [rw] notification_arns
# The ARNs of the Amazon Simple Notification Service (Amazon SNS)
# topics that will be associated with the stack if you execute the
# change set.
# @return [Array]
#
# @!attribute [rw] rollback_configuration
# The rollback triggers for AWS CloudFormation to monitor during stack
# creation and updating operations, and for the specified monitoring
# period afterwards.
# @return [Types::RollbackConfiguration]
#
# @!attribute [rw] capabilities
# If you execute the change set, the list of capabilities that were
# explicitly acknowledged when the change set was created.
# @return [Array]
#
# @!attribute [rw] tags
# If you execute the change set, the tags that will be associated with
# the stack.
# @return [Array]
#
# @!attribute [rw] changes
# A list of `Change` structures that describes the resources AWS
# CloudFormation changes if you execute the change set.
# @return [Array]
#
# @!attribute [rw] next_token
# If the output exceeds 1 MB, a string that identifies the next page
# of changes. If there is no additional page, this value is null.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeChangeSetOutput AWS API Documentation
#
class DescribeChangeSetOutput < Struct.new(
:change_set_name,
:change_set_id,
:stack_id,
:stack_name,
:description,
:parameters,
:creation_time,
:execution_status,
:status,
:status_reason,
:notification_arns,
:rollback_configuration,
:capabilities,
:tags,
:changes,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass DescribeStackDriftDetectionStatusInput
# data as a hash:
#
# {
# stack_drift_detection_id: "StackDriftDetectionId", # required
# }
#
# @!attribute [rw] stack_drift_detection_id
# The ID of the drift detection results of this operation.
#
# AWS CloudFormation generates new results, with a new drift detection
# ID, each time this operation is run. However, the number of drift
# results AWS CloudFormation retains for any given stack, and for how
# long, may vary.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackDriftDetectionStatusInput AWS API Documentation
#
class DescribeStackDriftDetectionStatusInput < Struct.new(
:stack_drift_detection_id)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] stack_id
# The ID of the stack.
# @return [String]
#
# @!attribute [rw] stack_drift_detection_id
# The ID of the drift detection results of this operation.
#
# AWS CloudFormation generates new results, with a new drift detection
# ID, each time this operation is run. However, the number of reports
# AWS CloudFormation retains for any given stack, and for how long,
# may vary.
# @return [String]
#
# @!attribute [rw] stack_drift_status
# Status of the stack's actual configuration compared to its expected
# configuration.
#
# * `DRIFTED`\: The stack differs from its expected template
# configuration. A stack is considered to have drifted if one or
# more of its resources have drifted.
#
# * `NOT_CHECKED`\: AWS CloudFormation has not checked if the stack
# differs from its expected template configuration.
#
# * `IN_SYNC`\: The stack's actual configuration matches its expected
# template configuration.
#
# * `UNKNOWN`\: This value is reserved for future use.
# @return [String]
#
# @!attribute [rw] detection_status
# The status of the stack drift detection operation.
#
# * `DETECTION_COMPLETE`\: The stack drift detection operation has
# successfully completed for all resources in the stack that support
# drift detection. (Resources that do not currently support stack
# detection remain unchecked.)
#
# If you specified logical resource IDs for AWS CloudFormation to
# use as a filter for the stack drift detection operation, only the
# resources with those logical IDs are checked for drift.
#
# * `DETECTION_FAILED`\: The stack drift detection operation has
# failed for at least one resource in the stack. Results will be
# available for resources on which AWS CloudFormation successfully
# completed drift detection.
#
# * `DETECTION_IN_PROGRESS`\: The stack drift detection operation is
# currently in progress.
# @return [String]
#
# @!attribute [rw] detection_status_reason
# The reason the stack drift detection operation has its current
# status.
# @return [String]
#
# @!attribute [rw] drifted_stack_resource_count
# Total number of stack resources that have drifted. This is NULL
# until the drift detection operation reaches a status of
# `DETECTION_COMPLETE`. This value will be 0 for stacks whose drift
# status is `IN_SYNC`.
# @return [Integer]
#
# @!attribute [rw] timestamp
# Time at which the stack drift detection operation was initiated.
# @return [Time]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackDriftDetectionStatusOutput AWS API Documentation
#
class DescribeStackDriftDetectionStatusOutput < Struct.new(
:stack_id,
:stack_drift_detection_id,
:stack_drift_status,
:detection_status,
:detection_status_reason,
:drifted_stack_resource_count,
:timestamp)
SENSITIVE = []
include Aws::Structure
end
# The input for DescribeStackEvents action.
#
# @note When making an API call, you may pass DescribeStackEventsInput
# data as a hash:
#
# {
# stack_name: "StackName",
# next_token: "NextToken",
# }
#
# @!attribute [rw] stack_name
# The name or the unique stack ID that is associated with the stack,
# which are not always interchangeable:
#
# * Running stacks: You can specify either the stack's name or its
# unique stack ID.
#
# * Deleted stacks: You must specify the unique stack ID.
#
# Default: There is no default value.
# @return [String]
#
# @!attribute [rw] next_token
# A string that identifies the next page of events that you want to
# retrieve.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackEventsInput AWS API Documentation
#
class DescribeStackEventsInput < Struct.new(
:stack_name,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# The output for a DescribeStackEvents action.
#
# @!attribute [rw] stack_events
# A list of `StackEvents` structures.
# @return [Array]
#
# @!attribute [rw] next_token
# If the output exceeds 1 MB in size, a string that identifies the
# next page of events. If no additional page exists, this value is
# null.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackEventsOutput AWS API Documentation
#
class DescribeStackEventsOutput < Struct.new(
:stack_events,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass DescribeStackInstanceInput
# data as a hash:
#
# {
# stack_set_name: "StackSetName", # required
# stack_instance_account: "Account", # required
# stack_instance_region: "Region", # required
# }
#
# @!attribute [rw] stack_set_name
# The name or the unique stack ID of the stack set that you want to
# get stack instance information for.
# @return [String]
#
# @!attribute [rw] stack_instance_account
# The ID of an AWS account that's associated with this stack
# instance.
# @return [String]
#
# @!attribute [rw] stack_instance_region
# The name of a Region that's associated with this stack instance.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackInstanceInput AWS API Documentation
#
class DescribeStackInstanceInput < Struct.new(
:stack_set_name,
:stack_instance_account,
:stack_instance_region)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] stack_instance
# The stack instance that matches the specified request parameters.
# @return [Types::StackInstance]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackInstanceOutput AWS API Documentation
#
class DescribeStackInstanceOutput < Struct.new(
:stack_instance)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass DescribeStackResourceDriftsInput
# data as a hash:
#
# {
# stack_name: "StackNameOrId", # required
# stack_resource_drift_status_filters: ["IN_SYNC"], # accepts IN_SYNC, MODIFIED, DELETED, NOT_CHECKED
# next_token: "NextToken",
# max_results: 1,
# }
#
# @!attribute [rw] stack_name
# The name of the stack for which you want drift information.
# @return [String]
#
# @!attribute [rw] stack_resource_drift_status_filters
# The resource drift status values to use as filters for the resource
# drift results returned.
#
# * `DELETED`\: The resource differs from its expected template
# configuration in that the resource has been deleted.
#
# * `MODIFIED`\: One or more resource properties differ from their
# expected template values.
#
# * `IN_SYNC`\: The resources's actual configuration matches its
# expected template configuration.
#
# * `NOT_CHECKED`\: AWS CloudFormation does not currently return this
# value.
# @return [Array]
#
# @!attribute [rw] next_token
# A string that identifies the next page of stack resource drift
# results.
# @return [String]
#
# @!attribute [rw] max_results
# The maximum number of results to be returned with a single call. If
# the number of available results exceeds this maximum, the response
# includes a `NextToken` value that you can assign to the `NextToken`
# request parameter to get the next set of results.
# @return [Integer]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResourceDriftsInput AWS API Documentation
#
class DescribeStackResourceDriftsInput < Struct.new(
:stack_name,
:stack_resource_drift_status_filters,
:next_token,
:max_results)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] stack_resource_drifts
# Drift information for the resources that have been checked for drift
# in the specified stack. This includes actual and expected
# configuration values for resources where AWS CloudFormation detects
# drift.
#
# For a given stack, there will be one `StackResourceDrift` for each
# stack resource that has been checked for drift. Resources that have
# not yet been checked for drift are not included. Resources that do
# not currently support drift detection are not checked, and so not
# included. For a list of resources that support drift detection, see
# [Resources that Support Drift Detection][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html
# @return [Array]
#
# @!attribute [rw] next_token
# If the request doesn't return all of the remaining results,
# `NextToken` is set to a token. To retrieve the next set of results,
# call `DescribeStackResourceDrifts` again and assign that token to
# the request object's `NextToken` parameter. If the request returns
# all results, `NextToken` is set to `null`.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResourceDriftsOutput AWS API Documentation
#
class DescribeStackResourceDriftsOutput < Struct.new(
:stack_resource_drifts,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# The input for DescribeStackResource action.
#
# @note When making an API call, you may pass DescribeStackResourceInput
# data as a hash:
#
# {
# stack_name: "StackName", # required
# logical_resource_id: "LogicalResourceId", # required
# }
#
# @!attribute [rw] stack_name
# The name or the unique stack ID that is associated with the stack,
# which are not always interchangeable:
#
# * Running stacks: You can specify either the stack's name or its
# unique stack ID.
#
# * Deleted stacks: You must specify the unique stack ID.
#
# Default: There is no default value.
# @return [String]
#
# @!attribute [rw] logical_resource_id
# The logical name of the resource as specified in the template.
#
# Default: There is no default value.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResourceInput AWS API Documentation
#
class DescribeStackResourceInput < Struct.new(
:stack_name,
:logical_resource_id)
SENSITIVE = []
include Aws::Structure
end
# The output for a DescribeStackResource action.
#
# @!attribute [rw] stack_resource_detail
# A `StackResourceDetail` structure containing the description of the
# specified resource in the specified stack.
# @return [Types::StackResourceDetail]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResourceOutput AWS API Documentation
#
class DescribeStackResourceOutput < Struct.new(
:stack_resource_detail)
SENSITIVE = []
include Aws::Structure
end
# The input for DescribeStackResources action.
#
# @note When making an API call, you may pass DescribeStackResourcesInput
# data as a hash:
#
# {
# stack_name: "StackName",
# logical_resource_id: "LogicalResourceId",
# physical_resource_id: "PhysicalResourceId",
# }
#
# @!attribute [rw] stack_name
# The name or the unique stack ID that is associated with the stack,
# which are not always interchangeable:
#
# * Running stacks: You can specify either the stack's name or its
# unique stack ID.
#
# * Deleted stacks: You must specify the unique stack ID.
#
# Default: There is no default value.
#
# Required: Conditional. If you do not specify `StackName`, you must
# specify `PhysicalResourceId`.
# @return [String]
#
# @!attribute [rw] logical_resource_id
# The logical name of the resource as specified in the template.
#
# Default: There is no default value.
# @return [String]
#
# @!attribute [rw] physical_resource_id
# The name or unique identifier that corresponds to a physical
# instance ID of a resource supported by AWS CloudFormation.
#
# For example, for an Amazon Elastic Compute Cloud (EC2) instance,
# `PhysicalResourceId` corresponds to the `InstanceId`. You can pass
# the EC2 `InstanceId` to `DescribeStackResources` to find which stack
# the instance belongs to and what other resources are part of the
# stack.
#
# Required: Conditional. If you do not specify `PhysicalResourceId`,
# you must specify `StackName`.
#
# Default: There is no default value.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResourcesInput AWS API Documentation
#
class DescribeStackResourcesInput < Struct.new(
:stack_name,
:logical_resource_id,
:physical_resource_id)
SENSITIVE = []
include Aws::Structure
end
# The output for a DescribeStackResources action.
#
# @!attribute [rw] stack_resources
# A list of `StackResource` structures.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackResourcesOutput AWS API Documentation
#
class DescribeStackResourcesOutput < Struct.new(
:stack_resources)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass DescribeStackSetInput
# data as a hash:
#
# {
# stack_set_name: "StackSetName", # required
# }
#
# @!attribute [rw] stack_set_name
# The name or unique ID of the stack set whose description you want.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSetInput AWS API Documentation
#
class DescribeStackSetInput < Struct.new(
:stack_set_name)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass DescribeStackSetOperationInput
# data as a hash:
#
# {
# stack_set_name: "StackSetName", # required
# operation_id: "ClientRequestToken", # required
# }
#
# @!attribute [rw] stack_set_name
# The name or the unique stack ID of the stack set for the stack
# operation.
# @return [String]
#
# @!attribute [rw] operation_id
# The unique ID of the stack set operation.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSetOperationInput AWS API Documentation
#
class DescribeStackSetOperationInput < Struct.new(
:stack_set_name,
:operation_id)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] stack_set_operation
# The specified stack set operation.
# @return [Types::StackSetOperation]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSetOperationOutput AWS API Documentation
#
class DescribeStackSetOperationOutput < Struct.new(
:stack_set_operation)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] stack_set
# The specified stack set.
# @return [Types::StackSet]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStackSetOutput AWS API Documentation
#
class DescribeStackSetOutput < Struct.new(
:stack_set)
SENSITIVE = []
include Aws::Structure
end
# The input for DescribeStacks action.
#
# @note When making an API call, you may pass DescribeStacksInput
# data as a hash:
#
# {
# stack_name: "StackName",
# next_token: "NextToken",
# }
#
# @!attribute [rw] stack_name
# The name or the unique stack ID that is associated with the stack,
# which are not always interchangeable:
#
# * Running stacks: You can specify either the stack's name or its
# unique stack ID.
#
# * Deleted stacks: You must specify the unique stack ID.
#
# Default: There is no default value.
# @return [String]
#
# @!attribute [rw] next_token
# A string that identifies the next page of stacks that you want to
# retrieve.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStacksInput AWS API Documentation
#
class DescribeStacksInput < Struct.new(
:stack_name,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# The output for a DescribeStacks action.
#
# @!attribute [rw] stacks
# A list of stack structures.
# @return [Array]
#
# @!attribute [rw] next_token
# If the output exceeds 1 MB in size, a string that identifies the
# next page of stacks. If no additional page exists, this value is
# null.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeStacksOutput AWS API Documentation
#
class DescribeStacksOutput < Struct.new(
:stacks,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass DescribeTypeInput
# data as a hash:
#
# {
# type: "RESOURCE", # accepts RESOURCE
# type_name: "TypeName",
# arn: "TypeArn",
# version_id: "TypeVersionId",
# }
#
# @!attribute [rw] type
# The kind of type.
#
# Currently the only valid value is `RESOURCE`.
#
# Conditional: You must specify either `TypeName` and `Type`, or
# `Arn`.
# @return [String]
#
# @!attribute [rw] type_name
# The name of the type.
#
# Conditional: You must specify either `TypeName` and `Type`, or
# `Arn`.
# @return [String]
#
# @!attribute [rw] arn
# The Amazon Resource Name (ARN) of the type.
#
# Conditional: You must specify either `TypeName` and `Type`, or
# `Arn`.
# @return [String]
#
# @!attribute [rw] version_id
# The ID of a specific version of the type. The version ID is the
# value at the end of the Amazon Resource Name (ARN) assigned to the
# type version when it is registered.
#
# If you specify a `VersionId`, `DescribeType` returns information
# about that specific type version. Otherwise, it returns information
# about the default type version.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeTypeInput AWS API Documentation
#
class DescribeTypeInput < Struct.new(
:type,
:type_name,
:arn,
:version_id)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] arn
# The Amazon Resource Name (ARN) of the type.
# @return [String]
#
# @!attribute [rw] type
# The kind of type.
#
# Currently the only valid value is `RESOURCE`.
# @return [String]
#
# @!attribute [rw] type_name
# The name of the registered type.
# @return [String]
#
# @!attribute [rw] default_version_id
# The ID of the default version of the type. The default version is
# used when the type version is not specified.
#
# To set the default version of a type, use ` SetTypeDefaultVersion `.
# @return [String]
#
# @!attribute [rw] is_default_version
# Whether the specified type version is set as the default version.
# @return [Boolean]
#
# @!attribute [rw] description
# The description of the registered type.
# @return [String]
#
# @!attribute [rw] schema
# The schema that defines the type.
#
# For more information on type schemas, see [Resource Provider
# Schema][1] in the *CloudFormation CLI User Guide*.
#
#
#
# [1]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html
# @return [String]
#
# @!attribute [rw] provisioning_type
# The provisioning behavior of the type. AWS CloudFormation determines
# the provisioning type during registration, based on the types of
# handlers in the schema handler package submitted.
#
# Valid values include:
#
# * `FULLY_MUTABLE`\: The type includes an update handler to process
# updates to the type during stack update operations.
#
# * `IMMUTABLE`\: The type does not include an update handler, so the
# type cannot be updated and must instead be replaced during stack
# update operations.
#
# * `NON_PROVISIONABLE`\: The type does not include all of the
# following handlers, and therefore cannot actually be provisioned.
#
# * create
#
# * read
#
# * delete
# @return [String]
#
# @!attribute [rw] deprecated_status
# The deprecation status of the type.
#
# Valid values include:
#
# * `LIVE`\: The type is registered and can be used in CloudFormation
# operations, dependent on its provisioning behavior and visibility
# scope.
#
# * `DEPRECATED`\: The type has been deregistered and can no longer be
# used in CloudFormation operations.
# @return [String]
#
# @!attribute [rw] logging_config
# Contains logging configuration information for a type.
# @return [Types::LoggingConfig]
#
# @!attribute [rw] execution_role_arn
# The Amazon Resource Name (ARN) of the IAM execution role used to
# register the type. If your resource type calls AWS APIs in any of
# its handlers, you must create an IAM
# execution role that includes the necessary permissions to
# call those AWS APIs, and provision that execution role in your
# account. CloudFormation then assumes that execution role to provide
# your resource type with the appropriate credentials.
# @return [String]
#
# @!attribute [rw] visibility
# The scope at which the type is visible and usable in CloudFormation
# operations.
#
# Valid values include:
#
# * `PRIVATE`\: The type is only visible and usable within the account
# in which it is registered. Currently, AWS CloudFormation marks any
# types you register as `PRIVATE`.
#
# * `PUBLIC`\: The type is publically visible and usable within any
# Amazon account.
# @return [String]
#
# @!attribute [rw] source_url
# The URL of the source code for the type.
# @return [String]
#
# @!attribute [rw] documentation_url
# The URL of a page providing detailed documentation for this type.
# @return [String]
#
# @!attribute [rw] last_updated
# When the specified type version was registered.
# @return [Time]
#
# @!attribute [rw] time_created
# When the specified type version was registered.
# @return [Time]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeTypeOutput AWS API Documentation
#
class DescribeTypeOutput < Struct.new(
:arn,
:type,
:type_name,
:default_version_id,
:is_default_version,
:description,
:schema,
:provisioning_type,
:deprecated_status,
:logging_config,
:execution_role_arn,
:visibility,
:source_url,
:documentation_url,
:last_updated,
:time_created)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass DescribeTypeRegistrationInput
# data as a hash:
#
# {
# registration_token: "RegistrationToken", # required
# }
#
# @!attribute [rw] registration_token
# The identifier for this registration request.
#
# This registration token is generated by CloudFormation when you
# initiate a registration request using ` RegisterType `.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeTypeRegistrationInput AWS API Documentation
#
class DescribeTypeRegistrationInput < Struct.new(
:registration_token)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] progress_status
# The current status of the type registration request.
# @return [String]
#
# @!attribute [rw] description
# The description of the type registration request.
# @return [String]
#
# @!attribute [rw] type_arn
# The Amazon Resource Name (ARN) of the type being registered.
#
# For registration requests with a `ProgressStatus` of other than
# `COMPLETE`, this will be `null`.
# @return [String]
#
# @!attribute [rw] type_version_arn
# The Amazon Resource Name (ARN) of this specific version of the type
# being registered.
#
# For registration requests with a `ProgressStatus` of other than
# `COMPLETE`, this will be `null`.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DescribeTypeRegistrationOutput AWS API Documentation
#
class DescribeTypeRegistrationOutput < Struct.new(
:progress_status,
:description,
:type_arn,
:type_version_arn)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass DetectStackDriftInput
# data as a hash:
#
# {
# stack_name: "StackNameOrId", # required
# logical_resource_ids: ["LogicalResourceId"],
# }
#
# @!attribute [rw] stack_name
# The name of the stack for which you want to detect drift.
# @return [String]
#
# @!attribute [rw] logical_resource_ids
# The logical names of any resources you want to use as filters.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackDriftInput AWS API Documentation
#
class DetectStackDriftInput < Struct.new(
:stack_name,
:logical_resource_ids)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] stack_drift_detection_id
# The ID of the drift detection results of this operation.
#
# AWS CloudFormation generates new results, with a new drift detection
# ID, each time this operation is run. However, the number of drift
# results AWS CloudFormation retains for any given stack, and for how
# long, may vary.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackDriftOutput AWS API Documentation
#
class DetectStackDriftOutput < Struct.new(
:stack_drift_detection_id)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass DetectStackResourceDriftInput
# data as a hash:
#
# {
# stack_name: "StackNameOrId", # required
# logical_resource_id: "LogicalResourceId", # required
# }
#
# @!attribute [rw] stack_name
# The name of the stack to which the resource belongs.
# @return [String]
#
# @!attribute [rw] logical_resource_id
# The logical name of the resource for which to return drift
# information.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackResourceDriftInput AWS API Documentation
#
class DetectStackResourceDriftInput < Struct.new(
:stack_name,
:logical_resource_id)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] stack_resource_drift
# Information about whether the resource's actual configuration has
# drifted from its expected template configuration, including actual
# and expected property values and any differences detected.
# @return [Types::StackResourceDrift]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackResourceDriftOutput AWS API Documentation
#
class DetectStackResourceDriftOutput < Struct.new(
:stack_resource_drift)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass DetectStackSetDriftInput
# data as a hash:
#
# {
# stack_set_name: "StackSetNameOrId", # required
# operation_preferences: {
# region_order: ["Region"],
# failure_tolerance_count: 1,
# failure_tolerance_percentage: 1,
# max_concurrent_count: 1,
# max_concurrent_percentage: 1,
# },
# operation_id: "ClientRequestToken",
# }
#
# @!attribute [rw] stack_set_name
# The name of the stack set on which to perform the drift detection
# operation.
# @return [String]
#
# @!attribute [rw] operation_preferences
# The user-specified preferences for how AWS CloudFormation performs a
# stack set operation.
#
# For more information on maximum concurrent accounts and failure
# tolerance, see [Stack set operation options][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options
# @return [Types::StackSetOperationPreferences]
#
# @!attribute [rw] operation_id
# *The ID of the stack set operation.*
#
# **A suitable default value is auto-generated.** You should normally
# not need to pass this option.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackSetDriftInput AWS API Documentation
#
class DetectStackSetDriftInput < Struct.new(
:stack_set_name,
:operation_preferences,
:operation_id)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] operation_id
# The ID of the drift detection stack set operation.
#
# you can use this operation id with ` DescribeStackSetOperation ` to
# monitor the progress of the drift detection operation.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/DetectStackSetDriftOutput AWS API Documentation
#
class DetectStackSetDriftOutput < Struct.new(
:operation_id)
SENSITIVE = []
include Aws::Structure
end
# The input for an EstimateTemplateCost action.
#
# @note When making an API call, you may pass EstimateTemplateCostInput
# data as a hash:
#
# {
# template_body: "TemplateBody",
# template_url: "TemplateURL",
# parameters: [
# {
# parameter_key: "ParameterKey",
# parameter_value: "ParameterValue",
# use_previous_value: false,
# resolved_value: "ParameterValue",
# },
# ],
# }
#
# @!attribute [rw] template_body
# Structure containing the template body with a minimum length of 1
# byte and a maximum length of 51,200 bytes. (For more information, go
# to [Template Anatomy][1] in the AWS CloudFormation User Guide.)
#
# Conditional: You must pass `TemplateBody` or `TemplateURL`. If both
# are passed, only `TemplateBody` is used.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
# @return [String]
#
# @!attribute [rw] template_url
# Location of file containing the template body. The URL must point to
# a template that is located in an Amazon S3 bucket. For more
# information, go to [Template Anatomy][1] in the AWS CloudFormation
# User Guide.
#
# Conditional: You must pass `TemplateURL` or `TemplateBody`. If both
# are passed, only `TemplateBody` is used.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
# @return [String]
#
# @!attribute [rw] parameters
# A list of `Parameter` structures that specify input parameters.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/EstimateTemplateCostInput AWS API Documentation
#
class EstimateTemplateCostInput < Struct.new(
:template_body,
:template_url,
:parameters)
SENSITIVE = []
include Aws::Structure
end
# The output for a EstimateTemplateCost action.
#
# @!attribute [rw] url
# An AWS Simple Monthly Calculator URL with a query string that
# describes the resources required to run the template.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/EstimateTemplateCostOutput AWS API Documentation
#
class EstimateTemplateCostOutput < Struct.new(
:url)
SENSITIVE = []
include Aws::Structure
end
# The input for the ExecuteChangeSet action.
#
# @note When making an API call, you may pass ExecuteChangeSetInput
# data as a hash:
#
# {
# change_set_name: "ChangeSetNameOrId", # required
# stack_name: "StackNameOrId",
# client_request_token: "ClientRequestToken",
# }
#
# @!attribute [rw] change_set_name
# The name or ARN of the change set that you want use to update the
# specified stack.
# @return [String]
#
# @!attribute [rw] stack_name
# If you specified the name of a change set, specify the stack name or
# ID (ARN) that is associated with the change set you want to execute.
# @return [String]
#
# @!attribute [rw] client_request_token
# A unique identifier for this `ExecuteChangeSet` request. Specify
# this token if you plan to retry requests so that AWS CloudFormation
# knows that you're not attempting to execute a change set to update
# a stack with the same name. You might retry `ExecuteChangeSet`
# requests to ensure that AWS CloudFormation successfully received
# them.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ExecuteChangeSetInput AWS API Documentation
#
class ExecuteChangeSetInput < Struct.new(
:change_set_name,
:stack_name,
:client_request_token)
SENSITIVE = []
include Aws::Structure
end
# The output for the ExecuteChangeSet action.
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ExecuteChangeSetOutput AWS API Documentation
#
class ExecuteChangeSetOutput < Aws::EmptyStructure; end
# The `Export` structure describes the exported output values for a
# stack.
#
# @!attribute [rw] exporting_stack_id
# The stack that contains the exported output name and value.
# @return [String]
#
# @!attribute [rw] name
# The name of exported output value. Use this name and the
# `Fn::ImportValue` function to import the associated value into other
# stacks. The name is defined in the `Export` field in the associated
# stack's `Outputs` section.
# @return [String]
#
# @!attribute [rw] value
# The value of the exported output, such as a resource physical ID.
# This value is defined in the `Export` field in the associated
# stack's `Outputs` section.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/Export AWS API Documentation
#
class Export < Struct.new(
:exporting_stack_id,
:name,
:value)
SENSITIVE = []
include Aws::Structure
end
# The input for the GetStackPolicy action.
#
# @note When making an API call, you may pass GetStackPolicyInput
# data as a hash:
#
# {
# stack_name: "StackName", # required
# }
#
# @!attribute [rw] stack_name
# The name or unique stack ID that is associated with the stack whose
# policy you want to get.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetStackPolicyInput AWS API Documentation
#
class GetStackPolicyInput < Struct.new(
:stack_name)
SENSITIVE = []
include Aws::Structure
end
# The output for the GetStackPolicy action.
#
# @!attribute [rw] stack_policy_body
# Structure containing the stack policy body. (For more information,
# go to [ Prevent Updates to Stack Resources][1] in the AWS
# CloudFormation User Guide.)
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetStackPolicyOutput AWS API Documentation
#
class GetStackPolicyOutput < Struct.new(
:stack_policy_body)
SENSITIVE = []
include Aws::Structure
end
# The input for a GetTemplate action.
#
# @note When making an API call, you may pass GetTemplateInput
# data as a hash:
#
# {
# stack_name: "StackName",
# change_set_name: "ChangeSetNameOrId",
# template_stage: "Original", # accepts Original, Processed
# }
#
# @!attribute [rw] stack_name
# The name or the unique stack ID that is associated with the stack,
# which are not always interchangeable:
#
# * Running stacks: You can specify either the stack's name or its
# unique stack ID.
#
# * Deleted stacks: You must specify the unique stack ID.
#
# Default: There is no default value.
# @return [String]
#
# @!attribute [rw] change_set_name
# The name or Amazon Resource Name (ARN) of a change set for which AWS
# CloudFormation returns the associated template. If you specify a
# name, you must also specify the `StackName`.
# @return [String]
#
# @!attribute [rw] template_stage
# For templates that include transforms, the stage of the template
# that AWS CloudFormation returns. To get the user-submitted template,
# specify `Original`. To get the template after AWS CloudFormation has
# processed all transforms, specify `Processed`.
#
# If the template doesn't include transforms, `Original` and
# `Processed` return the same template. By default, AWS CloudFormation
# specifies `Original`.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateInput AWS API Documentation
#
class GetTemplateInput < Struct.new(
:stack_name,
:change_set_name,
:template_stage)
SENSITIVE = []
include Aws::Structure
end
# The output for GetTemplate action.
#
# @!attribute [rw] template_body
# Structure containing the template body. (For more information, go to
# [Template Anatomy][1] in the AWS CloudFormation User Guide.)
#
# AWS CloudFormation returns the same template that was used when the
# stack was created.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
# @return [String]
#
# @!attribute [rw] stages_available
# The stage of the template that you can retrieve. For stacks, the
# `Original` and `Processed` templates are always available. For
# change sets, the `Original` template is always available. After AWS
# CloudFormation finishes creating the change set, the `Processed`
# template becomes available.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateOutput AWS API Documentation
#
class GetTemplateOutput < Struct.new(
:template_body,
:stages_available)
SENSITIVE = []
include Aws::Structure
end
# The input for the GetTemplateSummary action.
#
# @note When making an API call, you may pass GetTemplateSummaryInput
# data as a hash:
#
# {
# template_body: "TemplateBody",
# template_url: "TemplateURL",
# stack_name: "StackNameOrId",
# stack_set_name: "StackSetNameOrId",
# }
#
# @!attribute [rw] template_body
# Structure containing the template body with a minimum length of 1
# byte and a maximum length of 51,200 bytes. For more information
# about templates, see [Template Anatomy][1] in the AWS CloudFormation
# User Guide.
#
# Conditional: You must specify only one of the following parameters:
# `StackName`, `StackSetName`, `TemplateBody`, or `TemplateURL`.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
# @return [String]
#
# @!attribute [rw] template_url
# Location of file containing the template body. The URL must point to
# a template (max size: 460,800 bytes) that is located in an Amazon S3
# bucket. For more information about templates, see [Template
# Anatomy][1] in the AWS CloudFormation User Guide.
#
# Conditional: You must specify only one of the following parameters:
# `StackName`, `StackSetName`, `TemplateBody`, or `TemplateURL`.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
# @return [String]
#
# @!attribute [rw] stack_name
# The name or the stack ID that is associated with the stack, which
# are not always interchangeable. For running stacks, you can specify
# either the stack's name or its unique stack ID. For deleted stack,
# you must specify the unique stack ID.
#
# Conditional: You must specify only one of the following parameters:
# `StackName`, `StackSetName`, `TemplateBody`, or `TemplateURL`.
# @return [String]
#
# @!attribute [rw] stack_set_name
# The name or unique ID of the stack set from which the stack was
# created.
#
# Conditional: You must specify only one of the following parameters:
# `StackName`, `StackSetName`, `TemplateBody`, or `TemplateURL`.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateSummaryInput AWS API Documentation
#
class GetTemplateSummaryInput < Struct.new(
:template_body,
:template_url,
:stack_name,
:stack_set_name)
SENSITIVE = []
include Aws::Structure
end
# The output for the GetTemplateSummary action.
#
# @!attribute [rw] parameters
# A list of parameter declarations that describe various properties
# for each parameter.
# @return [Array]
#
# @!attribute [rw] description
# The value that is defined in the `Description` property of the
# template.
# @return [String]
#
# @!attribute [rw] capabilities
# The capabilities found within the template. If your template
# contains IAM resources, you must specify the CAPABILITY\_IAM or
# CAPABILITY\_NAMED\_IAM value for this parameter when you use the
# CreateStack or UpdateStack actions with your template; otherwise,
# those actions return an InsufficientCapabilities error.
#
# For more information, see [Acknowledging IAM Resources in AWS
# CloudFormation Templates][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities
# @return [Array]
#
# @!attribute [rw] capabilities_reason
# The list of resources that generated the values in the
# `Capabilities` response element.
# @return [String]
#
# @!attribute [rw] resource_types
# A list of all the template resource types that are defined in the
# template, such as `AWS::EC2::Instance`, `AWS::Dynamo::Table`, and
# `Custom::MyCustomInstance`.
# @return [Array]
#
# @!attribute [rw] version
# The AWS template format version, which identifies the capabilities
# of the template.
# @return [String]
#
# @!attribute [rw] metadata
# The value that is defined for the `Metadata` property of the
# template.
# @return [String]
#
# @!attribute [rw] declared_transforms
# A list of the transforms that are declared in the template.
# @return [Array]
#
# @!attribute [rw] resource_identifier_summaries
# A list of resource identifier summaries that describe the target
# resources of an import operation and the properties you can provide
# during the import to identify the target resources. For example,
# `BucketName` is a possible identifier property for an
# `AWS::S3::Bucket` resource.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/GetTemplateSummaryOutput AWS API Documentation
#
class GetTemplateSummaryOutput < Struct.new(
:parameters,
:description,
:capabilities,
:capabilities_reason,
:resource_types,
:version,
:metadata,
:declared_transforms,
:resource_identifier_summaries)
SENSITIVE = []
include Aws::Structure
end
# The template contains resources with capabilities that weren't
# specified in the Capabilities parameter.
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/InsufficientCapabilitiesException AWS API Documentation
#
class InsufficientCapabilitiesException < Aws::EmptyStructure; end
# The specified change set can't be used to update the stack. For
# example, the change set status might be `CREATE_IN_PROGRESS`, or the
# stack status might be `UPDATE_IN_PROGRESS`.
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/InvalidChangeSetStatusException AWS API Documentation
#
class InvalidChangeSetStatusException < Aws::EmptyStructure; end
# The specified operation isn't valid.
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/InvalidOperationException AWS API Documentation
#
class InvalidOperationException < Aws::EmptyStructure; end
# Error reserved for use by the [CloudFormation CLI][1]. CloudFormation
# does not return this error to users.
#
#
#
# [1]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/InvalidStateTransitionException AWS API Documentation
#
class InvalidStateTransitionException < Aws::EmptyStructure; end
# The quota for the resource has already been reached.
#
# For information on resource and stack limitations, see [Limits][1] in
# the *AWS CloudFormation User Guide*.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-limits.html
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/LimitExceededException AWS API Documentation
#
class LimitExceededException < Aws::EmptyStructure; end
# The input for the ListChangeSets action.
#
# @note When making an API call, you may pass ListChangeSetsInput
# data as a hash:
#
# {
# stack_name: "StackNameOrId", # required
# next_token: "NextToken",
# }
#
# @!attribute [rw] stack_name
# The name or the Amazon Resource Name (ARN) of the stack for which
# you want to list change sets.
# @return [String]
#
# @!attribute [rw] next_token
# A string (provided by the ListChangeSets response output) that
# identifies the next page of change sets that you want to retrieve.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListChangeSetsInput AWS API Documentation
#
class ListChangeSetsInput < Struct.new(
:stack_name,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# The output for the ListChangeSets action.
#
# @!attribute [rw] summaries
# A list of `ChangeSetSummary` structures that provides the ID and
# status of each change set for the specified stack.
# @return [Array]
#
# @!attribute [rw] next_token
# If the output exceeds 1 MB, a string that identifies the next page
# of change sets. If there is no additional page, this value is null.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListChangeSetsOutput AWS API Documentation
#
class ListChangeSetsOutput < Struct.new(
:summaries,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass ListExportsInput
# data as a hash:
#
# {
# next_token: "NextToken",
# }
#
# @!attribute [rw] next_token
# A string (provided by the ListExports response output) that
# identifies the next page of exported output values that you asked to
# retrieve.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListExportsInput AWS API Documentation
#
class ListExportsInput < Struct.new(
:next_token)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] exports
# The output for the ListExports action.
# @return [Array]
#
# @!attribute [rw] next_token
# If the output exceeds 100 exported output values, a string that
# identifies the next page of exports. If there is no additional page,
# this value is null.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListExportsOutput AWS API Documentation
#
class ListExportsOutput < Struct.new(
:exports,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass ListImportsInput
# data as a hash:
#
# {
# export_name: "ExportName", # required
# next_token: "NextToken",
# }
#
# @!attribute [rw] export_name
# The name of the exported output value. AWS CloudFormation returns
# the stack names that are importing this value.
# @return [String]
#
# @!attribute [rw] next_token
# A string (provided by the ListImports response output) that
# identifies the next page of stacks that are importing the specified
# exported output value.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListImportsInput AWS API Documentation
#
class ListImportsInput < Struct.new(
:export_name,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] imports
# A list of stack names that are importing the specified exported
# output value.
# @return [Array]
#
# @!attribute [rw] next_token
# A string that identifies the next page of exports. If there is no
# additional page, this value is null.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListImportsOutput AWS API Documentation
#
class ListImportsOutput < Struct.new(
:imports,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass ListStackInstancesInput
# data as a hash:
#
# {
# stack_set_name: "StackSetName", # required
# next_token: "NextToken",
# max_results: 1,
# filters: [
# {
# name: "DETAILED_STATUS", # accepts DETAILED_STATUS
# values: "StackInstanceFilterValues",
# },
# ],
# stack_instance_account: "Account",
# stack_instance_region: "Region",
# }
#
# @!attribute [rw] stack_set_name
# The name or unique ID of the stack set that you want to list stack
# instances for.
# @return [String]
#
# @!attribute [rw] next_token
# If the previous request didn't return all of the remaining results,
# the response's `NextToken` parameter value is set to a token. To
# retrieve the next set of results, call `ListStackInstances` again
# and assign that token to the request object's `NextToken`
# parameter. If there are no remaining results, the previous response
# object's `NextToken` parameter is set to `null`.
# @return [String]
#
# @!attribute [rw] max_results
# The maximum number of results to be returned with a single call. If
# the number of available results exceeds this maximum, the response
# includes a `NextToken` value that you can assign to the `NextToken`
# request parameter to get the next set of results.
# @return [Integer]
#
# @!attribute [rw] filters
# The status that stack instances are filtered by.
# @return [Array]
#
# @!attribute [rw] stack_instance_account
# The name of the AWS account that you want to list stack instances
# for.
# @return [String]
#
# @!attribute [rw] stack_instance_region
# The name of the Region where you want to list stack instances.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackInstancesInput AWS API Documentation
#
class ListStackInstancesInput < Struct.new(
:stack_set_name,
:next_token,
:max_results,
:filters,
:stack_instance_account,
:stack_instance_region)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] summaries
# A list of `StackInstanceSummary` structures that contain information
# about the specified stack instances.
# @return [Array]
#
# @!attribute [rw] next_token
# If the request doesn't return all of the remaining results,
# `NextToken` is set to a token. To retrieve the next set of results,
# call `ListStackInstances` again and assign that token to the request
# object's `NextToken` parameter. If the request returns all results,
# `NextToken` is set to `null`.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackInstancesOutput AWS API Documentation
#
class ListStackInstancesOutput < Struct.new(
:summaries,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# The input for the ListStackResource action.
#
# @note When making an API call, you may pass ListStackResourcesInput
# data as a hash:
#
# {
# stack_name: "StackName", # required
# next_token: "NextToken",
# }
#
# @!attribute [rw] stack_name
# The name or the unique stack ID that is associated with the stack,
# which are not always interchangeable:
#
# * Running stacks: You can specify either the stack's name or its
# unique stack ID.
#
# * Deleted stacks: You must specify the unique stack ID.
#
# Default: There is no default value.
# @return [String]
#
# @!attribute [rw] next_token
# A string that identifies the next page of stack resources that you
# want to retrieve.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackResourcesInput AWS API Documentation
#
class ListStackResourcesInput < Struct.new(
:stack_name,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# The output for a ListStackResources action.
#
# @!attribute [rw] stack_resource_summaries
# A list of `StackResourceSummary` structures.
# @return [Array]
#
# @!attribute [rw] next_token
# If the output exceeds 1 MB, a string that identifies the next page
# of stack resources. If no additional page exists, this value is
# null.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackResourcesOutput AWS API Documentation
#
class ListStackResourcesOutput < Struct.new(
:stack_resource_summaries,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass ListStackSetOperationResultsInput
# data as a hash:
#
# {
# stack_set_name: "StackSetName", # required
# operation_id: "ClientRequestToken", # required
# next_token: "NextToken",
# max_results: 1,
# }
#
# @!attribute [rw] stack_set_name
# The name or unique ID of the stack set that you want to get
# operation results for.
# @return [String]
#
# @!attribute [rw] operation_id
# The ID of the stack set operation.
# @return [String]
#
# @!attribute [rw] next_token
# If the previous request didn't return all of the remaining results,
# the response object's `NextToken` parameter value is set to a
# token. To retrieve the next set of results, call
# `ListStackSetOperationResults` again and assign that token to the
# request object's `NextToken` parameter. If there are no remaining
# results, the previous response object's `NextToken` parameter is
# set to `null`.
# @return [String]
#
# @!attribute [rw] max_results
# The maximum number of results to be returned with a single call. If
# the number of available results exceeds this maximum, the response
# includes a `NextToken` value that you can assign to the `NextToken`
# request parameter to get the next set of results.
# @return [Integer]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperationResultsInput AWS API Documentation
#
class ListStackSetOperationResultsInput < Struct.new(
:stack_set_name,
:operation_id,
:next_token,
:max_results)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] summaries
# A list of `StackSetOperationResultSummary` structures that contain
# information about the specified operation results, for accounts and
# Regions that are included in the operation.
# @return [Array]
#
# @!attribute [rw] next_token
# If the request doesn't return all results, `NextToken` is set to a
# token. To retrieve the next set of results, call
# `ListOperationResults` again and assign that token to the request
# object's `NextToken` parameter. If there are no remaining results,
# `NextToken` is set to `null`.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperationResultsOutput AWS API Documentation
#
class ListStackSetOperationResultsOutput < Struct.new(
:summaries,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass ListStackSetOperationsInput
# data as a hash:
#
# {
# stack_set_name: "StackSetName", # required
# next_token: "NextToken",
# max_results: 1,
# }
#
# @!attribute [rw] stack_set_name
# The name or unique ID of the stack set that you want to get
# operation summaries for.
# @return [String]
#
# @!attribute [rw] next_token
# If the previous paginated request didn't return all of the
# remaining results, the response object's `NextToken` parameter
# value is set to a token. To retrieve the next set of results, call
# `ListStackSetOperations` again and assign that token to the request
# object's `NextToken` parameter. If there are no remaining results,
# the previous response object's `NextToken` parameter is set to
# `null`.
# @return [String]
#
# @!attribute [rw] max_results
# The maximum number of results to be returned with a single call. If
# the number of available results exceeds this maximum, the response
# includes a `NextToken` value that you can assign to the `NextToken`
# request parameter to get the next set of results.
# @return [Integer]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperationsInput AWS API Documentation
#
class ListStackSetOperationsInput < Struct.new(
:stack_set_name,
:next_token,
:max_results)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] summaries
# A list of `StackSetOperationSummary` structures that contain summary
# information about operations for the specified stack set.
# @return [Array]
#
# @!attribute [rw] next_token
# If the request doesn't return all results, `NextToken` is set to a
# token. To retrieve the next set of results, call
# `ListOperationResults` again and assign that token to the request
# object's `NextToken` parameter. If there are no remaining results,
# `NextToken` is set to `null`.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetOperationsOutput AWS API Documentation
#
class ListStackSetOperationsOutput < Struct.new(
:summaries,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass ListStackSetsInput
# data as a hash:
#
# {
# next_token: "NextToken",
# max_results: 1,
# status: "ACTIVE", # accepts ACTIVE, DELETED
# }
#
# @!attribute [rw] next_token
# If the previous paginated request didn't return all of the
# remaining results, the response object's `NextToken` parameter
# value is set to a token. To retrieve the next set of results, call
# `ListStackSets` again and assign that token to the request object's
# `NextToken` parameter. If there are no remaining results, the
# previous response object's `NextToken` parameter is set to `null`.
# @return [String]
#
# @!attribute [rw] max_results
# The maximum number of results to be returned with a single call. If
# the number of available results exceeds this maximum, the response
# includes a `NextToken` value that you can assign to the `NextToken`
# request parameter to get the next set of results.
# @return [Integer]
#
# @!attribute [rw] status
# The status of the stack sets that you want to get summary
# information about.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetsInput AWS API Documentation
#
class ListStackSetsInput < Struct.new(
:next_token,
:max_results,
:status)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] summaries
# A list of `StackSetSummary` structures that contain information
# about the user's stack sets.
# @return [Array]
#
# @!attribute [rw] next_token
# If the request doesn't return all of the remaining results,
# `NextToken` is set to a token. To retrieve the next set of results,
# call `ListStackInstances` again and assign that token to the request
# object's `NextToken` parameter. If the request returns all results,
# `NextToken` is set to `null`.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStackSetsOutput AWS API Documentation
#
class ListStackSetsOutput < Struct.new(
:summaries,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# The input for ListStacks action.
#
# @note When making an API call, you may pass ListStacksInput
# data as a hash:
#
# {
# next_token: "NextToken",
# 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, IMPORT_IN_PROGRESS, IMPORT_COMPLETE, IMPORT_ROLLBACK_IN_PROGRESS, IMPORT_ROLLBACK_FAILED, IMPORT_ROLLBACK_COMPLETE
# }
#
# @!attribute [rw] next_token
# A string that identifies the next page of stacks that you want to
# retrieve.
# @return [String]
#
# @!attribute [rw] stack_status_filter
# Stack status to use as a filter. Specify one or more stack status
# codes to list only stacks with the specified status codes. For a
# complete list of stack status codes, see the `StackStatus` parameter
# of the Stack data type.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStacksInput AWS API Documentation
#
class ListStacksInput < Struct.new(
:next_token,
:stack_status_filter)
SENSITIVE = []
include Aws::Structure
end
# The output for ListStacks action.
#
# @!attribute [rw] stack_summaries
# A list of `StackSummary` structures containing information about the
# specified stacks.
# @return [Array]
#
# @!attribute [rw] next_token
# If the output exceeds 1 MB in size, a string that identifies the
# next page of stacks. If no additional page exists, this value is
# null.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListStacksOutput AWS API Documentation
#
class ListStacksOutput < Struct.new(
:stack_summaries,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass ListTypeRegistrationsInput
# data as a hash:
#
# {
# type: "RESOURCE", # accepts RESOURCE
# type_name: "TypeName",
# type_arn: "TypeArn",
# registration_status_filter: "COMPLETE", # accepts COMPLETE, IN_PROGRESS, FAILED
# max_results: 1,
# next_token: "NextToken",
# }
#
# @!attribute [rw] type
# The kind of type.
#
# Currently the only valid value is `RESOURCE`.
#
# Conditional: You must specify either `TypeName` and `Type`, or
# `Arn`.
# @return [String]
#
# @!attribute [rw] type_name
# The name of the type.
#
# Conditional: You must specify either `TypeName` and `Type`, or
# `Arn`.
# @return [String]
#
# @!attribute [rw] type_arn
# The Amazon Resource Name (ARN) of the type.
#
# Conditional: You must specify either `TypeName` and `Type`, or
# `Arn`.
# @return [String]
#
# @!attribute [rw] registration_status_filter
# The current status of the type registration request.
#
# The default is `IN_PROGRESS`.
# @return [String]
#
# @!attribute [rw] max_results
# The maximum number of results to be returned with a single call. If
# the number of available results exceeds this maximum, the response
# includes a `NextToken` value that you can assign to the `NextToken`
# request parameter to get the next set of results.
# @return [Integer]
#
# @!attribute [rw] next_token
# If the previous paginated request didn't return all of the
# remaining results, the response object's `NextToken` parameter
# value is set to a token. To retrieve the next set of results, call
# this action again and assign that token to the request object's
# `NextToken` parameter. If there are no remaining results, the
# previous response object's `NextToken` parameter is set to `null`.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeRegistrationsInput AWS API Documentation
#
class ListTypeRegistrationsInput < Struct.new(
:type,
:type_name,
:type_arn,
:registration_status_filter,
:max_results,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] registration_token_list
# A list of type registration tokens.
#
# Use ` DescribeTypeRegistration ` to return detailed information
# about a type registration request.
# @return [Array]
#
# @!attribute [rw] next_token
# If the request doesn't return all of the remaining results,
# `NextToken` is set to a token. To retrieve the next set of results,
# call this action again and assign that token to the request
# object's `NextToken` parameter. If the request returns all results,
# `NextToken` is set to `null`.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeRegistrationsOutput AWS API Documentation
#
class ListTypeRegistrationsOutput < Struct.new(
:registration_token_list,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass ListTypeVersionsInput
# data as a hash:
#
# {
# type: "RESOURCE", # accepts RESOURCE
# type_name: "TypeName",
# arn: "PrivateTypeArn",
# max_results: 1,
# next_token: "NextToken",
# deprecated_status: "LIVE", # accepts LIVE, DEPRECATED
# }
#
# @!attribute [rw] type
# The kind of the type.
#
# Currently the only valid value is `RESOURCE`.
#
# Conditional: You must specify either `TypeName` and `Type`, or
# `Arn`.
# @return [String]
#
# @!attribute [rw] type_name
# The name of the type for which you want version summary information.
#
# Conditional: You must specify either `TypeName` and `Type`, or
# `Arn`.
# @return [String]
#
# @!attribute [rw] arn
# The Amazon Resource Name (ARN) of the type for which you want
# version summary information.
#
# Conditional: You must specify either `TypeName` and `Type`, or
# `Arn`.
# @return [String]
#
# @!attribute [rw] max_results
# The maximum number of results to be returned with a single call. If
# the number of available results exceeds this maximum, the response
# includes a `NextToken` value that you can assign to the `NextToken`
# request parameter to get the next set of results.
# @return [Integer]
#
# @!attribute [rw] next_token
# If the previous paginated request didn't return all of the
# remaining results, the response object's `NextToken` parameter
# value is set to a token. To retrieve the next set of results, call
# this action again and assign that token to the request object's
# `NextToken` parameter. If there are no remaining results, the
# previous response object's `NextToken` parameter is set to `null`.
# @return [String]
#
# @!attribute [rw] deprecated_status
# The deprecation status of the type versions that you want to get
# summary information about.
#
# Valid values include:
#
# * `LIVE`\: The type version is registered and can be used in
# CloudFormation operations, dependent on its provisioning behavior
# and visibility scope.
#
# * `DEPRECATED`\: The type version has been deregistered and can no
# longer be used in CloudFormation operations.
#
# The default is `LIVE`.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeVersionsInput AWS API Documentation
#
class ListTypeVersionsInput < Struct.new(
:type,
:type_name,
:arn,
:max_results,
:next_token,
:deprecated_status)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] type_version_summaries
# A list of `TypeVersionSummary` structures that contain information
# about the specified type's versions.
# @return [Array]
#
# @!attribute [rw] next_token
# If the request doesn't return all of the remaining results,
# `NextToken` is set to a token. To retrieve the next set of results,
# call this action again and assign that token to the request
# object's `NextToken` parameter. If the request returns all results,
# `NextToken` is set to `null`.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypeVersionsOutput AWS API Documentation
#
class ListTypeVersionsOutput < Struct.new(
:type_version_summaries,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass ListTypesInput
# data as a hash:
#
# {
# visibility: "PUBLIC", # accepts PUBLIC, PRIVATE
# provisioning_type: "NON_PROVISIONABLE", # accepts NON_PROVISIONABLE, IMMUTABLE, FULLY_MUTABLE
# deprecated_status: "LIVE", # accepts LIVE, DEPRECATED
# max_results: 1,
# next_token: "NextToken",
# }
#
# @!attribute [rw] visibility
# The scope at which the type is visible and usable in CloudFormation
# operations.
#
# Valid values include:
#
# * `PRIVATE`\: The type is only visible and usable within the account
# in which it is registered. Currently, AWS CloudFormation marks any
# types you create as `PRIVATE`.
#
# * `PUBLIC`\: The type is publically visible and usable within any
# Amazon account.
#
# The default is `PRIVATE`.
# @return [String]
#
# @!attribute [rw] provisioning_type
# The provisioning behavior of the type. AWS CloudFormation determines
# the provisioning type during registration, based on the types of
# handlers in the schema handler package submitted.
#
# Valid values include:
#
# * `FULLY_MUTABLE`\: The type includes an update handler to process
# updates to the type during stack update operations.
#
# * `IMMUTABLE`\: The type does not include an update handler, so the
# type cannot be updated and must instead be replaced during stack
# update operations.
#
# * `NON_PROVISIONABLE`\: The type does not include create, read, and
# delete handlers, and therefore cannot actually be provisioned.
# @return [String]
#
# @!attribute [rw] deprecated_status
# The deprecation status of the types that you want to get summary
# information about.
#
# Valid values include:
#
# * `LIVE`\: The type is registered for use in CloudFormation
# operations.
#
# * `DEPRECATED`\: The type has been deregistered and can no longer be
# used in CloudFormation operations.
# @return [String]
#
# @!attribute [rw] max_results
# The maximum number of results to be returned with a single call. If
# the number of available results exceeds this maximum, the response
# includes a `NextToken` value that you can assign to the `NextToken`
# request parameter to get the next set of results.
# @return [Integer]
#
# @!attribute [rw] next_token
# If the previous paginated request didn't return all of the
# remaining results, the response object's `NextToken` parameter
# value is set to a token. To retrieve the next set of results, call
# this action again and assign that token to the request object's
# `NextToken` parameter. If there are no remaining results, the
# previous response object's `NextToken` parameter is set to `null`.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypesInput AWS API Documentation
#
class ListTypesInput < Struct.new(
:visibility,
:provisioning_type,
:deprecated_status,
:max_results,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] type_summaries
# A list of `TypeSummary` structures that contain information about
# the specified types.
# @return [Array]
#
# @!attribute [rw] next_token
# If the request doesn't return all of the remaining results,
# `NextToken` is set to a token. To retrieve the next set of results,
# call this action again and assign that token to the request
# object's `NextToken` parameter. If the request returns all results,
# `NextToken` is set to `null`.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ListTypesOutput AWS API Documentation
#
class ListTypesOutput < Struct.new(
:type_summaries,
:next_token)
SENSITIVE = []
include Aws::Structure
end
# Contains logging configuration information for a type.
#
# @note When making an API call, you may pass LoggingConfig
# data as a hash:
#
# {
# log_role_arn: "RoleArn", # required
# log_group_name: "LogGroupName", # required
# }
#
# @!attribute [rw] log_role_arn
# The ARN of the role that CloudFormation should assume when sending
# log entries to CloudWatch logs.
# @return [String]
#
# @!attribute [rw] log_group_name
# The Amazon CloudWatch log group to which CloudFormation sends error
# logging information when invoking the type's handlers.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/LoggingConfig AWS API Documentation
#
class LoggingConfig < Struct.new(
:log_role_arn,
:log_group_name)
SENSITIVE = []
include Aws::Structure
end
# The specified name is already in use.
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/NameAlreadyExistsException AWS API Documentation
#
class NameAlreadyExistsException < Aws::EmptyStructure; end
# The specified operation ID already exists.
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/OperationIdAlreadyExistsException AWS API Documentation
#
class OperationIdAlreadyExistsException < Aws::EmptyStructure; end
# Another operation is currently in progress for this stack set. Only
# one operation can be performed for a stack set at a given time.
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/OperationInProgressException AWS API Documentation
#
class OperationInProgressException < Aws::EmptyStructure; end
# The specified ID refers to an operation that doesn't exist.
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/OperationNotFoundException AWS API Documentation
#
class OperationNotFoundException < Aws::EmptyStructure; end
# Error reserved for use by the [CloudFormation CLI][1]. CloudFormation
# does not return this error to users.
#
#
#
# [1]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/OperationStatusCheckFailedException AWS API Documentation
#
class OperationStatusCheckFailedException < Aws::EmptyStructure; end
# The Output data type.
#
# @!attribute [rw] output_key
# The key associated with the output.
# @return [String]
#
# @!attribute [rw] output_value
# The value associated with the output.
# @return [String]
#
# @!attribute [rw] description
# User defined description associated with the output.
# @return [String]
#
# @!attribute [rw] export_name
# The name of the export associated with the output.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/Output AWS API Documentation
#
class Output < Struct.new(
:output_key,
:output_value,
:description,
:export_name)
SENSITIVE = []
include Aws::Structure
end
# The Parameter data type.
#
# @note When making an API call, you may pass Parameter
# data as a hash:
#
# {
# parameter_key: "ParameterKey",
# parameter_value: "ParameterValue",
# use_previous_value: false,
# resolved_value: "ParameterValue",
# }
#
# @!attribute [rw] parameter_key
# The key associated with the parameter. If you don't specify a key
# and value for a particular parameter, AWS CloudFormation uses the
# default value that is specified in your template.
# @return [String]
#
# @!attribute [rw] parameter_value
# The input value associated with the parameter.
# @return [String]
#
# @!attribute [rw] use_previous_value
# During a stack update, use the existing parameter value that the
# stack is using for a given parameter key. If you specify `true`, do
# not specify a parameter value.
# @return [Boolean]
#
# @!attribute [rw] resolved_value
# Read-only. The value that corresponds to a Systems Manager parameter
# key. This field is returned only for [ `SSM` parameter types][1] in
# the template.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html#aws-ssm-parameter-types
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/Parameter AWS API Documentation
#
class Parameter < Struct.new(
:parameter_key,
:parameter_value,
:use_previous_value,
:resolved_value)
SENSITIVE = []
include Aws::Structure
end
# A set of criteria that AWS CloudFormation uses to validate parameter
# values. Although other constraints might be defined in the stack
# template, AWS CloudFormation returns only the `AllowedValues`
# property.
#
# @!attribute [rw] allowed_values
# A list of values that are permitted for a parameter.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ParameterConstraints AWS API Documentation
#
class ParameterConstraints < Struct.new(
:allowed_values)
SENSITIVE = []
include Aws::Structure
end
# The ParameterDeclaration data type.
#
# @!attribute [rw] parameter_key
# The name that is associated with the parameter.
# @return [String]
#
# @!attribute [rw] default_value
# The default value of the parameter.
# @return [String]
#
# @!attribute [rw] parameter_type
# The type of parameter.
# @return [String]
#
# @!attribute [rw] no_echo
# Flag that indicates whether the parameter value is shown as plain
# text in logs and in the AWS Management Console.
# @return [Boolean]
#
# @!attribute [rw] description
# The description that is associate with the parameter.
# @return [String]
#
# @!attribute [rw] parameter_constraints
# The criteria that AWS CloudFormation uses to validate parameter
# values.
# @return [Types::ParameterConstraints]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ParameterDeclaration AWS API Documentation
#
class ParameterDeclaration < Struct.new(
:parameter_key,
:default_value,
:parameter_type,
:no_echo,
:description,
:parameter_constraints)
SENSITIVE = []
include Aws::Structure
end
# Context information that enables AWS CloudFormation to uniquely
# identify a resource. AWS CloudFormation uses context key-value pairs
# in cases where a resource's logical and physical IDs are not enough
# to uniquely identify that resource. Each context key-value pair
# specifies a resource that contains the targeted resource.
#
# @!attribute [rw] key
# The resource context key.
# @return [String]
#
# @!attribute [rw] value
# The resource context value.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/PhysicalResourceIdContextKeyValuePair AWS API Documentation
#
class PhysicalResourceIdContextKeyValuePair < Struct.new(
:key,
:value)
SENSITIVE = []
include Aws::Structure
end
# Information about a resource property whose actual value differs from
# its expected value, as defined in the stack template and any values
# specified as template parameters. These will be present only for
# resources whose `StackResourceDriftStatus` is `MODIFIED`. For more
# information, see [Detecting Unregulated Configuration Changes to
# Stacks and Resources][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html
#
# @!attribute [rw] property_path
# The fully-qualified path to the resource property.
# @return [String]
#
# @!attribute [rw] expected_value
# The expected property value of the resource property, as defined in
# the stack template and any values specified as template parameters.
# @return [String]
#
# @!attribute [rw] actual_value
# The actual property value of the resource property.
# @return [String]
#
# @!attribute [rw] difference_type
# The type of property difference.
#
# * `ADD`\: A value has been added to a resource property that is an
# array or list data type.
#
# * `REMOVE`\: The property has been removed from the current resource
# configuration.
#
# * `NOT_EQUAL`\: The current property value differs from its expected
# value (as defined in the stack template and any values specified
# as template parameters).
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/PropertyDifference AWS API Documentation
#
class PropertyDifference < Struct.new(
:property_path,
:expected_value,
:actual_value,
:difference_type)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass RecordHandlerProgressInput
# data as a hash:
#
# {
# bearer_token: "ClientToken", # required
# operation_status: "PENDING", # required, accepts PENDING, IN_PROGRESS, SUCCESS, FAILED
# current_operation_status: "PENDING", # accepts PENDING, IN_PROGRESS, SUCCESS, FAILED
# status_message: "StatusMessage",
# error_code: "NotUpdatable", # accepts NotUpdatable, InvalidRequest, AccessDenied, InvalidCredentials, AlreadyExists, NotFound, ResourceConflict, Throttling, ServiceLimitExceeded, NotStabilized, GeneralServiceException, ServiceInternalError, NetworkFailure, InternalFailure
# resource_model: "ResourceModel",
# client_request_token: "ClientRequestToken",
# }
#
# @!attribute [rw] bearer_token
# Reserved for use by the [CloudFormation CLI][1].
#
#
#
# [1]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html
# @return [String]
#
# @!attribute [rw] operation_status
# Reserved for use by the [CloudFormation CLI][1].
#
#
#
# [1]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html
# @return [String]
#
# @!attribute [rw] current_operation_status
# Reserved for use by the [CloudFormation CLI][1].
#
#
#
# [1]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html
# @return [String]
#
# @!attribute [rw] status_message
# Reserved for use by the [CloudFormation CLI][1].
#
#
#
# [1]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html
# @return [String]
#
# @!attribute [rw] error_code
# Reserved for use by the [CloudFormation CLI][1].
#
#
#
# [1]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html
# @return [String]
#
# @!attribute [rw] resource_model
# Reserved for use by the [CloudFormation CLI][1].
#
#
#
# [1]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html
# @return [String]
#
# @!attribute [rw] client_request_token
# Reserved for use by the [CloudFormation CLI][1].
#
#
#
# [1]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/what-is-cloudformation-cli.html
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RecordHandlerProgressInput AWS API Documentation
#
class RecordHandlerProgressInput < Struct.new(
:bearer_token,
:operation_status,
:current_operation_status,
:status_message,
:error_code,
:resource_model,
:client_request_token)
SENSITIVE = []
include Aws::Structure
end
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RecordHandlerProgressOutput AWS API Documentation
#
class RecordHandlerProgressOutput < Aws::EmptyStructure; end
# @note When making an API call, you may pass RegisterTypeInput
# data as a hash:
#
# {
# type: "RESOURCE", # accepts RESOURCE
# type_name: "TypeName", # required
# schema_handler_package: "S3Url", # required
# logging_config: {
# log_role_arn: "RoleArn", # required
# log_group_name: "LogGroupName", # required
# },
# execution_role_arn: "RoleArn",
# client_request_token: "RequestToken",
# }
#
# @!attribute [rw] type
# The kind of type.
#
# Currently, the only valid value is `RESOURCE`.
# @return [String]
#
# @!attribute [rw] type_name
# The name of the type being registered.
#
# We recommend that type names adhere to the following pattern:
# *company\_or\_organization*\::*service*\::*type*.
#
# The following organization namespaces are reserved and cannot be
# used in your resource type names:
#
# * `Alexa`
#
# * `AMZN`
#
# * `Amazon`
#
# * `AWS`
#
# * `Custom`
#
# * `Dev`
#
#
# @return [String]
#
# @!attribute [rw] schema_handler_package
# A url to the S3 bucket containing the schema handler package that
# contains the schema, event handlers, and associated files for the
# type you want to register.
#
# For information on generating a schema handler package for the type
# you want to register, see [submit][1] in the *CloudFormation CLI
# User Guide*.
#
# As part of registering a resource provider type, CloudFormation must
# be able to access the S3 bucket which contains the schema handler
# package for that resource provider. For more information, see [IAM
# Permissions for Registering a Resource Provider][2] in the *AWS
# CloudFormation User Guide*.
#
#
#
#
#
# [1]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-cli-submit.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry.html#registry-register-permissions
# @return [String]
#
# @!attribute [rw] logging_config
# Specifies logging configuration information for a type.
# @return [Types::LoggingConfig]
#
# @!attribute [rw] execution_role_arn
# The Amazon Resource Name (ARN) of the IAM role for CloudFormation to
# assume when invoking the resource provider. If your resource type
# calls AWS APIs in any of its handlers, you must create an IAM
# execution role that includes the necessary permissions to
# call those AWS APIs, and provision that execution role in your
# account. When CloudFormation needs to invoke the resource provider
# handler, CloudFormation assumes this execution role to create a
# temporary session token, which it then passes to the resource
# provider handler, thereby supplying your resource provider with the
# appropriate credentials.
# @return [String]
#
# @!attribute [rw] client_request_token
# A unique identifier that acts as an idempotency key for this
# registration request. Specifying a client request token prevents
# CloudFormation from generating more than one version of a type from
# the same registeration request, even if the request is submitted
# multiple times.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterTypeInput AWS API Documentation
#
class RegisterTypeInput < Struct.new(
:type,
:type_name,
:schema_handler_package,
:logging_config,
:execution_role_arn,
:client_request_token)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] registration_token
# The identifier for this registration request.
#
# Use this registration token when calling ` DescribeTypeRegistration
# `, which returns information about the status and IDs of the type
# registration.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RegisterTypeOutput AWS API Documentation
#
class RegisterTypeOutput < Struct.new(
:registration_token)
SENSITIVE = []
include Aws::Structure
end
# The `ResourceChange` structure describes the resource and the action
# that AWS CloudFormation will perform on it if you execute this change
# set.
#
# @!attribute [rw] action
# The action that AWS CloudFormation takes on the resource, such as
# `Add` (adds a new resource), `Modify` (changes a resource), or
# `Remove` (deletes a resource).
# @return [String]
#
# @!attribute [rw] logical_resource_id
# The resource's logical ID, which is defined in the stack's
# template.
# @return [String]
#
# @!attribute [rw] physical_resource_id
# The resource's physical ID (resource name). Resources that you are
# adding don't have physical IDs because they haven't been created.
# @return [String]
#
# @!attribute [rw] resource_type
# The type of AWS CloudFormation resource, such as `AWS::S3::Bucket`.
# @return [String]
#
# @!attribute [rw] replacement
# For the `Modify` action, indicates whether AWS CloudFormation will
# replace the resource by creating a new one and deleting the old one.
# This value depends on the value of the `RequiresRecreation` property
# in the `ResourceTargetDefinition` structure. For example, if the
# `RequiresRecreation` field is `Always` and the `Evaluation` field is
# `Static`, `Replacement` is `True`. If the `RequiresRecreation` field
# is `Always` and the `Evaluation` field is `Dynamic`, `Replacement`
# is `Conditionally`.
#
# If you have multiple changes with different `RequiresRecreation`
# values, the `Replacement` value depends on the change with the most
# impact. A `RequiresRecreation` value of `Always` has the most
# impact, followed by `Conditionally`, and then `Never`.
# @return [String]
#
# @!attribute [rw] scope
# For the `Modify` action, indicates which resource attribute is
# triggering this update, such as a change in the resource
# attribute's `Metadata`, `Properties`, or `Tags`.
# @return [Array]
#
# @!attribute [rw] details
# For the `Modify` action, a list of `ResourceChangeDetail` structures
# that describes the changes that AWS CloudFormation will make to the
# resource.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ResourceChange AWS API Documentation
#
class ResourceChange < Struct.new(
:action,
:logical_resource_id,
:physical_resource_id,
:resource_type,
:replacement,
:scope,
:details)
SENSITIVE = []
include Aws::Structure
end
# For a resource with `Modify` as the action, the `ResourceChange`
# structure describes the changes AWS CloudFormation will make to that
# resource.
#
# @!attribute [rw] target
# A `ResourceTargetDefinition` structure that describes the field that
# AWS CloudFormation will change and whether the resource will be
# recreated.
# @return [Types::ResourceTargetDefinition]
#
# @!attribute [rw] evaluation
# Indicates whether AWS CloudFormation can determine the target value,
# and whether the target value will change before you execute a change
# set.
#
# For `Static` evaluations, AWS CloudFormation can determine that the
# target value will change, and its value. For example, if you
# directly modify the `InstanceType` property of an EC2 instance, AWS
# CloudFormation knows that this property value will change, and its
# value, so this is a `Static` evaluation.
#
# For `Dynamic` evaluations, cannot determine the target value because
# it depends on the result of an intrinsic function, such as a `Ref`
# or `Fn::GetAtt` intrinsic function, when the stack is updated. For
# example, if your template includes a reference to a resource that is
# conditionally recreated, the value of the reference (the physical ID
# of the resource) might change, depending on if the resource is
# recreated. If the resource is recreated, it will have a new physical
# ID, so all references to that resource will also be updated.
# @return [String]
#
# @!attribute [rw] change_source
# The group to which the `CausingEntity` value belongs. There are five
# entity groups:
#
# * `ResourceReference` entities are `Ref` intrinsic functions that
# refer to resources in the template, such as `\{ "Ref" :
# "MyEC2InstanceResource" \}`.
#
# * `ParameterReference` entities are `Ref` intrinsic functions that
# get template parameter values, such as `\{ "Ref" :
# "MyPasswordParameter" \}`.
#
# * `ResourceAttribute` entities are `Fn::GetAtt` intrinsic functions
# that get resource attribute values, such as `\{ "Fn::GetAtt" : [
# "MyEC2InstanceResource", "PublicDnsName" ] \}`.
#
# * `DirectModification` entities are changes that are made directly
# to the template.
#
# * `Automatic` entities are `AWS::CloudFormation::Stack` resource
# types, which are also known as nested stacks. If you made no
# changes to the `AWS::CloudFormation::Stack` resource, AWS
# CloudFormation sets the `ChangeSource` to `Automatic` because the
# nested stack's template might have changed. Changes to a nested
# stack's template aren't visible to AWS CloudFormation until you
# run an update on the parent stack.
# @return [String]
#
# @!attribute [rw] causing_entity
# The identity of the entity that triggered this change. This entity
# is a member of the group that is specified by the `ChangeSource`
# field. For example, if you modified the value of the `KeyPairName`
# parameter, the `CausingEntity` is the name of the parameter
# (`KeyPairName`).
#
# If the `ChangeSource` value is `DirectModification`, no value is
# given for `CausingEntity`.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ResourceChangeDetail AWS API Documentation
#
class ResourceChangeDetail < Struct.new(
:target,
:evaluation,
:change_source,
:causing_entity)
SENSITIVE = []
include Aws::Structure
end
# Describes the target resources of a specific type in your import
# template (for example, all `AWS::S3::Bucket` resources) and the
# properties you can provide during the import to identify resources of
# that type.
#
# @!attribute [rw] resource_type
# The template resource type of the target resources, such as
# `AWS::S3::Bucket`.
# @return [String]
#
# @!attribute [rw] logical_resource_ids
# The logical IDs of the target resources of the specified
# `ResourceType`, as defined in the import template.
# @return [Array]
#
# @!attribute [rw] resource_identifiers
# The resource properties you can provide during the import to
# identify your target resources. For example, `BucketName` is a
# possible identifier property for `AWS::S3::Bucket` resources.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ResourceIdentifierSummary AWS API Documentation
#
class ResourceIdentifierSummary < Struct.new(
:resource_type,
:logical_resource_ids,
:resource_identifiers)
SENSITIVE = []
include Aws::Structure
end
# The field that AWS CloudFormation will change, such as the name of a
# resource's property, and whether the resource will be recreated.
#
# @!attribute [rw] attribute
# Indicates which resource attribute is triggering this update, such
# as a change in the resource attribute's `Metadata`, `Properties`,
# or `Tags`.
# @return [String]
#
# @!attribute [rw] name
# If the `Attribute` value is `Properties`, the name of the property.
# For all other attributes, the value is null.
# @return [String]
#
# @!attribute [rw] requires_recreation
# If the `Attribute` value is `Properties`, indicates whether a change
# to this property causes the resource to be recreated. The value can
# be `Never`, `Always`, or `Conditionally`. To determine the
# conditions for a `Conditionally` recreation, see the update behavior
# for that [property][1] in the AWS CloudFormation User Guide.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ResourceTargetDefinition AWS API Documentation
#
class ResourceTargetDefinition < Struct.new(
:attribute,
:name,
:requires_recreation)
SENSITIVE = []
include Aws::Structure
end
# Describes the target resource of an import operation.
#
# @note When making an API call, you may pass ResourceToImport
# data as a hash:
#
# {
# resource_type: "ResourceType", # required
# logical_resource_id: "LogicalResourceId", # required
# resource_identifier: { # required
# "ResourceIdentifierPropertyKey" => "ResourceIdentifierPropertyValue",
# },
# }
#
# @!attribute [rw] resource_type
# The type of resource to import into your stack, such as
# `AWS::S3::Bucket`. For a list of supported resource types, see
# [Resources that support import operations][1] in the AWS
# CloudFormation User Guide.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/resource-import-supported-resources.html
# @return [String]
#
# @!attribute [rw] logical_resource_id
# The logical ID of the target resource as specified in the template.
# @return [String]
#
# @!attribute [rw] resource_identifier
# A key-value pair that identifies the target resource. The key is an
# identifier property (for example, `BucketName` for `AWS::S3::Bucket`
# resources) and the value is the actual property value (for example,
# `MyS3Bucket`).
# @return [Hash]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ResourceToImport AWS API Documentation
#
class ResourceToImport < Struct.new(
:resource_type,
:logical_resource_id,
:resource_identifier)
SENSITIVE = []
include Aws::Structure
end
# Structure containing the rollback triggers for AWS CloudFormation to
# monitor during stack creation and updating operations, and for the
# specified monitoring period afterwards.
#
# Rollback triggers enable you to have AWS CloudFormation monitor the
# state of your application during stack creation and updating, and to
# roll back that operation if the application breaches the threshold of
# any of the alarms you've specified. For more information, see
# [Monitor and Roll Back Stack Operations][1].
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-rollback-triggers.html
#
# @note When making an API call, you may pass RollbackConfiguration
# data as a hash:
#
# {
# rollback_triggers: [
# {
# arn: "Arn", # required
# type: "Type", # required
# },
# ],
# monitoring_time_in_minutes: 1,
# }
#
# @!attribute [rw] rollback_triggers
# The triggers to monitor during stack creation or update actions.
#
# By default, AWS CloudFormation saves the rollback triggers specified
# for a stack and applies them to any subsequent update operations for
# the stack, unless you specify otherwise. If you do specify rollback
# triggers for this parameter, those triggers replace any list of
# triggers previously specified for the stack. This means:
#
# * To use the rollback triggers previously specified for this stack,
# if any, don't specify this parameter.
#
# * To specify new or updated rollback triggers, you must specify
# *all* the triggers that you want used for this stack, even
# triggers you've specifed before (for example, when creating the
# stack or during a previous stack update). Any triggers that you
# don't include in the updated list of triggers are no longer
# applied to the stack.
#
# * To remove all currently specified triggers, specify an empty list
# for this parameter.
#
# If a specified trigger is missing, the entire stack operation fails
# and is rolled back.
# @return [Array]
#
# @!attribute [rw] monitoring_time_in_minutes
# The amount of time, in minutes, during which CloudFormation should
# monitor all the rollback triggers after the stack creation or update
# operation deploys all necessary resources.
#
# The default is 0 minutes.
#
# If you specify a monitoring period but do not specify any rollback
# triggers, CloudFormation still waits the specified period of time
# before cleaning up old resources after update operations. You can
# use this monitoring period to perform any manual stack validation
# desired, and manually cancel the stack creation or update (using
# [CancelUpdateStack][1], for example) as necessary.
#
# If you specify 0 for this parameter, CloudFormation still monitors
# the specified rollback triggers during stack creation and update
# operations. Then, for update operations, it begins disposing of old
# resources immediately once the operation completes.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CancelUpdateStack.html
# @return [Integer]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackConfiguration AWS API Documentation
#
class RollbackConfiguration < Struct.new(
:rollback_triggers,
:monitoring_time_in_minutes)
SENSITIVE = []
include Aws::Structure
end
# A rollback trigger AWS CloudFormation monitors during creation and
# updating of stacks. If any of the alarms you specify goes to ALARM
# state during the stack operation or within the specified monitoring
# period afterwards, CloudFormation rolls back the entire stack
# operation.
#
# @note When making an API call, you may pass RollbackTrigger
# data as a hash:
#
# {
# arn: "Arn", # required
# type: "Type", # required
# }
#
# @!attribute [rw] arn
# The Amazon Resource Name (ARN) of the rollback trigger.
#
# If a specified trigger is missing, the entire stack operation fails
# and is rolled back.
# @return [String]
#
# @!attribute [rw] type
# The resource type of the rollback trigger. Currently,
# [AWS::CloudWatch::Alarm][1] is the only supported resource type.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/RollbackTrigger AWS API Documentation
#
class RollbackTrigger < Struct.new(
:arn,
:type)
SENSITIVE = []
include Aws::Structure
end
# The input for the SetStackPolicy action.
#
# @note When making an API call, you may pass SetStackPolicyInput
# data as a hash:
#
# {
# stack_name: "StackName", # required
# stack_policy_body: "StackPolicyBody",
# stack_policy_url: "StackPolicyURL",
# }
#
# @!attribute [rw] stack_name
# The name or unique stack ID that you want to associate a policy
# with.
# @return [String]
#
# @!attribute [rw] stack_policy_body
# Structure containing the stack policy body. For more information, go
# to [ Prevent Updates to Stack Resources][1] in the AWS
# CloudFormation User Guide. You can specify either the
# `StackPolicyBody` or the `StackPolicyURL` parameter, but not both.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html
# @return [String]
#
# @!attribute [rw] stack_policy_url
# Location of a file containing the stack policy. The URL must point
# to a policy (maximum size: 16 KB) located in an S3 bucket in the
# same Region as the stack. You can specify either the
# `StackPolicyBody` or the `StackPolicyURL` parameter, but not both.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetStackPolicyInput AWS API Documentation
#
class SetStackPolicyInput < Struct.new(
:stack_name,
:stack_policy_body,
:stack_policy_url)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass SetTypeDefaultVersionInput
# data as a hash:
#
# {
# arn: "PrivateTypeArn",
# type: "RESOURCE", # accepts RESOURCE
# type_name: "TypeName",
# version_id: "TypeVersionId",
# }
#
# @!attribute [rw] arn
# The Amazon Resource Name (ARN) of the type for which you want
# version summary information.
#
# Conditional: You must specify either `TypeName` and `Type`, or
# `Arn`.
# @return [String]
#
# @!attribute [rw] type
# The kind of type.
#
# Conditional: You must specify either `TypeName` and `Type`, or
# `Arn`.
# @return [String]
#
# @!attribute [rw] type_name
# The name of the type.
#
# Conditional: You must specify either `TypeName` and `Type`, or
# `Arn`.
# @return [String]
#
# @!attribute [rw] version_id
# The ID of a specific version of the type. The version ID is the
# value at the end of the Amazon Resource Name (ARN) assigned to the
# type version when it is registered.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeDefaultVersionInput AWS API Documentation
#
class SetTypeDefaultVersionInput < Struct.new(
:arn,
:type,
:type_name,
:version_id)
SENSITIVE = []
include Aws::Structure
end
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SetTypeDefaultVersionOutput AWS API Documentation
#
class SetTypeDefaultVersionOutput < Aws::EmptyStructure; end
# The input for the SignalResource action.
#
# @note When making an API call, you may pass SignalResourceInput
# data as a hash:
#
# {
# stack_name: "StackNameOrId", # required
# logical_resource_id: "LogicalResourceId", # required
# unique_id: "ResourceSignalUniqueId", # required
# status: "SUCCESS", # required, accepts SUCCESS, FAILURE
# }
#
# @!attribute [rw] stack_name
# The stack name or unique stack ID that includes the resource that
# you want to signal.
# @return [String]
#
# @!attribute [rw] logical_resource_id
# The logical ID of the resource that you want to signal. The logical
# ID is the name of the resource that given in the template.
# @return [String]
#
# @!attribute [rw] unique_id
# A unique ID of the signal. When you signal Amazon EC2 instances or
# Auto Scaling groups, specify the instance ID that you are signaling
# as the unique ID. If you send multiple signals to a single resource
# (such as signaling a wait condition), each signal requires a
# different unique ID.
# @return [String]
#
# @!attribute [rw] status
# The status of the signal, which is either success or failure. A
# failure signal causes AWS CloudFormation to immediately fail the
# stack creation or update.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/SignalResourceInput AWS API Documentation
#
class SignalResourceInput < Struct.new(
:stack_name,
:logical_resource_id,
:unique_id,
:status)
SENSITIVE = []
include Aws::Structure
end
# The Stack data type.
#
# @!attribute [rw] stack_id
# Unique identifier of the stack.
# @return [String]
#
# @!attribute [rw] stack_name
# The name associated with the stack.
# @return [String]
#
# @!attribute [rw] change_set_id
# The unique ID of the change set.
# @return [String]
#
# @!attribute [rw] description
# A user-defined description associated with the stack.
# @return [String]
#
# @!attribute [rw] parameters
# A list of `Parameter` structures.
# @return [Array]
#
# @!attribute [rw] creation_time
# The time at which the stack was created.
# @return [Time]
#
# @!attribute [rw] deletion_time
# The time the stack was deleted.
# @return [Time]
#
# @!attribute [rw] last_updated_time
# The time the stack was last updated. This field will only be
# returned if the stack has been updated at least once.
# @return [Time]
#
# @!attribute [rw] rollback_configuration
# The rollback triggers for AWS CloudFormation to monitor during stack
# creation and updating operations, and for the specified monitoring
# period afterwards.
# @return [Types::RollbackConfiguration]
#
# @!attribute [rw] stack_status
# Current status of the stack.
# @return [String]
#
# @!attribute [rw] stack_status_reason
# Success/failure message associated with the stack status.
# @return [String]
#
# @!attribute [rw] disable_rollback
# Boolean to enable or disable rollback on stack creation failures:
#
# * `true`\: disable rollback
#
# * `false`\: enable rollback
# @return [Boolean]
#
# @!attribute [rw] notification_arns
# SNS topic ARNs to which stack related events are published.
# @return [Array]
#
# @!attribute [rw] timeout_in_minutes
# The amount of time within which stack creation should complete.
# @return [Integer]
#
# @!attribute [rw] capabilities
# The capabilities allowed in the stack.
# @return [Array]
#
# @!attribute [rw] outputs
# A list of output structures.
# @return [Array]
#
# @!attribute [rw] role_arn
# The Amazon Resource Name (ARN) of an AWS Identity and Access
# Management (IAM) role that is associated with the stack. During a
# stack operation, AWS CloudFormation uses this role's credentials to
# make calls on your behalf.
# @return [String]
#
# @!attribute [rw] tags
# A list of `Tag`s that specify information about the stack.
# @return [Array]
#
# @!attribute [rw] enable_termination_protection
# Whether termination protection is enabled for the stack.
#
# For [nested stacks][1], termination protection is set on the root
# stack and cannot be changed directly on the nested stack. For more
# information, see [Protecting a Stack From Being Deleted][2] in the
# *AWS CloudFormation User Guide*.
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html
# [2]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-protect-stacks.html
# @return [Boolean]
#
# @!attribute [rw] parent_id
# For nested stacks--stacks created as resources for another
# stack--the stack ID of the direct parent of this stack. For the
# first level of nested stacks, the root stack is also the parent
# stack.
#
# For more information, see [Working with Nested Stacks][1] in the
# *AWS CloudFormation User Guide*.
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html
# @return [String]
#
# @!attribute [rw] root_id
# For nested stacks--stacks created as resources for another
# stack--the stack ID of the top-level stack to which the nested stack
# ultimately belongs.
#
# For more information, see [Working with Nested Stacks][1] in the
# *AWS CloudFormation User Guide*.
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html
# @return [String]
#
# @!attribute [rw] drift_information
# Information on whether a stack's actual configuration differs, or
# has *drifted*, from it's expected configuration, as defined in the
# stack template and any values specified as template parameters. For
# more information, see [Detecting Unregulated Configuration Changes
# to Stacks and Resources][1].
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html
# @return [Types::StackDriftInformation]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/Stack AWS API Documentation
#
class Stack < Struct.new(
:stack_id,
:stack_name,
:change_set_id,
:description,
:parameters,
:creation_time,
:deletion_time,
:last_updated_time,
:rollback_configuration,
:stack_status,
:stack_status_reason,
:disable_rollback,
:notification_arns,
:timeout_in_minutes,
:capabilities,
:outputs,
:role_arn,
:tags,
:enable_termination_protection,
:parent_id,
:root_id,
:drift_information)
SENSITIVE = []
include Aws::Structure
end
# Contains information about whether the stack's actual configuration
# differs, or has *drifted*, from its expected configuration, as defined
# in the stack template and any values specified as template parameters.
# A stack is considered to have drifted if one or more of its resources
# have drifted.
#
# @!attribute [rw] stack_drift_status
# Status of the stack's actual configuration compared to its expected
# template configuration.
#
# * `DRIFTED`\: The stack differs from its expected template
# configuration. A stack is considered to have drifted if one or
# more of its resources have drifted.
#
# * `NOT_CHECKED`\: AWS CloudFormation has not checked if the stack
# differs from its expected template configuration.
#
# * `IN_SYNC`\: The stack's actual configuration matches its expected
# template configuration.
#
# * `UNKNOWN`\: This value is reserved for future use.
# @return [String]
#
# @!attribute [rw] last_check_timestamp
# Most recent time when a drift detection operation was initiated on
# the stack, or any of its individual resources that support drift
# detection.
# @return [Time]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackDriftInformation AWS API Documentation
#
class StackDriftInformation < Struct.new(
:stack_drift_status,
:last_check_timestamp)
SENSITIVE = []
include Aws::Structure
end
# Contains information about whether the stack's actual configuration
# differs, or has *drifted*, from its expected configuration, as defined
# in the stack template and any values specified as template parameters.
# A stack is considered to have drifted if one or more of its resources
# have drifted.
#
# @!attribute [rw] stack_drift_status
# Status of the stack's actual configuration compared to its expected
# template configuration.
#
# * `DRIFTED`\: The stack differs from its expected template
# configuration. A stack is considered to have drifted if one or
# more of its resources have drifted.
#
# * `NOT_CHECKED`\: AWS CloudFormation has not checked if the stack
# differs from its expected template configuration.
#
# * `IN_SYNC`\: The stack's actual configuration matches its expected
# template configuration.
#
# * `UNKNOWN`\: This value is reserved for future use.
# @return [String]
#
# @!attribute [rw] last_check_timestamp
# Most recent time when a drift detection operation was initiated on
# the stack, or any of its individual resources that support drift
# detection.
# @return [Time]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackDriftInformationSummary AWS API Documentation
#
class StackDriftInformationSummary < Struct.new(
:stack_drift_status,
:last_check_timestamp)
SENSITIVE = []
include Aws::Structure
end
# The StackEvent data type.
#
# @!attribute [rw] stack_id
# The unique ID name of the instance of the stack.
# @return [String]
#
# @!attribute [rw] event_id
# The unique ID of this event.
# @return [String]
#
# @!attribute [rw] stack_name
# The name associated with a stack.
# @return [String]
#
# @!attribute [rw] logical_resource_id
# The logical name of the resource specified in the template.
# @return [String]
#
# @!attribute [rw] physical_resource_id
# The name or unique identifier associated with the physical instance
# of the resource.
# @return [String]
#
# @!attribute [rw] resource_type
# Type of resource. (For more information, go to [ AWS Resource Types
# Reference][1] in the AWS CloudFormation User Guide.)
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html
# @return [String]
#
# @!attribute [rw] timestamp
# Time the status was updated.
# @return [Time]
#
# @!attribute [rw] resource_status
# Current status of the resource.
# @return [String]
#
# @!attribute [rw] resource_status_reason
# Success/failure message associated with the resource.
# @return [String]
#
# @!attribute [rw] resource_properties
# BLOB of the properties used to create the resource.
# @return [String]
#
# @!attribute [rw] client_request_token
# The token passed to the operation that generated this event.
#
# All events triggered by a given stack operation are assigned the
# same client request token, which you can use to track operations.
# For example, if you execute a `CreateStack` operation with the token
# `token1`, then all the `StackEvents` generated by that operation
# will have `ClientRequestToken` set as `token1`.
#
# In the console, stack operations display the client request token on
# the Events tab. Stack operations that are initiated from the console
# use the token format *Console-StackOperation-ID*, which helps you
# easily identify the stack operation . For example, if you create a
# stack using the console, each stack event would be assigned the same
# token in the following format:
# `Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002`.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackEvent AWS API Documentation
#
class StackEvent < Struct.new(
:stack_id,
:event_id,
:stack_name,
:logical_resource_id,
:physical_resource_id,
:resource_type,
:timestamp,
:resource_status,
:resource_status_reason,
:resource_properties,
:client_request_token)
SENSITIVE = []
include Aws::Structure
end
# An AWS CloudFormation stack, in a specific account and Region, that's
# part of a stack set operation. A stack instance is a reference to an
# attempted or actual stack in a given account within a given Region. A
# stack instance can exist without a stack—for example, if the stack
# couldn't be created for some reason. A stack instance is associated
# with only one stack set. Each stack instance contains the ID of its
# associated stack set, as well as the ID of the actual stack and the
# stack status.
#
# @!attribute [rw] stack_set_id
# The name or unique ID of the stack set that the stack instance is
# associated with.
# @return [String]
#
# @!attribute [rw] region
# The name of the AWS Region that the stack instance is associated
# with.
# @return [String]
#
# @!attribute [rw] account
# \[`Self-managed` permissions\] The name of the AWS account that the
# stack instance is associated with.
# @return [String]
#
# @!attribute [rw] stack_id
# The ID of the stack instance.
# @return [String]
#
# @!attribute [rw] parameter_overrides
# A list of parameters from the stack set template whose values have
# been overridden in this stack instance.
# @return [Array]
#
# @!attribute [rw] status
# The status of the stack instance, in terms of its synchronization
# with its associated stack set.
#
# * `INOPERABLE`\: A `DeleteStackInstances` operation has failed and
# left the stack in an unstable state. Stacks in this state are
# excluded from further `UpdateStackSet` operations. You might need
# to perform a `DeleteStackInstances` operation, with `RetainStacks`
# set to `true`, to delete the stack instance, and then delete the
# stack manually.
#
# * `OUTDATED`\: The stack isn't currently up to date with the stack
# set because:
#
# * The associated stack failed during a `CreateStackSet` or
# `UpdateStackSet` operation.
#
# * The stack was part of a `CreateStackSet` or `UpdateStackSet`
# operation that failed or was stopped before the stack was
# created or updated.
#
# * `CURRENT`\: The stack is currently up to date with the stack set.
# @return [String]
#
# @!attribute [rw] stack_instance_status
# The detailed status of the stack instance.
# @return [Types::StackInstanceComprehensiveStatus]
#
# @!attribute [rw] status_reason
# The explanation for the specific status code that is assigned to
# this stack instance.
# @return [String]
#
# @!attribute [rw] organizational_unit_id
# \[`Service-managed` permissions\] The organization root ID or
# organizational unit (OU) IDs that you specified for
# [DeploymentTargets][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html
# @return [String]
#
# @!attribute [rw] drift_status
# Status of the stack instance's actual configuration compared to the
# expected template and parameter configuration of the stack set to
# which it belongs.
#
# * `DRIFTED`\: The stack differs from the expected template and
# parameter configuration of the stack set to which it belongs. A
# stack instance is considered to have drifted if one or more of the
# resources in the associated stack have drifted.
#
# * `NOT_CHECKED`\: AWS CloudFormation has not checked if the stack
# instance differs from its expected stack set configuration.
#
# * `IN_SYNC`\: The stack instance's actual configuration matches its
# expected stack set configuration.
#
# * `UNKNOWN`\: This value is reserved for future use.
# @return [String]
#
# @!attribute [rw] last_drift_check_timestamp
# Most recent time when CloudFormation performed a drift detection
# operation on the stack instance. This value will be `NULL` for any
# stack instance on which drift detection has not yet been performed.
# @return [Time]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackInstance AWS API Documentation
#
class StackInstance < Struct.new(
:stack_set_id,
:region,
:account,
:stack_id,
:parameter_overrides,
:status,
:stack_instance_status,
:status_reason,
:organizational_unit_id,
:drift_status,
:last_drift_check_timestamp)
SENSITIVE = []
include Aws::Structure
end
# The detailed status of the stack instance.
#
# @!attribute [rw] detailed_status
# * `CANCELLED`\: The operation in the specified account and Region
# has been cancelled. This is either because a user has stopped the
# stack set operation, or because the failure tolerance of the stack
# set operation has been exceeded.
#
# * `FAILED`\: The operation in the specified account and Region
# failed. If the stack set operation fails in enough accounts within
# a Region, the failure tolerance for the stack set operation as a
# whole might be exceeded.
#
# * `INOPERABLE`\: A `DeleteStackInstances` operation has failed and
# left the stack in an unstable state. Stacks in this state are
# excluded from further `UpdateStackSet` operations. You might need
# to perform a `DeleteStackInstances` operation, with `RetainStacks`
# set to `true`, to delete the stack instance, and then delete the
# stack manually.
#
# * `PENDING`\: The operation in the specified account and Region has
# yet to start.
#
# * `RUNNING`\: The operation in the specified account and Region is
# currently in progress.
#
# * `SUCCEEDED`\: The operation in the specified account and Region
# completed successfully.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackInstanceComprehensiveStatus AWS API Documentation
#
class StackInstanceComprehensiveStatus < Struct.new(
:detailed_status)
SENSITIVE = []
include Aws::Structure
end
# The status that stack instances are filtered by.
#
# @note When making an API call, you may pass StackInstanceFilter
# data as a hash:
#
# {
# name: "DETAILED_STATUS", # accepts DETAILED_STATUS
# values: "StackInstanceFilterValues",
# }
#
# @!attribute [rw] name
# The type of filter to apply.
# @return [String]
#
# @!attribute [rw] values
# The status to filter by.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackInstanceFilter AWS API Documentation
#
class StackInstanceFilter < Struct.new(
:name,
:values)
SENSITIVE = []
include Aws::Structure
end
# The specified stack instance doesn't exist.
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackInstanceNotFoundException AWS API Documentation
#
class StackInstanceNotFoundException < Aws::EmptyStructure; end
# The structure that contains summary information about a stack
# instance.
#
# @!attribute [rw] stack_set_id
# The name or unique ID of the stack set that the stack instance is
# associated with.
# @return [String]
#
# @!attribute [rw] region
# The name of the AWS Region that the stack instance is associated
# with.
# @return [String]
#
# @!attribute [rw] account
# \[`Self-managed` permissions\] The name of the AWS account that the
# stack instance is associated with.
# @return [String]
#
# @!attribute [rw] stack_id
# The ID of the stack instance.
# @return [String]
#
# @!attribute [rw] status
# The status of the stack instance, in terms of its synchronization
# with its associated stack set.
#
# * `INOPERABLE`\: A `DeleteStackInstances` operation has failed and
# left the stack in an unstable state. Stacks in this state are
# excluded from further `UpdateStackSet` operations. You might need
# to perform a `DeleteStackInstances` operation, with `RetainStacks`
# set to `true`, to delete the stack instance, and then delete the
# stack manually.
#
# * `OUTDATED`\: The stack isn't currently up to date with the stack
# set because:
#
# * The associated stack failed during a `CreateStackSet` or
# `UpdateStackSet` operation.
#
# * The stack was part of a `CreateStackSet` or `UpdateStackSet`
# operation that failed or was stopped before the stack was
# created or updated.
#
# * `CURRENT`\: The stack is currently up to date with the stack set.
# @return [String]
#
# @!attribute [rw] status_reason
# The explanation for the specific status code assigned to this stack
# instance.
# @return [String]
#
# @!attribute [rw] stack_instance_status
# The detailed status of the stack instance.
# @return [Types::StackInstanceComprehensiveStatus]
#
# @!attribute [rw] organizational_unit_id
# \[`Service-managed` permissions\] The organization root ID or
# organizational unit (OU) IDs that you specified for
# [DeploymentTargets][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html
# @return [String]
#
# @!attribute [rw] drift_status
# Status of the stack instance's actual configuration compared to the
# expected template and parameter configuration of the stack set to
# which it belongs.
#
# * `DRIFTED`\: The stack differs from the expected template and
# parameter configuration of the stack set to which it belongs. A
# stack instance is considered to have drifted if one or more of the
# resources in the associated stack have drifted.
#
# * `NOT_CHECKED`\: AWS CloudFormation has not checked if the stack
# instance differs from its expected stack set configuration.
#
# * `IN_SYNC`\: The stack instance's actual configuration matches its
# expected stack set configuration.
#
# * `UNKNOWN`\: This value is reserved for future use.
# @return [String]
#
# @!attribute [rw] last_drift_check_timestamp
# Most recent time when CloudFormation performed a drift detection
# operation on the stack instance. This value will be `NULL` for any
# stack instance on which drift detection has not yet been performed.
# @return [Time]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackInstanceSummary AWS API Documentation
#
class StackInstanceSummary < Struct.new(
:stack_set_id,
:region,
:account,
:stack_id,
:status,
:status_reason,
:stack_instance_status,
:organizational_unit_id,
:drift_status,
:last_drift_check_timestamp)
SENSITIVE = []
include Aws::Structure
end
# The StackResource data type.
#
# @!attribute [rw] stack_name
# The name associated with the stack.
# @return [String]
#
# @!attribute [rw] stack_id
# Unique identifier of the stack.
# @return [String]
#
# @!attribute [rw] logical_resource_id
# The logical name of the resource specified in the template.
# @return [String]
#
# @!attribute [rw] physical_resource_id
# The name or unique identifier that corresponds to a physical
# instance ID of a resource supported by AWS CloudFormation.
# @return [String]
#
# @!attribute [rw] resource_type
# Type of resource. (For more information, go to [ AWS Resource Types
# Reference][1] in the AWS CloudFormation User Guide.)
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html
# @return [String]
#
# @!attribute [rw] timestamp
# Time the status was updated.
# @return [Time]
#
# @!attribute [rw] resource_status
# Current status of the resource.
# @return [String]
#
# @!attribute [rw] resource_status_reason
# Success/failure message associated with the resource.
# @return [String]
#
# @!attribute [rw] description
# User defined description associated with the resource.
# @return [String]
#
# @!attribute [rw] drift_information
# Information about whether the resource's actual configuration
# differs, or has *drifted*, from its expected configuration, as
# defined in the stack template and any values specified as template
# parameters. For more information, see [Detecting Unregulated
# Configuration Changes to Stacks and Resources][1].
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html
# @return [Types::StackResourceDriftInformation]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackResource AWS API Documentation
#
class StackResource < Struct.new(
:stack_name,
:stack_id,
:logical_resource_id,
:physical_resource_id,
:resource_type,
:timestamp,
:resource_status,
:resource_status_reason,
:description,
:drift_information)
SENSITIVE = []
include Aws::Structure
end
# Contains detailed information about the specified stack resource.
#
# @!attribute [rw] stack_name
# The name associated with the stack.
# @return [String]
#
# @!attribute [rw] stack_id
# Unique identifier of the stack.
# @return [String]
#
# @!attribute [rw] logical_resource_id
# The logical name of the resource specified in the template.
# @return [String]
#
# @!attribute [rw] physical_resource_id
# The name or unique identifier that corresponds to a physical
# instance ID of a resource supported by AWS CloudFormation.
# @return [String]
#
# @!attribute [rw] resource_type
# Type of resource. ((For more information, go to [ AWS Resource Types
# Reference][1] in the AWS CloudFormation User Guide.)
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html
# @return [String]
#
# @!attribute [rw] last_updated_timestamp
# Time the status was updated.
# @return [Time]
#
# @!attribute [rw] resource_status
# Current status of the resource.
# @return [String]
#
# @!attribute [rw] resource_status_reason
# Success/failure message associated with the resource.
# @return [String]
#
# @!attribute [rw] description
# User defined description associated with the resource.
# @return [String]
#
# @!attribute [rw] metadata
# The content of the `Metadata` attribute declared for the resource.
# For more information, see [Metadata Attribute][1] in the AWS
# CloudFormation User Guide.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-metadata.html
# @return [String]
#
# @!attribute [rw] drift_information
# Information about whether the resource's actual configuration
# differs, or has *drifted*, from its expected configuration, as
# defined in the stack template and any values specified as template
# parameters. For more information, see [Detecting Unregulated
# Configuration Changes to Stacks and Resources][1].
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html
# @return [Types::StackResourceDriftInformation]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackResourceDetail AWS API Documentation
#
class StackResourceDetail < Struct.new(
:stack_name,
:stack_id,
:logical_resource_id,
:physical_resource_id,
:resource_type,
:last_updated_timestamp,
:resource_status,
:resource_status_reason,
:description,
:metadata,
:drift_information)
SENSITIVE = []
include Aws::Structure
end
# Contains the drift information for a resource that has been checked
# for drift. This includes actual and expected property values for
# resources in which AWS CloudFormation has detected drift. Only
# resource properties explicitly defined in the stack template are
# checked for drift. For more information, see [Detecting Unregulated
# Configuration Changes to Stacks and Resources][1].
#
# Resources that do not currently support drift detection cannot be
# checked. For a list of resources that support drift detection, see
# [Resources that Support Drift Detection][2].
#
# Use DetectStackResourceDrift to detect drift on individual resources,
# or DetectStackDrift to detect drift on all resources in a given stack
# that support drift detection.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html
# [2]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html
#
# @!attribute [rw] stack_id
# The ID of the stack.
# @return [String]
#
# @!attribute [rw] logical_resource_id
# The logical name of the resource specified in the template.
# @return [String]
#
# @!attribute [rw] physical_resource_id
# The name or unique identifier that corresponds to a physical
# instance ID of a resource supported by AWS CloudFormation.
# @return [String]
#
# @!attribute [rw] physical_resource_id_context
# Context information that enables AWS CloudFormation to uniquely
# identify a resource. AWS CloudFormation uses context key-value pairs
# in cases where a resource's logical and physical IDs are not enough
# to uniquely identify that resource. Each context key-value pair
# specifies a unique resource that contains the targeted resource.
# @return [Array]
#
# @!attribute [rw] resource_type
# The type of the resource.
# @return [String]
#
# @!attribute [rw] expected_properties
# A JSON structure containing the expected property values of the
# stack resource, as defined in the stack template and any values
# specified as template parameters.
#
# For resources whose `StackResourceDriftStatus` is `DELETED`, this
# structure will not be present.
# @return [String]
#
# @!attribute [rw] actual_properties
# A JSON structure containing the actual property values of the stack
# resource.
#
# For resources whose `StackResourceDriftStatus` is `DELETED`, this
# structure will not be present.
# @return [String]
#
# @!attribute [rw] property_differences
# A collection of the resource properties whose actual values differ
# from their expected values. These will be present only for resources
# whose `StackResourceDriftStatus` is `MODIFIED`.
# @return [Array]
#
# @!attribute [rw] stack_resource_drift_status
# Status of the resource's actual configuration compared to its
# expected configuration
#
# * `DELETED`\: The resource differs from its expected template
# configuration because the resource has been deleted.
#
# * `MODIFIED`\: One or more resource properties differ from their
# expected values (as defined in the stack template and any values
# specified as template parameters).
#
# * `IN_SYNC`\: The resources's actual configuration matches its
# expected template configuration.
#
# * `NOT_CHECKED`\: AWS CloudFormation does not currently return this
# value.
# @return [String]
#
# @!attribute [rw] timestamp
# Time at which AWS CloudFormation performed drift detection on the
# stack resource.
# @return [Time]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackResourceDrift AWS API Documentation
#
class StackResourceDrift < Struct.new(
:stack_id,
:logical_resource_id,
:physical_resource_id,
:physical_resource_id_context,
:resource_type,
:expected_properties,
:actual_properties,
:property_differences,
:stack_resource_drift_status,
:timestamp)
SENSITIVE = []
include Aws::Structure
end
# Contains information about whether the resource's actual
# configuration differs, or has *drifted*, from its expected
# configuration.
#
# @!attribute [rw] stack_resource_drift_status
# Status of the resource's actual configuration compared to its
# expected configuration
#
# * `DELETED`\: The resource differs from its expected configuration
# in that it has been deleted.
#
# * `MODIFIED`\: The resource differs from its expected configuration.
#
# * `NOT_CHECKED`\: AWS CloudFormation has not checked if the resource
# differs from its expected configuration.
#
# Any resources that do not currently support drift detection have a
# status of `NOT_CHECKED`. For more information, see [Resources that
# Support Drift Detection][1].
#
# * `IN_SYNC`\: The resources's actual configuration matches its
# expected configuration.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html
# @return [String]
#
# @!attribute [rw] last_check_timestamp
# When AWS CloudFormation last checked if the resource had drifted
# from its expected configuration.
# @return [Time]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackResourceDriftInformation AWS API Documentation
#
class StackResourceDriftInformation < Struct.new(
:stack_resource_drift_status,
:last_check_timestamp)
SENSITIVE = []
include Aws::Structure
end
# Summarizes information about whether the resource's actual
# configuration differs, or has *drifted*, from its expected
# configuration.
#
# @!attribute [rw] stack_resource_drift_status
# Status of the resource's actual configuration compared to its
# expected configuration
#
# * `DELETED`\: The resource differs from its expected configuration
# in that it has been deleted.
#
# * `MODIFIED`\: The resource differs from its expected configuration.
#
# * `NOT_CHECKED`\: AWS CloudFormation has not checked if the resource
# differs from its expected configuration.
#
# Any resources that do not currently support drift detection have a
# status of `NOT_CHECKED`. For more information, see [Resources that
# Support Drift Detection][1]. If you performed an
# ContinueUpdateRollback operation on a stack, any resources
# included in `ResourcesToSkip` will also have a status of
# `NOT_CHECKED`. For more information on skipping resources during
# rollback operations, see [Continue Rolling Back an Update][2] in
# the AWS CloudFormation User Guide.
#
# * `IN_SYNC`\: The resources's actual configuration matches its
# expected configuration.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift-resource-list.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-continueupdaterollback.html
# @return [String]
#
# @!attribute [rw] last_check_timestamp
# When AWS CloudFormation last checked if the resource had drifted
# from its expected configuration.
# @return [Time]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackResourceDriftInformationSummary AWS API Documentation
#
class StackResourceDriftInformationSummary < Struct.new(
:stack_resource_drift_status,
:last_check_timestamp)
SENSITIVE = []
include Aws::Structure
end
# Contains high-level information about the specified stack resource.
#
# @!attribute [rw] logical_resource_id
# The logical name of the resource specified in the template.
# @return [String]
#
# @!attribute [rw] physical_resource_id
# The name or unique identifier that corresponds to a physical
# instance ID of the resource.
# @return [String]
#
# @!attribute [rw] resource_type
# Type of resource. (For more information, go to [ AWS Resource Types
# Reference][1] in the AWS CloudFormation User Guide.)
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html
# @return [String]
#
# @!attribute [rw] last_updated_timestamp
# Time the status was updated.
# @return [Time]
#
# @!attribute [rw] resource_status
# Current status of the resource.
# @return [String]
#
# @!attribute [rw] resource_status_reason
# Success/failure message associated with the resource.
# @return [String]
#
# @!attribute [rw] drift_information
# Information about whether the resource's actual configuration
# differs, or has *drifted*, from its expected configuration, as
# defined in the stack template and any values specified as template
# parameters. For more information, see [Detecting Unregulated
# Configuration Changes to Stacks and Resources][1].
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html
# @return [Types::StackResourceDriftInformationSummary]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackResourceSummary AWS API Documentation
#
class StackResourceSummary < Struct.new(
:logical_resource_id,
:physical_resource_id,
:resource_type,
:last_updated_timestamp,
:resource_status,
:resource_status_reason,
:drift_information)
SENSITIVE = []
include Aws::Structure
end
# A structure that contains information about a stack set. A stack set
# enables you to provision stacks into AWS accounts and across Regions
# by using a single CloudFormation template. In the stack set, you
# specify the template to use, as well as any parameters and
# capabilities that the template requires.
#
# @!attribute [rw] stack_set_name
# The name that's associated with the stack set.
# @return [String]
#
# @!attribute [rw] stack_set_id
# The ID of the stack set.
# @return [String]
#
# @!attribute [rw] description
# A description of the stack set that you specify when the stack set
# is created or updated.
# @return [String]
#
# @!attribute [rw] status
# The status of the stack set.
# @return [String]
#
# @!attribute [rw] template_body
# The structure that contains the body of the template that was used
# to create or update the stack set.
# @return [String]
#
# @!attribute [rw] parameters
# A list of input parameters for a stack set.
# @return [Array]
#
# @!attribute [rw] capabilities
# The capabilities that are allowed in the stack set. Some stack set
# templates might include resources that can affect permissions in
# your AWS account—for example, by creating new AWS Identity and
# Access Management (IAM) users. For more information, see
# [Acknowledging IAM Resources in AWS CloudFormation Templates.][1]
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities
# @return [Array]
#
# @!attribute [rw] tags
# A list of tags that specify information about the stack set. A
# maximum number of 50 tags can be specified.
# @return [Array]
#
# @!attribute [rw] stack_set_arn
# The Amazon Resource Number (ARN) of the stack set.
# @return [String]
#
# @!attribute [rw] administration_role_arn
# The Amazon Resource Number (ARN) of the IAM role used to create or
# update the stack set.
#
# Use customized administrator roles to control which users or groups
# can manage specific stack sets within the same administrator
# account. For more information, see [Prerequisites: Granting
# Permissions for Stack Set Operations][1] in the *AWS CloudFormation
# User Guide*.
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html
# @return [String]
#
# @!attribute [rw] execution_role_name
# The name of the IAM execution role used to create or update the
# stack set.
#
# Use customized execution roles to control which stack resources
# users and groups can include in their stack sets.
# @return [String]
#
# @!attribute [rw] stack_set_drift_detection_details
# Detailed information about the drift status of the stack set.
#
# For stack sets, contains information about the last *completed*
# drift operation performed on the stack set. Information about drift
# operations currently in progress is not included.
# @return [Types::StackSetDriftDetectionDetails]
#
# @!attribute [rw] auto_deployment
# \[`Service-managed` permissions\] Describes whether StackSets
# automatically deploys to AWS Organizations accounts that are added
# to a target organization or organizational unit (OU).
# @return [Types::AutoDeployment]
#
# @!attribute [rw] permission_model
# Describes how the IAM roles required for stack set operations are
# created.
#
# * With `self-managed` permissions, you must create the administrator
# and execution roles required to deploy to target accounts. For
# more information, see [Grant Self-Managed Stack Set
# Permissions][1].
#
# * With `service-managed` permissions, StackSets automatically
# creates the IAM roles required to deploy to accounts managed by
# AWS Organizations. For more information, see [Grant
# Service-Managed Stack Set Permissions][2].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html
# @return [String]
#
# @!attribute [rw] organizational_unit_ids
# \[`Service-managed` permissions\] The organization root ID or
# organizational unit (OU) IDs that you specified for
# [DeploymentTargets][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackSet AWS API Documentation
#
class StackSet < Struct.new(
:stack_set_name,
:stack_set_id,
:description,
:status,
:template_body,
:parameters,
:capabilities,
:tags,
:stack_set_arn,
:administration_role_arn,
:execution_role_name,
:stack_set_drift_detection_details,
:auto_deployment,
:permission_model,
:organizational_unit_ids)
SENSITIVE = []
include Aws::Structure
end
# Detailed information about the drift status of the stack set.
#
# For stack sets, contains information about the last *completed* drift
# operation performed on the stack set. Information about drift
# operations in-progress is not included.
#
# For stack set operations, includes information about drift operations
# currently being performed on the stack set.
#
# For more information, see [Detecting Unmanaged Changes in Stack
# Sets][1] in the *AWS CloudFormation User Guide*.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html
#
# @!attribute [rw] drift_status
# Status of the stack set's actual configuration compared to its
# expected template and parameter configuration. A stack set is
# considered to have drifted if one or more of its stack instances
# have drifted from their expected template and parameter
# configuration.
#
# * `DRIFTED`\: One or more of the stack instances belonging to the
# stack set stack differs from the expected template and parameter
# configuration. A stack instance is considered to have drifted if
# one or more of the resources in the associated stack have drifted.
#
# * `NOT_CHECKED`\: AWS CloudFormation has not checked the stack set
# for drift.
#
# * `IN_SYNC`\: All of the stack instances belonging to the stack set
# stack match from the expected template and parameter
# configuration.
# @return [String]
#
# @!attribute [rw] drift_detection_status
# The status of the stack set drift detection operation.
#
# * `COMPLETED`\: The drift detection operation completed without
# failing on any stack instances.
#
# * `FAILED`\: The drift detection operation exceeded the specified
# failure tolerance.
#
# * `PARTIAL_SUCCESS`\: The drift detection operation completed
# without exceeding the failure tolerance for the operation.
#
# * `IN_PROGRESS`\: The drift detection operation is currently being
# performed.
#
# * `STOPPED`\: The user has cancelled the drift detection operation.
# @return [String]
#
# @!attribute [rw] last_drift_check_timestamp
# Most recent time when CloudFormation performed a drift detection
# operation on the stack set. This value will be `NULL` for any stack
# set on which drift detection has not yet been performed.
# @return [Time]
#
# @!attribute [rw] total_stack_instances_count
# The total number of stack instances belonging to this stack set.
#
# The total number of stack instances is equal to the total of:
#
# * Stack instances that match the stack set configuration.
#
# * Stack instances that have drifted from the stack set
# configuration.
#
# * Stack instances where the drift detection operation has failed.
#
# * Stack instances currently being checked for drift.
# @return [Integer]
#
# @!attribute [rw] drifted_stack_instances_count
# The number of stack instances that have drifted from the expected
# template and parameter configuration of the stack set. A stack
# instance is considered to have drifted if one or more of the
# resources in the associated stack do not match their expected
# configuration.
# @return [Integer]
#
# @!attribute [rw] in_sync_stack_instances_count
# The number of stack instances which match the expected template and
# parameter configuration of the stack set.
# @return [Integer]
#
# @!attribute [rw] in_progress_stack_instances_count
# The number of stack instances that are currently being checked for
# drift.
# @return [Integer]
#
# @!attribute [rw] failed_stack_instances_count
# The number of stack instances for which the drift detection
# operation failed.
# @return [Integer]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackSetDriftDetectionDetails AWS API Documentation
#
class StackSetDriftDetectionDetails < Struct.new(
:drift_status,
:drift_detection_status,
:last_drift_check_timestamp,
:total_stack_instances_count,
:drifted_stack_instances_count,
:in_sync_stack_instances_count,
:in_progress_stack_instances_count,
:failed_stack_instances_count)
SENSITIVE = []
include Aws::Structure
end
# You can't yet delete this stack set, because it still contains one or
# more stack instances. Delete all stack instances from the stack set
# before deleting the stack set.
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackSetNotEmptyException AWS API Documentation
#
class StackSetNotEmptyException < Aws::EmptyStructure; end
# The specified stack set doesn't exist.
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackSetNotFoundException AWS API Documentation
#
class StackSetNotFoundException < Aws::EmptyStructure; end
# The structure that contains information about a stack set operation.
#
# @!attribute [rw] operation_id
# The unique ID of a stack set operation.
# @return [String]
#
# @!attribute [rw] stack_set_id
# The ID of the stack set.
# @return [String]
#
# @!attribute [rw] action
# The type of stack set operation: `CREATE`, `UPDATE`, or `DELETE`.
# Create and delete operations affect only the specified stack set
# instances that are associated with the specified stack set. Update
# operations affect both the stack set itself, as well as *all*
# associated stack set instances.
# @return [String]
#
# @!attribute [rw] status
# The status of the operation.
#
# * `FAILED`\: The operation exceeded the specified failure tolerance.
# The failure tolerance value that you've set for an operation is
# applied for each Region during stack create and update operations.
# If the number of failed stacks within a Region exceeds the failure
# tolerance, the status of the operation in the Region is set to
# `FAILED`. This in turn sets the status of the operation as a whole
# to `FAILED`, and AWS CloudFormation cancels the operation in any
# remaining Regions.
#
# * `QUEUED`\: \[`Service-managed` permissions\] For automatic
# deployments that require a sequence of operations, the operation
# is queued to be performed. For more information, see the [stack
# set operation status codes][1] in the AWS CloudFormation User
# Guide.
#
# * `RUNNING`\: The operation is currently being performed.
#
# * `STOPPED`\: The user has cancelled the operation.
#
# * `STOPPING`\: The operation is in the process of stopping, at user
# request.
#
# * `SUCCEEDED`\: The operation completed creating or updating all the
# specified stacks without exceeding the failure tolerance for the
# operation.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes
# @return [String]
#
# @!attribute [rw] operation_preferences
# The preferences for how AWS CloudFormation performs this stack set
# operation.
# @return [Types::StackSetOperationPreferences]
#
# @!attribute [rw] retain_stacks
# For stack set operations of action type `DELETE`, specifies whether
# to remove the stack instances from the specified stack set, but
# doesn't delete the stacks. You can't reassociate a retained stack,
# or add an existing, saved stack to a new stack set.
# @return [Boolean]
#
# @!attribute [rw] administration_role_arn
# The Amazon Resource Number (ARN) of the IAM role used to perform
# this stack set operation.
#
# Use customized administrator roles to control which users or groups
# can manage specific stack sets within the same administrator
# account. For more information, see [Define Permissions for Multiple
# Administrators][1] in the *AWS CloudFormation User Guide*.
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html
# @return [String]
#
# @!attribute [rw] execution_role_name
# The name of the IAM execution role used to create or update the
# stack set.
#
# Use customized execution roles to control which stack resources
# users and groups can include in their stack sets.
# @return [String]
#
# @!attribute [rw] creation_timestamp
# The time at which the operation was initiated. Note that the
# creation times for the stack set operation might differ from the
# creation time of the individual stacks themselves. This is because
# AWS CloudFormation needs to perform preparatory work for the
# operation, such as dispatching the work to the requested Regions,
# before actually creating the first stacks.
# @return [Time]
#
# @!attribute [rw] end_timestamp
# The time at which the stack set operation ended, across all accounts
# and Regions specified. Note that this doesn't necessarily mean that
# the stack set operation was successful, or even attempted, in each
# account or Region.
# @return [Time]
#
# @!attribute [rw] deployment_targets
# \[`Service-managed` permissions\] The AWS Organizations accounts
# affected by the stack operation.
# @return [Types::DeploymentTargets]
#
# @!attribute [rw] stack_set_drift_detection_details
# Detailed information about the drift status of the stack set. This
# includes information about drift operations currently being
# performed on the stack set.
#
# this information will only be present for stack set operations whose
# `Action` type is `DETECT_DRIFT`.
#
# For more information, see [Detecting Unmanaged Changes in Stack
# Sets][1] in the AWS CloudFormation User Guide.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-drift.html
# @return [Types::StackSetDriftDetectionDetails]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackSetOperation AWS API Documentation
#
class StackSetOperation < Struct.new(
:operation_id,
:stack_set_id,
:action,
:status,
:operation_preferences,
:retain_stacks,
:administration_role_arn,
:execution_role_name,
:creation_timestamp,
:end_timestamp,
:deployment_targets,
:stack_set_drift_detection_details)
SENSITIVE = []
include Aws::Structure
end
# The user-specified preferences for how AWS CloudFormation performs a
# stack set operation.
#
# For more information on maximum concurrent accounts and failure
# tolerance, see [Stack set operation options][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-ops-options
#
# @note When making an API call, you may pass StackSetOperationPreferences
# data as a hash:
#
# {
# region_order: ["Region"],
# failure_tolerance_count: 1,
# failure_tolerance_percentage: 1,
# max_concurrent_count: 1,
# max_concurrent_percentage: 1,
# }
#
# @!attribute [rw] region_order
# The order of the Regions in where you want to perform the stack
# operation.
# @return [Array]
#
# @!attribute [rw] failure_tolerance_count
# The number of accounts, per Region, for which this operation can
# fail before AWS CloudFormation stops the operation in that Region.
# If the operation is stopped in a Region, AWS CloudFormation doesn't
# attempt the operation in any subsequent Regions.
#
# Conditional: You must specify either `FailureToleranceCount` or
# `FailureTolerancePercentage` (but not both).
# @return [Integer]
#
# @!attribute [rw] failure_tolerance_percentage
# The percentage of accounts, per Region, for which this stack
# operation can fail before AWS CloudFormation stops the operation in
# that Region. If the operation is stopped in a Region, AWS
# CloudFormation doesn't attempt the operation in any subsequent
# Regions.
#
# When calculating the number of accounts based on the specified
# percentage, AWS CloudFormation rounds *down* to the next whole
# number.
#
# Conditional: You must specify either `FailureToleranceCount` or
# `FailureTolerancePercentage`, but not both.
# @return [Integer]
#
# @!attribute [rw] max_concurrent_count
# The maximum number of accounts in which to perform this operation at
# one time. This is dependent on the value of `FailureToleranceCount`.
# `MaxConcurrentCount` is at most one more than the
# `FailureToleranceCount`.
#
# Note that this setting lets you specify the *maximum* for
# operations. For large deployments, under certain circumstances the
# actual number of accounts acted upon concurrently may be lower due
# to service throttling.
#
# Conditional: You must specify either `MaxConcurrentCount` or
# `MaxConcurrentPercentage`, but not both.
# @return [Integer]
#
# @!attribute [rw] max_concurrent_percentage
# The maximum percentage of accounts in which to perform this
# operation at one time.
#
# When calculating the number of accounts based on the specified
# percentage, AWS CloudFormation rounds down to the next whole number.
# This is true except in cases where rounding down would result is
# zero. In this case, CloudFormation sets the number as one instead.
#
# Note that this setting lets you specify the *maximum* for
# operations. For large deployments, under certain circumstances the
# actual number of accounts acted upon concurrently may be lower due
# to service throttling.
#
# Conditional: You must specify either `MaxConcurrentCount` or
# `MaxConcurrentPercentage`, but not both.
# @return [Integer]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackSetOperationPreferences AWS API Documentation
#
class StackSetOperationPreferences < Struct.new(
:region_order,
:failure_tolerance_count,
:failure_tolerance_percentage,
:max_concurrent_count,
:max_concurrent_percentage)
SENSITIVE = []
include Aws::Structure
end
# The structure that contains information about a specified operation's
# results for a given account in a given Region.
#
# @!attribute [rw] account
# \[`Self-managed` permissions\] The name of the AWS account for this
# operation result.
# @return [String]
#
# @!attribute [rw] region
# The name of the AWS Region for this operation result.
# @return [String]
#
# @!attribute [rw] status
# The result status of the stack set operation for the given account
# in the given Region.
#
# * `CANCELLED`\: The operation in the specified account and Region
# has been cancelled. This is either because a user has stopped the
# stack set operation, or because the failure tolerance of the stack
# set operation has been exceeded.
#
# * `FAILED`\: The operation in the specified account and Region
# failed.
#
# If the stack set operation fails in enough accounts within a
# Region, the failure tolerance for the stack set operation as a
# whole might be exceeded.
#
# * `RUNNING`\: The operation in the specified account and Region is
# currently in progress.
#
# * `PENDING`\: The operation in the specified account and Region has
# yet to start.
#
# * `SUCCEEDED`\: The operation in the specified account and Region
# completed successfully.
# @return [String]
#
# @!attribute [rw] status_reason
# The reason for the assigned result status.
# @return [String]
#
# @!attribute [rw] account_gate_result
# The results of the account gate function AWS CloudFormation invokes,
# if present, before proceeding with stack set operations in an
# account
# @return [Types::AccountGateResult]
#
# @!attribute [rw] organizational_unit_id
# \[`Service-managed` permissions\] The organization root ID or
# organizational unit (OU) IDs that you specified for
# [DeploymentTargets][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DeploymentTargets.html
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackSetOperationResultSummary AWS API Documentation
#
class StackSetOperationResultSummary < Struct.new(
:account,
:region,
:status,
:status_reason,
:account_gate_result,
:organizational_unit_id)
SENSITIVE = []
include Aws::Structure
end
# The structures that contain summary information about the specified
# operation.
#
# @!attribute [rw] operation_id
# The unique ID of the stack set operation.
# @return [String]
#
# @!attribute [rw] action
# The type of operation: `CREATE`, `UPDATE`, or `DELETE`. Create and
# delete operations affect only the specified stack instances that are
# associated with the specified stack set. Update operations affect
# both the stack set itself as well as *all* associated stack set
# instances.
# @return [String]
#
# @!attribute [rw] status
# The overall status of the operation.
#
# * `FAILED`\: The operation exceeded the specified failure tolerance.
# The failure tolerance value that you've set for an operation is
# applied for each Region during stack create and update operations.
# If the number of failed stacks within a Region exceeds the failure
# tolerance, the status of the operation in the Region is set to
# `FAILED`. This in turn sets the status of the operation as a whole
# to `FAILED`, and AWS CloudFormation cancels the operation in any
# remaining Regions.
#
# * `QUEUED`\: \[`Service-managed` permissions\] For automatic
# deployments that require a sequence of operations, the operation
# is queued to be performed. For more information, see the [stack
# set operation status codes][1] in the AWS CloudFormation User
# Guide.
#
# * `RUNNING`\: The operation is currently being performed.
#
# * `STOPPED`\: The user has cancelled the operation.
#
# * `STOPPING`\: The operation is in the process of stopping, at user
# request.
#
# * `SUCCEEDED`\: The operation completed creating or updating all the
# specified stacks without exceeding the failure tolerance for the
# operation.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html#stackset-status-codes
# @return [String]
#
# @!attribute [rw] creation_timestamp
# The time at which the operation was initiated. Note that the
# creation times for the stack set operation might differ from the
# creation time of the individual stacks themselves. This is because
# AWS CloudFormation needs to perform preparatory work for the
# operation, such as dispatching the work to the requested Regions,
# before actually creating the first stacks.
# @return [Time]
#
# @!attribute [rw] end_timestamp
# The time at which the stack set operation ended, across all accounts
# and Regions specified. Note that this doesn't necessarily mean that
# the stack set operation was successful, or even attempted, in each
# account or Region.
# @return [Time]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackSetOperationSummary AWS API Documentation
#
class StackSetOperationSummary < Struct.new(
:operation_id,
:action,
:status,
:creation_timestamp,
:end_timestamp)
SENSITIVE = []
include Aws::Structure
end
# The structures that contain summary information about the specified
# stack set.
#
# @!attribute [rw] stack_set_name
# The name of the stack set.
# @return [String]
#
# @!attribute [rw] stack_set_id
# The ID of the stack set.
# @return [String]
#
# @!attribute [rw] description
# A description of the stack set that you specify when the stack set
# is created or updated.
# @return [String]
#
# @!attribute [rw] status
# The status of the stack set.
# @return [String]
#
# @!attribute [rw] auto_deployment
# \[`Service-managed` permissions\] Describes whether StackSets
# automatically deploys to AWS Organizations accounts that are added
# to a target organizational unit (OU).
# @return [Types::AutoDeployment]
#
# @!attribute [rw] permission_model
# Describes how the IAM roles required for stack set operations are
# created.
#
# * With `self-managed` permissions, you must create the administrator
# and execution roles required to deploy to target accounts. For
# more information, see [Grant Self-Managed Stack Set
# Permissions][1].
#
# * With `service-managed` permissions, StackSets automatically
# creates the IAM roles required to deploy to accounts managed by
# AWS Organizations. For more information, see [Grant
# Service-Managed Stack Set Permissions][2].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html
# @return [String]
#
# @!attribute [rw] drift_status
# Status of the stack set's actual configuration compared to its
# expected template and parameter configuration. A stack set is
# considered to have drifted if one or more of its stack instances
# have drifted from their expected template and parameter
# configuration.
#
# * `DRIFTED`\: One or more of the stack instances belonging to the
# stack set stack differs from the expected template and parameter
# configuration. A stack instance is considered to have drifted if
# one or more of the resources in the associated stack have drifted.
#
# * `NOT_CHECKED`\: AWS CloudFormation has not checked the stack set
# for drift.
#
# * `IN_SYNC`\: All of the stack instances belonging to the stack set
# stack match from the expected template and parameter
# configuration.
#
# * `UNKNOWN`\: This value is reserved for future use.
# @return [String]
#
# @!attribute [rw] last_drift_check_timestamp
# Most recent time when CloudFormation performed a drift detection
# operation on the stack set. This value will be `NULL` for any stack
# set on which drift detection has not yet been performed.
# @return [Time]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackSetSummary AWS API Documentation
#
class StackSetSummary < Struct.new(
:stack_set_name,
:stack_set_id,
:description,
:status,
:auto_deployment,
:permission_model,
:drift_status,
:last_drift_check_timestamp)
SENSITIVE = []
include Aws::Structure
end
# The StackSummary Data Type
#
# @!attribute [rw] stack_id
# Unique stack identifier.
# @return [String]
#
# @!attribute [rw] stack_name
# The name associated with the stack.
# @return [String]
#
# @!attribute [rw] template_description
# The template description of the template used to create the stack.
# @return [String]
#
# @!attribute [rw] creation_time
# The time the stack was created.
# @return [Time]
#
# @!attribute [rw] last_updated_time
# The time the stack was last updated. This field will only be
# returned if the stack has been updated at least once.
# @return [Time]
#
# @!attribute [rw] deletion_time
# The time the stack was deleted.
# @return [Time]
#
# @!attribute [rw] stack_status
# The current status of the stack.
# @return [String]
#
# @!attribute [rw] stack_status_reason
# Success/Failure message associated with the stack status.
# @return [String]
#
# @!attribute [rw] parent_id
# For nested stacks--stacks created as resources for another
# stack--the stack ID of the direct parent of this stack. For the
# first level of nested stacks, the root stack is also the parent
# stack.
#
# For more information, see [Working with Nested Stacks][1] in the
# *AWS CloudFormation User Guide*.
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html
# @return [String]
#
# @!attribute [rw] root_id
# For nested stacks--stacks created as resources for another
# stack--the stack ID of the top-level stack to which the nested stack
# ultimately belongs.
#
# For more information, see [Working with Nested Stacks][1] in the
# *AWS CloudFormation User Guide*.
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-nested-stacks.html
# @return [String]
#
# @!attribute [rw] drift_information
# Summarizes information on whether a stack's actual configuration
# differs, or has *drifted*, from it's expected configuration, as
# defined in the stack template and any values specified as template
# parameters. For more information, see [Detecting Unregulated
# Configuration Changes to Stacks and Resources][1].
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html
# @return [Types::StackDriftInformationSummary]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StackSummary AWS API Documentation
#
class StackSummary < Struct.new(
:stack_id,
:stack_name,
:template_description,
:creation_time,
:last_updated_time,
:deletion_time,
:stack_status,
:stack_status_reason,
:parent_id,
:root_id,
:drift_information)
SENSITIVE = []
include Aws::Structure
end
# Another operation has been performed on this stack set since the
# specified operation was performed.
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StaleRequestException AWS API Documentation
#
class StaleRequestException < Aws::EmptyStructure; end
# @note When making an API call, you may pass StopStackSetOperationInput
# data as a hash:
#
# {
# stack_set_name: "StackSetName", # required
# operation_id: "ClientRequestToken", # required
# }
#
# @!attribute [rw] stack_set_name
# The name or unique ID of the stack set that you want to stop the
# operation for.
# @return [String]
#
# @!attribute [rw] operation_id
# The ID of the stack operation.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StopStackSetOperationInput AWS API Documentation
#
class StopStackSetOperationInput < Struct.new(
:stack_set_name,
:operation_id)
SENSITIVE = []
include Aws::Structure
end
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/StopStackSetOperationOutput AWS API Documentation
#
class StopStackSetOperationOutput < Aws::EmptyStructure; end
# The Tag type enables you to specify a key-value pair that can be used
# to store information about an AWS CloudFormation stack.
#
# @note When making an API call, you may pass Tag
# data as a hash:
#
# {
# key: "TagKey", # required
# value: "TagValue", # required
# }
#
# @!attribute [rw] key
# *Required*. A string used to identify this tag. You can specify a
# maximum of 128 characters for a tag key. Tags owned by Amazon Web
# Services (AWS) have the reserved prefix: `aws:`.
# @return [String]
#
# @!attribute [rw] value
# *Required*. A string containing the value for this tag. You can
# specify a maximum of 256 characters for a tag value.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/Tag AWS API Documentation
#
class Tag < Struct.new(
:key,
:value)
SENSITIVE = []
include Aws::Structure
end
# The TemplateParameter data type.
#
# @!attribute [rw] parameter_key
# The name associated with the parameter.
# @return [String]
#
# @!attribute [rw] default_value
# The default value associated with the parameter.
# @return [String]
#
# @!attribute [rw] no_echo
# Flag indicating whether the parameter should be displayed as plain
# text in logs and UIs.
# @return [Boolean]
#
# @!attribute [rw] description
# User defined description associated with the parameter.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/TemplateParameter AWS API Documentation
#
class TemplateParameter < Struct.new(
:parameter_key,
:default_value,
:no_echo,
:description)
SENSITIVE = []
include Aws::Structure
end
# A client request token already exists.
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/TokenAlreadyExistsException AWS API Documentation
#
class TokenAlreadyExistsException < Aws::EmptyStructure; end
# The specified type does not exist in the CloudFormation registry.
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/TypeNotFoundException AWS API Documentation
#
class TypeNotFoundException < Aws::EmptyStructure; end
# Contains summary information about the specified CloudFormation type.
#
# @!attribute [rw] type
# The kind of type.
# @return [String]
#
# @!attribute [rw] type_name
# The name of the type.
# @return [String]
#
# @!attribute [rw] default_version_id
# The ID of the default version of the type. The default version is
# used when the type version is not specified.
#
# To set the default version of a type, use ` SetTypeDefaultVersion `.
# @return [String]
#
# @!attribute [rw] type_arn
# The Amazon Resource Name (ARN) of the type.
# @return [String]
#
# @!attribute [rw] last_updated
# When the current default version of the type was registered.
# @return [Time]
#
# @!attribute [rw] description
# The description of the type.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/TypeSummary AWS API Documentation
#
class TypeSummary < Struct.new(
:type,
:type_name,
:default_version_id,
:type_arn,
:last_updated,
:description)
SENSITIVE = []
include Aws::Structure
end
# Contains summary information about a specific version of a
# CloudFormation type.
#
# @!attribute [rw] type
# The kind of type.
# @return [String]
#
# @!attribute [rw] type_name
# The name of the type.
# @return [String]
#
# @!attribute [rw] version_id
# The ID of a specific version of the type. The version ID is the
# value at the end of the Amazon Resource Name (ARN) assigned to the
# type version when it is registered.
# @return [String]
#
# @!attribute [rw] is_default_version
# Whether the specified type version is set as the default version.
# @return [Boolean]
#
# @!attribute [rw] arn
# The Amazon Resource Name (ARN) of the type version.
# @return [String]
#
# @!attribute [rw] time_created
# When the version was registered.
# @return [Time]
#
# @!attribute [rw] description
# The description of the type version.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/TypeVersionSummary AWS API Documentation
#
class TypeVersionSummary < Struct.new(
:type,
:type_name,
:version_id,
:is_default_version,
:arn,
:time_created,
:description)
SENSITIVE = []
include Aws::Structure
end
# The input for an UpdateStack action.
#
# @note When making an API call, you may pass UpdateStackInput
# data as a hash:
#
# {
# stack_name: "StackName", # required
# template_body: "TemplateBody",
# template_url: "TemplateURL",
# use_previous_template: false,
# stack_policy_during_update_body: "StackPolicyDuringUpdateBody",
# stack_policy_during_update_url: "StackPolicyDuringUpdateURL",
# parameters: [
# {
# parameter_key: "ParameterKey",
# parameter_value: "ParameterValue",
# use_previous_value: false,
# resolved_value: "ParameterValue",
# },
# ],
# capabilities: ["CAPABILITY_IAM"], # accepts CAPABILITY_IAM, CAPABILITY_NAMED_IAM, CAPABILITY_AUTO_EXPAND
# resource_types: ["ResourceType"],
# role_arn: "RoleARN",
# rollback_configuration: {
# rollback_triggers: [
# {
# arn: "Arn", # required
# type: "Type", # required
# },
# ],
# monitoring_time_in_minutes: 1,
# },
# stack_policy_body: "StackPolicyBody",
# stack_policy_url: "StackPolicyURL",
# notification_arns: ["NotificationARN"],
# tags: [
# {
# key: "TagKey", # required
# value: "TagValue", # required
# },
# ],
# client_request_token: "ClientRequestToken",
# }
#
# @!attribute [rw] stack_name
# The name or unique stack ID of the stack to update.
# @return [String]
#
# @!attribute [rw] template_body
# Structure containing the template body with a minimum length of 1
# byte and a maximum length of 51,200 bytes. (For more information, go
# to [Template Anatomy][1] in the AWS CloudFormation User Guide.)
#
# Conditional: You must specify only one of the following parameters:
# `TemplateBody`, `TemplateURL`, or set the `UsePreviousTemplate` to
# `true`.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
# @return [String]
#
# @!attribute [rw] template_url
# Location of file containing the template body. The URL must point to
# a template that is located in an Amazon S3 bucket. For more
# information, go to [Template Anatomy][1] in the AWS CloudFormation
# User Guide.
#
# Conditional: You must specify only one of the following parameters:
# `TemplateBody`, `TemplateURL`, or set the `UsePreviousTemplate` to
# `true`.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
# @return [String]
#
# @!attribute [rw] use_previous_template
# Reuse the existing template that is associated with the stack that
# you are updating.
#
# Conditional: You must specify only one of the following parameters:
# `TemplateBody`, `TemplateURL`, or set the `UsePreviousTemplate` to
# `true`.
# @return [Boolean]
#
# @!attribute [rw] stack_policy_during_update_body
# Structure containing the temporary overriding stack policy body. You
# can specify either the `StackPolicyDuringUpdateBody` or the
# `StackPolicyDuringUpdateURL` parameter, but not both.
#
# If you want to update protected resources, specify a temporary
# overriding stack policy during this update. If you do not specify a
# stack policy, the current policy that is associated with the stack
# will be used.
# @return [String]
#
# @!attribute [rw] stack_policy_during_update_url
# Location of a file containing the temporary overriding stack policy.
# The URL must point to a policy (max size: 16KB) located in an S3
# bucket in the same Region as the stack. You can specify either the
# `StackPolicyDuringUpdateBody` or the `StackPolicyDuringUpdateURL`
# parameter, but not both.
#
# If you want to update protected resources, specify a temporary
# overriding stack policy during this update. If you do not specify a
# stack policy, the current policy that is associated with the stack
# will be used.
# @return [String]
#
# @!attribute [rw] parameters
# A list of `Parameter` structures that specify input parameters for
# the stack. For more information, see the [Parameter][1] data type.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html
# @return [Array]
#
# @!attribute [rw] capabilities
# In some cases, you must explicitly acknowledge that your stack
# template contains certain capabilities in order for AWS
# CloudFormation to update the stack.
#
# * `CAPABILITY_IAM` and `CAPABILITY_NAMED_IAM`
#
# Some stack templates might include resources that can affect
# permissions in your AWS account; for example, by creating new AWS
# Identity and Access Management (IAM) users. For those stacks, you
# must explicitly acknowledge this by specifying one of these
# capabilities.
#
# The following IAM resources require you to specify either the
# `CAPABILITY_IAM` or `CAPABILITY_NAMED_IAM` capability.
#
# * If you have IAM resources, you can specify either capability.
#
# * If you have IAM resources with custom names, you *must* specify
# `CAPABILITY_NAMED_IAM`.
#
# * If you don't specify either of these capabilities, AWS
# CloudFormation returns an `InsufficientCapabilities` error.
#
# If your stack template contains these resources, we recommend that
# you review all permissions associated with them and edit their
# permissions if necessary.
#
# * [ AWS::IAM::AccessKey][1]
#
# * [ AWS::IAM::Group][2]
#
# * [ AWS::IAM::InstanceProfile][3]
#
# * [ AWS::IAM::Policy][4]
#
# * [ AWS::IAM::Role][5]
#
# * [ AWS::IAM::User][6]
#
# * [ AWS::IAM::UserToGroupAddition][7]
#
# For more information, see [Acknowledging IAM Resources in AWS
# CloudFormation Templates][8].
#
# * `CAPABILITY_AUTO_EXPAND`
#
# Some template contain macros. Macros perform custom processing on
# templates; this can include simple actions like find-and-replace
# operations, all the way to extensive transformations of entire
# templates. Because of this, users typically create a change set
# from the processed template, so that they can review the changes
# resulting from the macros before actually updating the stack. If
# your stack template contains one or more macros, and you choose to
# update a stack directly from the processed template, without first
# reviewing the resulting changes in a change set, you must
# acknowledge this capability. This includes the [AWS::Include][9]
# and [AWS::Serverless][10] transforms, which are macros hosted by
# AWS CloudFormation.
#
# Change sets do not currently support nested stacks. If you want to
# update a stack from a stack template that contains macros *and*
# nested stacks, you must update the stack directly from the
# template using this capability.
#
# You should only update stacks directly from a stack template that
# contains macros if you know what processing the macro performs.
#
# Each macro relies on an underlying Lambda service function for
# processing stack templates. Be aware that the Lambda function
# owner can update the function operation without AWS CloudFormation
# being notified.
#
# For more information, see [Using AWS CloudFormation Macros to
# Perform Custom Processing on Templates][11].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html
# [3]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html
# [4]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html
# [5]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html
# [6]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html
# [7]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html
# [8]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities
# [9]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html
# [10]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html
# [11]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html
# @return [Array]
#
# @!attribute [rw] resource_types
# The template resource types that you have permissions to work with
# for this update stack action, such as `AWS::EC2::Instance`,
# `AWS::EC2::*`, or `Custom::MyCustomInstance`.
#
# If the list of resource types doesn't include a resource that
# you're updating, the stack update fails. By default, AWS
# CloudFormation grants permissions to all resource types. AWS
# Identity and Access Management (IAM) uses this parameter for AWS
# CloudFormation-specific condition keys in IAM policies. For more
# information, see [Controlling Access with AWS Identity and Access
# Management][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html
# @return [Array]
#
# @!attribute [rw] role_arn
# The Amazon Resource Name (ARN) of an AWS Identity and Access
# Management (IAM) role that AWS CloudFormation assumes to update the
# stack. AWS CloudFormation uses the role's credentials to make calls
# on your behalf. AWS CloudFormation always uses this role for all
# future operations on the stack. As long as users have permission to
# operate on the stack, AWS CloudFormation uses this role even if the
# users don't have permission to pass it. Ensure that the role grants
# least privilege.
#
# If you don't specify a value, AWS CloudFormation uses the role that
# was previously associated with the stack. If no role is available,
# AWS CloudFormation uses a temporary session that is generated from
# your user credentials.
# @return [String]
#
# @!attribute [rw] rollback_configuration
# The rollback triggers for AWS CloudFormation to monitor during stack
# creation and updating operations, and for the specified monitoring
# period afterwards.
# @return [Types::RollbackConfiguration]
#
# @!attribute [rw] stack_policy_body
# Structure containing a new stack policy body. You can specify either
# the `StackPolicyBody` or the `StackPolicyURL` parameter, but not
# both.
#
# You might update the stack policy, for example, in order to protect
# a new resource that you created during a stack update. If you do not
# specify a stack policy, the current policy that is associated with
# the stack is unchanged.
# @return [String]
#
# @!attribute [rw] stack_policy_url
# Location of a file containing the updated stack policy. The URL must
# point to a policy (max size: 16KB) located in an S3 bucket in the
# same Region as the stack. You can specify either the
# `StackPolicyBody` or the `StackPolicyURL` parameter, but not both.
#
# You might update the stack policy, for example, in order to protect
# a new resource that you created during a stack update. If you do not
# specify a stack policy, the current policy that is associated with
# the stack is unchanged.
# @return [String]
#
# @!attribute [rw] notification_arns
# Amazon Simple Notification Service topic Amazon Resource Names
# (ARNs) that AWS CloudFormation associates with the stack. Specify an
# empty list to remove all notification topics.
# @return [Array]
#
# @!attribute [rw] tags
# Key-value pairs to associate with this stack. AWS CloudFormation
# also propagates these tags to supported resources in the stack. You
# can specify a maximum number of 50 tags.
#
# If you don't specify this parameter, AWS CloudFormation doesn't
# modify the stack's tags. If you specify an empty value, AWS
# CloudFormation removes all associated tags.
# @return [Array]
#
# @!attribute [rw] client_request_token
# A unique identifier for this `UpdateStack` request. Specify this
# token if you plan to retry requests so that AWS CloudFormation knows
# that you're not attempting to update a stack with the same name.
# You might retry `UpdateStack` requests to ensure that AWS
# CloudFormation successfully received them.
#
# All events triggered by a given stack operation are assigned the
# same client request token, which you can use to track operations.
# For example, if you execute a `CreateStack` operation with the token
# `token1`, then all the `StackEvents` generated by that operation
# will have `ClientRequestToken` set as `token1`.
#
# In the console, stack operations display the client request token on
# the Events tab. Stack operations that are initiated from the console
# use the token format *Console-StackOperation-ID*, which helps you
# easily identify the stack operation . For example, if you create a
# stack using the console, each stack event would be assigned the same
# token in the following format:
# `Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002`.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackInput AWS API Documentation
#
class UpdateStackInput < Struct.new(
:stack_name,
:template_body,
:template_url,
:use_previous_template,
:stack_policy_during_update_body,
:stack_policy_during_update_url,
:parameters,
:capabilities,
:resource_types,
:role_arn,
:rollback_configuration,
:stack_policy_body,
:stack_policy_url,
:notification_arns,
:tags,
:client_request_token)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass UpdateStackInstancesInput
# data as a hash:
#
# {
# stack_set_name: "StackSetNameOrId", # required
# accounts: ["Account"],
# deployment_targets: {
# accounts: ["Account"],
# organizational_unit_ids: ["OrganizationalUnitId"],
# },
# regions: ["Region"], # required
# parameter_overrides: [
# {
# parameter_key: "ParameterKey",
# parameter_value: "ParameterValue",
# use_previous_value: false,
# resolved_value: "ParameterValue",
# },
# ],
# operation_preferences: {
# region_order: ["Region"],
# failure_tolerance_count: 1,
# failure_tolerance_percentage: 1,
# max_concurrent_count: 1,
# max_concurrent_percentage: 1,
# },
# operation_id: "ClientRequestToken",
# }
#
# @!attribute [rw] stack_set_name
# The name or unique ID of the stack set associated with the stack
# instances.
# @return [String]
#
# @!attribute [rw] accounts
# \[`Self-managed` permissions\] The names of one or more AWS accounts
# for which you want to update parameter values for stack instances.
# The overridden parameter values will be applied to all stack
# instances in the specified accounts and Regions.
#
# You can specify `Accounts` or `DeploymentTargets`, but not both.
# @return [Array]
#
# @!attribute [rw] deployment_targets
# \[`Service-managed` permissions\] The AWS Organizations accounts for
# which you want to update parameter values for stack instances. If
# your update targets OUs, the overridden parameter values only apply
# to the accounts that are currently in the target OUs and their child
# OUs. Accounts added to the target OUs and their child OUs in the
# future won't use the overridden values.
#
# You can specify `Accounts` or `DeploymentTargets`, but not both.
# @return [Types::DeploymentTargets]
#
# @!attribute [rw] regions
# The names of one or more Regions in which you want to update
# parameter values for stack instances. The overridden parameter
# values will be applied to all stack instances in the specified
# accounts and Regions.
# @return [Array]
#
# @!attribute [rw] parameter_overrides
# A list of input parameters whose values you want to update for the
# specified stack instances.
#
# Any overridden parameter values will be applied to all stack
# instances in the specified accounts and Regions. When specifying
# parameters and their values, be aware of how AWS CloudFormation sets
# parameter values during stack instance update operations:
#
# * To override the current value for a parameter, include the
# parameter and specify its value.
#
# * To leave a parameter set to its present value, you can do one of
# the following:
#
# * Do not include the parameter in the list.
#
# * Include the parameter and specify `UsePreviousValue` as `true`.
# (You cannot specify both a value and set `UsePreviousValue` to
# `true`.)
#
# * To set all overridden parameter back to the values specified in
# the stack set, specify a parameter list but do not include any
# parameters.
#
# * To leave all parameters set to their present values, do not
# specify this property at all.
#
# During stack set updates, any parameter values overridden for a
# stack instance are not updated, but retain their overridden value.
#
# You can only override the parameter *values* that are specified in
# the stack set; to add or delete a parameter itself, use
# `UpdateStackSet` to update the stack set template. If you add a
# parameter to a template, before you can override the parameter value
# specified in the stack set you must first use [UpdateStackSet][1] to
# update all stack instances with the updated template and parameter
# value specified in the stack set. Once a stack instance has been
# updated with the new parameter, you can then override the parameter
# value using `UpdateStackInstances`.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStackSet.html
# @return [Array]
#
# @!attribute [rw] operation_preferences
# Preferences for how AWS CloudFormation performs this stack set
# operation.
# @return [Types::StackSetOperationPreferences]
#
# @!attribute [rw] operation_id
# The unique identifier for this stack set operation.
#
# The operation ID also functions as an idempotency token, to ensure
# that AWS CloudFormation performs the stack set operation only once,
# even if you retry the request multiple times. You might retry stack
# set operation requests to ensure that AWS CloudFormation
# successfully received them.
#
# If you don't specify an operation ID, the SDK generates one
# automatically.
#
# **A suitable default value is auto-generated.** You should normally
# not need to pass this option.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackInstancesInput AWS API Documentation
#
class UpdateStackInstancesInput < Struct.new(
:stack_set_name,
:accounts,
:deployment_targets,
:regions,
:parameter_overrides,
:operation_preferences,
:operation_id)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] operation_id
# The unique identifier for this stack set operation.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackInstancesOutput AWS API Documentation
#
class UpdateStackInstancesOutput < Struct.new(
:operation_id)
SENSITIVE = []
include Aws::Structure
end
# The output for an UpdateStack action.
#
# @!attribute [rw] stack_id
# Unique identifier of the stack.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackOutput AWS API Documentation
#
class UpdateStackOutput < Struct.new(
:stack_id)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass UpdateStackSetInput
# data as a hash:
#
# {
# stack_set_name: "StackSetName", # required
# description: "Description",
# template_body: "TemplateBody",
# template_url: "TemplateURL",
# use_previous_template: false,
# parameters: [
# {
# parameter_key: "ParameterKey",
# parameter_value: "ParameterValue",
# use_previous_value: false,
# resolved_value: "ParameterValue",
# },
# ],
# capabilities: ["CAPABILITY_IAM"], # accepts CAPABILITY_IAM, CAPABILITY_NAMED_IAM, CAPABILITY_AUTO_EXPAND
# tags: [
# {
# key: "TagKey", # required
# value: "TagValue", # required
# },
# ],
# operation_preferences: {
# region_order: ["Region"],
# failure_tolerance_count: 1,
# failure_tolerance_percentage: 1,
# max_concurrent_count: 1,
# max_concurrent_percentage: 1,
# },
# administration_role_arn: "RoleARN",
# execution_role_name: "ExecutionRoleName",
# deployment_targets: {
# accounts: ["Account"],
# organizational_unit_ids: ["OrganizationalUnitId"],
# },
# permission_model: "SERVICE_MANAGED", # accepts SERVICE_MANAGED, SELF_MANAGED
# auto_deployment: {
# enabled: false,
# retain_stacks_on_account_removal: false,
# },
# operation_id: "ClientRequestToken",
# accounts: ["Account"],
# regions: ["Region"],
# }
#
# @!attribute [rw] stack_set_name
# The name or unique ID of the stack set that you want to update.
# @return [String]
#
# @!attribute [rw] description
# A brief description of updates that you are making.
# @return [String]
#
# @!attribute [rw] template_body
# The structure that contains the template body, with a minimum length
# of 1 byte and a maximum length of 51,200 bytes. For more
# information, see [Template Anatomy][1] in the AWS CloudFormation
# User Guide.
#
# Conditional: You must specify only one of the following parameters:
# `TemplateBody` or `TemplateURL`—or set `UsePreviousTemplate` to
# true.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
# @return [String]
#
# @!attribute [rw] template_url
# The location of the file that contains the template body. The URL
# must point to a template (maximum size: 460,800 bytes) that is
# located in an Amazon S3 bucket. For more information, see [Template
# Anatomy][1] in the AWS CloudFormation User Guide.
#
# Conditional: You must specify only one of the following parameters:
# `TemplateBody` or `TemplateURL`—or set `UsePreviousTemplate` to
# true.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
# @return [String]
#
# @!attribute [rw] use_previous_template
# Use the existing template that's associated with the stack set that
# you're updating.
#
# Conditional: You must specify only one of the following parameters:
# `TemplateBody` or `TemplateURL`—or set `UsePreviousTemplate` to
# true.
# @return [Boolean]
#
# @!attribute [rw] parameters
# A list of input parameters for the stack set template.
# @return [Array]
#
# @!attribute [rw] capabilities
# In some cases, you must explicitly acknowledge that your stack
# template contains certain capabilities in order for AWS
# CloudFormation to update the stack set and its associated stack
# instances.
#
# * `CAPABILITY_IAM` and `CAPABILITY_NAMED_IAM`
#
# Some stack templates might include resources that can affect
# permissions in your AWS account; for example, by creating new AWS
# Identity and Access Management (IAM) users. For those stacks sets,
# you must explicitly acknowledge this by specifying one of these
# capabilities.
#
# The following IAM resources require you to specify either the
# `CAPABILITY_IAM` or `CAPABILITY_NAMED_IAM` capability.
#
# * If you have IAM resources, you can specify either capability.
#
# * If you have IAM resources with custom names, you *must* specify
# `CAPABILITY_NAMED_IAM`.
#
# * If you don't specify either of these capabilities, AWS
# CloudFormation returns an `InsufficientCapabilities` error.
#
# If your stack template contains these resources, we recommend that
# you review all permissions associated with them and edit their
# permissions if necessary.
#
# * [ AWS::IAM::AccessKey][1]
#
# * [ AWS::IAM::Group][2]
#
# * [ AWS::IAM::InstanceProfile][3]
#
# * [ AWS::IAM::Policy][4]
#
# * [ AWS::IAM::Role][5]
#
# * [ AWS::IAM::User][6]
#
# * [ AWS::IAM::UserToGroupAddition][7]
#
# For more information, see [Acknowledging IAM Resources in AWS
# CloudFormation Templates][8].
#
# * `CAPABILITY_AUTO_EXPAND`
#
# Some templates contain macros. If your stack template contains one
# or more macros, and you choose to update a stack directly from the
# processed template, without first reviewing the resulting changes
# in a change set, you must acknowledge this capability. For more
# information, see [Using AWS CloudFormation Macros to Perform
# Custom Processing on Templates][9].
#
# Stack sets do not currently support macros in stack templates.
# (This includes the [AWS::Include][10] and [AWS::Serverless][11]
# transforms, which are macros hosted by AWS CloudFormation.) Even
# if you specify this capability, if you include a macro in your
# template the stack set operation will fail.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html
# [3]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html
# [4]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html
# [5]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html
# [6]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html
# [7]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html
# [8]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities
# [9]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html
# [10]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/create-reusable-transform-function-snippets-and-add-to-your-template-with-aws-include-transform.html
# [11]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/transform-aws-serverless.html
# @return [Array]
#
# @!attribute [rw] tags
# The key-value pairs to associate with this stack set and the stacks
# created from it. AWS CloudFormation also propagates these tags to
# supported resources that are created in the stacks. You can specify
# a maximum number of 50 tags.
#
# If you specify tags for this parameter, those tags replace any list
# of tags that are currently associated with this stack set. This
# means:
#
# * If you don't specify this parameter, AWS CloudFormation doesn't
# modify the stack's tags.
#
# * If you specify *any* tags using this parameter, you must specify
# *all* the tags that you want associated with this stack set, even
# tags you've specifed before (for example, when creating the stack
# set or during a previous update of the stack set.). Any tags that
# you don't include in the updated list of tags are removed from
# the stack set, and therefore from the stacks and resources as
# well.
#
# * If you specify an empty value, AWS CloudFormation removes all
# currently associated tags.
#
# If you specify new tags as part of an `UpdateStackSet` action, AWS
# CloudFormation checks to see if you have the required IAM permission
# to tag resources. If you omit tags that are currently associated
# with the stack set from the list of tags you specify, AWS
# CloudFormation assumes that you want to remove those tags from the
# stack set, and checks to see if you have permission to untag
# resources. If you don't have the necessary permission(s), the
# entire `UpdateStackSet` action fails with an `access denied` error,
# and the stack set is not updated.
# @return [Array]
#
# @!attribute [rw] operation_preferences
# Preferences for how AWS CloudFormation performs this stack set
# operation.
# @return [Types::StackSetOperationPreferences]
#
# @!attribute [rw] administration_role_arn
# The Amazon Resource Number (ARN) of the IAM role to use to update
# this stack set.
#
# Specify an IAM role only if you are using customized administrator
# roles to control which users or groups can manage specific stack
# sets within the same administrator account. For more information,
# see [Granting Permissions for Stack Set Operations][1] in the *AWS
# CloudFormation User Guide*.
#
# If you specified a customized administrator role when you created
# the stack set, you must specify a customized administrator role,
# even if it is the same customized administrator role used with this
# stack set previously.
#
#
#
# [1]: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs.html
# @return [String]
#
# @!attribute [rw] execution_role_name
# The name of the IAM execution role to use to update the stack set.
# If you do not specify an execution role, AWS CloudFormation uses the
# `AWSCloudFormationStackSetExecutionRole` role for the stack set
# operation.
#
# Specify an IAM role only if you are using customized execution roles
# to control which stack resources users and groups can include in
# their stack sets.
#
# If you specify a customized execution role, AWS CloudFormation uses
# that role to update the stack. If you do not specify a customized
# execution role, AWS CloudFormation performs the update using the
# role previously associated with the stack set, so long as you have
# permissions to perform operations on the stack set.
# @return [String]
#
# @!attribute [rw] deployment_targets
# \[`Service-managed` permissions\] The AWS Organizations accounts in
# which to update associated stack instances.
#
# To update all the stack instances associated with this stack set, do
# not specify `DeploymentTargets` or `Regions`.
#
# If the stack set update includes changes to the template (that is,
# if `TemplateBody` or `TemplateURL` is specified), or the
# `Parameters`, AWS CloudFormation marks all stack instances with a
# status of `OUTDATED` prior to updating the stack instances in the
# specified accounts and Regions. If the stack set update does not
# include changes to the template or parameters, AWS CloudFormation
# updates the stack instances in the specified accounts and Regions,
# while leaving all other stack instances with their existing stack
# instance status.
# @return [Types::DeploymentTargets]
#
# @!attribute [rw] permission_model
# Describes how the IAM roles required for stack set operations are
# created. You cannot modify `PermissionModel` if there are stack
# instances associated with your stack set.
#
# * With `self-managed` permissions, you must create the administrator
# and execution roles required to deploy to target accounts. For
# more information, see [Grant Self-Managed Stack Set
# Permissions][1].
#
# * With `service-managed` permissions, StackSets automatically
# creates the IAM roles required to deploy to accounts managed by
# AWS Organizations. For more information, see [Grant
# Service-Managed Stack Set Permissions][2].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html
# [2]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-service-managed.html
# @return [String]
#
# @!attribute [rw] auto_deployment
# \[`Service-managed` permissions\] Describes whether StackSets
# automatically deploys to AWS Organizations accounts that are added
# to a target organization or organizational unit (OU).
#
# If you specify `AutoDeployment`, do not specify `DeploymentTargets`
# or `Regions`.
# @return [Types::AutoDeployment]
#
# @!attribute [rw] operation_id
# The unique ID for this stack set operation.
#
# The operation ID also functions as an idempotency token, to ensure
# that AWS CloudFormation performs the stack set operation only once,
# even if you retry the request multiple times. You might retry stack
# set operation requests to ensure that AWS CloudFormation
# successfully received them.
#
# If you don't specify an operation ID, AWS CloudFormation generates
# one automatically.
#
# Repeating this stack set operation with a new operation ID retries
# all stack instances whose status is `OUTDATED`.
#
# **A suitable default value is auto-generated.** You should normally
# not need to pass this option.
# @return [String]
#
# @!attribute [rw] accounts
# \[`Self-managed` permissions\] The accounts in which to update
# associated stack instances. If you specify accounts, you must also
# specify the Regions in which to update stack set instances.
#
# To update *all* the stack instances associated with this stack set,
# do not specify the `Accounts` or `Regions` properties.
#
# If the stack set update includes changes to the template (that is,
# if the `TemplateBody` or `TemplateURL` properties are specified), or
# the `Parameters` property, AWS CloudFormation marks all stack
# instances with a status of `OUTDATED` prior to updating the stack
# instances in the specified accounts and Regions. If the stack set
# update does not include changes to the template or parameters, AWS
# CloudFormation updates the stack instances in the specified accounts
# and Regions, while leaving all other stack instances with their
# existing stack instance status.
# @return [Array]
#
# @!attribute [rw] regions
# The Regions in which to update associated stack instances. If you
# specify Regions, you must also specify accounts in which to update
# stack set instances.
#
# To update *all* the stack instances associated with this stack set,
# do not specify the `Accounts` or `Regions` properties.
#
# If the stack set update includes changes to the template (that is,
# if the `TemplateBody` or `TemplateURL` properties are specified), or
# the `Parameters` property, AWS CloudFormation marks all stack
# instances with a status of `OUTDATED` prior to updating the stack
# instances in the specified accounts and Regions. If the stack set
# update does not include changes to the template or parameters, AWS
# CloudFormation updates the stack instances in the specified accounts
# and Regions, while leaving all other stack instances with their
# existing stack instance status.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackSetInput AWS API Documentation
#
class UpdateStackSetInput < Struct.new(
:stack_set_name,
:description,
:template_body,
:template_url,
:use_previous_template,
:parameters,
:capabilities,
:tags,
:operation_preferences,
:administration_role_arn,
:execution_role_name,
:deployment_targets,
:permission_model,
:auto_deployment,
:operation_id,
:accounts,
:regions)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] operation_id
# The unique ID for this stack set operation.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateStackSetOutput AWS API Documentation
#
class UpdateStackSetOutput < Struct.new(
:operation_id)
SENSITIVE = []
include Aws::Structure
end
# @note When making an API call, you may pass UpdateTerminationProtectionInput
# data as a hash:
#
# {
# enable_termination_protection: false, # required
# stack_name: "StackNameOrId", # required
# }
#
# @!attribute [rw] enable_termination_protection
# Whether to enable termination protection on the specified stack.
# @return [Boolean]
#
# @!attribute [rw] stack_name
# The name or unique ID of the stack for which you want to set
# termination protection.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateTerminationProtectionInput AWS API Documentation
#
class UpdateTerminationProtectionInput < Struct.new(
:enable_termination_protection,
:stack_name)
SENSITIVE = []
include Aws::Structure
end
# @!attribute [rw] stack_id
# The unique ID of the stack.
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/UpdateTerminationProtectionOutput AWS API Documentation
#
class UpdateTerminationProtectionOutput < Struct.new(
:stack_id)
SENSITIVE = []
include Aws::Structure
end
# The input for ValidateTemplate action.
#
# @note When making an API call, you may pass ValidateTemplateInput
# data as a hash:
#
# {
# template_body: "TemplateBody",
# template_url: "TemplateURL",
# }
#
# @!attribute [rw] template_body
# Structure containing the template body with a minimum length of 1
# byte and a maximum length of 51,200 bytes. For more information, go
# to [Template Anatomy][1] in the AWS CloudFormation User Guide.
#
# Conditional: You must pass `TemplateURL` or `TemplateBody`. If both
# are passed, only `TemplateBody` is used.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
# @return [String]
#
# @!attribute [rw] template_url
# Location of file containing the template body. The URL must point to
# a template (max size: 460,800 bytes) that is located in an Amazon S3
# bucket. For more information, go to [Template Anatomy][1] in the AWS
# CloudFormation User Guide.
#
# Conditional: You must pass `TemplateURL` or `TemplateBody`. If both
# are passed, only `TemplateBody` is used.
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html
# @return [String]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ValidateTemplateInput AWS API Documentation
#
class ValidateTemplateInput < Struct.new(
:template_body,
:template_url)
SENSITIVE = []
include Aws::Structure
end
# The output for ValidateTemplate action.
#
# @!attribute [rw] parameters
# A list of `TemplateParameter` structures.
# @return [Array]
#
# @!attribute [rw] description
# The description found within the template.
# @return [String]
#
# @!attribute [rw] capabilities
# The capabilities found within the template. If your template
# contains IAM resources, you must specify the CAPABILITY\_IAM or
# CAPABILITY\_NAMED\_IAM value for this parameter when you use the
# CreateStack or UpdateStack actions with your template; otherwise,
# those actions return an InsufficientCapabilities error.
#
# For more information, see [Acknowledging IAM Resources in AWS
# CloudFormation Templates][1].
#
#
#
# [1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities
# @return [Array]
#
# @!attribute [rw] capabilities_reason
# The list of resources that generated the values in the
# `Capabilities` response element.
# @return [String]
#
# @!attribute [rw] declared_transforms
# A list of the transforms that are declared in the template.
# @return [Array]
#
# @see http://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/ValidateTemplateOutput AWS API Documentation
#
class ValidateTemplateOutput < Struct.new(
:parameters,
:description,
:capabilities,
:capabilities_reason,
:declared_transforms)
SENSITIVE = []
include Aws::Structure
end
end
end
aws-sdk-cloudformation-1.41.0/lib/aws-sdk-cloudformation/client_api.rb 0000644 0001750 0001750 00000454664 13715265306 025046 0 ustar pravi pravi # frozen_string_literal: true
# WARNING ABOUT GENERATED CODE
#
# This file is generated. See the contributing guide for more information:
# https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
#
# WARNING ABOUT GENERATED CODE
module Aws::CloudFormation
# @api private
module ClientApi
include Seahorse::Model
Account = Shapes::StringShape.new(name: 'Account')
AccountGateResult = Shapes::StructureShape.new(name: 'AccountGateResult')
AccountGateStatus = Shapes::StringShape.new(name: 'AccountGateStatus')
AccountGateStatusReason = Shapes::StringShape.new(name: 'AccountGateStatusReason')
AccountLimit = Shapes::StructureShape.new(name: 'AccountLimit')
AccountLimitList = Shapes::ListShape.new(name: 'AccountLimitList')
AccountList = Shapes::ListShape.new(name: 'AccountList')
AllowedValue = Shapes::StringShape.new(name: 'AllowedValue')
AllowedValues = Shapes::ListShape.new(name: 'AllowedValues')
AlreadyExistsException = Shapes::StructureShape.new(name: 'AlreadyExistsException')
Arn = Shapes::StringShape.new(name: 'Arn')
AutoDeployment = Shapes::StructureShape.new(name: 'AutoDeployment')
AutoDeploymentNullable = Shapes::BooleanShape.new(name: 'AutoDeploymentNullable')
BoxedInteger = Shapes::IntegerShape.new(name: 'BoxedInteger')
BoxedMaxResults = Shapes::IntegerShape.new(name: 'BoxedMaxResults')
CFNRegistryException = Shapes::StructureShape.new(name: 'CFNRegistryException')
CancelUpdateStackInput = Shapes::StructureShape.new(name: 'CancelUpdateStackInput')
Capabilities = Shapes::ListShape.new(name: 'Capabilities')
CapabilitiesReason = Shapes::StringShape.new(name: 'CapabilitiesReason')
Capability = Shapes::StringShape.new(name: 'Capability')
CausingEntity = Shapes::StringShape.new(name: 'CausingEntity')
Change = Shapes::StructureShape.new(name: 'Change')
ChangeAction = Shapes::StringShape.new(name: 'ChangeAction')
ChangeSetId = Shapes::StringShape.new(name: 'ChangeSetId')
ChangeSetName = Shapes::StringShape.new(name: 'ChangeSetName')
ChangeSetNameOrId = Shapes::StringShape.new(name: 'ChangeSetNameOrId')
ChangeSetNotFoundException = Shapes::StructureShape.new(name: 'ChangeSetNotFoundException')
ChangeSetStatus = Shapes::StringShape.new(name: 'ChangeSetStatus')
ChangeSetStatusReason = Shapes::StringShape.new(name: 'ChangeSetStatusReason')
ChangeSetSummaries = Shapes::ListShape.new(name: 'ChangeSetSummaries')
ChangeSetSummary = Shapes::StructureShape.new(name: 'ChangeSetSummary')
ChangeSetType = Shapes::StringShape.new(name: 'ChangeSetType')
ChangeSource = Shapes::StringShape.new(name: 'ChangeSource')
ChangeType = Shapes::StringShape.new(name: 'ChangeType')
Changes = Shapes::ListShape.new(name: 'Changes')
ClientRequestToken = Shapes::StringShape.new(name: 'ClientRequestToken')
ClientToken = Shapes::StringShape.new(name: 'ClientToken')
ContinueUpdateRollbackInput = Shapes::StructureShape.new(name: 'ContinueUpdateRollbackInput')
ContinueUpdateRollbackOutput = Shapes::StructureShape.new(name: 'ContinueUpdateRollbackOutput')
CreateChangeSetInput = Shapes::StructureShape.new(name: 'CreateChangeSetInput')
CreateChangeSetOutput = Shapes::StructureShape.new(name: 'CreateChangeSetOutput')
CreateStackInput = Shapes::StructureShape.new(name: 'CreateStackInput')
CreateStackInstancesInput = Shapes::StructureShape.new(name: 'CreateStackInstancesInput')
CreateStackInstancesOutput = Shapes::StructureShape.new(name: 'CreateStackInstancesOutput')
CreateStackOutput = Shapes::StructureShape.new(name: 'CreateStackOutput')
CreateStackSetInput = Shapes::StructureShape.new(name: 'CreateStackSetInput')
CreateStackSetOutput = Shapes::StructureShape.new(name: 'CreateStackSetOutput')
CreatedButModifiedException = Shapes::StructureShape.new(name: 'CreatedButModifiedException')
CreationTime = Shapes::TimestampShape.new(name: 'CreationTime')
DeleteChangeSetInput = Shapes::StructureShape.new(name: 'DeleteChangeSetInput')
DeleteChangeSetOutput = Shapes::StructureShape.new(name: 'DeleteChangeSetOutput')
DeleteStackInput = Shapes::StructureShape.new(name: 'DeleteStackInput')
DeleteStackInstancesInput = Shapes::StructureShape.new(name: 'DeleteStackInstancesInput')
DeleteStackInstancesOutput = Shapes::StructureShape.new(name: 'DeleteStackInstancesOutput')
DeleteStackSetInput = Shapes::StructureShape.new(name: 'DeleteStackSetInput')
DeleteStackSetOutput = Shapes::StructureShape.new(name: 'DeleteStackSetOutput')
DeletionTime = Shapes::TimestampShape.new(name: 'DeletionTime')
DeploymentTargets = Shapes::StructureShape.new(name: 'DeploymentTargets')
DeprecatedStatus = Shapes::StringShape.new(name: 'DeprecatedStatus')
DeregisterTypeInput = Shapes::StructureShape.new(name: 'DeregisterTypeInput')
DeregisterTypeOutput = Shapes::StructureShape.new(name: 'DeregisterTypeOutput')
DescribeAccountLimitsInput = Shapes::StructureShape.new(name: 'DescribeAccountLimitsInput')
DescribeAccountLimitsOutput = Shapes::StructureShape.new(name: 'DescribeAccountLimitsOutput')
DescribeChangeSetInput = Shapes::StructureShape.new(name: 'DescribeChangeSetInput')
DescribeChangeSetOutput = Shapes::StructureShape.new(name: 'DescribeChangeSetOutput')
DescribeStackDriftDetectionStatusInput = Shapes::StructureShape.new(name: 'DescribeStackDriftDetectionStatusInput')
DescribeStackDriftDetectionStatusOutput = Shapes::StructureShape.new(name: 'DescribeStackDriftDetectionStatusOutput')
DescribeStackEventsInput = Shapes::StructureShape.new(name: 'DescribeStackEventsInput')
DescribeStackEventsOutput = Shapes::StructureShape.new(name: 'DescribeStackEventsOutput')
DescribeStackInstanceInput = Shapes::StructureShape.new(name: 'DescribeStackInstanceInput')
DescribeStackInstanceOutput = Shapes::StructureShape.new(name: 'DescribeStackInstanceOutput')
DescribeStackResourceDriftsInput = Shapes::StructureShape.new(name: 'DescribeStackResourceDriftsInput')
DescribeStackResourceDriftsOutput = Shapes::StructureShape.new(name: 'DescribeStackResourceDriftsOutput')
DescribeStackResourceInput = Shapes::StructureShape.new(name: 'DescribeStackResourceInput')
DescribeStackResourceOutput = Shapes::StructureShape.new(name: 'DescribeStackResourceOutput')
DescribeStackResourcesInput = Shapes::StructureShape.new(name: 'DescribeStackResourcesInput')
DescribeStackResourcesOutput = Shapes::StructureShape.new(name: 'DescribeStackResourcesOutput')
DescribeStackSetInput = Shapes::StructureShape.new(name: 'DescribeStackSetInput')
DescribeStackSetOperationInput = Shapes::StructureShape.new(name: 'DescribeStackSetOperationInput')
DescribeStackSetOperationOutput = Shapes::StructureShape.new(name: 'DescribeStackSetOperationOutput')
DescribeStackSetOutput = Shapes::StructureShape.new(name: 'DescribeStackSetOutput')
DescribeStacksInput = Shapes::StructureShape.new(name: 'DescribeStacksInput')
DescribeStacksOutput = Shapes::StructureShape.new(name: 'DescribeStacksOutput')
DescribeTypeInput = Shapes::StructureShape.new(name: 'DescribeTypeInput')
DescribeTypeOutput = Shapes::StructureShape.new(name: 'DescribeTypeOutput')
DescribeTypeRegistrationInput = Shapes::StructureShape.new(name: 'DescribeTypeRegistrationInput')
DescribeTypeRegistrationOutput = Shapes::StructureShape.new(name: 'DescribeTypeRegistrationOutput')
Description = Shapes::StringShape.new(name: 'Description')
DetectStackDriftInput = Shapes::StructureShape.new(name: 'DetectStackDriftInput')
DetectStackDriftOutput = Shapes::StructureShape.new(name: 'DetectStackDriftOutput')
DetectStackResourceDriftInput = Shapes::StructureShape.new(name: 'DetectStackResourceDriftInput')
DetectStackResourceDriftOutput = Shapes::StructureShape.new(name: 'DetectStackResourceDriftOutput')
DetectStackSetDriftInput = Shapes::StructureShape.new(name: 'DetectStackSetDriftInput')
DetectStackSetDriftOutput = Shapes::StructureShape.new(name: 'DetectStackSetDriftOutput')
DifferenceType = Shapes::StringShape.new(name: 'DifferenceType')
DisableRollback = Shapes::BooleanShape.new(name: 'DisableRollback')
DriftedStackInstancesCount = Shapes::IntegerShape.new(name: 'DriftedStackInstancesCount')
EnableTerminationProtection = Shapes::BooleanShape.new(name: 'EnableTerminationProtection')
ErrorMessage = Shapes::StringShape.new(name: 'ErrorMessage')
EstimateTemplateCostInput = Shapes::StructureShape.new(name: 'EstimateTemplateCostInput')
EstimateTemplateCostOutput = Shapes::StructureShape.new(name: 'EstimateTemplateCostOutput')
EvaluationType = Shapes::StringShape.new(name: 'EvaluationType')
EventId = Shapes::StringShape.new(name: 'EventId')
ExecuteChangeSetInput = Shapes::StructureShape.new(name: 'ExecuteChangeSetInput')
ExecuteChangeSetOutput = Shapes::StructureShape.new(name: 'ExecuteChangeSetOutput')
ExecutionRoleName = Shapes::StringShape.new(name: 'ExecutionRoleName')
ExecutionStatus = Shapes::StringShape.new(name: 'ExecutionStatus')
Export = Shapes::StructureShape.new(name: 'Export')
ExportName = Shapes::StringShape.new(name: 'ExportName')
ExportValue = Shapes::StringShape.new(name: 'ExportValue')
Exports = Shapes::ListShape.new(name: 'Exports')
FailedStackInstancesCount = Shapes::IntegerShape.new(name: 'FailedStackInstancesCount')
FailureToleranceCount = Shapes::IntegerShape.new(name: 'FailureToleranceCount')
FailureTolerancePercentage = Shapes::IntegerShape.new(name: 'FailureTolerancePercentage')
GetStackPolicyInput = Shapes::StructureShape.new(name: 'GetStackPolicyInput')
GetStackPolicyOutput = Shapes::StructureShape.new(name: 'GetStackPolicyOutput')
GetTemplateInput = Shapes::StructureShape.new(name: 'GetTemplateInput')
GetTemplateOutput = Shapes::StructureShape.new(name: 'GetTemplateOutput')
GetTemplateSummaryInput = Shapes::StructureShape.new(name: 'GetTemplateSummaryInput')
GetTemplateSummaryOutput = Shapes::StructureShape.new(name: 'GetTemplateSummaryOutput')
HandlerErrorCode = Shapes::StringShape.new(name: 'HandlerErrorCode')
Imports = Shapes::ListShape.new(name: 'Imports')
InProgressStackInstancesCount = Shapes::IntegerShape.new(name: 'InProgressStackInstancesCount')
InSyncStackInstancesCount = Shapes::IntegerShape.new(name: 'InSyncStackInstancesCount')
InsufficientCapabilitiesException = Shapes::StructureShape.new(name: 'InsufficientCapabilitiesException')
InvalidChangeSetStatusException = Shapes::StructureShape.new(name: 'InvalidChangeSetStatusException')
InvalidOperationException = Shapes::StructureShape.new(name: 'InvalidOperationException')
InvalidStateTransitionException = Shapes::StructureShape.new(name: 'InvalidStateTransitionException')
IsDefaultVersion = Shapes::BooleanShape.new(name: 'IsDefaultVersion')
Key = Shapes::StringShape.new(name: 'Key')
LastUpdatedTime = Shapes::TimestampShape.new(name: 'LastUpdatedTime')
LimitExceededException = Shapes::StructureShape.new(name: 'LimitExceededException')
LimitName = Shapes::StringShape.new(name: 'LimitName')
LimitValue = Shapes::IntegerShape.new(name: 'LimitValue')
ListChangeSetsInput = Shapes::StructureShape.new(name: 'ListChangeSetsInput')
ListChangeSetsOutput = Shapes::StructureShape.new(name: 'ListChangeSetsOutput')
ListExportsInput = Shapes::StructureShape.new(name: 'ListExportsInput')
ListExportsOutput = Shapes::StructureShape.new(name: 'ListExportsOutput')
ListImportsInput = Shapes::StructureShape.new(name: 'ListImportsInput')
ListImportsOutput = Shapes::StructureShape.new(name: 'ListImportsOutput')
ListStackInstancesInput = Shapes::StructureShape.new(name: 'ListStackInstancesInput')
ListStackInstancesOutput = Shapes::StructureShape.new(name: 'ListStackInstancesOutput')
ListStackResourcesInput = Shapes::StructureShape.new(name: 'ListStackResourcesInput')
ListStackResourcesOutput = Shapes::StructureShape.new(name: 'ListStackResourcesOutput')
ListStackSetOperationResultsInput = Shapes::StructureShape.new(name: 'ListStackSetOperationResultsInput')
ListStackSetOperationResultsOutput = Shapes::StructureShape.new(name: 'ListStackSetOperationResultsOutput')
ListStackSetOperationsInput = Shapes::StructureShape.new(name: 'ListStackSetOperationsInput')
ListStackSetOperationsOutput = Shapes::StructureShape.new(name: 'ListStackSetOperationsOutput')
ListStackSetsInput = Shapes::StructureShape.new(name: 'ListStackSetsInput')
ListStackSetsOutput = Shapes::StructureShape.new(name: 'ListStackSetsOutput')
ListStacksInput = Shapes::StructureShape.new(name: 'ListStacksInput')
ListStacksOutput = Shapes::StructureShape.new(name: 'ListStacksOutput')
ListTypeRegistrationsInput = Shapes::StructureShape.new(name: 'ListTypeRegistrationsInput')
ListTypeRegistrationsOutput = Shapes::StructureShape.new(name: 'ListTypeRegistrationsOutput')
ListTypeVersionsInput = Shapes::StructureShape.new(name: 'ListTypeVersionsInput')
ListTypeVersionsOutput = Shapes::StructureShape.new(name: 'ListTypeVersionsOutput')
ListTypesInput = Shapes::StructureShape.new(name: 'ListTypesInput')
ListTypesOutput = Shapes::StructureShape.new(name: 'ListTypesOutput')
LogGroupName = Shapes::StringShape.new(name: 'LogGroupName')
LoggingConfig = Shapes::StructureShape.new(name: 'LoggingConfig')
LogicalResourceId = Shapes::StringShape.new(name: 'LogicalResourceId')
LogicalResourceIds = Shapes::ListShape.new(name: 'LogicalResourceIds')
MaxConcurrentCount = Shapes::IntegerShape.new(name: 'MaxConcurrentCount')
MaxConcurrentPercentage = Shapes::IntegerShape.new(name: 'MaxConcurrentPercentage')
MaxResults = Shapes::IntegerShape.new(name: 'MaxResults')
Metadata = Shapes::StringShape.new(name: 'Metadata')
MonitoringTimeInMinutes = Shapes::IntegerShape.new(name: 'MonitoringTimeInMinutes')
NameAlreadyExistsException = Shapes::StructureShape.new(name: 'NameAlreadyExistsException')
NextToken = Shapes::StringShape.new(name: 'NextToken')
NoEcho = Shapes::BooleanShape.new(name: 'NoEcho')
NotificationARN = Shapes::StringShape.new(name: 'NotificationARN')
NotificationARNs = Shapes::ListShape.new(name: 'NotificationARNs')
OnFailure = Shapes::StringShape.new(name: 'OnFailure')
OperationIdAlreadyExistsException = Shapes::StructureShape.new(name: 'OperationIdAlreadyExistsException')
OperationInProgressException = Shapes::StructureShape.new(name: 'OperationInProgressException')
OperationNotFoundException = Shapes::StructureShape.new(name: 'OperationNotFoundException')
OperationStatus = Shapes::StringShape.new(name: 'OperationStatus')
OperationStatusCheckFailedException = Shapes::StructureShape.new(name: 'OperationStatusCheckFailedException')
OptionalSecureUrl = Shapes::StringShape.new(name: 'OptionalSecureUrl')
OrganizationalUnitId = Shapes::StringShape.new(name: 'OrganizationalUnitId')
OrganizationalUnitIdList = Shapes::ListShape.new(name: 'OrganizationalUnitIdList')
Output = Shapes::StructureShape.new(name: 'Output')
OutputKey = Shapes::StringShape.new(name: 'OutputKey')
OutputValue = Shapes::StringShape.new(name: 'OutputValue')
Outputs = Shapes::ListShape.new(name: 'Outputs')
Parameter = Shapes::StructureShape.new(name: 'Parameter')
ParameterConstraints = Shapes::StructureShape.new(name: 'ParameterConstraints')
ParameterDeclaration = Shapes::StructureShape.new(name: 'ParameterDeclaration')
ParameterDeclarations = Shapes::ListShape.new(name: 'ParameterDeclarations')
ParameterKey = Shapes::StringShape.new(name: 'ParameterKey')
ParameterType = Shapes::StringShape.new(name: 'ParameterType')
ParameterValue = Shapes::StringShape.new(name: 'ParameterValue')
Parameters = Shapes::ListShape.new(name: 'Parameters')
PermissionModels = Shapes::StringShape.new(name: 'PermissionModels')
PhysicalResourceId = Shapes::StringShape.new(name: 'PhysicalResourceId')
PhysicalResourceIdContext = Shapes::ListShape.new(name: 'PhysicalResourceIdContext')
PhysicalResourceIdContextKeyValuePair = Shapes::StructureShape.new(name: 'PhysicalResourceIdContextKeyValuePair')
PrivateTypeArn = Shapes::StringShape.new(name: 'PrivateTypeArn')
Properties = Shapes::StringShape.new(name: 'Properties')
PropertyDifference = Shapes::StructureShape.new(name: 'PropertyDifference')
PropertyDifferences = Shapes::ListShape.new(name: 'PropertyDifferences')
PropertyName = Shapes::StringShape.new(name: 'PropertyName')
PropertyPath = Shapes::StringShape.new(name: 'PropertyPath')
PropertyValue = Shapes::StringShape.new(name: 'PropertyValue')
ProvisioningType = Shapes::StringShape.new(name: 'ProvisioningType')
Reason = Shapes::StringShape.new(name: 'Reason')
RecordHandlerProgressInput = Shapes::StructureShape.new(name: 'RecordHandlerProgressInput')
RecordHandlerProgressOutput = Shapes::StructureShape.new(name: 'RecordHandlerProgressOutput')
Region = Shapes::StringShape.new(name: 'Region')
RegionList = Shapes::ListShape.new(name: 'RegionList')
RegisterTypeInput = Shapes::StructureShape.new(name: 'RegisterTypeInput')
RegisterTypeOutput = Shapes::StructureShape.new(name: 'RegisterTypeOutput')
RegistrationStatus = Shapes::StringShape.new(name: 'RegistrationStatus')
RegistrationToken = Shapes::StringShape.new(name: 'RegistrationToken')
RegistrationTokenList = Shapes::ListShape.new(name: 'RegistrationTokenList')
RegistryType = Shapes::StringShape.new(name: 'RegistryType')
Replacement = Shapes::StringShape.new(name: 'Replacement')
RequestToken = Shapes::StringShape.new(name: 'RequestToken')
RequiresRecreation = Shapes::StringShape.new(name: 'RequiresRecreation')
ResourceAttribute = Shapes::StringShape.new(name: 'ResourceAttribute')
ResourceChange = Shapes::StructureShape.new(name: 'ResourceChange')
ResourceChangeDetail = Shapes::StructureShape.new(name: 'ResourceChangeDetail')
ResourceChangeDetails = Shapes::ListShape.new(name: 'ResourceChangeDetails')
ResourceIdentifierProperties = Shapes::MapShape.new(name: 'ResourceIdentifierProperties')
ResourceIdentifierPropertyKey = Shapes::StringShape.new(name: 'ResourceIdentifierPropertyKey')
ResourceIdentifierPropertyValue = Shapes::StringShape.new(name: 'ResourceIdentifierPropertyValue')
ResourceIdentifierSummaries = Shapes::ListShape.new(name: 'ResourceIdentifierSummaries')
ResourceIdentifierSummary = Shapes::StructureShape.new(name: 'ResourceIdentifierSummary')
ResourceIdentifiers = Shapes::ListShape.new(name: 'ResourceIdentifiers')
ResourceModel = Shapes::StringShape.new(name: 'ResourceModel')
ResourceProperties = Shapes::StringShape.new(name: 'ResourceProperties')
ResourceSignalStatus = Shapes::StringShape.new(name: 'ResourceSignalStatus')
ResourceSignalUniqueId = Shapes::StringShape.new(name: 'ResourceSignalUniqueId')
ResourceStatus = Shapes::StringShape.new(name: 'ResourceStatus')
ResourceStatusReason = Shapes::StringShape.new(name: 'ResourceStatusReason')
ResourceTargetDefinition = Shapes::StructureShape.new(name: 'ResourceTargetDefinition')
ResourceToImport = Shapes::StructureShape.new(name: 'ResourceToImport')
ResourceToSkip = Shapes::StringShape.new(name: 'ResourceToSkip')
ResourceType = Shapes::StringShape.new(name: 'ResourceType')
ResourceTypes = Shapes::ListShape.new(name: 'ResourceTypes')
ResourcesToImport = Shapes::ListShape.new(name: 'ResourcesToImport')
ResourcesToSkip = Shapes::ListShape.new(name: 'ResourcesToSkip')
RetainResources = Shapes::ListShape.new(name: 'RetainResources')
RetainStacks = Shapes::BooleanShape.new(name: 'RetainStacks')
RetainStacksNullable = Shapes::BooleanShape.new(name: 'RetainStacksNullable')
RetainStacksOnAccountRemovalNullable = Shapes::BooleanShape.new(name: 'RetainStacksOnAccountRemovalNullable')
RoleARN = Shapes::StringShape.new(name: 'RoleARN')
RoleArn = Shapes::StringShape.new(name: 'RoleArn')
RollbackConfiguration = Shapes::StructureShape.new(name: 'RollbackConfiguration')
RollbackTrigger = Shapes::StructureShape.new(name: 'RollbackTrigger')
RollbackTriggers = Shapes::ListShape.new(name: 'RollbackTriggers')
S3Url = Shapes::StringShape.new(name: 'S3Url')
Scope = Shapes::ListShape.new(name: 'Scope')
SetStackPolicyInput = Shapes::StructureShape.new(name: 'SetStackPolicyInput')
SetTypeDefaultVersionInput = Shapes::StructureShape.new(name: 'SetTypeDefaultVersionInput')
SetTypeDefaultVersionOutput = Shapes::StructureShape.new(name: 'SetTypeDefaultVersionOutput')
SignalResourceInput = Shapes::StructureShape.new(name: 'SignalResourceInput')
Stack = Shapes::StructureShape.new(name: 'Stack')
StackDriftDetectionId = Shapes::StringShape.new(name: 'StackDriftDetectionId')
StackDriftDetectionStatus = Shapes::StringShape.new(name: 'StackDriftDetectionStatus')
StackDriftDetectionStatusReason = Shapes::StringShape.new(name: 'StackDriftDetectionStatusReason')
StackDriftInformation = Shapes::StructureShape.new(name: 'StackDriftInformation')
StackDriftInformationSummary = Shapes::StructureShape.new(name: 'StackDriftInformationSummary')
StackDriftStatus = Shapes::StringShape.new(name: 'StackDriftStatus')
StackEvent = Shapes::StructureShape.new(name: 'StackEvent')
StackEvents = Shapes::ListShape.new(name: 'StackEvents')
StackId = Shapes::StringShape.new(name: 'StackId')
StackInstance = Shapes::StructureShape.new(name: 'StackInstance')
StackInstanceComprehensiveStatus = Shapes::StructureShape.new(name: 'StackInstanceComprehensiveStatus')
StackInstanceDetailedStatus = Shapes::StringShape.new(name: 'StackInstanceDetailedStatus')
StackInstanceFilter = Shapes::StructureShape.new(name: 'StackInstanceFilter')
StackInstanceFilterName = Shapes::StringShape.new(name: 'StackInstanceFilterName')
StackInstanceFilterValues = Shapes::StringShape.new(name: 'StackInstanceFilterValues')
StackInstanceFilters = Shapes::ListShape.new(name: 'StackInstanceFilters')
StackInstanceNotFoundException = Shapes::StructureShape.new(name: 'StackInstanceNotFoundException')
StackInstanceStatus = Shapes::StringShape.new(name: 'StackInstanceStatus')
StackInstanceSummaries = Shapes::ListShape.new(name: 'StackInstanceSummaries')
StackInstanceSummary = Shapes::StructureShape.new(name: 'StackInstanceSummary')
StackName = Shapes::StringShape.new(name: 'StackName')
StackNameOrId = Shapes::StringShape.new(name: 'StackNameOrId')
StackPolicyBody = Shapes::StringShape.new(name: 'StackPolicyBody')
StackPolicyDuringUpdateBody = Shapes::StringShape.new(name: 'StackPolicyDuringUpdateBody')
StackPolicyDuringUpdateURL = Shapes::StringShape.new(name: 'StackPolicyDuringUpdateURL')
StackPolicyURL = Shapes::StringShape.new(name: 'StackPolicyURL')
StackResource = Shapes::StructureShape.new(name: 'StackResource')
StackResourceDetail = Shapes::StructureShape.new(name: 'StackResourceDetail')
StackResourceDrift = Shapes::StructureShape.new(name: 'StackResourceDrift')
StackResourceDriftInformation = Shapes::StructureShape.new(name: 'StackResourceDriftInformation')
StackResourceDriftInformationSummary = Shapes::StructureShape.new(name: 'StackResourceDriftInformationSummary')
StackResourceDriftStatus = Shapes::StringShape.new(name: 'StackResourceDriftStatus')
StackResourceDriftStatusFilters = Shapes::ListShape.new(name: 'StackResourceDriftStatusFilters')
StackResourceDrifts = Shapes::ListShape.new(name: 'StackResourceDrifts')
StackResourceSummaries = Shapes::ListShape.new(name: 'StackResourceSummaries')
StackResourceSummary = Shapes::StructureShape.new(name: 'StackResourceSummary')
StackResources = Shapes::ListShape.new(name: 'StackResources')
StackSet = Shapes::StructureShape.new(name: 'StackSet')
StackSetARN = Shapes::StringShape.new(name: 'StackSetARN')
StackSetDriftDetectionDetails = Shapes::StructureShape.new(name: 'StackSetDriftDetectionDetails')
StackSetDriftDetectionStatus = Shapes::StringShape.new(name: 'StackSetDriftDetectionStatus')
StackSetDriftStatus = Shapes::StringShape.new(name: 'StackSetDriftStatus')
StackSetId = Shapes::StringShape.new(name: 'StackSetId')
StackSetName = Shapes::StringShape.new(name: 'StackSetName')
StackSetNameOrId = Shapes::StringShape.new(name: 'StackSetNameOrId')
StackSetNotEmptyException = Shapes::StructureShape.new(name: 'StackSetNotEmptyException')
StackSetNotFoundException = Shapes::StructureShape.new(name: 'StackSetNotFoundException')
StackSetOperation = Shapes::StructureShape.new(name: 'StackSetOperation')
StackSetOperationAction = Shapes::StringShape.new(name: 'StackSetOperationAction')
StackSetOperationPreferences = Shapes::StructureShape.new(name: 'StackSetOperationPreferences')
StackSetOperationResultStatus = Shapes::StringShape.new(name: 'StackSetOperationResultStatus')
StackSetOperationResultSummaries = Shapes::ListShape.new(name: 'StackSetOperationResultSummaries')
StackSetOperationResultSummary = Shapes::StructureShape.new(name: 'StackSetOperationResultSummary')
StackSetOperationStatus = Shapes::StringShape.new(name: 'StackSetOperationStatus')
StackSetOperationSummaries = Shapes::ListShape.new(name: 'StackSetOperationSummaries')
StackSetOperationSummary = Shapes::StructureShape.new(name: 'StackSetOperationSummary')
StackSetStatus = Shapes::StringShape.new(name: 'StackSetStatus')
StackSetSummaries = Shapes::ListShape.new(name: 'StackSetSummaries')
StackSetSummary = Shapes::StructureShape.new(name: 'StackSetSummary')
StackStatus = Shapes::StringShape.new(name: 'StackStatus')
StackStatusFilter = Shapes::ListShape.new(name: 'StackStatusFilter')
StackStatusReason = Shapes::StringShape.new(name: 'StackStatusReason')
StackSummaries = Shapes::ListShape.new(name: 'StackSummaries')
StackSummary = Shapes::StructureShape.new(name: 'StackSummary')
Stacks = Shapes::ListShape.new(name: 'Stacks')
StageList = Shapes::ListShape.new(name: 'StageList')
StaleRequestException = Shapes::StructureShape.new(name: 'StaleRequestException')
StatusMessage = Shapes::StringShape.new(name: 'StatusMessage')
StopStackSetOperationInput = Shapes::StructureShape.new(name: 'StopStackSetOperationInput')
StopStackSetOperationOutput = Shapes::StructureShape.new(name: 'StopStackSetOperationOutput')
Tag = Shapes::StructureShape.new(name: 'Tag')
TagKey = Shapes::StringShape.new(name: 'TagKey')
TagValue = Shapes::StringShape.new(name: 'TagValue')
Tags = Shapes::ListShape.new(name: 'Tags')
TemplateBody = Shapes::StringShape.new(name: 'TemplateBody')
TemplateDescription = Shapes::StringShape.new(name: 'TemplateDescription')
TemplateParameter = Shapes::StructureShape.new(name: 'TemplateParameter')
TemplateParameters = Shapes::ListShape.new(name: 'TemplateParameters')
TemplateStage = Shapes::StringShape.new(name: 'TemplateStage')
TemplateURL = Shapes::StringShape.new(name: 'TemplateURL')
TimeoutMinutes = Shapes::IntegerShape.new(name: 'TimeoutMinutes')
Timestamp = Shapes::TimestampShape.new(name: 'Timestamp')
TokenAlreadyExistsException = Shapes::StructureShape.new(name: 'TokenAlreadyExistsException')
TotalStackInstancesCount = Shapes::IntegerShape.new(name: 'TotalStackInstancesCount')
TransformName = Shapes::StringShape.new(name: 'TransformName')
TransformsList = Shapes::ListShape.new(name: 'TransformsList')
Type = Shapes::StringShape.new(name: 'Type')
TypeArn = Shapes::StringShape.new(name: 'TypeArn')
TypeName = Shapes::StringShape.new(name: 'TypeName')
TypeNotFoundException = Shapes::StructureShape.new(name: 'TypeNotFoundException')
TypeSchema = Shapes::StringShape.new(name: 'TypeSchema')
TypeSummaries = Shapes::ListShape.new(name: 'TypeSummaries')
TypeSummary = Shapes::StructureShape.new(name: 'TypeSummary')
TypeVersionId = Shapes::StringShape.new(name: 'TypeVersionId')
TypeVersionSummaries = Shapes::ListShape.new(name: 'TypeVersionSummaries')
TypeVersionSummary = Shapes::StructureShape.new(name: 'TypeVersionSummary')
UpdateStackInput = Shapes::StructureShape.new(name: 'UpdateStackInput')
UpdateStackInstancesInput = Shapes::StructureShape.new(name: 'UpdateStackInstancesInput')
UpdateStackInstancesOutput = Shapes::StructureShape.new(name: 'UpdateStackInstancesOutput')
UpdateStackOutput = Shapes::StructureShape.new(name: 'UpdateStackOutput')
UpdateStackSetInput = Shapes::StructureShape.new(name: 'UpdateStackSetInput')
UpdateStackSetOutput = Shapes::StructureShape.new(name: 'UpdateStackSetOutput')
UpdateTerminationProtectionInput = Shapes::StructureShape.new(name: 'UpdateTerminationProtectionInput')
UpdateTerminationProtectionOutput = Shapes::StructureShape.new(name: 'UpdateTerminationProtectionOutput')
Url = Shapes::StringShape.new(name: 'Url')
UsePreviousTemplate = Shapes::BooleanShape.new(name: 'UsePreviousTemplate')
UsePreviousValue = Shapes::BooleanShape.new(name: 'UsePreviousValue')
ValidateTemplateInput = Shapes::StructureShape.new(name: 'ValidateTemplateInput')
ValidateTemplateOutput = Shapes::StructureShape.new(name: 'ValidateTemplateOutput')
Value = Shapes::StringShape.new(name: 'Value')
Version = Shapes::StringShape.new(name: 'Version')
Visibility = Shapes::StringShape.new(name: 'Visibility')
AccountGateResult.add_member(:status, Shapes::ShapeRef.new(shape: AccountGateStatus, location_name: "Status"))
AccountGateResult.add_member(:status_reason, Shapes::ShapeRef.new(shape: AccountGateStatusReason, location_name: "StatusReason"))
AccountGateResult.struct_class = Types::AccountGateResult
AccountLimit.add_member(:name, Shapes::ShapeRef.new(shape: LimitName, location_name: "Name"))
AccountLimit.add_member(:value, Shapes::ShapeRef.new(shape: LimitValue, location_name: "Value"))
AccountLimit.struct_class = Types::AccountLimit
AccountLimitList.member = Shapes::ShapeRef.new(shape: AccountLimit)
AccountList.member = Shapes::ShapeRef.new(shape: Account)
AllowedValues.member = Shapes::ShapeRef.new(shape: AllowedValue)
AlreadyExistsException.struct_class = Types::AlreadyExistsException
AutoDeployment.add_member(:enabled, Shapes::ShapeRef.new(shape: AutoDeploymentNullable, location_name: "Enabled"))
AutoDeployment.add_member(:retain_stacks_on_account_removal, Shapes::ShapeRef.new(shape: RetainStacksOnAccountRemovalNullable, location_name: "RetainStacksOnAccountRemoval"))
AutoDeployment.struct_class = Types::AutoDeployment
CFNRegistryException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
CFNRegistryException.struct_class = Types::CFNRegistryException
CancelUpdateStackInput.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackName, required: true, location_name: "StackName"))
CancelUpdateStackInput.add_member(:client_request_token, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "ClientRequestToken"))
CancelUpdateStackInput.struct_class = Types::CancelUpdateStackInput
Capabilities.member = Shapes::ShapeRef.new(shape: Capability)
Change.add_member(:type, Shapes::ShapeRef.new(shape: ChangeType, location_name: "Type"))
Change.add_member(:resource_change, Shapes::ShapeRef.new(shape: ResourceChange, location_name: "ResourceChange"))
Change.struct_class = Types::Change
ChangeSetNotFoundException.struct_class = Types::ChangeSetNotFoundException
ChangeSetSummaries.member = Shapes::ShapeRef.new(shape: ChangeSetSummary)
ChangeSetSummary.add_member(:stack_id, Shapes::ShapeRef.new(shape: StackId, location_name: "StackId"))
ChangeSetSummary.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackName, location_name: "StackName"))
ChangeSetSummary.add_member(:change_set_id, Shapes::ShapeRef.new(shape: ChangeSetId, location_name: "ChangeSetId"))
ChangeSetSummary.add_member(:change_set_name, Shapes::ShapeRef.new(shape: ChangeSetName, location_name: "ChangeSetName"))
ChangeSetSummary.add_member(:execution_status, Shapes::ShapeRef.new(shape: ExecutionStatus, location_name: "ExecutionStatus"))
ChangeSetSummary.add_member(:status, Shapes::ShapeRef.new(shape: ChangeSetStatus, location_name: "Status"))
ChangeSetSummary.add_member(:status_reason, Shapes::ShapeRef.new(shape: ChangeSetStatusReason, location_name: "StatusReason"))
ChangeSetSummary.add_member(:creation_time, Shapes::ShapeRef.new(shape: CreationTime, location_name: "CreationTime"))
ChangeSetSummary.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
ChangeSetSummary.struct_class = Types::ChangeSetSummary
Changes.member = Shapes::ShapeRef.new(shape: Change)
ContinueUpdateRollbackInput.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackNameOrId, required: true, location_name: "StackName"))
ContinueUpdateRollbackInput.add_member(:role_arn, Shapes::ShapeRef.new(shape: RoleARN, location_name: "RoleARN"))
ContinueUpdateRollbackInput.add_member(:resources_to_skip, Shapes::ShapeRef.new(shape: ResourcesToSkip, location_name: "ResourcesToSkip"))
ContinueUpdateRollbackInput.add_member(:client_request_token, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "ClientRequestToken"))
ContinueUpdateRollbackInput.struct_class = Types::ContinueUpdateRollbackInput
ContinueUpdateRollbackOutput.struct_class = Types::ContinueUpdateRollbackOutput
CreateChangeSetInput.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackNameOrId, required: true, location_name: "StackName"))
CreateChangeSetInput.add_member(:template_body, Shapes::ShapeRef.new(shape: TemplateBody, location_name: "TemplateBody"))
CreateChangeSetInput.add_member(:template_url, Shapes::ShapeRef.new(shape: TemplateURL, location_name: "TemplateURL"))
CreateChangeSetInput.add_member(:use_previous_template, Shapes::ShapeRef.new(shape: UsePreviousTemplate, location_name: "UsePreviousTemplate"))
CreateChangeSetInput.add_member(:parameters, Shapes::ShapeRef.new(shape: Parameters, location_name: "Parameters"))
CreateChangeSetInput.add_member(:capabilities, Shapes::ShapeRef.new(shape: Capabilities, location_name: "Capabilities"))
CreateChangeSetInput.add_member(:resource_types, Shapes::ShapeRef.new(shape: ResourceTypes, location_name: "ResourceTypes"))
CreateChangeSetInput.add_member(:role_arn, Shapes::ShapeRef.new(shape: RoleARN, location_name: "RoleARN"))
CreateChangeSetInput.add_member(:rollback_configuration, Shapes::ShapeRef.new(shape: RollbackConfiguration, location_name: "RollbackConfiguration"))
CreateChangeSetInput.add_member(:notification_arns, Shapes::ShapeRef.new(shape: NotificationARNs, location_name: "NotificationARNs"))
CreateChangeSetInput.add_member(:tags, Shapes::ShapeRef.new(shape: Tags, location_name: "Tags"))
CreateChangeSetInput.add_member(:change_set_name, Shapes::ShapeRef.new(shape: ChangeSetName, required: true, location_name: "ChangeSetName"))
CreateChangeSetInput.add_member(:client_token, Shapes::ShapeRef.new(shape: ClientToken, location_name: "ClientToken"))
CreateChangeSetInput.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
CreateChangeSetInput.add_member(:change_set_type, Shapes::ShapeRef.new(shape: ChangeSetType, location_name: "ChangeSetType"))
CreateChangeSetInput.add_member(:resources_to_import, Shapes::ShapeRef.new(shape: ResourcesToImport, location_name: "ResourcesToImport"))
CreateChangeSetInput.struct_class = Types::CreateChangeSetInput
CreateChangeSetOutput.add_member(:id, Shapes::ShapeRef.new(shape: ChangeSetId, location_name: "Id"))
CreateChangeSetOutput.add_member(:stack_id, Shapes::ShapeRef.new(shape: StackId, location_name: "StackId"))
CreateChangeSetOutput.struct_class = Types::CreateChangeSetOutput
CreateStackInput.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackName, required: true, location_name: "StackName"))
CreateStackInput.add_member(:template_body, Shapes::ShapeRef.new(shape: TemplateBody, location_name: "TemplateBody"))
CreateStackInput.add_member(:template_url, Shapes::ShapeRef.new(shape: TemplateURL, location_name: "TemplateURL"))
CreateStackInput.add_member(:parameters, Shapes::ShapeRef.new(shape: Parameters, location_name: "Parameters"))
CreateStackInput.add_member(:disable_rollback, Shapes::ShapeRef.new(shape: DisableRollback, location_name: "DisableRollback"))
CreateStackInput.add_member(:rollback_configuration, Shapes::ShapeRef.new(shape: RollbackConfiguration, location_name: "RollbackConfiguration"))
CreateStackInput.add_member(:timeout_in_minutes, Shapes::ShapeRef.new(shape: TimeoutMinutes, location_name: "TimeoutInMinutes"))
CreateStackInput.add_member(:notification_arns, Shapes::ShapeRef.new(shape: NotificationARNs, location_name: "NotificationARNs"))
CreateStackInput.add_member(:capabilities, Shapes::ShapeRef.new(shape: Capabilities, location_name: "Capabilities"))
CreateStackInput.add_member(:resource_types, Shapes::ShapeRef.new(shape: ResourceTypes, location_name: "ResourceTypes"))
CreateStackInput.add_member(:role_arn, Shapes::ShapeRef.new(shape: RoleARN, location_name: "RoleARN"))
CreateStackInput.add_member(:on_failure, Shapes::ShapeRef.new(shape: OnFailure, location_name: "OnFailure"))
CreateStackInput.add_member(:stack_policy_body, Shapes::ShapeRef.new(shape: StackPolicyBody, location_name: "StackPolicyBody"))
CreateStackInput.add_member(:stack_policy_url, Shapes::ShapeRef.new(shape: StackPolicyURL, location_name: "StackPolicyURL"))
CreateStackInput.add_member(:tags, Shapes::ShapeRef.new(shape: Tags, location_name: "Tags"))
CreateStackInput.add_member(:client_request_token, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "ClientRequestToken"))
CreateStackInput.add_member(:enable_termination_protection, Shapes::ShapeRef.new(shape: EnableTerminationProtection, location_name: "EnableTerminationProtection"))
CreateStackInput.struct_class = Types::CreateStackInput
CreateStackInstancesInput.add_member(:stack_set_name, Shapes::ShapeRef.new(shape: StackSetName, required: true, location_name: "StackSetName"))
CreateStackInstancesInput.add_member(:accounts, Shapes::ShapeRef.new(shape: AccountList, location_name: "Accounts"))
CreateStackInstancesInput.add_member(:deployment_targets, Shapes::ShapeRef.new(shape: DeploymentTargets, location_name: "DeploymentTargets"))
CreateStackInstancesInput.add_member(:regions, Shapes::ShapeRef.new(shape: RegionList, required: true, location_name: "Regions"))
CreateStackInstancesInput.add_member(:parameter_overrides, Shapes::ShapeRef.new(shape: Parameters, location_name: "ParameterOverrides"))
CreateStackInstancesInput.add_member(:operation_preferences, Shapes::ShapeRef.new(shape: StackSetOperationPreferences, location_name: "OperationPreferences"))
CreateStackInstancesInput.add_member(:operation_id, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "OperationId", metadata: {"idempotencyToken"=>true}))
CreateStackInstancesInput.struct_class = Types::CreateStackInstancesInput
CreateStackInstancesOutput.add_member(:operation_id, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "OperationId"))
CreateStackInstancesOutput.struct_class = Types::CreateStackInstancesOutput
CreateStackOutput.add_member(:stack_id, Shapes::ShapeRef.new(shape: StackId, location_name: "StackId"))
CreateStackOutput.struct_class = Types::CreateStackOutput
CreateStackSetInput.add_member(:stack_set_name, Shapes::ShapeRef.new(shape: StackSetName, required: true, location_name: "StackSetName"))
CreateStackSetInput.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
CreateStackSetInput.add_member(:template_body, Shapes::ShapeRef.new(shape: TemplateBody, location_name: "TemplateBody"))
CreateStackSetInput.add_member(:template_url, Shapes::ShapeRef.new(shape: TemplateURL, location_name: "TemplateURL"))
CreateStackSetInput.add_member(:parameters, Shapes::ShapeRef.new(shape: Parameters, location_name: "Parameters"))
CreateStackSetInput.add_member(:capabilities, Shapes::ShapeRef.new(shape: Capabilities, location_name: "Capabilities"))
CreateStackSetInput.add_member(:tags, Shapes::ShapeRef.new(shape: Tags, location_name: "Tags"))
CreateStackSetInput.add_member(:administration_role_arn, Shapes::ShapeRef.new(shape: RoleARN, location_name: "AdministrationRoleARN"))
CreateStackSetInput.add_member(:execution_role_name, Shapes::ShapeRef.new(shape: ExecutionRoleName, location_name: "ExecutionRoleName"))
CreateStackSetInput.add_member(:permission_model, Shapes::ShapeRef.new(shape: PermissionModels, location_name: "PermissionModel"))
CreateStackSetInput.add_member(:auto_deployment, Shapes::ShapeRef.new(shape: AutoDeployment, location_name: "AutoDeployment"))
CreateStackSetInput.add_member(:client_request_token, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "ClientRequestToken", metadata: {"idempotencyToken"=>true}))
CreateStackSetInput.struct_class = Types::CreateStackSetInput
CreateStackSetOutput.add_member(:stack_set_id, Shapes::ShapeRef.new(shape: StackSetId, location_name: "StackSetId"))
CreateStackSetOutput.struct_class = Types::CreateStackSetOutput
CreatedButModifiedException.struct_class = Types::CreatedButModifiedException
DeleteChangeSetInput.add_member(:change_set_name, Shapes::ShapeRef.new(shape: ChangeSetNameOrId, required: true, location_name: "ChangeSetName"))
DeleteChangeSetInput.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackNameOrId, location_name: "StackName"))
DeleteChangeSetInput.struct_class = Types::DeleteChangeSetInput
DeleteChangeSetOutput.struct_class = Types::DeleteChangeSetOutput
DeleteStackInput.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackName, required: true, location_name: "StackName"))
DeleteStackInput.add_member(:retain_resources, Shapes::ShapeRef.new(shape: RetainResources, location_name: "RetainResources"))
DeleteStackInput.add_member(:role_arn, Shapes::ShapeRef.new(shape: RoleARN, location_name: "RoleARN"))
DeleteStackInput.add_member(:client_request_token, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "ClientRequestToken"))
DeleteStackInput.struct_class = Types::DeleteStackInput
DeleteStackInstancesInput.add_member(:stack_set_name, Shapes::ShapeRef.new(shape: StackSetName, required: true, location_name: "StackSetName"))
DeleteStackInstancesInput.add_member(:accounts, Shapes::ShapeRef.new(shape: AccountList, location_name: "Accounts"))
DeleteStackInstancesInput.add_member(:deployment_targets, Shapes::ShapeRef.new(shape: DeploymentTargets, location_name: "DeploymentTargets"))
DeleteStackInstancesInput.add_member(:regions, Shapes::ShapeRef.new(shape: RegionList, required: true, location_name: "Regions"))
DeleteStackInstancesInput.add_member(:operation_preferences, Shapes::ShapeRef.new(shape: StackSetOperationPreferences, location_name: "OperationPreferences"))
DeleteStackInstancesInput.add_member(:retain_stacks, Shapes::ShapeRef.new(shape: RetainStacks, required: true, location_name: "RetainStacks"))
DeleteStackInstancesInput.add_member(:operation_id, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "OperationId", metadata: {"idempotencyToken"=>true}))
DeleteStackInstancesInput.struct_class = Types::DeleteStackInstancesInput
DeleteStackInstancesOutput.add_member(:operation_id, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "OperationId"))
DeleteStackInstancesOutput.struct_class = Types::DeleteStackInstancesOutput
DeleteStackSetInput.add_member(:stack_set_name, Shapes::ShapeRef.new(shape: StackSetName, required: true, location_name: "StackSetName"))
DeleteStackSetInput.struct_class = Types::DeleteStackSetInput
DeleteStackSetOutput.struct_class = Types::DeleteStackSetOutput
DeploymentTargets.add_member(:accounts, Shapes::ShapeRef.new(shape: AccountList, location_name: "Accounts"))
DeploymentTargets.add_member(:organizational_unit_ids, Shapes::ShapeRef.new(shape: OrganizationalUnitIdList, location_name: "OrganizationalUnitIds"))
DeploymentTargets.struct_class = Types::DeploymentTargets
DeregisterTypeInput.add_member(:arn, Shapes::ShapeRef.new(shape: PrivateTypeArn, location_name: "Arn"))
DeregisterTypeInput.add_member(:type, Shapes::ShapeRef.new(shape: RegistryType, location_name: "Type"))
DeregisterTypeInput.add_member(:type_name, Shapes::ShapeRef.new(shape: TypeName, location_name: "TypeName"))
DeregisterTypeInput.add_member(:version_id, Shapes::ShapeRef.new(shape: TypeVersionId, location_name: "VersionId"))
DeregisterTypeInput.struct_class = Types::DeregisterTypeInput
DeregisterTypeOutput.struct_class = Types::DeregisterTypeOutput
DescribeAccountLimitsInput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
DescribeAccountLimitsInput.struct_class = Types::DescribeAccountLimitsInput
DescribeAccountLimitsOutput.add_member(:account_limits, Shapes::ShapeRef.new(shape: AccountLimitList, location_name: "AccountLimits"))
DescribeAccountLimitsOutput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
DescribeAccountLimitsOutput.struct_class = Types::DescribeAccountLimitsOutput
DescribeChangeSetInput.add_member(:change_set_name, Shapes::ShapeRef.new(shape: ChangeSetNameOrId, required: true, location_name: "ChangeSetName"))
DescribeChangeSetInput.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackNameOrId, location_name: "StackName"))
DescribeChangeSetInput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
DescribeChangeSetInput.struct_class = Types::DescribeChangeSetInput
DescribeChangeSetOutput.add_member(:change_set_name, Shapes::ShapeRef.new(shape: ChangeSetName, location_name: "ChangeSetName"))
DescribeChangeSetOutput.add_member(:change_set_id, Shapes::ShapeRef.new(shape: ChangeSetId, location_name: "ChangeSetId"))
DescribeChangeSetOutput.add_member(:stack_id, Shapes::ShapeRef.new(shape: StackId, location_name: "StackId"))
DescribeChangeSetOutput.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackName, location_name: "StackName"))
DescribeChangeSetOutput.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
DescribeChangeSetOutput.add_member(:parameters, Shapes::ShapeRef.new(shape: Parameters, location_name: "Parameters"))
DescribeChangeSetOutput.add_member(:creation_time, Shapes::ShapeRef.new(shape: CreationTime, location_name: "CreationTime"))
DescribeChangeSetOutput.add_member(:execution_status, Shapes::ShapeRef.new(shape: ExecutionStatus, location_name: "ExecutionStatus"))
DescribeChangeSetOutput.add_member(:status, Shapes::ShapeRef.new(shape: ChangeSetStatus, location_name: "Status"))
DescribeChangeSetOutput.add_member(:status_reason, Shapes::ShapeRef.new(shape: ChangeSetStatusReason, location_name: "StatusReason"))
DescribeChangeSetOutput.add_member(:notification_arns, Shapes::ShapeRef.new(shape: NotificationARNs, location_name: "NotificationARNs"))
DescribeChangeSetOutput.add_member(:rollback_configuration, Shapes::ShapeRef.new(shape: RollbackConfiguration, location_name: "RollbackConfiguration"))
DescribeChangeSetOutput.add_member(:capabilities, Shapes::ShapeRef.new(shape: Capabilities, location_name: "Capabilities"))
DescribeChangeSetOutput.add_member(:tags, Shapes::ShapeRef.new(shape: Tags, location_name: "Tags"))
DescribeChangeSetOutput.add_member(:changes, Shapes::ShapeRef.new(shape: Changes, location_name: "Changes"))
DescribeChangeSetOutput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
DescribeChangeSetOutput.struct_class = Types::DescribeChangeSetOutput
DescribeStackDriftDetectionStatusInput.add_member(:stack_drift_detection_id, Shapes::ShapeRef.new(shape: StackDriftDetectionId, required: true, location_name: "StackDriftDetectionId"))
DescribeStackDriftDetectionStatusInput.struct_class = Types::DescribeStackDriftDetectionStatusInput
DescribeStackDriftDetectionStatusOutput.add_member(:stack_id, Shapes::ShapeRef.new(shape: StackId, required: true, location_name: "StackId"))
DescribeStackDriftDetectionStatusOutput.add_member(:stack_drift_detection_id, Shapes::ShapeRef.new(shape: StackDriftDetectionId, required: true, location_name: "StackDriftDetectionId"))
DescribeStackDriftDetectionStatusOutput.add_member(:stack_drift_status, Shapes::ShapeRef.new(shape: StackDriftStatus, location_name: "StackDriftStatus"))
DescribeStackDriftDetectionStatusOutput.add_member(:detection_status, Shapes::ShapeRef.new(shape: StackDriftDetectionStatus, required: true, location_name: "DetectionStatus"))
DescribeStackDriftDetectionStatusOutput.add_member(:detection_status_reason, Shapes::ShapeRef.new(shape: StackDriftDetectionStatusReason, location_name: "DetectionStatusReason"))
DescribeStackDriftDetectionStatusOutput.add_member(:drifted_stack_resource_count, Shapes::ShapeRef.new(shape: BoxedInteger, location_name: "DriftedStackResourceCount"))
DescribeStackDriftDetectionStatusOutput.add_member(:timestamp, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "Timestamp"))
DescribeStackDriftDetectionStatusOutput.struct_class = Types::DescribeStackDriftDetectionStatusOutput
DescribeStackEventsInput.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackName, location_name: "StackName"))
DescribeStackEventsInput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
DescribeStackEventsInput.struct_class = Types::DescribeStackEventsInput
DescribeStackEventsOutput.add_member(:stack_events, Shapes::ShapeRef.new(shape: StackEvents, location_name: "StackEvents"))
DescribeStackEventsOutput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
DescribeStackEventsOutput.struct_class = Types::DescribeStackEventsOutput
DescribeStackInstanceInput.add_member(:stack_set_name, Shapes::ShapeRef.new(shape: StackSetName, required: true, location_name: "StackSetName"))
DescribeStackInstanceInput.add_member(:stack_instance_account, Shapes::ShapeRef.new(shape: Account, required: true, location_name: "StackInstanceAccount"))
DescribeStackInstanceInput.add_member(:stack_instance_region, Shapes::ShapeRef.new(shape: Region, required: true, location_name: "StackInstanceRegion"))
DescribeStackInstanceInput.struct_class = Types::DescribeStackInstanceInput
DescribeStackInstanceOutput.add_member(:stack_instance, Shapes::ShapeRef.new(shape: StackInstance, location_name: "StackInstance"))
DescribeStackInstanceOutput.struct_class = Types::DescribeStackInstanceOutput
DescribeStackResourceDriftsInput.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackNameOrId, required: true, location_name: "StackName"))
DescribeStackResourceDriftsInput.add_member(:stack_resource_drift_status_filters, Shapes::ShapeRef.new(shape: StackResourceDriftStatusFilters, location_name: "StackResourceDriftStatusFilters"))
DescribeStackResourceDriftsInput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
DescribeStackResourceDriftsInput.add_member(:max_results, Shapes::ShapeRef.new(shape: BoxedMaxResults, location_name: "MaxResults"))
DescribeStackResourceDriftsInput.struct_class = Types::DescribeStackResourceDriftsInput
DescribeStackResourceDriftsOutput.add_member(:stack_resource_drifts, Shapes::ShapeRef.new(shape: StackResourceDrifts, required: true, location_name: "StackResourceDrifts"))
DescribeStackResourceDriftsOutput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
DescribeStackResourceDriftsOutput.struct_class = Types::DescribeStackResourceDriftsOutput
DescribeStackResourceInput.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackName, required: true, location_name: "StackName"))
DescribeStackResourceInput.add_member(:logical_resource_id, Shapes::ShapeRef.new(shape: LogicalResourceId, required: true, location_name: "LogicalResourceId"))
DescribeStackResourceInput.struct_class = Types::DescribeStackResourceInput
DescribeStackResourceOutput.add_member(:stack_resource_detail, Shapes::ShapeRef.new(shape: StackResourceDetail, location_name: "StackResourceDetail"))
DescribeStackResourceOutput.struct_class = Types::DescribeStackResourceOutput
DescribeStackResourcesInput.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackName, location_name: "StackName"))
DescribeStackResourcesInput.add_member(:logical_resource_id, Shapes::ShapeRef.new(shape: LogicalResourceId, location_name: "LogicalResourceId"))
DescribeStackResourcesInput.add_member(:physical_resource_id, Shapes::ShapeRef.new(shape: PhysicalResourceId, location_name: "PhysicalResourceId"))
DescribeStackResourcesInput.struct_class = Types::DescribeStackResourcesInput
DescribeStackResourcesOutput.add_member(:stack_resources, Shapes::ShapeRef.new(shape: StackResources, location_name: "StackResources"))
DescribeStackResourcesOutput.struct_class = Types::DescribeStackResourcesOutput
DescribeStackSetInput.add_member(:stack_set_name, Shapes::ShapeRef.new(shape: StackSetName, required: true, location_name: "StackSetName"))
DescribeStackSetInput.struct_class = Types::DescribeStackSetInput
DescribeStackSetOperationInput.add_member(:stack_set_name, Shapes::ShapeRef.new(shape: StackSetName, required: true, location_name: "StackSetName"))
DescribeStackSetOperationInput.add_member(:operation_id, Shapes::ShapeRef.new(shape: ClientRequestToken, required: true, location_name: "OperationId"))
DescribeStackSetOperationInput.struct_class = Types::DescribeStackSetOperationInput
DescribeStackSetOperationOutput.add_member(:stack_set_operation, Shapes::ShapeRef.new(shape: StackSetOperation, location_name: "StackSetOperation"))
DescribeStackSetOperationOutput.struct_class = Types::DescribeStackSetOperationOutput
DescribeStackSetOutput.add_member(:stack_set, Shapes::ShapeRef.new(shape: StackSet, location_name: "StackSet"))
DescribeStackSetOutput.struct_class = Types::DescribeStackSetOutput
DescribeStacksInput.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackName, location_name: "StackName"))
DescribeStacksInput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
DescribeStacksInput.struct_class = Types::DescribeStacksInput
DescribeStacksOutput.add_member(:stacks, Shapes::ShapeRef.new(shape: Stacks, location_name: "Stacks"))
DescribeStacksOutput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
DescribeStacksOutput.struct_class = Types::DescribeStacksOutput
DescribeTypeInput.add_member(:type, Shapes::ShapeRef.new(shape: RegistryType, location_name: "Type"))
DescribeTypeInput.add_member(:type_name, Shapes::ShapeRef.new(shape: TypeName, location_name: "TypeName"))
DescribeTypeInput.add_member(:arn, Shapes::ShapeRef.new(shape: TypeArn, location_name: "Arn"))
DescribeTypeInput.add_member(:version_id, Shapes::ShapeRef.new(shape: TypeVersionId, location_name: "VersionId"))
DescribeTypeInput.struct_class = Types::DescribeTypeInput
DescribeTypeOutput.add_member(:arn, Shapes::ShapeRef.new(shape: TypeArn, location_name: "Arn"))
DescribeTypeOutput.add_member(:type, Shapes::ShapeRef.new(shape: RegistryType, location_name: "Type"))
DescribeTypeOutput.add_member(:type_name, Shapes::ShapeRef.new(shape: TypeName, location_name: "TypeName"))
DescribeTypeOutput.add_member(:default_version_id, Shapes::ShapeRef.new(shape: TypeVersionId, location_name: "DefaultVersionId"))
DescribeTypeOutput.add_member(:is_default_version, Shapes::ShapeRef.new(shape: IsDefaultVersion, location_name: "IsDefaultVersion"))
DescribeTypeOutput.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
DescribeTypeOutput.add_member(:schema, Shapes::ShapeRef.new(shape: TypeSchema, location_name: "Schema"))
DescribeTypeOutput.add_member(:provisioning_type, Shapes::ShapeRef.new(shape: ProvisioningType, location_name: "ProvisioningType"))
DescribeTypeOutput.add_member(:deprecated_status, Shapes::ShapeRef.new(shape: DeprecatedStatus, location_name: "DeprecatedStatus"))
DescribeTypeOutput.add_member(:logging_config, Shapes::ShapeRef.new(shape: LoggingConfig, location_name: "LoggingConfig"))
DescribeTypeOutput.add_member(:execution_role_arn, Shapes::ShapeRef.new(shape: RoleArn, location_name: "ExecutionRoleArn"))
DescribeTypeOutput.add_member(:visibility, Shapes::ShapeRef.new(shape: Visibility, location_name: "Visibility"))
DescribeTypeOutput.add_member(:source_url, Shapes::ShapeRef.new(shape: OptionalSecureUrl, location_name: "SourceUrl"))
DescribeTypeOutput.add_member(:documentation_url, Shapes::ShapeRef.new(shape: OptionalSecureUrl, location_name: "DocumentationUrl"))
DescribeTypeOutput.add_member(:last_updated, Shapes::ShapeRef.new(shape: Timestamp, location_name: "LastUpdated"))
DescribeTypeOutput.add_member(:time_created, Shapes::ShapeRef.new(shape: Timestamp, location_name: "TimeCreated"))
DescribeTypeOutput.struct_class = Types::DescribeTypeOutput
DescribeTypeRegistrationInput.add_member(:registration_token, Shapes::ShapeRef.new(shape: RegistrationToken, required: true, location_name: "RegistrationToken"))
DescribeTypeRegistrationInput.struct_class = Types::DescribeTypeRegistrationInput
DescribeTypeRegistrationOutput.add_member(:progress_status, Shapes::ShapeRef.new(shape: RegistrationStatus, location_name: "ProgressStatus"))
DescribeTypeRegistrationOutput.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
DescribeTypeRegistrationOutput.add_member(:type_arn, Shapes::ShapeRef.new(shape: TypeArn, location_name: "TypeArn"))
DescribeTypeRegistrationOutput.add_member(:type_version_arn, Shapes::ShapeRef.new(shape: TypeArn, location_name: "TypeVersionArn"))
DescribeTypeRegistrationOutput.struct_class = Types::DescribeTypeRegistrationOutput
DetectStackDriftInput.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackNameOrId, required: true, location_name: "StackName"))
DetectStackDriftInput.add_member(:logical_resource_ids, Shapes::ShapeRef.new(shape: LogicalResourceIds, location_name: "LogicalResourceIds"))
DetectStackDriftInput.struct_class = Types::DetectStackDriftInput
DetectStackDriftOutput.add_member(:stack_drift_detection_id, Shapes::ShapeRef.new(shape: StackDriftDetectionId, required: true, location_name: "StackDriftDetectionId"))
DetectStackDriftOutput.struct_class = Types::DetectStackDriftOutput
DetectStackResourceDriftInput.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackNameOrId, required: true, location_name: "StackName"))
DetectStackResourceDriftInput.add_member(:logical_resource_id, Shapes::ShapeRef.new(shape: LogicalResourceId, required: true, location_name: "LogicalResourceId"))
DetectStackResourceDriftInput.struct_class = Types::DetectStackResourceDriftInput
DetectStackResourceDriftOutput.add_member(:stack_resource_drift, Shapes::ShapeRef.new(shape: StackResourceDrift, required: true, location_name: "StackResourceDrift"))
DetectStackResourceDriftOutput.struct_class = Types::DetectStackResourceDriftOutput
DetectStackSetDriftInput.add_member(:stack_set_name, Shapes::ShapeRef.new(shape: StackSetNameOrId, required: true, location_name: "StackSetName"))
DetectStackSetDriftInput.add_member(:operation_preferences, Shapes::ShapeRef.new(shape: StackSetOperationPreferences, location_name: "OperationPreferences"))
DetectStackSetDriftInput.add_member(:operation_id, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "OperationId", metadata: {"idempotencyToken"=>true}))
DetectStackSetDriftInput.struct_class = Types::DetectStackSetDriftInput
DetectStackSetDriftOutput.add_member(:operation_id, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "OperationId"))
DetectStackSetDriftOutput.struct_class = Types::DetectStackSetDriftOutput
EstimateTemplateCostInput.add_member(:template_body, Shapes::ShapeRef.new(shape: TemplateBody, location_name: "TemplateBody"))
EstimateTemplateCostInput.add_member(:template_url, Shapes::ShapeRef.new(shape: TemplateURL, location_name: "TemplateURL"))
EstimateTemplateCostInput.add_member(:parameters, Shapes::ShapeRef.new(shape: Parameters, location_name: "Parameters"))
EstimateTemplateCostInput.struct_class = Types::EstimateTemplateCostInput
EstimateTemplateCostOutput.add_member(:url, Shapes::ShapeRef.new(shape: Url, location_name: "Url"))
EstimateTemplateCostOutput.struct_class = Types::EstimateTemplateCostOutput
ExecuteChangeSetInput.add_member(:change_set_name, Shapes::ShapeRef.new(shape: ChangeSetNameOrId, required: true, location_name: "ChangeSetName"))
ExecuteChangeSetInput.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackNameOrId, location_name: "StackName"))
ExecuteChangeSetInput.add_member(:client_request_token, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "ClientRequestToken"))
ExecuteChangeSetInput.struct_class = Types::ExecuteChangeSetInput
ExecuteChangeSetOutput.struct_class = Types::ExecuteChangeSetOutput
Export.add_member(:exporting_stack_id, Shapes::ShapeRef.new(shape: StackId, location_name: "ExportingStackId"))
Export.add_member(:name, Shapes::ShapeRef.new(shape: ExportName, location_name: "Name"))
Export.add_member(:value, Shapes::ShapeRef.new(shape: ExportValue, location_name: "Value"))
Export.struct_class = Types::Export
Exports.member = Shapes::ShapeRef.new(shape: Export)
GetStackPolicyInput.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackName, required: true, location_name: "StackName"))
GetStackPolicyInput.struct_class = Types::GetStackPolicyInput
GetStackPolicyOutput.add_member(:stack_policy_body, Shapes::ShapeRef.new(shape: StackPolicyBody, location_name: "StackPolicyBody"))
GetStackPolicyOutput.struct_class = Types::GetStackPolicyOutput
GetTemplateInput.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackName, location_name: "StackName"))
GetTemplateInput.add_member(:change_set_name, Shapes::ShapeRef.new(shape: ChangeSetNameOrId, location_name: "ChangeSetName"))
GetTemplateInput.add_member(:template_stage, Shapes::ShapeRef.new(shape: TemplateStage, location_name: "TemplateStage"))
GetTemplateInput.struct_class = Types::GetTemplateInput
GetTemplateOutput.add_member(:template_body, Shapes::ShapeRef.new(shape: TemplateBody, location_name: "TemplateBody"))
GetTemplateOutput.add_member(:stages_available, Shapes::ShapeRef.new(shape: StageList, location_name: "StagesAvailable"))
GetTemplateOutput.struct_class = Types::GetTemplateOutput
GetTemplateSummaryInput.add_member(:template_body, Shapes::ShapeRef.new(shape: TemplateBody, location_name: "TemplateBody"))
GetTemplateSummaryInput.add_member(:template_url, Shapes::ShapeRef.new(shape: TemplateURL, location_name: "TemplateURL"))
GetTemplateSummaryInput.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackNameOrId, location_name: "StackName"))
GetTemplateSummaryInput.add_member(:stack_set_name, Shapes::ShapeRef.new(shape: StackSetNameOrId, location_name: "StackSetName"))
GetTemplateSummaryInput.struct_class = Types::GetTemplateSummaryInput
GetTemplateSummaryOutput.add_member(:parameters, Shapes::ShapeRef.new(shape: ParameterDeclarations, location_name: "Parameters"))
GetTemplateSummaryOutput.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
GetTemplateSummaryOutput.add_member(:capabilities, Shapes::ShapeRef.new(shape: Capabilities, location_name: "Capabilities"))
GetTemplateSummaryOutput.add_member(:capabilities_reason, Shapes::ShapeRef.new(shape: CapabilitiesReason, location_name: "CapabilitiesReason"))
GetTemplateSummaryOutput.add_member(:resource_types, Shapes::ShapeRef.new(shape: ResourceTypes, location_name: "ResourceTypes"))
GetTemplateSummaryOutput.add_member(:version, Shapes::ShapeRef.new(shape: Version, location_name: "Version"))
GetTemplateSummaryOutput.add_member(:metadata, Shapes::ShapeRef.new(shape: Metadata, location_name: "Metadata"))
GetTemplateSummaryOutput.add_member(:declared_transforms, Shapes::ShapeRef.new(shape: TransformsList, location_name: "DeclaredTransforms"))
GetTemplateSummaryOutput.add_member(:resource_identifier_summaries, Shapes::ShapeRef.new(shape: ResourceIdentifierSummaries, location_name: "ResourceIdentifierSummaries"))
GetTemplateSummaryOutput.struct_class = Types::GetTemplateSummaryOutput
Imports.member = Shapes::ShapeRef.new(shape: StackName)
InsufficientCapabilitiesException.struct_class = Types::InsufficientCapabilitiesException
InvalidChangeSetStatusException.struct_class = Types::InvalidChangeSetStatusException
InvalidOperationException.struct_class = Types::InvalidOperationException
InvalidStateTransitionException.struct_class = Types::InvalidStateTransitionException
LimitExceededException.struct_class = Types::LimitExceededException
ListChangeSetsInput.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackNameOrId, required: true, location_name: "StackName"))
ListChangeSetsInput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
ListChangeSetsInput.struct_class = Types::ListChangeSetsInput
ListChangeSetsOutput.add_member(:summaries, Shapes::ShapeRef.new(shape: ChangeSetSummaries, location_name: "Summaries"))
ListChangeSetsOutput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
ListChangeSetsOutput.struct_class = Types::ListChangeSetsOutput
ListExportsInput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
ListExportsInput.struct_class = Types::ListExportsInput
ListExportsOutput.add_member(:exports, Shapes::ShapeRef.new(shape: Exports, location_name: "Exports"))
ListExportsOutput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
ListExportsOutput.struct_class = Types::ListExportsOutput
ListImportsInput.add_member(:export_name, Shapes::ShapeRef.new(shape: ExportName, required: true, location_name: "ExportName"))
ListImportsInput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
ListImportsInput.struct_class = Types::ListImportsInput
ListImportsOutput.add_member(:imports, Shapes::ShapeRef.new(shape: Imports, location_name: "Imports"))
ListImportsOutput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
ListImportsOutput.struct_class = Types::ListImportsOutput
ListStackInstancesInput.add_member(:stack_set_name, Shapes::ShapeRef.new(shape: StackSetName, required: true, location_name: "StackSetName"))
ListStackInstancesInput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
ListStackInstancesInput.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
ListStackInstancesInput.add_member(:filters, Shapes::ShapeRef.new(shape: StackInstanceFilters, location_name: "Filters"))
ListStackInstancesInput.add_member(:stack_instance_account, Shapes::ShapeRef.new(shape: Account, location_name: "StackInstanceAccount"))
ListStackInstancesInput.add_member(:stack_instance_region, Shapes::ShapeRef.new(shape: Region, location_name: "StackInstanceRegion"))
ListStackInstancesInput.struct_class = Types::ListStackInstancesInput
ListStackInstancesOutput.add_member(:summaries, Shapes::ShapeRef.new(shape: StackInstanceSummaries, location_name: "Summaries"))
ListStackInstancesOutput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
ListStackInstancesOutput.struct_class = Types::ListStackInstancesOutput
ListStackResourcesInput.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackName, required: true, location_name: "StackName"))
ListStackResourcesInput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
ListStackResourcesInput.struct_class = Types::ListStackResourcesInput
ListStackResourcesOutput.add_member(:stack_resource_summaries, Shapes::ShapeRef.new(shape: StackResourceSummaries, location_name: "StackResourceSummaries"))
ListStackResourcesOutput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
ListStackResourcesOutput.struct_class = Types::ListStackResourcesOutput
ListStackSetOperationResultsInput.add_member(:stack_set_name, Shapes::ShapeRef.new(shape: StackSetName, required: true, location_name: "StackSetName"))
ListStackSetOperationResultsInput.add_member(:operation_id, Shapes::ShapeRef.new(shape: ClientRequestToken, required: true, location_name: "OperationId"))
ListStackSetOperationResultsInput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
ListStackSetOperationResultsInput.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
ListStackSetOperationResultsInput.struct_class = Types::ListStackSetOperationResultsInput
ListStackSetOperationResultsOutput.add_member(:summaries, Shapes::ShapeRef.new(shape: StackSetOperationResultSummaries, location_name: "Summaries"))
ListStackSetOperationResultsOutput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
ListStackSetOperationResultsOutput.struct_class = Types::ListStackSetOperationResultsOutput
ListStackSetOperationsInput.add_member(:stack_set_name, Shapes::ShapeRef.new(shape: StackSetName, required: true, location_name: "StackSetName"))
ListStackSetOperationsInput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
ListStackSetOperationsInput.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
ListStackSetOperationsInput.struct_class = Types::ListStackSetOperationsInput
ListStackSetOperationsOutput.add_member(:summaries, Shapes::ShapeRef.new(shape: StackSetOperationSummaries, location_name: "Summaries"))
ListStackSetOperationsOutput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
ListStackSetOperationsOutput.struct_class = Types::ListStackSetOperationsOutput
ListStackSetsInput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
ListStackSetsInput.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
ListStackSetsInput.add_member(:status, Shapes::ShapeRef.new(shape: StackSetStatus, location_name: "Status"))
ListStackSetsInput.struct_class = Types::ListStackSetsInput
ListStackSetsOutput.add_member(:summaries, Shapes::ShapeRef.new(shape: StackSetSummaries, location_name: "Summaries"))
ListStackSetsOutput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
ListStackSetsOutput.struct_class = Types::ListStackSetsOutput
ListStacksInput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
ListStacksInput.add_member(:stack_status_filter, Shapes::ShapeRef.new(shape: StackStatusFilter, location_name: "StackStatusFilter"))
ListStacksInput.struct_class = Types::ListStacksInput
ListStacksOutput.add_member(:stack_summaries, Shapes::ShapeRef.new(shape: StackSummaries, location_name: "StackSummaries"))
ListStacksOutput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
ListStacksOutput.struct_class = Types::ListStacksOutput
ListTypeRegistrationsInput.add_member(:type, Shapes::ShapeRef.new(shape: RegistryType, location_name: "Type"))
ListTypeRegistrationsInput.add_member(:type_name, Shapes::ShapeRef.new(shape: TypeName, location_name: "TypeName"))
ListTypeRegistrationsInput.add_member(:type_arn, Shapes::ShapeRef.new(shape: TypeArn, location_name: "TypeArn"))
ListTypeRegistrationsInput.add_member(:registration_status_filter, Shapes::ShapeRef.new(shape: RegistrationStatus, location_name: "RegistrationStatusFilter"))
ListTypeRegistrationsInput.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
ListTypeRegistrationsInput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
ListTypeRegistrationsInput.struct_class = Types::ListTypeRegistrationsInput
ListTypeRegistrationsOutput.add_member(:registration_token_list, Shapes::ShapeRef.new(shape: RegistrationTokenList, location_name: "RegistrationTokenList"))
ListTypeRegistrationsOutput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
ListTypeRegistrationsOutput.struct_class = Types::ListTypeRegistrationsOutput
ListTypeVersionsInput.add_member(:type, Shapes::ShapeRef.new(shape: RegistryType, location_name: "Type"))
ListTypeVersionsInput.add_member(:type_name, Shapes::ShapeRef.new(shape: TypeName, location_name: "TypeName"))
ListTypeVersionsInput.add_member(:arn, Shapes::ShapeRef.new(shape: PrivateTypeArn, location_name: "Arn"))
ListTypeVersionsInput.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
ListTypeVersionsInput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
ListTypeVersionsInput.add_member(:deprecated_status, Shapes::ShapeRef.new(shape: DeprecatedStatus, location_name: "DeprecatedStatus"))
ListTypeVersionsInput.struct_class = Types::ListTypeVersionsInput
ListTypeVersionsOutput.add_member(:type_version_summaries, Shapes::ShapeRef.new(shape: TypeVersionSummaries, location_name: "TypeVersionSummaries"))
ListTypeVersionsOutput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
ListTypeVersionsOutput.struct_class = Types::ListTypeVersionsOutput
ListTypesInput.add_member(:visibility, Shapes::ShapeRef.new(shape: Visibility, location_name: "Visibility"))
ListTypesInput.add_member(:provisioning_type, Shapes::ShapeRef.new(shape: ProvisioningType, location_name: "ProvisioningType"))
ListTypesInput.add_member(:deprecated_status, Shapes::ShapeRef.new(shape: DeprecatedStatus, location_name: "DeprecatedStatus"))
ListTypesInput.add_member(:max_results, Shapes::ShapeRef.new(shape: MaxResults, location_name: "MaxResults"))
ListTypesInput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
ListTypesInput.struct_class = Types::ListTypesInput
ListTypesOutput.add_member(:type_summaries, Shapes::ShapeRef.new(shape: TypeSummaries, location_name: "TypeSummaries"))
ListTypesOutput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
ListTypesOutput.struct_class = Types::ListTypesOutput
LoggingConfig.add_member(:log_role_arn, Shapes::ShapeRef.new(shape: RoleArn, required: true, location_name: "LogRoleArn"))
LoggingConfig.add_member(:log_group_name, Shapes::ShapeRef.new(shape: LogGroupName, required: true, location_name: "LogGroupName"))
LoggingConfig.struct_class = Types::LoggingConfig
LogicalResourceIds.member = Shapes::ShapeRef.new(shape: LogicalResourceId)
NameAlreadyExistsException.struct_class = Types::NameAlreadyExistsException
NotificationARNs.member = Shapes::ShapeRef.new(shape: NotificationARN)
OperationIdAlreadyExistsException.struct_class = Types::OperationIdAlreadyExistsException
OperationInProgressException.struct_class = Types::OperationInProgressException
OperationNotFoundException.struct_class = Types::OperationNotFoundException
OperationStatusCheckFailedException.struct_class = Types::OperationStatusCheckFailedException
OrganizationalUnitIdList.member = Shapes::ShapeRef.new(shape: OrganizationalUnitId)
Output.add_member(:output_key, Shapes::ShapeRef.new(shape: OutputKey, location_name: "OutputKey"))
Output.add_member(:output_value, Shapes::ShapeRef.new(shape: OutputValue, location_name: "OutputValue"))
Output.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
Output.add_member(:export_name, Shapes::ShapeRef.new(shape: ExportName, location_name: "ExportName"))
Output.struct_class = Types::Output
Outputs.member = Shapes::ShapeRef.new(shape: Output)
Parameter.add_member(:parameter_key, Shapes::ShapeRef.new(shape: ParameterKey, location_name: "ParameterKey"))
Parameter.add_member(:parameter_value, Shapes::ShapeRef.new(shape: ParameterValue, location_name: "ParameterValue"))
Parameter.add_member(:use_previous_value, Shapes::ShapeRef.new(shape: UsePreviousValue, location_name: "UsePreviousValue"))
Parameter.add_member(:resolved_value, Shapes::ShapeRef.new(shape: ParameterValue, location_name: "ResolvedValue"))
Parameter.struct_class = Types::Parameter
ParameterConstraints.add_member(:allowed_values, Shapes::ShapeRef.new(shape: AllowedValues, location_name: "AllowedValues"))
ParameterConstraints.struct_class = Types::ParameterConstraints
ParameterDeclaration.add_member(:parameter_key, Shapes::ShapeRef.new(shape: ParameterKey, location_name: "ParameterKey"))
ParameterDeclaration.add_member(:default_value, Shapes::ShapeRef.new(shape: ParameterValue, location_name: "DefaultValue"))
ParameterDeclaration.add_member(:parameter_type, Shapes::ShapeRef.new(shape: ParameterType, location_name: "ParameterType"))
ParameterDeclaration.add_member(:no_echo, Shapes::ShapeRef.new(shape: NoEcho, location_name: "NoEcho"))
ParameterDeclaration.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
ParameterDeclaration.add_member(:parameter_constraints, Shapes::ShapeRef.new(shape: ParameterConstraints, location_name: "ParameterConstraints"))
ParameterDeclaration.struct_class = Types::ParameterDeclaration
ParameterDeclarations.member = Shapes::ShapeRef.new(shape: ParameterDeclaration)
Parameters.member = Shapes::ShapeRef.new(shape: Parameter)
PhysicalResourceIdContext.member = Shapes::ShapeRef.new(shape: PhysicalResourceIdContextKeyValuePair)
PhysicalResourceIdContextKeyValuePair.add_member(:key, Shapes::ShapeRef.new(shape: Key, required: true, location_name: "Key"))
PhysicalResourceIdContextKeyValuePair.add_member(:value, Shapes::ShapeRef.new(shape: Value, required: true, location_name: "Value"))
PhysicalResourceIdContextKeyValuePair.struct_class = Types::PhysicalResourceIdContextKeyValuePair
PropertyDifference.add_member(:property_path, Shapes::ShapeRef.new(shape: PropertyPath, required: true, location_name: "PropertyPath"))
PropertyDifference.add_member(:expected_value, Shapes::ShapeRef.new(shape: PropertyValue, required: true, location_name: "ExpectedValue"))
PropertyDifference.add_member(:actual_value, Shapes::ShapeRef.new(shape: PropertyValue, required: true, location_name: "ActualValue"))
PropertyDifference.add_member(:difference_type, Shapes::ShapeRef.new(shape: DifferenceType, required: true, location_name: "DifferenceType"))
PropertyDifference.struct_class = Types::PropertyDifference
PropertyDifferences.member = Shapes::ShapeRef.new(shape: PropertyDifference)
RecordHandlerProgressInput.add_member(:bearer_token, Shapes::ShapeRef.new(shape: ClientToken, required: true, location_name: "BearerToken"))
RecordHandlerProgressInput.add_member(:operation_status, Shapes::ShapeRef.new(shape: OperationStatus, required: true, location_name: "OperationStatus"))
RecordHandlerProgressInput.add_member(:current_operation_status, Shapes::ShapeRef.new(shape: OperationStatus, location_name: "CurrentOperationStatus"))
RecordHandlerProgressInput.add_member(:status_message, Shapes::ShapeRef.new(shape: StatusMessage, location_name: "StatusMessage"))
RecordHandlerProgressInput.add_member(:error_code, Shapes::ShapeRef.new(shape: HandlerErrorCode, location_name: "ErrorCode"))
RecordHandlerProgressInput.add_member(:resource_model, Shapes::ShapeRef.new(shape: ResourceModel, location_name: "ResourceModel"))
RecordHandlerProgressInput.add_member(:client_request_token, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "ClientRequestToken"))
RecordHandlerProgressInput.struct_class = Types::RecordHandlerProgressInput
RecordHandlerProgressOutput.struct_class = Types::RecordHandlerProgressOutput
RegionList.member = Shapes::ShapeRef.new(shape: Region)
RegisterTypeInput.add_member(:type, Shapes::ShapeRef.new(shape: RegistryType, location_name: "Type"))
RegisterTypeInput.add_member(:type_name, Shapes::ShapeRef.new(shape: TypeName, required: true, location_name: "TypeName"))
RegisterTypeInput.add_member(:schema_handler_package, Shapes::ShapeRef.new(shape: S3Url, required: true, location_name: "SchemaHandlerPackage"))
RegisterTypeInput.add_member(:logging_config, Shapes::ShapeRef.new(shape: LoggingConfig, location_name: "LoggingConfig"))
RegisterTypeInput.add_member(:execution_role_arn, Shapes::ShapeRef.new(shape: RoleArn, location_name: "ExecutionRoleArn"))
RegisterTypeInput.add_member(:client_request_token, Shapes::ShapeRef.new(shape: RequestToken, location_name: "ClientRequestToken"))
RegisterTypeInput.struct_class = Types::RegisterTypeInput
RegisterTypeOutput.add_member(:registration_token, Shapes::ShapeRef.new(shape: RegistrationToken, location_name: "RegistrationToken"))
RegisterTypeOutput.struct_class = Types::RegisterTypeOutput
RegistrationTokenList.member = Shapes::ShapeRef.new(shape: RegistrationToken)
ResourceChange.add_member(:action, Shapes::ShapeRef.new(shape: ChangeAction, location_name: "Action"))
ResourceChange.add_member(:logical_resource_id, Shapes::ShapeRef.new(shape: LogicalResourceId, location_name: "LogicalResourceId"))
ResourceChange.add_member(:physical_resource_id, Shapes::ShapeRef.new(shape: PhysicalResourceId, location_name: "PhysicalResourceId"))
ResourceChange.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, location_name: "ResourceType"))
ResourceChange.add_member(:replacement, Shapes::ShapeRef.new(shape: Replacement, location_name: "Replacement"))
ResourceChange.add_member(:scope, Shapes::ShapeRef.new(shape: Scope, location_name: "Scope"))
ResourceChange.add_member(:details, Shapes::ShapeRef.new(shape: ResourceChangeDetails, location_name: "Details"))
ResourceChange.struct_class = Types::ResourceChange
ResourceChangeDetail.add_member(:target, Shapes::ShapeRef.new(shape: ResourceTargetDefinition, location_name: "Target"))
ResourceChangeDetail.add_member(:evaluation, Shapes::ShapeRef.new(shape: EvaluationType, location_name: "Evaluation"))
ResourceChangeDetail.add_member(:change_source, Shapes::ShapeRef.new(shape: ChangeSource, location_name: "ChangeSource"))
ResourceChangeDetail.add_member(:causing_entity, Shapes::ShapeRef.new(shape: CausingEntity, location_name: "CausingEntity"))
ResourceChangeDetail.struct_class = Types::ResourceChangeDetail
ResourceChangeDetails.member = Shapes::ShapeRef.new(shape: ResourceChangeDetail)
ResourceIdentifierProperties.key = Shapes::ShapeRef.new(shape: ResourceIdentifierPropertyKey)
ResourceIdentifierProperties.value = Shapes::ShapeRef.new(shape: ResourceIdentifierPropertyValue)
ResourceIdentifierSummaries.member = Shapes::ShapeRef.new(shape: ResourceIdentifierSummary)
ResourceIdentifierSummary.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, location_name: "ResourceType"))
ResourceIdentifierSummary.add_member(:logical_resource_ids, Shapes::ShapeRef.new(shape: LogicalResourceIds, location_name: "LogicalResourceIds"))
ResourceIdentifierSummary.add_member(:resource_identifiers, Shapes::ShapeRef.new(shape: ResourceIdentifiers, location_name: "ResourceIdentifiers"))
ResourceIdentifierSummary.struct_class = Types::ResourceIdentifierSummary
ResourceIdentifiers.member = Shapes::ShapeRef.new(shape: ResourceIdentifierPropertyKey)
ResourceTargetDefinition.add_member(:attribute, Shapes::ShapeRef.new(shape: ResourceAttribute, location_name: "Attribute"))
ResourceTargetDefinition.add_member(:name, Shapes::ShapeRef.new(shape: PropertyName, location_name: "Name"))
ResourceTargetDefinition.add_member(:requires_recreation, Shapes::ShapeRef.new(shape: RequiresRecreation, location_name: "RequiresRecreation"))
ResourceTargetDefinition.struct_class = Types::ResourceTargetDefinition
ResourceToImport.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, required: true, location_name: "ResourceType"))
ResourceToImport.add_member(:logical_resource_id, Shapes::ShapeRef.new(shape: LogicalResourceId, required: true, location_name: "LogicalResourceId"))
ResourceToImport.add_member(:resource_identifier, Shapes::ShapeRef.new(shape: ResourceIdentifierProperties, required: true, location_name: "ResourceIdentifier"))
ResourceToImport.struct_class = Types::ResourceToImport
ResourceTypes.member = Shapes::ShapeRef.new(shape: ResourceType)
ResourcesToImport.member = Shapes::ShapeRef.new(shape: ResourceToImport)
ResourcesToSkip.member = Shapes::ShapeRef.new(shape: ResourceToSkip)
RetainResources.member = Shapes::ShapeRef.new(shape: LogicalResourceId)
RollbackConfiguration.add_member(:rollback_triggers, Shapes::ShapeRef.new(shape: RollbackTriggers, location_name: "RollbackTriggers"))
RollbackConfiguration.add_member(:monitoring_time_in_minutes, Shapes::ShapeRef.new(shape: MonitoringTimeInMinutes, location_name: "MonitoringTimeInMinutes"))
RollbackConfiguration.struct_class = Types::RollbackConfiguration
RollbackTrigger.add_member(:arn, Shapes::ShapeRef.new(shape: Arn, required: true, location_name: "Arn"))
RollbackTrigger.add_member(:type, Shapes::ShapeRef.new(shape: Type, required: true, location_name: "Type"))
RollbackTrigger.struct_class = Types::RollbackTrigger
RollbackTriggers.member = Shapes::ShapeRef.new(shape: RollbackTrigger)
Scope.member = Shapes::ShapeRef.new(shape: ResourceAttribute)
SetStackPolicyInput.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackName, required: true, location_name: "StackName"))
SetStackPolicyInput.add_member(:stack_policy_body, Shapes::ShapeRef.new(shape: StackPolicyBody, location_name: "StackPolicyBody"))
SetStackPolicyInput.add_member(:stack_policy_url, Shapes::ShapeRef.new(shape: StackPolicyURL, location_name: "StackPolicyURL"))
SetStackPolicyInput.struct_class = Types::SetStackPolicyInput
SetTypeDefaultVersionInput.add_member(:arn, Shapes::ShapeRef.new(shape: PrivateTypeArn, location_name: "Arn"))
SetTypeDefaultVersionInput.add_member(:type, Shapes::ShapeRef.new(shape: RegistryType, location_name: "Type"))
SetTypeDefaultVersionInput.add_member(:type_name, Shapes::ShapeRef.new(shape: TypeName, location_name: "TypeName"))
SetTypeDefaultVersionInput.add_member(:version_id, Shapes::ShapeRef.new(shape: TypeVersionId, location_name: "VersionId"))
SetTypeDefaultVersionInput.struct_class = Types::SetTypeDefaultVersionInput
SetTypeDefaultVersionOutput.struct_class = Types::SetTypeDefaultVersionOutput
SignalResourceInput.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackNameOrId, required: true, location_name: "StackName"))
SignalResourceInput.add_member(:logical_resource_id, Shapes::ShapeRef.new(shape: LogicalResourceId, required: true, location_name: "LogicalResourceId"))
SignalResourceInput.add_member(:unique_id, Shapes::ShapeRef.new(shape: ResourceSignalUniqueId, required: true, location_name: "UniqueId"))
SignalResourceInput.add_member(:status, Shapes::ShapeRef.new(shape: ResourceSignalStatus, required: true, location_name: "Status"))
SignalResourceInput.struct_class = Types::SignalResourceInput
Stack.add_member(:stack_id, Shapes::ShapeRef.new(shape: StackId, location_name: "StackId"))
Stack.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackName, required: true, location_name: "StackName"))
Stack.add_member(:change_set_id, Shapes::ShapeRef.new(shape: ChangeSetId, location_name: "ChangeSetId"))
Stack.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
Stack.add_member(:parameters, Shapes::ShapeRef.new(shape: Parameters, location_name: "Parameters"))
Stack.add_member(:creation_time, Shapes::ShapeRef.new(shape: CreationTime, required: true, location_name: "CreationTime"))
Stack.add_member(:deletion_time, Shapes::ShapeRef.new(shape: DeletionTime, location_name: "DeletionTime"))
Stack.add_member(:last_updated_time, Shapes::ShapeRef.new(shape: LastUpdatedTime, location_name: "LastUpdatedTime"))
Stack.add_member(:rollback_configuration, Shapes::ShapeRef.new(shape: RollbackConfiguration, location_name: "RollbackConfiguration"))
Stack.add_member(:stack_status, Shapes::ShapeRef.new(shape: StackStatus, required: true, location_name: "StackStatus"))
Stack.add_member(:stack_status_reason, Shapes::ShapeRef.new(shape: StackStatusReason, location_name: "StackStatusReason"))
Stack.add_member(:disable_rollback, Shapes::ShapeRef.new(shape: DisableRollback, location_name: "DisableRollback"))
Stack.add_member(:notification_arns, Shapes::ShapeRef.new(shape: NotificationARNs, location_name: "NotificationARNs"))
Stack.add_member(:timeout_in_minutes, Shapes::ShapeRef.new(shape: TimeoutMinutes, location_name: "TimeoutInMinutes"))
Stack.add_member(:capabilities, Shapes::ShapeRef.new(shape: Capabilities, location_name: "Capabilities"))
Stack.add_member(:outputs, Shapes::ShapeRef.new(shape: Outputs, location_name: "Outputs"))
Stack.add_member(:role_arn, Shapes::ShapeRef.new(shape: RoleARN, location_name: "RoleARN"))
Stack.add_member(:tags, Shapes::ShapeRef.new(shape: Tags, location_name: "Tags"))
Stack.add_member(:enable_termination_protection, Shapes::ShapeRef.new(shape: EnableTerminationProtection, location_name: "EnableTerminationProtection"))
Stack.add_member(:parent_id, Shapes::ShapeRef.new(shape: StackId, location_name: "ParentId"))
Stack.add_member(:root_id, Shapes::ShapeRef.new(shape: StackId, location_name: "RootId"))
Stack.add_member(:drift_information, Shapes::ShapeRef.new(shape: StackDriftInformation, location_name: "DriftInformation"))
Stack.struct_class = Types::Stack
StackDriftInformation.add_member(:stack_drift_status, Shapes::ShapeRef.new(shape: StackDriftStatus, required: true, location_name: "StackDriftStatus"))
StackDriftInformation.add_member(:last_check_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "LastCheckTimestamp"))
StackDriftInformation.struct_class = Types::StackDriftInformation
StackDriftInformationSummary.add_member(:stack_drift_status, Shapes::ShapeRef.new(shape: StackDriftStatus, required: true, location_name: "StackDriftStatus"))
StackDriftInformationSummary.add_member(:last_check_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "LastCheckTimestamp"))
StackDriftInformationSummary.struct_class = Types::StackDriftInformationSummary
StackEvent.add_member(:stack_id, Shapes::ShapeRef.new(shape: StackId, required: true, location_name: "StackId"))
StackEvent.add_member(:event_id, Shapes::ShapeRef.new(shape: EventId, required: true, location_name: "EventId"))
StackEvent.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackName, required: true, location_name: "StackName"))
StackEvent.add_member(:logical_resource_id, Shapes::ShapeRef.new(shape: LogicalResourceId, location_name: "LogicalResourceId"))
StackEvent.add_member(:physical_resource_id, Shapes::ShapeRef.new(shape: PhysicalResourceId, location_name: "PhysicalResourceId"))
StackEvent.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, location_name: "ResourceType"))
StackEvent.add_member(:timestamp, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "Timestamp"))
StackEvent.add_member(:resource_status, Shapes::ShapeRef.new(shape: ResourceStatus, location_name: "ResourceStatus"))
StackEvent.add_member(:resource_status_reason, Shapes::ShapeRef.new(shape: ResourceStatusReason, location_name: "ResourceStatusReason"))
StackEvent.add_member(:resource_properties, Shapes::ShapeRef.new(shape: ResourceProperties, location_name: "ResourceProperties"))
StackEvent.add_member(:client_request_token, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "ClientRequestToken"))
StackEvent.struct_class = Types::StackEvent
StackEvents.member = Shapes::ShapeRef.new(shape: StackEvent)
StackInstance.add_member(:stack_set_id, Shapes::ShapeRef.new(shape: StackSetId, location_name: "StackSetId"))
StackInstance.add_member(:region, Shapes::ShapeRef.new(shape: Region, location_name: "Region"))
StackInstance.add_member(:account, Shapes::ShapeRef.new(shape: Account, location_name: "Account"))
StackInstance.add_member(:stack_id, Shapes::ShapeRef.new(shape: StackId, location_name: "StackId"))
StackInstance.add_member(:parameter_overrides, Shapes::ShapeRef.new(shape: Parameters, location_name: "ParameterOverrides"))
StackInstance.add_member(:status, Shapes::ShapeRef.new(shape: StackInstanceStatus, location_name: "Status"))
StackInstance.add_member(:stack_instance_status, Shapes::ShapeRef.new(shape: StackInstanceComprehensiveStatus, location_name: "StackInstanceStatus"))
StackInstance.add_member(:status_reason, Shapes::ShapeRef.new(shape: Reason, location_name: "StatusReason"))
StackInstance.add_member(:organizational_unit_id, Shapes::ShapeRef.new(shape: OrganizationalUnitId, location_name: "OrganizationalUnitId"))
StackInstance.add_member(:drift_status, Shapes::ShapeRef.new(shape: StackDriftStatus, location_name: "DriftStatus"))
StackInstance.add_member(:last_drift_check_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "LastDriftCheckTimestamp"))
StackInstance.struct_class = Types::StackInstance
StackInstanceComprehensiveStatus.add_member(:detailed_status, Shapes::ShapeRef.new(shape: StackInstanceDetailedStatus, location_name: "DetailedStatus"))
StackInstanceComprehensiveStatus.struct_class = Types::StackInstanceComprehensiveStatus
StackInstanceFilter.add_member(:name, Shapes::ShapeRef.new(shape: StackInstanceFilterName, location_name: "Name"))
StackInstanceFilter.add_member(:values, Shapes::ShapeRef.new(shape: StackInstanceFilterValues, location_name: "Values"))
StackInstanceFilter.struct_class = Types::StackInstanceFilter
StackInstanceFilters.member = Shapes::ShapeRef.new(shape: StackInstanceFilter)
StackInstanceNotFoundException.struct_class = Types::StackInstanceNotFoundException
StackInstanceSummaries.member = Shapes::ShapeRef.new(shape: StackInstanceSummary)
StackInstanceSummary.add_member(:stack_set_id, Shapes::ShapeRef.new(shape: StackSetId, location_name: "StackSetId"))
StackInstanceSummary.add_member(:region, Shapes::ShapeRef.new(shape: Region, location_name: "Region"))
StackInstanceSummary.add_member(:account, Shapes::ShapeRef.new(shape: Account, location_name: "Account"))
StackInstanceSummary.add_member(:stack_id, Shapes::ShapeRef.new(shape: StackId, location_name: "StackId"))
StackInstanceSummary.add_member(:status, Shapes::ShapeRef.new(shape: StackInstanceStatus, location_name: "Status"))
StackInstanceSummary.add_member(:status_reason, Shapes::ShapeRef.new(shape: Reason, location_name: "StatusReason"))
StackInstanceSummary.add_member(:stack_instance_status, Shapes::ShapeRef.new(shape: StackInstanceComprehensiveStatus, location_name: "StackInstanceStatus"))
StackInstanceSummary.add_member(:organizational_unit_id, Shapes::ShapeRef.new(shape: OrganizationalUnitId, location_name: "OrganizationalUnitId"))
StackInstanceSummary.add_member(:drift_status, Shapes::ShapeRef.new(shape: StackDriftStatus, location_name: "DriftStatus"))
StackInstanceSummary.add_member(:last_drift_check_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "LastDriftCheckTimestamp"))
StackInstanceSummary.struct_class = Types::StackInstanceSummary
StackResource.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackName, location_name: "StackName"))
StackResource.add_member(:stack_id, Shapes::ShapeRef.new(shape: StackId, location_name: "StackId"))
StackResource.add_member(:logical_resource_id, Shapes::ShapeRef.new(shape: LogicalResourceId, required: true, location_name: "LogicalResourceId"))
StackResource.add_member(:physical_resource_id, Shapes::ShapeRef.new(shape: PhysicalResourceId, location_name: "PhysicalResourceId"))
StackResource.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, required: true, location_name: "ResourceType"))
StackResource.add_member(:timestamp, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "Timestamp"))
StackResource.add_member(:resource_status, Shapes::ShapeRef.new(shape: ResourceStatus, required: true, location_name: "ResourceStatus"))
StackResource.add_member(:resource_status_reason, Shapes::ShapeRef.new(shape: ResourceStatusReason, location_name: "ResourceStatusReason"))
StackResource.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
StackResource.add_member(:drift_information, Shapes::ShapeRef.new(shape: StackResourceDriftInformation, location_name: "DriftInformation"))
StackResource.struct_class = Types::StackResource
StackResourceDetail.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackName, location_name: "StackName"))
StackResourceDetail.add_member(:stack_id, Shapes::ShapeRef.new(shape: StackId, location_name: "StackId"))
StackResourceDetail.add_member(:logical_resource_id, Shapes::ShapeRef.new(shape: LogicalResourceId, required: true, location_name: "LogicalResourceId"))
StackResourceDetail.add_member(:physical_resource_id, Shapes::ShapeRef.new(shape: PhysicalResourceId, location_name: "PhysicalResourceId"))
StackResourceDetail.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, required: true, location_name: "ResourceType"))
StackResourceDetail.add_member(:last_updated_timestamp, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "LastUpdatedTimestamp"))
StackResourceDetail.add_member(:resource_status, Shapes::ShapeRef.new(shape: ResourceStatus, required: true, location_name: "ResourceStatus"))
StackResourceDetail.add_member(:resource_status_reason, Shapes::ShapeRef.new(shape: ResourceStatusReason, location_name: "ResourceStatusReason"))
StackResourceDetail.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
StackResourceDetail.add_member(:metadata, Shapes::ShapeRef.new(shape: Metadata, location_name: "Metadata"))
StackResourceDetail.add_member(:drift_information, Shapes::ShapeRef.new(shape: StackResourceDriftInformation, location_name: "DriftInformation"))
StackResourceDetail.struct_class = Types::StackResourceDetail
StackResourceDrift.add_member(:stack_id, Shapes::ShapeRef.new(shape: StackId, required: true, location_name: "StackId"))
StackResourceDrift.add_member(:logical_resource_id, Shapes::ShapeRef.new(shape: LogicalResourceId, required: true, location_name: "LogicalResourceId"))
StackResourceDrift.add_member(:physical_resource_id, Shapes::ShapeRef.new(shape: PhysicalResourceId, location_name: "PhysicalResourceId"))
StackResourceDrift.add_member(:physical_resource_id_context, Shapes::ShapeRef.new(shape: PhysicalResourceIdContext, location_name: "PhysicalResourceIdContext"))
StackResourceDrift.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, required: true, location_name: "ResourceType"))
StackResourceDrift.add_member(:expected_properties, Shapes::ShapeRef.new(shape: Properties, location_name: "ExpectedProperties"))
StackResourceDrift.add_member(:actual_properties, Shapes::ShapeRef.new(shape: Properties, location_name: "ActualProperties"))
StackResourceDrift.add_member(:property_differences, Shapes::ShapeRef.new(shape: PropertyDifferences, location_name: "PropertyDifferences"))
StackResourceDrift.add_member(:stack_resource_drift_status, Shapes::ShapeRef.new(shape: StackResourceDriftStatus, required: true, location_name: "StackResourceDriftStatus"))
StackResourceDrift.add_member(:timestamp, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "Timestamp"))
StackResourceDrift.struct_class = Types::StackResourceDrift
StackResourceDriftInformation.add_member(:stack_resource_drift_status, Shapes::ShapeRef.new(shape: StackResourceDriftStatus, required: true, location_name: "StackResourceDriftStatus"))
StackResourceDriftInformation.add_member(:last_check_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "LastCheckTimestamp"))
StackResourceDriftInformation.struct_class = Types::StackResourceDriftInformation
StackResourceDriftInformationSummary.add_member(:stack_resource_drift_status, Shapes::ShapeRef.new(shape: StackResourceDriftStatus, required: true, location_name: "StackResourceDriftStatus"))
StackResourceDriftInformationSummary.add_member(:last_check_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "LastCheckTimestamp"))
StackResourceDriftInformationSummary.struct_class = Types::StackResourceDriftInformationSummary
StackResourceDriftStatusFilters.member = Shapes::ShapeRef.new(shape: StackResourceDriftStatus)
StackResourceDrifts.member = Shapes::ShapeRef.new(shape: StackResourceDrift)
StackResourceSummaries.member = Shapes::ShapeRef.new(shape: StackResourceSummary)
StackResourceSummary.add_member(:logical_resource_id, Shapes::ShapeRef.new(shape: LogicalResourceId, required: true, location_name: "LogicalResourceId"))
StackResourceSummary.add_member(:physical_resource_id, Shapes::ShapeRef.new(shape: PhysicalResourceId, location_name: "PhysicalResourceId"))
StackResourceSummary.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, required: true, location_name: "ResourceType"))
StackResourceSummary.add_member(:last_updated_timestamp, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "LastUpdatedTimestamp"))
StackResourceSummary.add_member(:resource_status, Shapes::ShapeRef.new(shape: ResourceStatus, required: true, location_name: "ResourceStatus"))
StackResourceSummary.add_member(:resource_status_reason, Shapes::ShapeRef.new(shape: ResourceStatusReason, location_name: "ResourceStatusReason"))
StackResourceSummary.add_member(:drift_information, Shapes::ShapeRef.new(shape: StackResourceDriftInformationSummary, location_name: "DriftInformation"))
StackResourceSummary.struct_class = Types::StackResourceSummary
StackResources.member = Shapes::ShapeRef.new(shape: StackResource)
StackSet.add_member(:stack_set_name, Shapes::ShapeRef.new(shape: StackSetName, location_name: "StackSetName"))
StackSet.add_member(:stack_set_id, Shapes::ShapeRef.new(shape: StackSetId, location_name: "StackSetId"))
StackSet.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
StackSet.add_member(:status, Shapes::ShapeRef.new(shape: StackSetStatus, location_name: "Status"))
StackSet.add_member(:template_body, Shapes::ShapeRef.new(shape: TemplateBody, location_name: "TemplateBody"))
StackSet.add_member(:parameters, Shapes::ShapeRef.new(shape: Parameters, location_name: "Parameters"))
StackSet.add_member(:capabilities, Shapes::ShapeRef.new(shape: Capabilities, location_name: "Capabilities"))
StackSet.add_member(:tags, Shapes::ShapeRef.new(shape: Tags, location_name: "Tags"))
StackSet.add_member(:stack_set_arn, Shapes::ShapeRef.new(shape: StackSetARN, location_name: "StackSetARN"))
StackSet.add_member(:administration_role_arn, Shapes::ShapeRef.new(shape: RoleARN, location_name: "AdministrationRoleARN"))
StackSet.add_member(:execution_role_name, Shapes::ShapeRef.new(shape: ExecutionRoleName, location_name: "ExecutionRoleName"))
StackSet.add_member(:stack_set_drift_detection_details, Shapes::ShapeRef.new(shape: StackSetDriftDetectionDetails, location_name: "StackSetDriftDetectionDetails"))
StackSet.add_member(:auto_deployment, Shapes::ShapeRef.new(shape: AutoDeployment, location_name: "AutoDeployment"))
StackSet.add_member(:permission_model, Shapes::ShapeRef.new(shape: PermissionModels, location_name: "PermissionModel"))
StackSet.add_member(:organizational_unit_ids, Shapes::ShapeRef.new(shape: OrganizationalUnitIdList, location_name: "OrganizationalUnitIds"))
StackSet.struct_class = Types::StackSet
StackSetDriftDetectionDetails.add_member(:drift_status, Shapes::ShapeRef.new(shape: StackSetDriftStatus, location_name: "DriftStatus"))
StackSetDriftDetectionDetails.add_member(:drift_detection_status, Shapes::ShapeRef.new(shape: StackSetDriftDetectionStatus, location_name: "DriftDetectionStatus"))
StackSetDriftDetectionDetails.add_member(:last_drift_check_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "LastDriftCheckTimestamp"))
StackSetDriftDetectionDetails.add_member(:total_stack_instances_count, Shapes::ShapeRef.new(shape: TotalStackInstancesCount, location_name: "TotalStackInstancesCount"))
StackSetDriftDetectionDetails.add_member(:drifted_stack_instances_count, Shapes::ShapeRef.new(shape: DriftedStackInstancesCount, location_name: "DriftedStackInstancesCount"))
StackSetDriftDetectionDetails.add_member(:in_sync_stack_instances_count, Shapes::ShapeRef.new(shape: InSyncStackInstancesCount, location_name: "InSyncStackInstancesCount"))
StackSetDriftDetectionDetails.add_member(:in_progress_stack_instances_count, Shapes::ShapeRef.new(shape: InProgressStackInstancesCount, location_name: "InProgressStackInstancesCount"))
StackSetDriftDetectionDetails.add_member(:failed_stack_instances_count, Shapes::ShapeRef.new(shape: FailedStackInstancesCount, location_name: "FailedStackInstancesCount"))
StackSetDriftDetectionDetails.struct_class = Types::StackSetDriftDetectionDetails
StackSetNotEmptyException.struct_class = Types::StackSetNotEmptyException
StackSetNotFoundException.struct_class = Types::StackSetNotFoundException
StackSetOperation.add_member(:operation_id, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "OperationId"))
StackSetOperation.add_member(:stack_set_id, Shapes::ShapeRef.new(shape: StackSetId, location_name: "StackSetId"))
StackSetOperation.add_member(:action, Shapes::ShapeRef.new(shape: StackSetOperationAction, location_name: "Action"))
StackSetOperation.add_member(:status, Shapes::ShapeRef.new(shape: StackSetOperationStatus, location_name: "Status"))
StackSetOperation.add_member(:operation_preferences, Shapes::ShapeRef.new(shape: StackSetOperationPreferences, location_name: "OperationPreferences"))
StackSetOperation.add_member(:retain_stacks, Shapes::ShapeRef.new(shape: RetainStacksNullable, location_name: "RetainStacks"))
StackSetOperation.add_member(:administration_role_arn, Shapes::ShapeRef.new(shape: RoleARN, location_name: "AdministrationRoleARN"))
StackSetOperation.add_member(:execution_role_name, Shapes::ShapeRef.new(shape: ExecutionRoleName, location_name: "ExecutionRoleName"))
StackSetOperation.add_member(:creation_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "CreationTimestamp"))
StackSetOperation.add_member(:end_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "EndTimestamp"))
StackSetOperation.add_member(:deployment_targets, Shapes::ShapeRef.new(shape: DeploymentTargets, location_name: "DeploymentTargets"))
StackSetOperation.add_member(:stack_set_drift_detection_details, Shapes::ShapeRef.new(shape: StackSetDriftDetectionDetails, location_name: "StackSetDriftDetectionDetails"))
StackSetOperation.struct_class = Types::StackSetOperation
StackSetOperationPreferences.add_member(:region_order, Shapes::ShapeRef.new(shape: RegionList, location_name: "RegionOrder"))
StackSetOperationPreferences.add_member(:failure_tolerance_count, Shapes::ShapeRef.new(shape: FailureToleranceCount, location_name: "FailureToleranceCount"))
StackSetOperationPreferences.add_member(:failure_tolerance_percentage, Shapes::ShapeRef.new(shape: FailureTolerancePercentage, location_name: "FailureTolerancePercentage"))
StackSetOperationPreferences.add_member(:max_concurrent_count, Shapes::ShapeRef.new(shape: MaxConcurrentCount, location_name: "MaxConcurrentCount"))
StackSetOperationPreferences.add_member(:max_concurrent_percentage, Shapes::ShapeRef.new(shape: MaxConcurrentPercentage, location_name: "MaxConcurrentPercentage"))
StackSetOperationPreferences.struct_class = Types::StackSetOperationPreferences
StackSetOperationResultSummaries.member = Shapes::ShapeRef.new(shape: StackSetOperationResultSummary)
StackSetOperationResultSummary.add_member(:account, Shapes::ShapeRef.new(shape: Account, location_name: "Account"))
StackSetOperationResultSummary.add_member(:region, Shapes::ShapeRef.new(shape: Region, location_name: "Region"))
StackSetOperationResultSummary.add_member(:status, Shapes::ShapeRef.new(shape: StackSetOperationResultStatus, location_name: "Status"))
StackSetOperationResultSummary.add_member(:status_reason, Shapes::ShapeRef.new(shape: Reason, location_name: "StatusReason"))
StackSetOperationResultSummary.add_member(:account_gate_result, Shapes::ShapeRef.new(shape: AccountGateResult, location_name: "AccountGateResult"))
StackSetOperationResultSummary.add_member(:organizational_unit_id, Shapes::ShapeRef.new(shape: OrganizationalUnitId, location_name: "OrganizationalUnitId"))
StackSetOperationResultSummary.struct_class = Types::StackSetOperationResultSummary
StackSetOperationSummaries.member = Shapes::ShapeRef.new(shape: StackSetOperationSummary)
StackSetOperationSummary.add_member(:operation_id, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "OperationId"))
StackSetOperationSummary.add_member(:action, Shapes::ShapeRef.new(shape: StackSetOperationAction, location_name: "Action"))
StackSetOperationSummary.add_member(:status, Shapes::ShapeRef.new(shape: StackSetOperationStatus, location_name: "Status"))
StackSetOperationSummary.add_member(:creation_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "CreationTimestamp"))
StackSetOperationSummary.add_member(:end_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "EndTimestamp"))
StackSetOperationSummary.struct_class = Types::StackSetOperationSummary
StackSetSummaries.member = Shapes::ShapeRef.new(shape: StackSetSummary)
StackSetSummary.add_member(:stack_set_name, Shapes::ShapeRef.new(shape: StackSetName, location_name: "StackSetName"))
StackSetSummary.add_member(:stack_set_id, Shapes::ShapeRef.new(shape: StackSetId, location_name: "StackSetId"))
StackSetSummary.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
StackSetSummary.add_member(:status, Shapes::ShapeRef.new(shape: StackSetStatus, location_name: "Status"))
StackSetSummary.add_member(:auto_deployment, Shapes::ShapeRef.new(shape: AutoDeployment, location_name: "AutoDeployment"))
StackSetSummary.add_member(:permission_model, Shapes::ShapeRef.new(shape: PermissionModels, location_name: "PermissionModel"))
StackSetSummary.add_member(:drift_status, Shapes::ShapeRef.new(shape: StackDriftStatus, location_name: "DriftStatus"))
StackSetSummary.add_member(:last_drift_check_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "LastDriftCheckTimestamp"))
StackSetSummary.struct_class = Types::StackSetSummary
StackStatusFilter.member = Shapes::ShapeRef.new(shape: StackStatus)
StackSummaries.member = Shapes::ShapeRef.new(shape: StackSummary)
StackSummary.add_member(:stack_id, Shapes::ShapeRef.new(shape: StackId, location_name: "StackId"))
StackSummary.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackName, required: true, location_name: "StackName"))
StackSummary.add_member(:template_description, Shapes::ShapeRef.new(shape: TemplateDescription, location_name: "TemplateDescription"))
StackSummary.add_member(:creation_time, Shapes::ShapeRef.new(shape: CreationTime, required: true, location_name: "CreationTime"))
StackSummary.add_member(:last_updated_time, Shapes::ShapeRef.new(shape: LastUpdatedTime, location_name: "LastUpdatedTime"))
StackSummary.add_member(:deletion_time, Shapes::ShapeRef.new(shape: DeletionTime, location_name: "DeletionTime"))
StackSummary.add_member(:stack_status, Shapes::ShapeRef.new(shape: StackStatus, required: true, location_name: "StackStatus"))
StackSummary.add_member(:stack_status_reason, Shapes::ShapeRef.new(shape: StackStatusReason, location_name: "StackStatusReason"))
StackSummary.add_member(:parent_id, Shapes::ShapeRef.new(shape: StackId, location_name: "ParentId"))
StackSummary.add_member(:root_id, Shapes::ShapeRef.new(shape: StackId, location_name: "RootId"))
StackSummary.add_member(:drift_information, Shapes::ShapeRef.new(shape: StackDriftInformationSummary, location_name: "DriftInformation"))
StackSummary.struct_class = Types::StackSummary
Stacks.member = Shapes::ShapeRef.new(shape: Stack)
StageList.member = Shapes::ShapeRef.new(shape: TemplateStage)
StaleRequestException.struct_class = Types::StaleRequestException
StopStackSetOperationInput.add_member(:stack_set_name, Shapes::ShapeRef.new(shape: StackSetName, required: true, location_name: "StackSetName"))
StopStackSetOperationInput.add_member(:operation_id, Shapes::ShapeRef.new(shape: ClientRequestToken, required: true, location_name: "OperationId"))
StopStackSetOperationInput.struct_class = Types::StopStackSetOperationInput
StopStackSetOperationOutput.struct_class = Types::StopStackSetOperationOutput
Tag.add_member(:key, Shapes::ShapeRef.new(shape: TagKey, required: true, location_name: "Key"))
Tag.add_member(:value, Shapes::ShapeRef.new(shape: TagValue, required: true, location_name: "Value"))
Tag.struct_class = Types::Tag
Tags.member = Shapes::ShapeRef.new(shape: Tag)
TemplateParameter.add_member(:parameter_key, Shapes::ShapeRef.new(shape: ParameterKey, location_name: "ParameterKey"))
TemplateParameter.add_member(:default_value, Shapes::ShapeRef.new(shape: ParameterValue, location_name: "DefaultValue"))
TemplateParameter.add_member(:no_echo, Shapes::ShapeRef.new(shape: NoEcho, location_name: "NoEcho"))
TemplateParameter.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
TemplateParameter.struct_class = Types::TemplateParameter
TemplateParameters.member = Shapes::ShapeRef.new(shape: TemplateParameter)
TokenAlreadyExistsException.struct_class = Types::TokenAlreadyExistsException
TransformsList.member = Shapes::ShapeRef.new(shape: TransformName)
TypeNotFoundException.struct_class = Types::TypeNotFoundException
TypeSummaries.member = Shapes::ShapeRef.new(shape: TypeSummary)
TypeSummary.add_member(:type, Shapes::ShapeRef.new(shape: RegistryType, location_name: "Type"))
TypeSummary.add_member(:type_name, Shapes::ShapeRef.new(shape: TypeName, location_name: "TypeName"))
TypeSummary.add_member(:default_version_id, Shapes::ShapeRef.new(shape: TypeVersionId, location_name: "DefaultVersionId"))
TypeSummary.add_member(:type_arn, Shapes::ShapeRef.new(shape: TypeArn, location_name: "TypeArn"))
TypeSummary.add_member(:last_updated, Shapes::ShapeRef.new(shape: Timestamp, location_name: "LastUpdated"))
TypeSummary.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
TypeSummary.struct_class = Types::TypeSummary
TypeVersionSummaries.member = Shapes::ShapeRef.new(shape: TypeVersionSummary)
TypeVersionSummary.add_member(:type, Shapes::ShapeRef.new(shape: RegistryType, location_name: "Type"))
TypeVersionSummary.add_member(:type_name, Shapes::ShapeRef.new(shape: TypeName, location_name: "TypeName"))
TypeVersionSummary.add_member(:version_id, Shapes::ShapeRef.new(shape: TypeVersionId, location_name: "VersionId"))
TypeVersionSummary.add_member(:is_default_version, Shapes::ShapeRef.new(shape: IsDefaultVersion, location_name: "IsDefaultVersion"))
TypeVersionSummary.add_member(:arn, Shapes::ShapeRef.new(shape: TypeArn, location_name: "Arn"))
TypeVersionSummary.add_member(:time_created, Shapes::ShapeRef.new(shape: Timestamp, location_name: "TimeCreated"))
TypeVersionSummary.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
TypeVersionSummary.struct_class = Types::TypeVersionSummary
UpdateStackInput.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackName, required: true, location_name: "StackName"))
UpdateStackInput.add_member(:template_body, Shapes::ShapeRef.new(shape: TemplateBody, location_name: "TemplateBody"))
UpdateStackInput.add_member(:template_url, Shapes::ShapeRef.new(shape: TemplateURL, location_name: "TemplateURL"))
UpdateStackInput.add_member(:use_previous_template, Shapes::ShapeRef.new(shape: UsePreviousTemplate, location_name: "UsePreviousTemplate"))
UpdateStackInput.add_member(:stack_policy_during_update_body, Shapes::ShapeRef.new(shape: StackPolicyDuringUpdateBody, location_name: "StackPolicyDuringUpdateBody"))
UpdateStackInput.add_member(:stack_policy_during_update_url, Shapes::ShapeRef.new(shape: StackPolicyDuringUpdateURL, location_name: "StackPolicyDuringUpdateURL"))
UpdateStackInput.add_member(:parameters, Shapes::ShapeRef.new(shape: Parameters, location_name: "Parameters"))
UpdateStackInput.add_member(:capabilities, Shapes::ShapeRef.new(shape: Capabilities, location_name: "Capabilities"))
UpdateStackInput.add_member(:resource_types, Shapes::ShapeRef.new(shape: ResourceTypes, location_name: "ResourceTypes"))
UpdateStackInput.add_member(:role_arn, Shapes::ShapeRef.new(shape: RoleARN, location_name: "RoleARN"))
UpdateStackInput.add_member(:rollback_configuration, Shapes::ShapeRef.new(shape: RollbackConfiguration, location_name: "RollbackConfiguration"))
UpdateStackInput.add_member(:stack_policy_body, Shapes::ShapeRef.new(shape: StackPolicyBody, location_name: "StackPolicyBody"))
UpdateStackInput.add_member(:stack_policy_url, Shapes::ShapeRef.new(shape: StackPolicyURL, location_name: "StackPolicyURL"))
UpdateStackInput.add_member(:notification_arns, Shapes::ShapeRef.new(shape: NotificationARNs, location_name: "NotificationARNs"))
UpdateStackInput.add_member(:tags, Shapes::ShapeRef.new(shape: Tags, location_name: "Tags"))
UpdateStackInput.add_member(:client_request_token, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "ClientRequestToken"))
UpdateStackInput.struct_class = Types::UpdateStackInput
UpdateStackInstancesInput.add_member(:stack_set_name, Shapes::ShapeRef.new(shape: StackSetNameOrId, required: true, location_name: "StackSetName"))
UpdateStackInstancesInput.add_member(:accounts, Shapes::ShapeRef.new(shape: AccountList, location_name: "Accounts"))
UpdateStackInstancesInput.add_member(:deployment_targets, Shapes::ShapeRef.new(shape: DeploymentTargets, location_name: "DeploymentTargets"))
UpdateStackInstancesInput.add_member(:regions, Shapes::ShapeRef.new(shape: RegionList, required: true, location_name: "Regions"))
UpdateStackInstancesInput.add_member(:parameter_overrides, Shapes::ShapeRef.new(shape: Parameters, location_name: "ParameterOverrides"))
UpdateStackInstancesInput.add_member(:operation_preferences, Shapes::ShapeRef.new(shape: StackSetOperationPreferences, location_name: "OperationPreferences"))
UpdateStackInstancesInput.add_member(:operation_id, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "OperationId", metadata: {"idempotencyToken"=>true}))
UpdateStackInstancesInput.struct_class = Types::UpdateStackInstancesInput
UpdateStackInstancesOutput.add_member(:operation_id, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "OperationId"))
UpdateStackInstancesOutput.struct_class = Types::UpdateStackInstancesOutput
UpdateStackOutput.add_member(:stack_id, Shapes::ShapeRef.new(shape: StackId, location_name: "StackId"))
UpdateStackOutput.struct_class = Types::UpdateStackOutput
UpdateStackSetInput.add_member(:stack_set_name, Shapes::ShapeRef.new(shape: StackSetName, required: true, location_name: "StackSetName"))
UpdateStackSetInput.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
UpdateStackSetInput.add_member(:template_body, Shapes::ShapeRef.new(shape: TemplateBody, location_name: "TemplateBody"))
UpdateStackSetInput.add_member(:template_url, Shapes::ShapeRef.new(shape: TemplateURL, location_name: "TemplateURL"))
UpdateStackSetInput.add_member(:use_previous_template, Shapes::ShapeRef.new(shape: UsePreviousTemplate, location_name: "UsePreviousTemplate"))
UpdateStackSetInput.add_member(:parameters, Shapes::ShapeRef.new(shape: Parameters, location_name: "Parameters"))
UpdateStackSetInput.add_member(:capabilities, Shapes::ShapeRef.new(shape: Capabilities, location_name: "Capabilities"))
UpdateStackSetInput.add_member(:tags, Shapes::ShapeRef.new(shape: Tags, location_name: "Tags"))
UpdateStackSetInput.add_member(:operation_preferences, Shapes::ShapeRef.new(shape: StackSetOperationPreferences, location_name: "OperationPreferences"))
UpdateStackSetInput.add_member(:administration_role_arn, Shapes::ShapeRef.new(shape: RoleARN, location_name: "AdministrationRoleARN"))
UpdateStackSetInput.add_member(:execution_role_name, Shapes::ShapeRef.new(shape: ExecutionRoleName, location_name: "ExecutionRoleName"))
UpdateStackSetInput.add_member(:deployment_targets, Shapes::ShapeRef.new(shape: DeploymentTargets, location_name: "DeploymentTargets"))
UpdateStackSetInput.add_member(:permission_model, Shapes::ShapeRef.new(shape: PermissionModels, location_name: "PermissionModel"))
UpdateStackSetInput.add_member(:auto_deployment, Shapes::ShapeRef.new(shape: AutoDeployment, location_name: "AutoDeployment"))
UpdateStackSetInput.add_member(:operation_id, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "OperationId", metadata: {"idempotencyToken"=>true}))
UpdateStackSetInput.add_member(:accounts, Shapes::ShapeRef.new(shape: AccountList, location_name: "Accounts"))
UpdateStackSetInput.add_member(:regions, Shapes::ShapeRef.new(shape: RegionList, location_name: "Regions"))
UpdateStackSetInput.struct_class = Types::UpdateStackSetInput
UpdateStackSetOutput.add_member(:operation_id, Shapes::ShapeRef.new(shape: ClientRequestToken, location_name: "OperationId"))
UpdateStackSetOutput.struct_class = Types::UpdateStackSetOutput
UpdateTerminationProtectionInput.add_member(:enable_termination_protection, Shapes::ShapeRef.new(shape: EnableTerminationProtection, required: true, location_name: "EnableTerminationProtection"))
UpdateTerminationProtectionInput.add_member(:stack_name, Shapes::ShapeRef.new(shape: StackNameOrId, required: true, location_name: "StackName"))
UpdateTerminationProtectionInput.struct_class = Types::UpdateTerminationProtectionInput
UpdateTerminationProtectionOutput.add_member(:stack_id, Shapes::ShapeRef.new(shape: StackId, location_name: "StackId"))
UpdateTerminationProtectionOutput.struct_class = Types::UpdateTerminationProtectionOutput
ValidateTemplateInput.add_member(:template_body, Shapes::ShapeRef.new(shape: TemplateBody, location_name: "TemplateBody"))
ValidateTemplateInput.add_member(:template_url, Shapes::ShapeRef.new(shape: TemplateURL, location_name: "TemplateURL"))
ValidateTemplateInput.struct_class = Types::ValidateTemplateInput
ValidateTemplateOutput.add_member(:parameters, Shapes::ShapeRef.new(shape: TemplateParameters, location_name: "Parameters"))
ValidateTemplateOutput.add_member(:description, Shapes::ShapeRef.new(shape: Description, location_name: "Description"))
ValidateTemplateOutput.add_member(:capabilities, Shapes::ShapeRef.new(shape: Capabilities, location_name: "Capabilities"))
ValidateTemplateOutput.add_member(:capabilities_reason, Shapes::ShapeRef.new(shape: CapabilitiesReason, location_name: "CapabilitiesReason"))
ValidateTemplateOutput.add_member(:declared_transforms, Shapes::ShapeRef.new(shape: TransformsList, location_name: "DeclaredTransforms"))
ValidateTemplateOutput.struct_class = Types::ValidateTemplateOutput
# @api private
API = Seahorse::Model::Api.new.tap do |api|
api.version = "2010-05-15"
api.metadata = {
"apiVersion" => "2010-05-15",
"endpointPrefix" => "cloudformation",
"protocol" => "query",
"serviceFullName" => "AWS CloudFormation",
"serviceId" => "CloudFormation",
"signatureVersion" => "v4",
"uid" => "cloudformation-2010-05-15",
"xmlNamespace" => "http://cloudformation.amazonaws.com/doc/2010-05-15/",
}
api.add_operation(:cancel_update_stack, Seahorse::Model::Operation.new.tap do |o|
o.name = "CancelUpdateStack"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: CancelUpdateStackInput)
o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
o.errors << Shapes::ShapeRef.new(shape: TokenAlreadyExistsException)
end)
api.add_operation(:continue_update_rollback, Seahorse::Model::Operation.new.tap do |o|
o.name = "ContinueUpdateRollback"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: ContinueUpdateRollbackInput)
o.output = Shapes::ShapeRef.new(shape: ContinueUpdateRollbackOutput)
o.errors << Shapes::ShapeRef.new(shape: TokenAlreadyExistsException)
end)
api.add_operation(:create_change_set, Seahorse::Model::Operation.new.tap do |o|
o.name = "CreateChangeSet"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: CreateChangeSetInput)
o.output = Shapes::ShapeRef.new(shape: CreateChangeSetOutput)
o.errors << Shapes::ShapeRef.new(shape: AlreadyExistsException)
o.errors << Shapes::ShapeRef.new(shape: InsufficientCapabilitiesException)
o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
end)
api.add_operation(:create_stack, Seahorse::Model::Operation.new.tap do |o|
o.name = "CreateStack"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: CreateStackInput)
o.output = Shapes::ShapeRef.new(shape: CreateStackOutput)
o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
o.errors << Shapes::ShapeRef.new(shape: AlreadyExistsException)
o.errors << Shapes::ShapeRef.new(shape: TokenAlreadyExistsException)
o.errors << Shapes::ShapeRef.new(shape: InsufficientCapabilitiesException)
end)
api.add_operation(:create_stack_instances, Seahorse::Model::Operation.new.tap do |o|
o.name = "CreateStackInstances"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: CreateStackInstancesInput)
o.output = Shapes::ShapeRef.new(shape: CreateStackInstancesOutput)
o.errors << Shapes::ShapeRef.new(shape: StackSetNotFoundException)
o.errors << Shapes::ShapeRef.new(shape: OperationInProgressException)
o.errors << Shapes::ShapeRef.new(shape: OperationIdAlreadyExistsException)
o.errors << Shapes::ShapeRef.new(shape: StaleRequestException)
o.errors << Shapes::ShapeRef.new(shape: InvalidOperationException)
o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
end)
api.add_operation(:create_stack_set, Seahorse::Model::Operation.new.tap do |o|
o.name = "CreateStackSet"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: CreateStackSetInput)
o.output = Shapes::ShapeRef.new(shape: CreateStackSetOutput)
o.errors << Shapes::ShapeRef.new(shape: NameAlreadyExistsException)
o.errors << Shapes::ShapeRef.new(shape: CreatedButModifiedException)
o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
end)
api.add_operation(:delete_change_set, Seahorse::Model::Operation.new.tap do |o|
o.name = "DeleteChangeSet"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: DeleteChangeSetInput)
o.output = Shapes::ShapeRef.new(shape: DeleteChangeSetOutput)
o.errors << Shapes::ShapeRef.new(shape: InvalidChangeSetStatusException)
end)
api.add_operation(:delete_stack, Seahorse::Model::Operation.new.tap do |o|
o.name = "DeleteStack"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: DeleteStackInput)
o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
o.errors << Shapes::ShapeRef.new(shape: TokenAlreadyExistsException)
end)
api.add_operation(:delete_stack_instances, Seahorse::Model::Operation.new.tap do |o|
o.name = "DeleteStackInstances"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: DeleteStackInstancesInput)
o.output = Shapes::ShapeRef.new(shape: DeleteStackInstancesOutput)
o.errors << Shapes::ShapeRef.new(shape: StackSetNotFoundException)
o.errors << Shapes::ShapeRef.new(shape: OperationInProgressException)
o.errors << Shapes::ShapeRef.new(shape: OperationIdAlreadyExistsException)
o.errors << Shapes::ShapeRef.new(shape: StaleRequestException)
o.errors << Shapes::ShapeRef.new(shape: InvalidOperationException)
end)
api.add_operation(:delete_stack_set, Seahorse::Model::Operation.new.tap do |o|
o.name = "DeleteStackSet"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: DeleteStackSetInput)
o.output = Shapes::ShapeRef.new(shape: DeleteStackSetOutput)
o.errors << Shapes::ShapeRef.new(shape: StackSetNotEmptyException)
o.errors << Shapes::ShapeRef.new(shape: OperationInProgressException)
end)
api.add_operation(:deregister_type, Seahorse::Model::Operation.new.tap do |o|
o.name = "DeregisterType"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: DeregisterTypeInput)
o.output = Shapes::ShapeRef.new(shape: DeregisterTypeOutput)
o.errors << Shapes::ShapeRef.new(shape: CFNRegistryException)
o.errors << Shapes::ShapeRef.new(shape: TypeNotFoundException)
end)
api.add_operation(:describe_account_limits, Seahorse::Model::Operation.new.tap do |o|
o.name = "DescribeAccountLimits"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: DescribeAccountLimitsInput)
o.output = Shapes::ShapeRef.new(shape: DescribeAccountLimitsOutput)
o[:pager] = Aws::Pager.new(
tokens: {
"next_token" => "next_token"
}
)
end)
api.add_operation(:describe_change_set, Seahorse::Model::Operation.new.tap do |o|
o.name = "DescribeChangeSet"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: DescribeChangeSetInput)
o.output = Shapes::ShapeRef.new(shape: DescribeChangeSetOutput)
o.errors << Shapes::ShapeRef.new(shape: ChangeSetNotFoundException)
end)
api.add_operation(:describe_stack_drift_detection_status, Seahorse::Model::Operation.new.tap do |o|
o.name = "DescribeStackDriftDetectionStatus"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: DescribeStackDriftDetectionStatusInput)
o.output = Shapes::ShapeRef.new(shape: DescribeStackDriftDetectionStatusOutput)
end)
api.add_operation(:describe_stack_events, Seahorse::Model::Operation.new.tap do |o|
o.name = "DescribeStackEvents"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: DescribeStackEventsInput)
o.output = Shapes::ShapeRef.new(shape: DescribeStackEventsOutput)
o[:pager] = Aws::Pager.new(
tokens: {
"next_token" => "next_token"
}
)
end)
api.add_operation(:describe_stack_instance, Seahorse::Model::Operation.new.tap do |o|
o.name = "DescribeStackInstance"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: DescribeStackInstanceInput)
o.output = Shapes::ShapeRef.new(shape: DescribeStackInstanceOutput)
o.errors << Shapes::ShapeRef.new(shape: StackSetNotFoundException)
o.errors << Shapes::ShapeRef.new(shape: StackInstanceNotFoundException)
end)
api.add_operation(:describe_stack_resource, Seahorse::Model::Operation.new.tap do |o|
o.name = "DescribeStackResource"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: DescribeStackResourceInput)
o.output = Shapes::ShapeRef.new(shape: DescribeStackResourceOutput)
end)
api.add_operation(:describe_stack_resource_drifts, Seahorse::Model::Operation.new.tap do |o|
o.name = "DescribeStackResourceDrifts"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: DescribeStackResourceDriftsInput)
o.output = Shapes::ShapeRef.new(shape: DescribeStackResourceDriftsOutput)
o[:pager] = Aws::Pager.new(
limit_key: "max_results",
tokens: {
"next_token" => "next_token"
}
)
end)
api.add_operation(:describe_stack_resources, Seahorse::Model::Operation.new.tap do |o|
o.name = "DescribeStackResources"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: DescribeStackResourcesInput)
o.output = Shapes::ShapeRef.new(shape: DescribeStackResourcesOutput)
end)
api.add_operation(:describe_stack_set, Seahorse::Model::Operation.new.tap do |o|
o.name = "DescribeStackSet"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: DescribeStackSetInput)
o.output = Shapes::ShapeRef.new(shape: DescribeStackSetOutput)
o.errors << Shapes::ShapeRef.new(shape: StackSetNotFoundException)
end)
api.add_operation(:describe_stack_set_operation, Seahorse::Model::Operation.new.tap do |o|
o.name = "DescribeStackSetOperation"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: DescribeStackSetOperationInput)
o.output = Shapes::ShapeRef.new(shape: DescribeStackSetOperationOutput)
o.errors << Shapes::ShapeRef.new(shape: StackSetNotFoundException)
o.errors << Shapes::ShapeRef.new(shape: OperationNotFoundException)
end)
api.add_operation(:describe_stacks, Seahorse::Model::Operation.new.tap do |o|
o.name = "DescribeStacks"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: DescribeStacksInput)
o.output = Shapes::ShapeRef.new(shape: DescribeStacksOutput)
o[:pager] = Aws::Pager.new(
tokens: {
"next_token" => "next_token"
}
)
end)
api.add_operation(:describe_type, Seahorse::Model::Operation.new.tap do |o|
o.name = "DescribeType"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: DescribeTypeInput)
o.output = Shapes::ShapeRef.new(shape: DescribeTypeOutput)
o.errors << Shapes::ShapeRef.new(shape: CFNRegistryException)
o.errors << Shapes::ShapeRef.new(shape: TypeNotFoundException)
end)
api.add_operation(:describe_type_registration, Seahorse::Model::Operation.new.tap do |o|
o.name = "DescribeTypeRegistration"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: DescribeTypeRegistrationInput)
o.output = Shapes::ShapeRef.new(shape: DescribeTypeRegistrationOutput)
o.errors << Shapes::ShapeRef.new(shape: CFNRegistryException)
end)
api.add_operation(:detect_stack_drift, Seahorse::Model::Operation.new.tap do |o|
o.name = "DetectStackDrift"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: DetectStackDriftInput)
o.output = Shapes::ShapeRef.new(shape: DetectStackDriftOutput)
end)
api.add_operation(:detect_stack_resource_drift, Seahorse::Model::Operation.new.tap do |o|
o.name = "DetectStackResourceDrift"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: DetectStackResourceDriftInput)
o.output = Shapes::ShapeRef.new(shape: DetectStackResourceDriftOutput)
end)
api.add_operation(:detect_stack_set_drift, Seahorse::Model::Operation.new.tap do |o|
o.name = "DetectStackSetDrift"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: DetectStackSetDriftInput)
o.output = Shapes::ShapeRef.new(shape: DetectStackSetDriftOutput)
o.errors << Shapes::ShapeRef.new(shape: InvalidOperationException)
o.errors << Shapes::ShapeRef.new(shape: OperationInProgressException)
o.errors << Shapes::ShapeRef.new(shape: StackSetNotFoundException)
end)
api.add_operation(:estimate_template_cost, Seahorse::Model::Operation.new.tap do |o|
o.name = "EstimateTemplateCost"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: EstimateTemplateCostInput)
o.output = Shapes::ShapeRef.new(shape: EstimateTemplateCostOutput)
end)
api.add_operation(:execute_change_set, Seahorse::Model::Operation.new.tap do |o|
o.name = "ExecuteChangeSet"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: ExecuteChangeSetInput)
o.output = Shapes::ShapeRef.new(shape: ExecuteChangeSetOutput)
o.errors << Shapes::ShapeRef.new(shape: InvalidChangeSetStatusException)
o.errors << Shapes::ShapeRef.new(shape: ChangeSetNotFoundException)
o.errors << Shapes::ShapeRef.new(shape: InsufficientCapabilitiesException)
o.errors << Shapes::ShapeRef.new(shape: TokenAlreadyExistsException)
end)
api.add_operation(:get_stack_policy, Seahorse::Model::Operation.new.tap do |o|
o.name = "GetStackPolicy"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: GetStackPolicyInput)
o.output = Shapes::ShapeRef.new(shape: GetStackPolicyOutput)
end)
api.add_operation(:get_template, Seahorse::Model::Operation.new.tap do |o|
o.name = "GetTemplate"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: GetTemplateInput)
o.output = Shapes::ShapeRef.new(shape: GetTemplateOutput)
o.errors << Shapes::ShapeRef.new(shape: ChangeSetNotFoundException)
end)
api.add_operation(:get_template_summary, Seahorse::Model::Operation.new.tap do |o|
o.name = "GetTemplateSummary"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: GetTemplateSummaryInput)
o.output = Shapes::ShapeRef.new(shape: GetTemplateSummaryOutput)
o.errors << Shapes::ShapeRef.new(shape: StackSetNotFoundException)
end)
api.add_operation(:list_change_sets, Seahorse::Model::Operation.new.tap do |o|
o.name = "ListChangeSets"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: ListChangeSetsInput)
o.output = Shapes::ShapeRef.new(shape: ListChangeSetsOutput)
o[:pager] = Aws::Pager.new(
tokens: {
"next_token" => "next_token"
}
)
end)
api.add_operation(:list_exports, Seahorse::Model::Operation.new.tap do |o|
o.name = "ListExports"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: ListExportsInput)
o.output = Shapes::ShapeRef.new(shape: ListExportsOutput)
o[:pager] = Aws::Pager.new(
tokens: {
"next_token" => "next_token"
}
)
end)
api.add_operation(:list_imports, Seahorse::Model::Operation.new.tap do |o|
o.name = "ListImports"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: ListImportsInput)
o.output = Shapes::ShapeRef.new(shape: ListImportsOutput)
o[:pager] = Aws::Pager.new(
tokens: {
"next_token" => "next_token"
}
)
end)
api.add_operation(:list_stack_instances, Seahorse::Model::Operation.new.tap do |o|
o.name = "ListStackInstances"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: ListStackInstancesInput)
o.output = Shapes::ShapeRef.new(shape: ListStackInstancesOutput)
o.errors << Shapes::ShapeRef.new(shape: StackSetNotFoundException)
o[:pager] = Aws::Pager.new(
limit_key: "max_results",
tokens: {
"next_token" => "next_token"
}
)
end)
api.add_operation(:list_stack_resources, Seahorse::Model::Operation.new.tap do |o|
o.name = "ListStackResources"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: ListStackResourcesInput)
o.output = Shapes::ShapeRef.new(shape: ListStackResourcesOutput)
o[:pager] = Aws::Pager.new(
tokens: {
"next_token" => "next_token"
}
)
end)
api.add_operation(:list_stack_set_operation_results, Seahorse::Model::Operation.new.tap do |o|
o.name = "ListStackSetOperationResults"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: ListStackSetOperationResultsInput)
o.output = Shapes::ShapeRef.new(shape: ListStackSetOperationResultsOutput)
o.errors << Shapes::ShapeRef.new(shape: StackSetNotFoundException)
o.errors << Shapes::ShapeRef.new(shape: OperationNotFoundException)
o[:pager] = Aws::Pager.new(
limit_key: "max_results",
tokens: {
"next_token" => "next_token"
}
)
end)
api.add_operation(:list_stack_set_operations, Seahorse::Model::Operation.new.tap do |o|
o.name = "ListStackSetOperations"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: ListStackSetOperationsInput)
o.output = Shapes::ShapeRef.new(shape: ListStackSetOperationsOutput)
o.errors << Shapes::ShapeRef.new(shape: StackSetNotFoundException)
o[:pager] = Aws::Pager.new(
limit_key: "max_results",
tokens: {
"next_token" => "next_token"
}
)
end)
api.add_operation(:list_stack_sets, Seahorse::Model::Operation.new.tap do |o|
o.name = "ListStackSets"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: ListStackSetsInput)
o.output = Shapes::ShapeRef.new(shape: ListStackSetsOutput)
o[:pager] = Aws::Pager.new(
limit_key: "max_results",
tokens: {
"next_token" => "next_token"
}
)
end)
api.add_operation(:list_stacks, Seahorse::Model::Operation.new.tap do |o|
o.name = "ListStacks"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: ListStacksInput)
o.output = Shapes::ShapeRef.new(shape: ListStacksOutput)
o[:pager] = Aws::Pager.new(
tokens: {
"next_token" => "next_token"
}
)
end)
api.add_operation(:list_type_registrations, Seahorse::Model::Operation.new.tap do |o|
o.name = "ListTypeRegistrations"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: ListTypeRegistrationsInput)
o.output = Shapes::ShapeRef.new(shape: ListTypeRegistrationsOutput)
o.errors << Shapes::ShapeRef.new(shape: CFNRegistryException)
o[:pager] = Aws::Pager.new(
limit_key: "max_results",
tokens: {
"next_token" => "next_token"
}
)
end)
api.add_operation(:list_type_versions, Seahorse::Model::Operation.new.tap do |o|
o.name = "ListTypeVersions"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: ListTypeVersionsInput)
o.output = Shapes::ShapeRef.new(shape: ListTypeVersionsOutput)
o.errors << Shapes::ShapeRef.new(shape: CFNRegistryException)
o[:pager] = Aws::Pager.new(
limit_key: "max_results",
tokens: {
"next_token" => "next_token"
}
)
end)
api.add_operation(:list_types, Seahorse::Model::Operation.new.tap do |o|
o.name = "ListTypes"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: ListTypesInput)
o.output = Shapes::ShapeRef.new(shape: ListTypesOutput)
o.errors << Shapes::ShapeRef.new(shape: CFNRegistryException)
o[:pager] = Aws::Pager.new(
limit_key: "max_results",
tokens: {
"next_token" => "next_token"
}
)
end)
api.add_operation(:record_handler_progress, Seahorse::Model::Operation.new.tap do |o|
o.name = "RecordHandlerProgress"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: RecordHandlerProgressInput)
o.output = Shapes::ShapeRef.new(shape: RecordHandlerProgressOutput)
o.errors << Shapes::ShapeRef.new(shape: InvalidStateTransitionException)
o.errors << Shapes::ShapeRef.new(shape: OperationStatusCheckFailedException)
end)
api.add_operation(:register_type, Seahorse::Model::Operation.new.tap do |o|
o.name = "RegisterType"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: RegisterTypeInput)
o.output = Shapes::ShapeRef.new(shape: RegisterTypeOutput)
o.errors << Shapes::ShapeRef.new(shape: CFNRegistryException)
end)
api.add_operation(:set_stack_policy, Seahorse::Model::Operation.new.tap do |o|
o.name = "SetStackPolicy"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: SetStackPolicyInput)
o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
end)
api.add_operation(:set_type_default_version, Seahorse::Model::Operation.new.tap do |o|
o.name = "SetTypeDefaultVersion"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: SetTypeDefaultVersionInput)
o.output = Shapes::ShapeRef.new(shape: SetTypeDefaultVersionOutput)
o.errors << Shapes::ShapeRef.new(shape: CFNRegistryException)
o.errors << Shapes::ShapeRef.new(shape: TypeNotFoundException)
end)
api.add_operation(:signal_resource, Seahorse::Model::Operation.new.tap do |o|
o.name = "SignalResource"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: SignalResourceInput)
o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
end)
api.add_operation(:stop_stack_set_operation, Seahorse::Model::Operation.new.tap do |o|
o.name = "StopStackSetOperation"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: StopStackSetOperationInput)
o.output = Shapes::ShapeRef.new(shape: StopStackSetOperationOutput)
o.errors << Shapes::ShapeRef.new(shape: StackSetNotFoundException)
o.errors << Shapes::ShapeRef.new(shape: OperationNotFoundException)
o.errors << Shapes::ShapeRef.new(shape: InvalidOperationException)
end)
api.add_operation(:update_stack, Seahorse::Model::Operation.new.tap do |o|
o.name = "UpdateStack"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: UpdateStackInput)
o.output = Shapes::ShapeRef.new(shape: UpdateStackOutput)
o.errors << Shapes::ShapeRef.new(shape: InsufficientCapabilitiesException)
o.errors << Shapes::ShapeRef.new(shape: TokenAlreadyExistsException)
end)
api.add_operation(:update_stack_instances, Seahorse::Model::Operation.new.tap do |o|
o.name = "UpdateStackInstances"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: UpdateStackInstancesInput)
o.output = Shapes::ShapeRef.new(shape: UpdateStackInstancesOutput)
o.errors << Shapes::ShapeRef.new(shape: StackSetNotFoundException)
o.errors << Shapes::ShapeRef.new(shape: StackInstanceNotFoundException)
o.errors << Shapes::ShapeRef.new(shape: OperationInProgressException)
o.errors << Shapes::ShapeRef.new(shape: OperationIdAlreadyExistsException)
o.errors << Shapes::ShapeRef.new(shape: StaleRequestException)
o.errors << Shapes::ShapeRef.new(shape: InvalidOperationException)
end)
api.add_operation(:update_stack_set, Seahorse::Model::Operation.new.tap do |o|
o.name = "UpdateStackSet"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: UpdateStackSetInput)
o.output = Shapes::ShapeRef.new(shape: UpdateStackSetOutput)
o.errors << Shapes::ShapeRef.new(shape: StackSetNotFoundException)
o.errors << Shapes::ShapeRef.new(shape: OperationInProgressException)
o.errors << Shapes::ShapeRef.new(shape: OperationIdAlreadyExistsException)
o.errors << Shapes::ShapeRef.new(shape: StaleRequestException)
o.errors << Shapes::ShapeRef.new(shape: InvalidOperationException)
o.errors << Shapes::ShapeRef.new(shape: StackInstanceNotFoundException)
end)
api.add_operation(:update_termination_protection, Seahorse::Model::Operation.new.tap do |o|
o.name = "UpdateTerminationProtection"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: UpdateTerminationProtectionInput)
o.output = Shapes::ShapeRef.new(shape: UpdateTerminationProtectionOutput)
end)
api.add_operation(:validate_template, Seahorse::Model::Operation.new.tap do |o|
o.name = "ValidateTemplate"
o.http_method = "POST"
o.http_request_uri = "/"
o.input = Shapes::ShapeRef.new(shape: ValidateTemplateInput)
o.output = Shapes::ShapeRef.new(shape: ValidateTemplateOutput)
end)
end
end
end
aws-sdk-cloudformation-1.41.0/lib/aws-sdk-cloudformation.rb 0000644 0001750 0001750 00000003245 13715265306 022720 0 ustar pravi pravi # frozen_string_literal: true
# WARNING ABOUT GENERATED CODE
#
# This file is generated. See the contributing guide for more information:
# https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
#
# WARNING ABOUT GENERATED CODE
require 'aws-sdk-core'
require 'aws-sigv4'
require_relative 'aws-sdk-cloudformation/types'
require_relative 'aws-sdk-cloudformation/client_api'
require_relative 'aws-sdk-cloudformation/client'
require_relative 'aws-sdk-cloudformation/errors'
require_relative 'aws-sdk-cloudformation/waiters'
require_relative 'aws-sdk-cloudformation/resource'
require_relative 'aws-sdk-cloudformation/event'
require_relative 'aws-sdk-cloudformation/stack'
require_relative 'aws-sdk-cloudformation/stack_resource'
require_relative 'aws-sdk-cloudformation/stack_resource_summary'
require_relative 'aws-sdk-cloudformation/customizations'
# This module provides support for AWS CloudFormation. This module is available in the
# `aws-sdk-cloudformation` gem.
#
# # Client
#
# The {Client} class provides one method for each API operation. Operation
# methods each accept a hash of request parameters and return a response
# structure.
#
# cloud_formation = Aws::CloudFormation::Client.new
# resp = cloud_formation.cancel_update_stack(params)
#
# See {Client} for more information.
#
# # Errors
#
# Errors returned from AWS CloudFormation are defined in the
# {Errors} module and all extend {Errors::ServiceError}.
#
# begin
# # do stuff
# rescue Aws::CloudFormation::Errors::ServiceError
# # rescues all AWS CloudFormation API errors
# end
#
# See {Errors} for more information.
#
# @service
module Aws::CloudFormation
GEM_VERSION = '1.41.0'
end
aws-sdk-cloudformation-1.41.0/aws-sdk-cloudformation.gemspec 0000644 0001750 0001750 00000004223 13715265306 023167 0 ustar pravi pravi #########################################################
# This file has been automatically generated by gem2tgz #
#########################################################
# -*- encoding: utf-8 -*-
# stub: aws-sdk-cloudformation 1.41.0 ruby lib
Gem::Specification.new do |s|
s.name = "aws-sdk-cloudformation".freeze
s.version = "1.41.0"
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
s.metadata = { "changelog_uri" => "https://github.com/aws/aws-sdk-ruby/tree/master/gems/aws-sdk-cloudformation/CHANGELOG.md", "source_code_uri" => "https://github.com/aws/aws-sdk-ruby/tree/master/gems/aws-sdk-cloudformation" } if s.respond_to? :metadata=
s.require_paths = ["lib".freeze]
s.authors = ["Amazon Web Services".freeze]
s.date = "2020-07-02"
s.description = "Official AWS Ruby gem for AWS CloudFormation. This gem is part of the AWS SDK for Ruby.".freeze
s.email = ["trevrowe@amazon.com".freeze]
s.files = ["lib/aws-sdk-cloudformation.rb".freeze, "lib/aws-sdk-cloudformation/client.rb".freeze, "lib/aws-sdk-cloudformation/client_api.rb".freeze, "lib/aws-sdk-cloudformation/customizations.rb".freeze, "lib/aws-sdk-cloudformation/errors.rb".freeze, "lib/aws-sdk-cloudformation/event.rb".freeze, "lib/aws-sdk-cloudformation/resource.rb".freeze, "lib/aws-sdk-cloudformation/stack.rb".freeze, "lib/aws-sdk-cloudformation/stack_resource.rb".freeze, "lib/aws-sdk-cloudformation/stack_resource_summary.rb".freeze, "lib/aws-sdk-cloudformation/types.rb".freeze, "lib/aws-sdk-cloudformation/waiters.rb".freeze]
s.homepage = "https://github.com/aws/aws-sdk-ruby".freeze
s.licenses = ["Apache-2.0".freeze]
s.rubygems_version = "3.1.2".freeze
s.summary = "AWS SDK for Ruby - AWS CloudFormation".freeze
if s.respond_to? :specification_version then
s.specification_version = 4
end
if s.respond_to? :add_runtime_dependency then
s.add_runtime_dependency(%q.freeze, ["~> 3", ">= 3.99.0"])
s.add_runtime_dependency(%q.freeze, ["~> 1.1"])
else
s.add_dependency(%q.freeze, ["~> 3", ">= 3.99.0"])
s.add_dependency(%q.freeze, ["~> 1.1"])
end
end