/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace CloudFormation { namespace Model { /** *

The input for the CreateChangeSet action.

See Also:

* AWS * API Reference

*/ class CreateChangeSetRequest : public CloudFormationRequest { public: AWS_CLOUDFORMATION_API CreateChangeSetRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateChangeSet"; } AWS_CLOUDFORMATION_API Aws::String SerializePayload() const override; protected: AWS_CLOUDFORMATION_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

The name or the unique ID of the stack for which you are creating a change * set. 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.

*/ inline const Aws::String& GetStackName() const{ return m_stackName; } /** *

The name or the unique ID of the stack for which you are creating a change * set. 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.

*/ inline bool StackNameHasBeenSet() const { return m_stackNameHasBeenSet; } /** *

The name or the unique ID of the stack for which you are creating a change * set. 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.

*/ inline void SetStackName(const Aws::String& value) { m_stackNameHasBeenSet = true; m_stackName = value; } /** *

The name or the unique ID of the stack for which you are creating a change * set. 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.

*/ inline void SetStackName(Aws::String&& value) { m_stackNameHasBeenSet = true; m_stackName = std::move(value); } /** *

The name or the unique ID of the stack for which you are creating a change * set. 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.

*/ inline void SetStackName(const char* value) { m_stackNameHasBeenSet = true; m_stackName.assign(value); } /** *

The name or the unique ID of the stack for which you are creating a change * set. 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.

*/ inline CreateChangeSetRequest& WithStackName(const Aws::String& value) { SetStackName(value); return *this;} /** *

The name or the unique ID of the stack for which you are creating a change * set. 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.

*/ inline CreateChangeSetRequest& WithStackName(Aws::String&& value) { SetStackName(std::move(value)); return *this;} /** *

The name or the unique ID of the stack for which you are creating a change * set. 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.

*/ inline CreateChangeSetRequest& WithStackName(const char* value) { SetStackName(value); return *this;} /** *

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. 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.

*/ inline const Aws::String& GetTemplateBody() const{ return m_templateBody; } /** *

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. 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.

*/ inline bool TemplateBodyHasBeenSet() const { return m_templateBodyHasBeenSet; } /** *

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. 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.

*/ inline void SetTemplateBody(const Aws::String& value) { m_templateBodyHasBeenSet = true; m_templateBody = value; } /** *

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. 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.

*/ inline void SetTemplateBody(Aws::String&& value) { m_templateBodyHasBeenSet = true; m_templateBody = std::move(value); } /** *

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. 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.

*/ inline void SetTemplateBody(const char* value) { m_templateBodyHasBeenSet = true; m_templateBody.assign(value); } /** *

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. 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.

*/ inline CreateChangeSetRequest& WithTemplateBody(const Aws::String& value) { SetTemplateBody(value); return *this;} /** *

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. 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.

*/ inline CreateChangeSetRequest& WithTemplateBody(Aws::String&& value) { SetTemplateBody(std::move(value)); return *this;} /** *

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. 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.

*/ inline CreateChangeSetRequest& WithTemplateBody(const char* value) { SetTemplateBody(value); return *this;} /** *

The location of the file that contains the revised template. The URL must * point to a template (max size: 460,800 bytes) that's located in an Amazon S3 * bucket or a Systems Manager document. CloudFormation generates the change set by * comparing this template with the stack that you specified.

Conditional: * You must specify only TemplateBody or TemplateURL.

*/ inline const Aws::String& GetTemplateURL() const{ return m_templateURL; } /** *

The location of the file that contains the revised template. The URL must * point to a template (max size: 460,800 bytes) that's located in an Amazon S3 * bucket or a Systems Manager document. CloudFormation generates the change set by * comparing this template with the stack that you specified.

Conditional: * You must specify only TemplateBody or TemplateURL.

*/ inline bool TemplateURLHasBeenSet() const { return m_templateURLHasBeenSet; } /** *

The location of the file that contains the revised template. The URL must * point to a template (max size: 460,800 bytes) that's located in an Amazon S3 * bucket or a Systems Manager document. CloudFormation generates the change set by * comparing this template with the stack that you specified.

Conditional: * You must specify only TemplateBody or TemplateURL.

*/ inline void SetTemplateURL(const Aws::String& value) { m_templateURLHasBeenSet = true; m_templateURL = value; } /** *

The location of the file that contains the revised template. The URL must * point to a template (max size: 460,800 bytes) that's located in an Amazon S3 * bucket or a Systems Manager document. CloudFormation generates the change set by * comparing this template with the stack that you specified.

Conditional: * You must specify only TemplateBody or TemplateURL.

*/ inline void SetTemplateURL(Aws::String&& value) { m_templateURLHasBeenSet = true; m_templateURL = std::move(value); } /** *

The location of the file that contains the revised template. The URL must * point to a template (max size: 460,800 bytes) that's located in an Amazon S3 * bucket or a Systems Manager document. CloudFormation generates the change set by * comparing this template with the stack that you specified.

Conditional: * You must specify only TemplateBody or TemplateURL.

*/ inline void SetTemplateURL(const char* value) { m_templateURLHasBeenSet = true; m_templateURL.assign(value); } /** *

The location of the file that contains the revised template. The URL must * point to a template (max size: 460,800 bytes) that's located in an Amazon S3 * bucket or a Systems Manager document. CloudFormation generates the change set by * comparing this template with the stack that you specified.

Conditional: * You must specify only TemplateBody or TemplateURL.

*/ inline CreateChangeSetRequest& WithTemplateURL(const Aws::String& value) { SetTemplateURL(value); return *this;} /** *

The location of the file that contains the revised template. The URL must * point to a template (max size: 460,800 bytes) that's located in an Amazon S3 * bucket or a Systems Manager document. CloudFormation generates the change set by * comparing this template with the stack that you specified.

Conditional: * You must specify only TemplateBody or TemplateURL.

*/ inline CreateChangeSetRequest& WithTemplateURL(Aws::String&& value) { SetTemplateURL(std::move(value)); return *this;} /** *

The location of the file that contains the revised template. The URL must * point to a template (max size: 460,800 bytes) that's located in an Amazon S3 * bucket or a Systems Manager document. CloudFormation generates the change set by * comparing this template with the stack that you specified.

Conditional: * You must specify only TemplateBody or TemplateURL.

*/ inline CreateChangeSetRequest& WithTemplateURL(const char* value) { SetTemplateURL(value); return *this;} /** *

Whether to reuse the template that's associated with the stack to create the * change set.

*/ inline bool GetUsePreviousTemplate() const{ return m_usePreviousTemplate; } /** *

Whether to reuse the template that's associated with the stack to create the * change set.

*/ inline bool UsePreviousTemplateHasBeenSet() const { return m_usePreviousTemplateHasBeenSet; } /** *

Whether to reuse the template that's associated with the stack to create the * change set.

*/ inline void SetUsePreviousTemplate(bool value) { m_usePreviousTemplateHasBeenSet = true; m_usePreviousTemplate = value; } /** *

Whether to reuse the template that's associated with the stack to create the * change set.

*/ inline CreateChangeSetRequest& WithUsePreviousTemplate(bool value) { SetUsePreviousTemplate(value); return *this;} /** *

A list of Parameter structures that specify input parameters for * the change set. For more information, see the Parameter data type.

*/ inline const Aws::Vector& GetParameters() const{ return m_parameters; } /** *

A list of Parameter structures that specify input parameters for * the change set. For more information, see the Parameter data type.

*/ inline bool ParametersHasBeenSet() const { return m_parametersHasBeenSet; } /** *

A list of Parameter structures that specify input parameters for * the change set. For more information, see the Parameter data type.

*/ inline void SetParameters(const Aws::Vector& value) { m_parametersHasBeenSet = true; m_parameters = value; } /** *

A list of Parameter structures that specify input parameters for * the change set. For more information, see the Parameter data type.

*/ inline void SetParameters(Aws::Vector&& value) { m_parametersHasBeenSet = true; m_parameters = std::move(value); } /** *

A list of Parameter structures that specify input parameters for * the change set. For more information, see the Parameter data type.

*/ inline CreateChangeSetRequest& WithParameters(const Aws::Vector& value) { SetParameters(value); return *this;} /** *

A list of Parameter structures that specify input parameters for * the change set. For more information, see the Parameter data type.

*/ inline CreateChangeSetRequest& WithParameters(Aws::Vector&& value) { SetParameters(std::move(value)); return *this;} /** *

A list of Parameter structures that specify input parameters for * the change set. For more information, see the Parameter data type.

*/ inline CreateChangeSetRequest& AddParameters(const Parameter& value) { m_parametersHasBeenSet = true; m_parameters.push_back(value); return *this; } /** *

A list of Parameter structures that specify input parameters for * the change set. For more information, see the Parameter data type.

*/ inline CreateChangeSetRequest& AddParameters(Parameter&& value) { m_parametersHasBeenSet = true; m_parameters.push_back(std::move(value)); return *this; } /** *

In some cases, you must explicitly acknowledge that your stack template * contains certain capabilities in order for CloudFormation to create the * stack.

  • CAPABILITY_IAM and * CAPABILITY_NAMED_IAM

    Some stack templates might include * resources that can affect permissions in your Amazon Web Services account; for * example, by creating new 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, CloudFormation returns an * InsufficientCapabilities error.

    If your stack * template contains these resources, we suggest that you review all permissions * associated with them and edit their permissions if necessary.

    For more information, see Acknowledging * IAM resources in CloudFormation templates.

  • * 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 * and AWS::Serverless * transforms, which are macros hosted by CloudFormation.

    This * capacity doesn't apply to creating change sets, and specifying it when creating * change sets has no effect.

    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 about macros, see Using * CloudFormation macros to perform custom processing on templates.

  • *
*/ inline const Aws::Vector& GetCapabilities() const{ return m_capabilities; } /** *

In some cases, you must explicitly acknowledge that your stack template * contains certain capabilities in order for CloudFormation to create the * stack.

  • CAPABILITY_IAM and * CAPABILITY_NAMED_IAM

    Some stack templates might include * resources that can affect permissions in your Amazon Web Services account; for * example, by creating new 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, CloudFormation returns an * InsufficientCapabilities error.

    If your stack * template contains these resources, we suggest that you review all permissions * associated with them and edit their permissions if necessary.

    For more information, see Acknowledging * IAM resources in CloudFormation templates.

  • * 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 * and AWS::Serverless * transforms, which are macros hosted by CloudFormation.

    This * capacity doesn't apply to creating change sets, and specifying it when creating * change sets has no effect.

    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 about macros, see Using * CloudFormation macros to perform custom processing on templates.

  • *
*/ inline bool CapabilitiesHasBeenSet() const { return m_capabilitiesHasBeenSet; } /** *

In some cases, you must explicitly acknowledge that your stack template * contains certain capabilities in order for CloudFormation to create the * stack.

  • CAPABILITY_IAM and * CAPABILITY_NAMED_IAM

    Some stack templates might include * resources that can affect permissions in your Amazon Web Services account; for * example, by creating new 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, CloudFormation returns an * InsufficientCapabilities error.

    If your stack * template contains these resources, we suggest that you review all permissions * associated with them and edit their permissions if necessary.

    For more information, see Acknowledging * IAM resources in CloudFormation templates.

  • * 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 * and AWS::Serverless * transforms, which are macros hosted by CloudFormation.

    This * capacity doesn't apply to creating change sets, and specifying it when creating * change sets has no effect.

    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 about macros, see Using * CloudFormation macros to perform custom processing on templates.

  • *
*/ inline void SetCapabilities(const Aws::Vector& value) { m_capabilitiesHasBeenSet = true; m_capabilities = value; } /** *

In some cases, you must explicitly acknowledge that your stack template * contains certain capabilities in order for CloudFormation to create the * stack.

  • CAPABILITY_IAM and * CAPABILITY_NAMED_IAM

    Some stack templates might include * resources that can affect permissions in your Amazon Web Services account; for * example, by creating new 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, CloudFormation returns an * InsufficientCapabilities error.

    If your stack * template contains these resources, we suggest that you review all permissions * associated with them and edit their permissions if necessary.

    For more information, see Acknowledging * IAM resources in CloudFormation templates.

  • * 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 * and AWS::Serverless * transforms, which are macros hosted by CloudFormation.

    This * capacity doesn't apply to creating change sets, and specifying it when creating * change sets has no effect.

    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 about macros, see Using * CloudFormation macros to perform custom processing on templates.

  • *
*/ inline void SetCapabilities(Aws::Vector&& value) { m_capabilitiesHasBeenSet = true; m_capabilities = std::move(value); } /** *

In some cases, you must explicitly acknowledge that your stack template * contains certain capabilities in order for CloudFormation to create the * stack.

  • CAPABILITY_IAM and * CAPABILITY_NAMED_IAM

    Some stack templates might include * resources that can affect permissions in your Amazon Web Services account; for * example, by creating new 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, CloudFormation returns an * InsufficientCapabilities error.

    If your stack * template contains these resources, we suggest that you review all permissions * associated with them and edit their permissions if necessary.

    For more information, see Acknowledging * IAM resources in CloudFormation templates.

  • * 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 * and AWS::Serverless * transforms, which are macros hosted by CloudFormation.

    This * capacity doesn't apply to creating change sets, and specifying it when creating * change sets has no effect.

    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 about macros, see Using * CloudFormation macros to perform custom processing on templates.

  • *
*/ inline CreateChangeSetRequest& WithCapabilities(const Aws::Vector& value) { SetCapabilities(value); return *this;} /** *

In some cases, you must explicitly acknowledge that your stack template * contains certain capabilities in order for CloudFormation to create the * stack.

  • CAPABILITY_IAM and * CAPABILITY_NAMED_IAM

    Some stack templates might include * resources that can affect permissions in your Amazon Web Services account; for * example, by creating new 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, CloudFormation returns an * InsufficientCapabilities error.

    If your stack * template contains these resources, we suggest that you review all permissions * associated with them and edit their permissions if necessary.

    For more information, see Acknowledging * IAM resources in CloudFormation templates.

  • * 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 * and AWS::Serverless * transforms, which are macros hosted by CloudFormation.

    This * capacity doesn't apply to creating change sets, and specifying it when creating * change sets has no effect.

    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 about macros, see Using * CloudFormation macros to perform custom processing on templates.

  • *
*/ inline CreateChangeSetRequest& WithCapabilities(Aws::Vector&& value) { SetCapabilities(std::move(value)); return *this;} /** *

In some cases, you must explicitly acknowledge that your stack template * contains certain capabilities in order for CloudFormation to create the * stack.

  • CAPABILITY_IAM and * CAPABILITY_NAMED_IAM

    Some stack templates might include * resources that can affect permissions in your Amazon Web Services account; for * example, by creating new 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, CloudFormation returns an * InsufficientCapabilities error.

    If your stack * template contains these resources, we suggest that you review all permissions * associated with them and edit their permissions if necessary.

    For more information, see Acknowledging * IAM resources in CloudFormation templates.

  • * 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 * and AWS::Serverless * transforms, which are macros hosted by CloudFormation.

    This * capacity doesn't apply to creating change sets, and specifying it when creating * change sets has no effect.

    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 about macros, see Using * CloudFormation macros to perform custom processing on templates.

  • *
*/ inline CreateChangeSetRequest& AddCapabilities(const Capability& value) { m_capabilitiesHasBeenSet = true; m_capabilities.push_back(value); return *this; } /** *

In some cases, you must explicitly acknowledge that your stack template * contains certain capabilities in order for CloudFormation to create the * stack.

  • CAPABILITY_IAM and * CAPABILITY_NAMED_IAM

    Some stack templates might include * resources that can affect permissions in your Amazon Web Services account; for * example, by creating new 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, CloudFormation returns an * InsufficientCapabilities error.

    If your stack * template contains these resources, we suggest that you review all permissions * associated with them and edit their permissions if necessary.

    For more information, see Acknowledging * IAM resources in CloudFormation templates.

  • * 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 * and AWS::Serverless * transforms, which are macros hosted by CloudFormation.

    This * capacity doesn't apply to creating change sets, and specifying it when creating * change sets has no effect.

    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 about macros, see Using * CloudFormation macros to perform custom processing on templates.

  • *
*/ inline CreateChangeSetRequest& AddCapabilities(Capability&& value) { m_capabilitiesHasBeenSet = true; m_capabilities.push_back(std::move(value)); return *this; } /** *

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, CloudFormation grants permissions to all * resource types. Identity and Access Management (IAM) uses this parameter for * condition keys in IAM policies for CloudFormation. For more information, see Controlling * access with Identity and Access Management in the CloudFormation User * Guide.

*/ inline const Aws::Vector& GetResourceTypes() const{ return m_resourceTypes; } /** *

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, CloudFormation grants permissions to all * resource types. Identity and Access Management (IAM) uses this parameter for * condition keys in IAM policies for CloudFormation. For more information, see Controlling * access with Identity and Access Management in the CloudFormation User * Guide.

*/ inline bool ResourceTypesHasBeenSet() const { return m_resourceTypesHasBeenSet; } /** *

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, CloudFormation grants permissions to all * resource types. Identity and Access Management (IAM) uses this parameter for * condition keys in IAM policies for CloudFormation. For more information, see Controlling * access with Identity and Access Management in the CloudFormation User * Guide.

*/ inline void SetResourceTypes(const Aws::Vector& value) { m_resourceTypesHasBeenSet = true; m_resourceTypes = value; } /** *

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, CloudFormation grants permissions to all * resource types. Identity and Access Management (IAM) uses this parameter for * condition keys in IAM policies for CloudFormation. For more information, see Controlling * access with Identity and Access Management in the CloudFormation User * Guide.

*/ inline void SetResourceTypes(Aws::Vector&& value) { m_resourceTypesHasBeenSet = true; m_resourceTypes = std::move(value); } /** *

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, CloudFormation grants permissions to all * resource types. Identity and Access Management (IAM) uses this parameter for * condition keys in IAM policies for CloudFormation. For more information, see Controlling * access with Identity and Access Management in the CloudFormation User * Guide.

*/ inline CreateChangeSetRequest& WithResourceTypes(const Aws::Vector& value) { SetResourceTypes(value); return *this;} /** *

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, CloudFormation grants permissions to all * resource types. Identity and Access Management (IAM) uses this parameter for * condition keys in IAM policies for CloudFormation. For more information, see Controlling * access with Identity and Access Management in the CloudFormation User * Guide.

*/ inline CreateChangeSetRequest& WithResourceTypes(Aws::Vector&& value) { SetResourceTypes(std::move(value)); return *this;} /** *

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, CloudFormation grants permissions to all * resource types. Identity and Access Management (IAM) uses this parameter for * condition keys in IAM policies for CloudFormation. For more information, see Controlling * access with Identity and Access Management in the CloudFormation User * Guide.

*/ inline CreateChangeSetRequest& AddResourceTypes(const Aws::String& value) { m_resourceTypesHasBeenSet = true; m_resourceTypes.push_back(value); return *this; } /** *

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, CloudFormation grants permissions to all * resource types. Identity and Access Management (IAM) uses this parameter for * condition keys in IAM policies for CloudFormation. For more information, see Controlling * access with Identity and Access Management in the CloudFormation User * Guide.

*/ inline CreateChangeSetRequest& AddResourceTypes(Aws::String&& value) { m_resourceTypesHasBeenSet = true; m_resourceTypes.push_back(std::move(value)); return *this; } /** *

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, CloudFormation grants permissions to all * resource types. Identity and Access Management (IAM) uses this parameter for * condition keys in IAM policies for CloudFormation. For more information, see Controlling * access with Identity and Access Management in the CloudFormation User * Guide.

*/ inline CreateChangeSetRequest& AddResourceTypes(const char* value) { m_resourceTypesHasBeenSet = true; m_resourceTypes.push_back(value); return *this; } /** *

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) * role that CloudFormation assumes when executing the change set. CloudFormation * uses the role's credentials to make calls on your behalf. CloudFormation uses * this role for all future operations on the stack. Provided that users have * permission to operate on the stack, CloudFormation uses this role even if the * users don't have permission to pass it. Ensure that the role grants least * permission.

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 is generated from your user * credentials.

*/ inline const Aws::String& GetRoleARN() const{ return m_roleARN; } /** *

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) * role that CloudFormation assumes when executing the change set. CloudFormation * uses the role's credentials to make calls on your behalf. CloudFormation uses * this role for all future operations on the stack. Provided that users have * permission to operate on the stack, CloudFormation uses this role even if the * users don't have permission to pass it. Ensure that the role grants least * permission.

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 is generated from your user * credentials.

*/ inline bool RoleARNHasBeenSet() const { return m_roleARNHasBeenSet; } /** *

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) * role that CloudFormation assumes when executing the change set. CloudFormation * uses the role's credentials to make calls on your behalf. CloudFormation uses * this role for all future operations on the stack. Provided that users have * permission to operate on the stack, CloudFormation uses this role even if the * users don't have permission to pass it. Ensure that the role grants least * permission.

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 is generated from your user * credentials.

*/ inline void SetRoleARN(const Aws::String& value) { m_roleARNHasBeenSet = true; m_roleARN = value; } /** *

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) * role that CloudFormation assumes when executing the change set. CloudFormation * uses the role's credentials to make calls on your behalf. CloudFormation uses * this role for all future operations on the stack. Provided that users have * permission to operate on the stack, CloudFormation uses this role even if the * users don't have permission to pass it. Ensure that the role grants least * permission.

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 is generated from your user * credentials.

*/ inline void SetRoleARN(Aws::String&& value) { m_roleARNHasBeenSet = true; m_roleARN = std::move(value); } /** *

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) * role that CloudFormation assumes when executing the change set. CloudFormation * uses the role's credentials to make calls on your behalf. CloudFormation uses * this role for all future operations on the stack. Provided that users have * permission to operate on the stack, CloudFormation uses this role even if the * users don't have permission to pass it. Ensure that the role grants least * permission.

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 is generated from your user * credentials.

*/ inline void SetRoleARN(const char* value) { m_roleARNHasBeenSet = true; m_roleARN.assign(value); } /** *

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) * role that CloudFormation assumes when executing the change set. CloudFormation * uses the role's credentials to make calls on your behalf. CloudFormation uses * this role for all future operations on the stack. Provided that users have * permission to operate on the stack, CloudFormation uses this role even if the * users don't have permission to pass it. Ensure that the role grants least * permission.

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 is generated from your user * credentials.

*/ inline CreateChangeSetRequest& WithRoleARN(const Aws::String& value) { SetRoleARN(value); return *this;} /** *

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) * role that CloudFormation assumes when executing the change set. CloudFormation * uses the role's credentials to make calls on your behalf. CloudFormation uses * this role for all future operations on the stack. Provided that users have * permission to operate on the stack, CloudFormation uses this role even if the * users don't have permission to pass it. Ensure that the role grants least * permission.

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 is generated from your user * credentials.

*/ inline CreateChangeSetRequest& WithRoleARN(Aws::String&& value) { SetRoleARN(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) * role that CloudFormation assumes when executing the change set. CloudFormation * uses the role's credentials to make calls on your behalf. CloudFormation uses * this role for all future operations on the stack. Provided that users have * permission to operate on the stack, CloudFormation uses this role even if the * users don't have permission to pass it. Ensure that the role grants least * permission.

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 is generated from your user * credentials.

*/ inline CreateChangeSetRequest& WithRoleARN(const char* value) { SetRoleARN(value); return *this;} /** *

The rollback triggers for CloudFormation to monitor during stack creation and * updating operations, and for the specified monitoring period afterwards.

*/ inline const RollbackConfiguration& GetRollbackConfiguration() const{ return m_rollbackConfiguration; } /** *

The rollback triggers for CloudFormation to monitor during stack creation and * updating operations, and for the specified monitoring period afterwards.

*/ inline bool RollbackConfigurationHasBeenSet() const { return m_rollbackConfigurationHasBeenSet; } /** *

The rollback triggers for CloudFormation to monitor during stack creation and * updating operations, and for the specified monitoring period afterwards.

*/ inline void SetRollbackConfiguration(const RollbackConfiguration& value) { m_rollbackConfigurationHasBeenSet = true; m_rollbackConfiguration = value; } /** *

The rollback triggers for CloudFormation to monitor during stack creation and * updating operations, and for the specified monitoring period afterwards.

*/ inline void SetRollbackConfiguration(RollbackConfiguration&& value) { m_rollbackConfigurationHasBeenSet = true; m_rollbackConfiguration = std::move(value); } /** *

The rollback triggers for CloudFormation to monitor during stack creation and * updating operations, and for the specified monitoring period afterwards.

*/ inline CreateChangeSetRequest& WithRollbackConfiguration(const RollbackConfiguration& value) { SetRollbackConfiguration(value); return *this;} /** *

The rollback triggers for CloudFormation to monitor during stack creation and * updating operations, and for the specified monitoring period afterwards.

*/ inline CreateChangeSetRequest& WithRollbackConfiguration(RollbackConfiguration&& value) { SetRollbackConfiguration(std::move(value)); return *this;} /** *

The Amazon Resource Names (ARNs) of Amazon Simple Notification Service * (Amazon SNS) topics that CloudFormation associates with the stack. To remove all * associated notification topics, specify an empty list.

*/ inline const Aws::Vector& GetNotificationARNs() const{ return m_notificationARNs; } /** *

The Amazon Resource Names (ARNs) of Amazon Simple Notification Service * (Amazon SNS) topics that CloudFormation associates with the stack. To remove all * associated notification topics, specify an empty list.

*/ inline bool NotificationARNsHasBeenSet() const { return m_notificationARNsHasBeenSet; } /** *

The Amazon Resource Names (ARNs) of Amazon Simple Notification Service * (Amazon SNS) topics that CloudFormation associates with the stack. To remove all * associated notification topics, specify an empty list.

*/ inline void SetNotificationARNs(const Aws::Vector& value) { m_notificationARNsHasBeenSet = true; m_notificationARNs = value; } /** *

The Amazon Resource Names (ARNs) of Amazon Simple Notification Service * (Amazon SNS) topics that CloudFormation associates with the stack. To remove all * associated notification topics, specify an empty list.

*/ inline void SetNotificationARNs(Aws::Vector&& value) { m_notificationARNsHasBeenSet = true; m_notificationARNs = std::move(value); } /** *

The Amazon Resource Names (ARNs) of Amazon Simple Notification Service * (Amazon SNS) topics that CloudFormation associates with the stack. To remove all * associated notification topics, specify an empty list.

*/ inline CreateChangeSetRequest& WithNotificationARNs(const Aws::Vector& value) { SetNotificationARNs(value); return *this;} /** *

The Amazon Resource Names (ARNs) of Amazon Simple Notification Service * (Amazon SNS) topics that CloudFormation associates with the stack. To remove all * associated notification topics, specify an empty list.

*/ inline CreateChangeSetRequest& WithNotificationARNs(Aws::Vector&& value) { SetNotificationARNs(std::move(value)); return *this;} /** *

The Amazon Resource Names (ARNs) of Amazon Simple Notification Service * (Amazon SNS) topics that CloudFormation associates with the stack. To remove all * associated notification topics, specify an empty list.

*/ inline CreateChangeSetRequest& AddNotificationARNs(const Aws::String& value) { m_notificationARNsHasBeenSet = true; m_notificationARNs.push_back(value); return *this; } /** *

The Amazon Resource Names (ARNs) of Amazon Simple Notification Service * (Amazon SNS) topics that CloudFormation associates with the stack. To remove all * associated notification topics, specify an empty list.

*/ inline CreateChangeSetRequest& AddNotificationARNs(Aws::String&& value) { m_notificationARNsHasBeenSet = true; m_notificationARNs.push_back(std::move(value)); return *this; } /** *

The Amazon Resource Names (ARNs) of Amazon Simple Notification Service * (Amazon SNS) topics that CloudFormation associates with the stack. To remove all * associated notification topics, specify an empty list.

*/ inline CreateChangeSetRequest& AddNotificationARNs(const char* value) { m_notificationARNsHasBeenSet = true; m_notificationARNs.push_back(value); return *this; } /** *

Key-value pairs to associate with this stack. CloudFormation also propagates * these tags to resources in the stack. You can specify a maximum of 50 tags.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

Key-value pairs to associate with this stack. CloudFormation also propagates * these tags to resources in the stack. You can specify a maximum of 50 tags.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

Key-value pairs to associate with this stack. CloudFormation also propagates * these tags to resources in the stack. You can specify a maximum of 50 tags.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

Key-value pairs to associate with this stack. CloudFormation also propagates * these tags to resources in the stack. You can specify a maximum of 50 tags.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

Key-value pairs to associate with this stack. CloudFormation also propagates * these tags to resources in the stack. You can specify a maximum of 50 tags.

*/ inline CreateChangeSetRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

Key-value pairs to associate with this stack. CloudFormation also propagates * these tags to resources in the stack. You can specify a maximum of 50 tags.

*/ inline CreateChangeSetRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

Key-value pairs to associate with this stack. CloudFormation also propagates * these tags to resources in the stack. You can specify a maximum of 50 tags.

*/ inline CreateChangeSetRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

Key-value pairs to associate with this stack. CloudFormation also propagates * these tags to resources in the stack. You can specify a maximum of 50 tags.

*/ inline CreateChangeSetRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

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 alphabetical character and can't exceed 128 characters.

*/ inline const Aws::String& GetChangeSetName() const{ return m_changeSetName; } /** *

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 alphabetical character and can't exceed 128 characters.

*/ inline bool ChangeSetNameHasBeenSet() const { return m_changeSetNameHasBeenSet; } /** *

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 alphabetical character and can't exceed 128 characters.

*/ inline void SetChangeSetName(const Aws::String& value) { m_changeSetNameHasBeenSet = true; m_changeSetName = value; } /** *

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 alphabetical character and can't exceed 128 characters.

*/ inline void SetChangeSetName(Aws::String&& value) { m_changeSetNameHasBeenSet = true; m_changeSetName = std::move(value); } /** *

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 alphabetical character and can't exceed 128 characters.

*/ inline void SetChangeSetName(const char* value) { m_changeSetNameHasBeenSet = true; m_changeSetName.assign(value); } /** *

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 alphabetical character and can't exceed 128 characters.

*/ inline CreateChangeSetRequest& WithChangeSetName(const Aws::String& value) { SetChangeSetName(value); return *this;} /** *

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 alphabetical character and can't exceed 128 characters.

*/ inline CreateChangeSetRequest& WithChangeSetName(Aws::String&& value) { SetChangeSetName(std::move(value)); return *this;} /** *

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 alphabetical character and can't exceed 128 characters.

*/ inline CreateChangeSetRequest& WithChangeSetName(const char* value) { SetChangeSetName(value); return *this;} /** *

A unique identifier for this CreateChangeSet request. Specify * this token if you plan to retry requests so that CloudFormation knows that * you're not attempting to create another change set with the same name. You might * retry CreateChangeSet requests to ensure that CloudFormation * successfully received them.

*/ inline const Aws::String& GetClientToken() const{ return m_clientToken; } /** *

A unique identifier for this CreateChangeSet request. Specify * this token if you plan to retry requests so that CloudFormation knows that * you're not attempting to create another change set with the same name. You might * retry CreateChangeSet requests to ensure that CloudFormation * successfully received them.

*/ inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; } /** *

A unique identifier for this CreateChangeSet request. Specify * this token if you plan to retry requests so that CloudFormation knows that * you're not attempting to create another change set with the same name. You might * retry CreateChangeSet requests to ensure that CloudFormation * successfully received them.

*/ inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; } /** *

A unique identifier for this CreateChangeSet request. Specify * this token if you plan to retry requests so that CloudFormation knows that * you're not attempting to create another change set with the same name. You might * retry CreateChangeSet requests to ensure that CloudFormation * successfully received them.

*/ inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); } /** *

A unique identifier for this CreateChangeSet request. Specify * this token if you plan to retry requests so that CloudFormation knows that * you're not attempting to create another change set with the same name. You might * retry CreateChangeSet requests to ensure that CloudFormation * successfully received them.

*/ inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); } /** *

A unique identifier for this CreateChangeSet request. Specify * this token if you plan to retry requests so that CloudFormation knows that * you're not attempting to create another change set with the same name. You might * retry CreateChangeSet requests to ensure that CloudFormation * successfully received them.

*/ inline CreateChangeSetRequest& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;} /** *

A unique identifier for this CreateChangeSet request. Specify * this token if you plan to retry requests so that CloudFormation knows that * you're not attempting to create another change set with the same name. You might * retry CreateChangeSet requests to ensure that CloudFormation * successfully received them.

*/ inline CreateChangeSetRequest& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;} /** *

A unique identifier for this CreateChangeSet request. Specify * this token if you plan to retry requests so that CloudFormation knows that * you're not attempting to create another change set with the same name. You might * retry CreateChangeSet requests to ensure that CloudFormation * successfully received them.

*/ inline CreateChangeSetRequest& WithClientToken(const char* value) { SetClientToken(value); return *this;} /** *

A description to help you identify this change set.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

A description to help you identify this change set.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

A description to help you identify this change set.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

A description to help you identify this change set.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

A description to help you identify this change set.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

A description to help you identify this change set.

*/ inline CreateChangeSetRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A description to help you identify this change set.

*/ inline CreateChangeSetRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

A description to help you identify this change set.

*/ inline CreateChangeSetRequest& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

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, * CloudFormation creates a stack with a unique stack ID, but no template or * resources. The stack will be in the REVIEW_IN_PROGRESS * state until you execute the change set.

By default, 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.

*/ inline const ChangeSetType& GetChangeSetType() const{ return m_changeSetType; } /** *

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, * CloudFormation creates a stack with a unique stack ID, but no template or * resources. The stack will be in the REVIEW_IN_PROGRESS * state until you execute the change set.

By default, 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.

*/ inline bool ChangeSetTypeHasBeenSet() const { return m_changeSetTypeHasBeenSet; } /** *

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, * CloudFormation creates a stack with a unique stack ID, but no template or * resources. The stack will be in the REVIEW_IN_PROGRESS * state until you execute the change set.

By default, 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.

*/ inline void SetChangeSetType(const ChangeSetType& value) { m_changeSetTypeHasBeenSet = true; m_changeSetType = value; } /** *

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, * CloudFormation creates a stack with a unique stack ID, but no template or * resources. The stack will be in the REVIEW_IN_PROGRESS * state until you execute the change set.

By default, 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.

*/ inline void SetChangeSetType(ChangeSetType&& value) { m_changeSetTypeHasBeenSet = true; m_changeSetType = std::move(value); } /** *

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, * CloudFormation creates a stack with a unique stack ID, but no template or * resources. The stack will be in the REVIEW_IN_PROGRESS * state until you execute the change set.

By default, 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.

*/ inline CreateChangeSetRequest& WithChangeSetType(const ChangeSetType& value) { SetChangeSetType(value); return *this;} /** *

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, * CloudFormation creates a stack with a unique stack ID, but no template or * resources. The stack will be in the REVIEW_IN_PROGRESS * state until you execute the change set.

By default, 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.

*/ inline CreateChangeSetRequest& WithChangeSetType(ChangeSetType&& value) { SetChangeSetType(std::move(value)); return *this;} /** *

The resources to import into your stack.

*/ inline const Aws::Vector& GetResourcesToImport() const{ return m_resourcesToImport; } /** *

The resources to import into your stack.

*/ inline bool ResourcesToImportHasBeenSet() const { return m_resourcesToImportHasBeenSet; } /** *

The resources to import into your stack.

*/ inline void SetResourcesToImport(const Aws::Vector& value) { m_resourcesToImportHasBeenSet = true; m_resourcesToImport = value; } /** *

The resources to import into your stack.

*/ inline void SetResourcesToImport(Aws::Vector&& value) { m_resourcesToImportHasBeenSet = true; m_resourcesToImport = std::move(value); } /** *

The resources to import into your stack.

*/ inline CreateChangeSetRequest& WithResourcesToImport(const Aws::Vector& value) { SetResourcesToImport(value); return *this;} /** *

The resources to import into your stack.

*/ inline CreateChangeSetRequest& WithResourcesToImport(Aws::Vector&& value) { SetResourcesToImport(std::move(value)); return *this;} /** *

The resources to import into your stack.

*/ inline CreateChangeSetRequest& AddResourcesToImport(const ResourceToImport& value) { m_resourcesToImportHasBeenSet = true; m_resourcesToImport.push_back(value); return *this; } /** *

The resources to import into your stack.

*/ inline CreateChangeSetRequest& AddResourcesToImport(ResourceToImport&& value) { m_resourcesToImportHasBeenSet = true; m_resourcesToImport.push_back(std::move(value)); return *this; } /** *

Creates a change set for the all nested stacks specified in the template. The * default behavior of this action is set to False. To include nested * sets in a change set, specify True.

*/ inline bool GetIncludeNestedStacks() const{ return m_includeNestedStacks; } /** *

Creates a change set for the all nested stacks specified in the template. The * default behavior of this action is set to False. To include nested * sets in a change set, specify True.

*/ inline bool IncludeNestedStacksHasBeenSet() const { return m_includeNestedStacksHasBeenSet; } /** *

Creates a change set for the all nested stacks specified in the template. The * default behavior of this action is set to False. To include nested * sets in a change set, specify True.

*/ inline void SetIncludeNestedStacks(bool value) { m_includeNestedStacksHasBeenSet = true; m_includeNestedStacks = value; } /** *

Creates a change set for the all nested stacks specified in the template. The * default behavior of this action is set to False. To include nested * sets in a change set, specify True.

*/ inline CreateChangeSetRequest& WithIncludeNestedStacks(bool value) { SetIncludeNestedStacks(value); return *this;} /** *

Determines what action will be taken if stack creation fails. If this * parameter is specified, the DisableRollback parameter to the ExecuteChangeSet * API operation must not be specified. This must be one of these values:

    *
  • DELETE - Deletes the change set if the stack creation * fails. This is only valid when the ChangeSetType parameter is set * to CREATE. If the deletion of the stack fails, the status of the * stack is DELETE_FAILED.

  • DO_NOTHING * - if the stack creation fails, do nothing. This is equivalent to specifying * true for the DisableRollback parameter to the ExecuteChangeSet * API operation.

  • ROLLBACK - if the stack creation * fails, roll back the stack. This is equivalent to specifying false * for the DisableRollback parameter to the ExecuteChangeSet * API operation.

For nested stacks, when the * OnStackFailure parameter is set to DELETE for the * change set for the parent stack, any failure in a child stack will cause the * parent stack creation to fail and all stacks to be deleted.

*/ inline const OnStackFailure& GetOnStackFailure() const{ return m_onStackFailure; } /** *

Determines what action will be taken if stack creation fails. If this * parameter is specified, the DisableRollback parameter to the ExecuteChangeSet * API operation must not be specified. This must be one of these values:

    *
  • DELETE - Deletes the change set if the stack creation * fails. This is only valid when the ChangeSetType parameter is set * to CREATE. If the deletion of the stack fails, the status of the * stack is DELETE_FAILED.

  • DO_NOTHING * - if the stack creation fails, do nothing. This is equivalent to specifying * true for the DisableRollback parameter to the ExecuteChangeSet * API operation.

  • ROLLBACK - if the stack creation * fails, roll back the stack. This is equivalent to specifying false * for the DisableRollback parameter to the ExecuteChangeSet * API operation.

For nested stacks, when the * OnStackFailure parameter is set to DELETE for the * change set for the parent stack, any failure in a child stack will cause the * parent stack creation to fail and all stacks to be deleted.

*/ inline bool OnStackFailureHasBeenSet() const { return m_onStackFailureHasBeenSet; } /** *

Determines what action will be taken if stack creation fails. If this * parameter is specified, the DisableRollback parameter to the ExecuteChangeSet * API operation must not be specified. This must be one of these values:

    *
  • DELETE - Deletes the change set if the stack creation * fails. This is only valid when the ChangeSetType parameter is set * to CREATE. If the deletion of the stack fails, the status of the * stack is DELETE_FAILED.

  • DO_NOTHING * - if the stack creation fails, do nothing. This is equivalent to specifying * true for the DisableRollback parameter to the ExecuteChangeSet * API operation.

  • ROLLBACK - if the stack creation * fails, roll back the stack. This is equivalent to specifying false * for the DisableRollback parameter to the ExecuteChangeSet * API operation.

For nested stacks, when the * OnStackFailure parameter is set to DELETE for the * change set for the parent stack, any failure in a child stack will cause the * parent stack creation to fail and all stacks to be deleted.

*/ inline void SetOnStackFailure(const OnStackFailure& value) { m_onStackFailureHasBeenSet = true; m_onStackFailure = value; } /** *

Determines what action will be taken if stack creation fails. If this * parameter is specified, the DisableRollback parameter to the ExecuteChangeSet * API operation must not be specified. This must be one of these values:

    *
  • DELETE - Deletes the change set if the stack creation * fails. This is only valid when the ChangeSetType parameter is set * to CREATE. If the deletion of the stack fails, the status of the * stack is DELETE_FAILED.

  • DO_NOTHING * - if the stack creation fails, do nothing. This is equivalent to specifying * true for the DisableRollback parameter to the ExecuteChangeSet * API operation.

  • ROLLBACK - if the stack creation * fails, roll back the stack. This is equivalent to specifying false * for the DisableRollback parameter to the ExecuteChangeSet * API operation.

For nested stacks, when the * OnStackFailure parameter is set to DELETE for the * change set for the parent stack, any failure in a child stack will cause the * parent stack creation to fail and all stacks to be deleted.

*/ inline void SetOnStackFailure(OnStackFailure&& value) { m_onStackFailureHasBeenSet = true; m_onStackFailure = std::move(value); } /** *

Determines what action will be taken if stack creation fails. If this * parameter is specified, the DisableRollback parameter to the ExecuteChangeSet * API operation must not be specified. This must be one of these values:

    *
  • DELETE - Deletes the change set if the stack creation * fails. This is only valid when the ChangeSetType parameter is set * to CREATE. If the deletion of the stack fails, the status of the * stack is DELETE_FAILED.

  • DO_NOTHING * - if the stack creation fails, do nothing. This is equivalent to specifying * true for the DisableRollback parameter to the ExecuteChangeSet * API operation.

  • ROLLBACK - if the stack creation * fails, roll back the stack. This is equivalent to specifying false * for the DisableRollback parameter to the ExecuteChangeSet * API operation.

For nested stacks, when the * OnStackFailure parameter is set to DELETE for the * change set for the parent stack, any failure in a child stack will cause the * parent stack creation to fail and all stacks to be deleted.

*/ inline CreateChangeSetRequest& WithOnStackFailure(const OnStackFailure& value) { SetOnStackFailure(value); return *this;} /** *

Determines what action will be taken if stack creation fails. If this * parameter is specified, the DisableRollback parameter to the ExecuteChangeSet * API operation must not be specified. This must be one of these values:

    *
  • DELETE - Deletes the change set if the stack creation * fails. This is only valid when the ChangeSetType parameter is set * to CREATE. If the deletion of the stack fails, the status of the * stack is DELETE_FAILED.

  • DO_NOTHING * - if the stack creation fails, do nothing. This is equivalent to specifying * true for the DisableRollback parameter to the ExecuteChangeSet * API operation.

  • ROLLBACK - if the stack creation * fails, roll back the stack. This is equivalent to specifying false * for the DisableRollback parameter to the ExecuteChangeSet * API operation.

For nested stacks, when the * OnStackFailure parameter is set to DELETE for the * change set for the parent stack, any failure in a child stack will cause the * parent stack creation to fail and all stacks to be deleted.

*/ inline CreateChangeSetRequest& WithOnStackFailure(OnStackFailure&& value) { SetOnStackFailure(std::move(value)); return *this;} private: Aws::String m_stackName; bool m_stackNameHasBeenSet = false; Aws::String m_templateBody; bool m_templateBodyHasBeenSet = false; Aws::String m_templateURL; bool m_templateURLHasBeenSet = false; bool m_usePreviousTemplate; bool m_usePreviousTemplateHasBeenSet = false; Aws::Vector m_parameters; bool m_parametersHasBeenSet = false; Aws::Vector m_capabilities; bool m_capabilitiesHasBeenSet = false; Aws::Vector m_resourceTypes; bool m_resourceTypesHasBeenSet = false; Aws::String m_roleARN; bool m_roleARNHasBeenSet = false; RollbackConfiguration m_rollbackConfiguration; bool m_rollbackConfigurationHasBeenSet = false; Aws::Vector m_notificationARNs; bool m_notificationARNsHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::String m_changeSetName; bool m_changeSetNameHasBeenSet = false; Aws::String m_clientToken; bool m_clientTokenHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; ChangeSetType m_changeSetType; bool m_changeSetTypeHasBeenSet = false; Aws::Vector m_resourcesToImport; bool m_resourcesToImportHasBeenSet = false; bool m_includeNestedStacks; bool m_includeNestedStacksHasBeenSet = false; OnStackFailure m_onStackFailure; bool m_onStackFailureHasBeenSet = false; }; } // namespace Model } // namespace CloudFormation } // namespace Aws