Skip to content

delete_stack

delete_stack(
    *,
    config_overrides: Optional[CloudFormationClientConfig] = None,
    stack_name: Optional[StackName] = None,
    retain_resources: Optional[RetainResources] = None,
    role_arn: Optional[RoleARN] = None,
    client_request_token: Optional[ClientRequestToken] = None,
    deletion_mode: Optional[DeletionMode] = None,
    deployment_config: Optional[DeploymentConfig] = None,
) -> None

Deletes a specified stack. Once the call completes successfully, stack deletion starts. Deleted stacks don't show up in the DescribeStacks operation if the deletion has been completed successfully.

For more information about deleting a stack, see Delete a stack from the CloudFormation console in the CloudFormation User Guide.

Parameters:

  • stack_name (Optional[StackName], default: None ) –

    The name or the unique stack ID that's associated with the stack.

  • retain_resources (Optional[RetainResources], default: None ) –

    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, CloudFormation deletes the stack but doesn't delete the retained resources.

    Retaining resources is useful when you can't delete a resource, such as a non-empty S3 bucket, but you want to delete the stack.

  • role_arn (Optional[RoleARN], default: None ) –

    The Amazon Resource Name (ARN) of an IAM role that CloudFormation assumes to delete the stack. CloudFormation uses the role's credentials to make calls on your behalf.

    If you don't specify a value, CloudFormation uses the role that was previously associated with the stack. If no role is available, CloudFormation uses a temporary session that's generated from your user credentials.

  • client_request_token (Optional[ClientRequestToken], default: None ) –

    A unique identifier for this DeleteStack request. Specify this token if you plan to retry requests so that CloudFormation knows that you're not attempting to delete a stack with the same name. You might retry DeleteStack requests to ensure that CloudFormation successfully received them.

    All events initiated 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.

  • deletion_mode (Optional[DeletionMode], default: None ) –

    Specifies the deletion mode for the stack. Possible values are:

    • STANDARD - Use the standard behavior. Specifying this value is the same as not specifying this parameter.

    • FORCE_DELETE_STACK - Delete the stack if it's stuck in a DELETE_FAILED state due to resource deletion failure.

  • deployment_config (Optional[DeploymentConfig], default: None ) –

    The deployment configuration for this stack operation, including the deployment mode.

Raises:

Source code in docs_src/capo_cloudformation/_services/cloud_formation.py
def delete_stack(
    self,
    *,
    config_overrides: Optional[CloudFormationClientConfig] = None,
    stack_name: Optional["capo_cloudformation.types.stack_name.StackName"] = None,
    retain_resources: Optional[
        "capo_cloudformation.types.retain_resources.RetainResources"
    ] = None,
    role_arn: Optional["capo_cloudformation.types.role_arn.RoleARN"] = None,
    client_request_token: Optional[
        "capo_cloudformation.types.client_request_token.ClientRequestToken"
    ] = None,
    deletion_mode: Optional[
        "capo_cloudformation.types.deletion_mode.DeletionMode"
    ] = None,
    deployment_config: Optional[
        "capo_cloudformation.types.deployment_config.DeploymentConfig"
    ] = None,
) -> None:
    """<p>Deletes a specified stack. Once the call completes successfully, stack deletion starts. Deleted stacks don't show up in the <a>DescribeStacks</a> operation if the deletion has been completed successfully.</p> <p>For more information about deleting a stack, see <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html">Delete a stack from the CloudFormation console</a> in the <i>CloudFormation User Guide</i>.</p>

    Args:
        stack_name: <p>The name or the unique stack ID that's associated with the stack.</p>
        retain_resources: <p>For stacks in the <code>DELETE_FAILED</code> state, a list of resource logical IDs that are associated with the resources you want to retain. During deletion, CloudFormation deletes the stack but doesn't delete the retained resources.</p> <p>Retaining resources is useful when you can't delete a resource, such as a non-empty S3 bucket, but you want to delete the stack.</p>
        role_arn: <p>The Amazon Resource Name (ARN) of an IAM role that CloudFormation assumes to delete the stack. CloudFormation uses the role's credentials to make calls on your behalf.</p> <p>If you don't specify a value, CloudFormation uses the role that was previously associated with the stack. If no role is available, CloudFormation uses a temporary session that's generated from your user credentials.</p>
        client_request_token: <p>A unique identifier for this <code>DeleteStack</code> request. Specify this token if you plan to retry requests so that CloudFormation knows that you're not attempting to delete a stack with the same name. You might retry <code>DeleteStack</code> requests to ensure that CloudFormation successfully received them.</p> <p>All events initiated 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 <code>CreateStack</code> operation with the token <code>token1</code>, then all the <code>StackEvents</code> generated by that operation will have <code>ClientRequestToken</code> set as <code>token1</code>.</p> <p>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 <i>Console-StackOperation-ID</i>, 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: <code>Console-CreateStack-7f59c3cf-00d2-40c7-b2ff-e75db0987002</code>.</p>
        deletion_mode: <p>Specifies the deletion mode for the stack. Possible values are:</p> <ul> <li> <p> <code>STANDARD</code> - Use the standard behavior. Specifying this value is the same as not specifying this parameter.</p> </li> <li> <p> <code>FORCE_DELETE_STACK</code> - Delete the stack if it's stuck in a <code>DELETE_FAILED</code> state due to resource deletion failure.</p> </li> </ul>
        deployment_config: <p>The deployment configuration for this stack operation, including the deployment mode.</p>

    Raises:
        capo_cloudformation.errors.token_already_exists_exception.TokenAlreadyExistsException: <p>A client request token already exists.</p>
        capo_cloudformation.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_cloudformation.types.delete_stack_input.DeleteStackInput]",
    ) -> OperationResponse[None]:
        import capo_cloudformation._operations.cloud_formation.delete_stack

        output, http_response = (
            capo_cloudformation._operations.cloud_formation.delete_stack.delete_stack(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("DeleteStack")
    )
    input_: capo_cloudformation.types.delete_stack_input.DeleteStackInput = {}
    if stack_name is not None:
        input_["stack_name"] = stack_name
    if retain_resources is not None:
        input_["retain_resources"] = retain_resources
    if role_arn is not None:
        input_["role_arn"] = role_arn
    if client_request_token is not None:
        input_["client_request_token"] = client_request_token
    if deletion_mode is not None:
        input_["deletion_mode"] = deletion_mode
    if deployment_config is not None:
        input_["deployment_config"] = deployment_config

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output