Table of Contents
CloudFormation.
Client
¶A low-level client representing AWS CloudFormation:
client = session.create_client('cloudformation')
These are the available methods:
can_paginate()
cancel_update_stack()
create_stack()
delete_stack()
describe_stack_events()
describe_stack_resource()
describe_stack_resources()
describe_stacks()
estimate_template_cost()
generate_presigned_url()
get_paginator()
get_stack_policy()
get_template()
get_template_summary()
get_waiter()
list_stack_resources()
list_stacks()
set_stack_policy()
signal_resource()
update_stack()
validate_template()
can_paginate
(operation_name)¶Check if an operation can be paginated.
Parameters: | operation_name (string) -- The operation name. This is the same name
as the method name on the client. For example, if the
method name is create_foo , and you'd normally invoke the
operation as client.create_foo(**kwargs) , if the
create_foo operation can be paginated, you can use the
call client.get_paginator("create_foo") . |
---|---|
Returns: | True if the operation can be paginated,
False otherwise. |
cancel_update_stack
(**kwargs)¶Cancels an update on the specified stack. If the call completes successfully, the stack will roll back the update and revert to the previous stack configuration.
Note
Only stacks that are in the UPDATE_IN_PROGRESS state can be canceled.
Request Syntax
response = client.cancel_update_stack(
StackName='string'
)
Parameters: | StackName (string) -- [REQUIRED] The name or the unique stack ID that is associated with the stack. |
---|---|
Returns: | None |
create_stack
(**kwargs)¶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.
Request Syntax
response = client.create_stack(
StackName='string',
TemplateBody='string',
TemplateURL='string',
Parameters=[
{
'ParameterKey': 'string',
'ParameterValue': 'string',
'UsePreviousValue': True|False
},
],
DisableRollback=True|False,
TimeoutInMinutes=123,
NotificationARNs=[
'string',
],
Capabilities=[
'CAPABILITY_IAM',
],
OnFailure='DO_NOTHING'|'ROLLBACK'|'DELETE',
StackPolicyBody='string',
StackPolicyURL='string',
Tags=[
{
'Key': 'string',
'Value': 'string'
},
]
)
Parameters: |
|
---|---|
Return type: | dict |
Returns: | Response Syntax {
'StackId': 'string'
}
Response Structure
|
delete_stack
(**kwargs)¶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.
Request Syntax
response = client.delete_stack(
StackName='string'
)
Parameters: | StackName (string) -- [REQUIRED] The name or the unique stack ID that is associated with the stack. |
---|---|
Returns: | None |
describe_stack_events
(**kwargs)¶Returns all stack related events for a specified stack. For more information about a stack's event history, go to Stacks in the AWS CloudFormation User Guide.
Note
You can list events for stacks that have failed to create or have been deleted by specifying the unique stack identifier (stack ID).
Request Syntax
response = client.describe_stack_events(
StackName='string',
NextToken='string'
)
Parameters: |
|
---|---|
Return type: | dict |
Returns: | Response Syntax {
'StackEvents': [
{
'StackId': 'string',
'EventId': 'string',
'StackName': 'string',
'LogicalResourceId': 'string',
'PhysicalResourceId': 'string',
'ResourceType': 'string',
'Timestamp': datetime(2015, 1, 1),
'ResourceStatus': 'CREATE_IN_PROGRESS'|'CREATE_FAILED'|'CREATE_COMPLETE'|'DELETE_IN_PROGRESS'|'DELETE_FAILED'|'DELETE_COMPLETE'|'DELETE_SKIPPED'|'UPDATE_IN_PROGRESS'|'UPDATE_FAILED'|'UPDATE_COMPLETE',
'ResourceStatusReason': 'string',
'ResourceProperties': 'string'
},
],
'NextToken': 'string'
}
Response Structure
|
describe_stack_resource
(**kwargs)¶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.
Request Syntax
response = client.describe_stack_resource(
StackName='string',
LogicalResourceId='string'
)
Parameters: |
|
---|---|
Return type: | dict |
Returns: | Response Syntax {
'StackResourceDetail': {
'StackName': 'string',
'StackId': 'string',
'LogicalResourceId': 'string',
'PhysicalResourceId': 'string',
'ResourceType': 'string',
'LastUpdatedTimestamp': datetime(2015, 1, 1),
'ResourceStatus': 'CREATE_IN_PROGRESS'|'CREATE_FAILED'|'CREATE_COMPLETE'|'DELETE_IN_PROGRESS'|'DELETE_FAILED'|'DELETE_COMPLETE'|'DELETE_SKIPPED'|'UPDATE_IN_PROGRESS'|'UPDATE_FAILED'|'UPDATE_COMPLETE',
'ResourceStatusReason': 'string',
'Description': 'string',
'Metadata': 'string'
}
}
Response Structure
|
describe_stack_resources
(**kwargs)¶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.
Note
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 .
Note
A ValidationError
is returned if you specify both StackName
and PhysicalResourceId
in the same request.
Request Syntax
response = client.describe_stack_resources(
StackName='string',
LogicalResourceId='string',
PhysicalResourceId='string'
)
Parameters: |
|
---|---|
Return type: | dict |
Returns: | Response Syntax {
'StackResources': [
{
'StackName': 'string',
'StackId': 'string',
'LogicalResourceId': 'string',
'PhysicalResourceId': 'string',
'ResourceType': 'string',
'Timestamp': datetime(2015, 1, 1),
'ResourceStatus': 'CREATE_IN_PROGRESS'|'CREATE_FAILED'|'CREATE_COMPLETE'|'DELETE_IN_PROGRESS'|'DELETE_FAILED'|'DELETE_COMPLETE'|'DELETE_SKIPPED'|'UPDATE_IN_PROGRESS'|'UPDATE_FAILED'|'UPDATE_COMPLETE',
'ResourceStatusReason': 'string',
'Description': 'string'
},
]
}
Response Structure
|
describe_stacks
(**kwargs)¶Returns the description for the specified stack; if no stack name was specified, then it returns the description for all the stacks created.
Request Syntax
response = client.describe_stacks(
StackName='string',
NextToken='string'
)
Parameters: |
|
---|---|
Return type: | dict |
Returns: | Response Syntax {
'Stacks': [
{
'StackId': 'string',
'StackName': 'string',
'Description': 'string',
'Parameters': [
{
'ParameterKey': 'string',
'ParameterValue': 'string',
'UsePreviousValue': True|False
},
],
'CreationTime': datetime(2015, 1, 1),
'LastUpdatedTime': datetime(2015, 1, 1),
'StackStatus': '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',
'StackStatusReason': 'string',
'DisableRollback': True|False,
'NotificationARNs': [
'string',
],
'TimeoutInMinutes': 123,
'Capabilities': [
'CAPABILITY_IAM',
],
'Outputs': [
{
'OutputKey': 'string',
'OutputValue': 'string',
'Description': 'string'
},
],
'Tags': [
{
'Key': 'string',
'Value': 'string'
},
]
},
],
'NextToken': 'string'
}
Response Structure
|
estimate_template_cost
(**kwargs)¶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.
Request Syntax
response = client.estimate_template_cost(
TemplateBody='string',
TemplateURL='string',
Parameters=[
{
'ParameterKey': 'string',
'ParameterValue': 'string',
'UsePreviousValue': True|False
},
]
)
Parameters: |
|
---|---|
Return type: | dict |
Returns: | Response Syntax {
'Url': 'string'
}
Response Structure
|
generate_presigned_url
(ClientMethod, Params=None, ExpiresIn=3600, HttpMethod=None)¶Generate a presigned url given a client, its method, and arguments
Parameters: |
|
---|---|
Returns: | The presigned url |
get_paginator
(operation_name)¶Create a paginator for an operation.
Parameters: | operation_name (string) -- The operation name. This is the same name
as the method name on the client. For example, if the
method name is create_foo , and you'd normally invoke the
operation as client.create_foo(**kwargs) , if the
create_foo operation can be paginated, you can use the
call client.get_paginator("create_foo") . |
---|---|
Raises OperationNotPageableError: | |
Raised if the operation is not
pageable. You can use the client.can_paginate method to
check if an operation is pageable. |
|
Return type: | L{botocore.paginate.Paginator} |
Returns: | A paginator object. |
get_stack_policy
(**kwargs)¶Returns the stack policy for a specified stack. If a stack doesn't have a policy, a null value is returned.
Request Syntax
response = client.get_stack_policy(
StackName='string'
)
Parameters: | StackName (string) -- [REQUIRED] The name or unique stack ID that is associated with the stack whose policy you want to get. |
---|---|
Return type: | dict |
Returns: | Response Syntax{
'StackPolicyBody': 'string'
}
Response Structure
|
get_template
(**kwargs)¶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.
Note
If the template does not exist, a ValidationError
is returned.
Request Syntax
response = client.get_template(
StackName='string'
)
Parameters: | StackName (string) -- [REQUIRED] The name or the unique stack ID that is associated with the stack, which are not always interchangeable:
Default: There is no default value. |
---|---|
Return type: | dict |
Returns: | Response Syntax{
'TemplateBody': 'string'
}
Response Structure
|
get_template_summary
(**kwargs)¶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.
You can use the GetTemplateSummary
action when you submit a template, or you can get template information for 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.
Request Syntax
response = client.get_template_summary(
TemplateBody='string',
TemplateURL='string',
StackName='string'
)
Parameters: |
|
---|---|
Return type: | dict |
Returns: | Response Syntax {
'Parameters': [
{
'ParameterKey': 'string',
'DefaultValue': 'string',
'ParameterType': 'string',
'NoEcho': True|False,
'Description': 'string',
'ParameterConstraints': {
'AllowedValues': [
'string',
]
}
},
],
'Description': 'string',
'Capabilities': [
'CAPABILITY_IAM',
],
'CapabilitiesReason': 'string',
'Version': 'string',
'Metadata': 'string'
}
Response Structure
|
get_waiter
(waiter_name)¶list_stack_resources
(**kwargs)¶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.
Request Syntax
response = client.list_stack_resources(
StackName='string',
NextToken='string'
)
Parameters: |
|
---|---|
Return type: | dict |
Returns: | Response Syntax {
'StackResourceSummaries': [
{
'LogicalResourceId': 'string',
'PhysicalResourceId': 'string',
'ResourceType': 'string',
'LastUpdatedTimestamp': datetime(2015, 1, 1),
'ResourceStatus': 'CREATE_IN_PROGRESS'|'CREATE_FAILED'|'CREATE_COMPLETE'|'DELETE_IN_PROGRESS'|'DELETE_FAILED'|'DELETE_COMPLETE'|'DELETE_SKIPPED'|'UPDATE_IN_PROGRESS'|'UPDATE_FAILED'|'UPDATE_COMPLETE',
'ResourceStatusReason': 'string'
},
],
'NextToken': 'string'
}
Response Structure
|
list_stacks
(**kwargs)¶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).
Request Syntax
response = client.list_stacks(
NextToken='string',
StackStatusFilter=[
'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',
]
)
Parameters: |
|
---|---|
Return type: | dict |
Returns: | Response Syntax {
'StackSummaries': [
{
'StackId': 'string',
'StackName': 'string',
'TemplateDescription': 'string',
'CreationTime': datetime(2015, 1, 1),
'LastUpdatedTime': datetime(2015, 1, 1),
'DeletionTime': datetime(2015, 1, 1),
'StackStatus': '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',
'StackStatusReason': 'string'
},
],
'NextToken': 'string'
}
Response Structure
|
set_stack_policy
(**kwargs)¶Sets a stack policy for a specified stack.
Request Syntax
response = client.set_stack_policy(
StackName='string',
StackPolicyBody='string',
StackPolicyURL='string'
)
Parameters: |
|
---|---|
Returns: | None |
signal_resource
(**kwargs)¶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.
Request Syntax
response = client.signal_resource(
StackName='string',
LogicalResourceId='string',
UniqueId='string',
Status='SUCCESS'|'FAILURE'
)
Parameters: |
|
---|---|
Returns: | None |
update_stack
(**kwargs)¶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.
Tags that were associated with this stack during creation time will still be associated with the stack after an UpdateStack
operation.
For more information about creating an update template, updating a stack, and monitoring the progress of the update, see Updating a Stack .
Request Syntax
response = client.update_stack(
StackName='string',
TemplateBody='string',
TemplateURL='string',
UsePreviousTemplate=True|False,
StackPolicyDuringUpdateBody='string',
StackPolicyDuringUpdateURL='string',
Parameters=[
{
'ParameterKey': 'string',
'ParameterValue': 'string',
'UsePreviousValue': True|False
},
],
Capabilities=[
'CAPABILITY_IAM',
],
StackPolicyBody='string',
StackPolicyURL='string',
NotificationARNs=[
'string',
]
)
Parameters: |
|
---|---|
Return type: | dict |
Returns: | Response Syntax {
'StackId': 'string'
}
Response Structure
|
validate_template
(**kwargs)¶Validates a specified template.
Request Syntax
response = client.validate_template(
TemplateBody='string',
TemplateURL='string'
)
Parameters: |
|
---|---|
Return type: | dict |
Returns: | Response Syntax {
'Parameters': [
{
'ParameterKey': 'string',
'DefaultValue': 'string',
'NoEcho': True|False,
'Description': 'string'
},
],
'Description': 'string',
'Capabilities': [
'CAPABILITY_IAM',
],
'CapabilitiesReason': 'string'
}
Response Structure
|
The available paginators are:
CloudFormation.Paginator.describe_stack_events
CloudFormation.Paginator.describe_stacks
CloudFormation.Paginator.list_stack_resources
CloudFormation.Paginator.list_stacks
CloudFormation.Paginator.
describe_stack_events
¶paginator = client.get_paginator('describe_stack_events')
paginate
(**kwargs)¶Creates an iterator that will paginate through responses from CloudFormation.Client.describe_stack_events()
.
Request Syntax
response_iterator = paginator.paginate(
StackName='string',
PaginationConfig={
'MaxItems': 123,
'PageSize': 123,
'StartingToken': 'string'
}
)
Parameters: |
|
---|---|
Return type: | dict |
Returns: | Response Syntax {
'StackEvents': [
{
'StackId': 'string',
'EventId': 'string',
'StackName': 'string',
'LogicalResourceId': 'string',
'PhysicalResourceId': 'string',
'ResourceType': 'string',
'Timestamp': datetime(2015, 1, 1),
'ResourceStatus': 'CREATE_IN_PROGRESS'|'CREATE_FAILED'|'CREATE_COMPLETE'|'DELETE_IN_PROGRESS'|'DELETE_FAILED'|'DELETE_COMPLETE'|'DELETE_SKIPPED'|'UPDATE_IN_PROGRESS'|'UPDATE_FAILED'|'UPDATE_COMPLETE',
'ResourceStatusReason': 'string',
'ResourceProperties': 'string'
},
],
}
Response Structure
|
CloudFormation.Paginator.
describe_stacks
¶paginator = client.get_paginator('describe_stacks')
paginate
(**kwargs)¶Creates an iterator that will paginate through responses from CloudFormation.Client.describe_stacks()
.
Request Syntax
response_iterator = paginator.paginate(
StackName='string',
PaginationConfig={
'MaxItems': 123,
'PageSize': 123,
'StartingToken': 'string'
}
)
Parameters: |
|
---|---|
Return type: | dict |
Returns: | Response Syntax {
'Stacks': [
{
'StackId': 'string',
'StackName': 'string',
'Description': 'string',
'Parameters': [
{
'ParameterKey': 'string',
'ParameterValue': 'string',
'UsePreviousValue': True|False
},
],
'CreationTime': datetime(2015, 1, 1),
'LastUpdatedTime': datetime(2015, 1, 1),
'StackStatus': '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',
'StackStatusReason': 'string',
'DisableRollback': True|False,
'NotificationARNs': [
'string',
],
'TimeoutInMinutes': 123,
'Capabilities': [
'CAPABILITY_IAM',
],
'Outputs': [
{
'OutputKey': 'string',
'OutputValue': 'string',
'Description': 'string'
},
],
'Tags': [
{
'Key': 'string',
'Value': 'string'
},
]
},
],
}
Response Structure
|
CloudFormation.Paginator.
list_stack_resources
¶paginator = client.get_paginator('list_stack_resources')
paginate
(**kwargs)¶Creates an iterator that will paginate through responses from CloudFormation.Client.list_stack_resources()
.
Request Syntax
response_iterator = paginator.paginate(
StackName='string',
PaginationConfig={
'MaxItems': 123,
'PageSize': 123,
'StartingToken': 'string'
}
)
Parameters: |
|
---|---|
Return type: | dict |
Returns: | Response Syntax {
'StackResourceSummaries': [
{
'LogicalResourceId': 'string',
'PhysicalResourceId': 'string',
'ResourceType': 'string',
'LastUpdatedTimestamp': datetime(2015, 1, 1),
'ResourceStatus': 'CREATE_IN_PROGRESS'|'CREATE_FAILED'|'CREATE_COMPLETE'|'DELETE_IN_PROGRESS'|'DELETE_FAILED'|'DELETE_COMPLETE'|'DELETE_SKIPPED'|'UPDATE_IN_PROGRESS'|'UPDATE_FAILED'|'UPDATE_COMPLETE',
'ResourceStatusReason': 'string'
},
],
}
Response Structure
|
CloudFormation.Paginator.
list_stacks
¶paginator = client.get_paginator('list_stacks')
paginate
(**kwargs)¶Creates an iterator that will paginate through responses from CloudFormation.Client.list_stacks()
.
Request Syntax
response_iterator = paginator.paginate(
StackStatusFilter=[
'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',
],
PaginationConfig={
'MaxItems': 123,
'PageSize': 123,
'StartingToken': 'string'
}
)
Parameters: |
|
---|---|
Return type: | dict |
Returns: | Response Syntax {
'StackSummaries': [
{
'StackId': 'string',
'StackName': 'string',
'TemplateDescription': 'string',
'CreationTime': datetime(2015, 1, 1),
'LastUpdatedTime': datetime(2015, 1, 1),
'DeletionTime': datetime(2015, 1, 1),
'StackStatus': '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',
'StackStatusReason': 'string'
},
],
}
Response Structure
|