/** * 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 #include namespace Aws { namespace CloudFormation { namespace Model { /** */ class CreateStackSetRequest : public CloudFormationRequest { public: AWS_CLOUDFORMATION_API CreateStackSetRequest(); // 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 "CreateStackSet"; } AWS_CLOUDFORMATION_API Aws::String SerializePayload() const override; protected: AWS_CLOUDFORMATION_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

The name to associate with the stack set. The name must be unique in the * Region where you create your stack set.

A stack name can contain * only alphanumeric characters (case-sensitive) and hyphens. It must start with an * alphabetic character and can't be longer than 128 characters.

*/ inline const Aws::String& GetStackSetName() const{ return m_stackSetName; } /** *

The name to associate with the stack set. The name must be unique in the * Region where you create your stack set.

A stack name can contain * only alphanumeric characters (case-sensitive) and hyphens. It must start with an * alphabetic character and can't be longer than 128 characters.

*/ inline bool StackSetNameHasBeenSet() const { return m_stackSetNameHasBeenSet; } /** *

The name to associate with the stack set. The name must be unique in the * Region where you create your stack set.

A stack name can contain * only alphanumeric characters (case-sensitive) and hyphens. It must start with an * alphabetic character and can't be longer than 128 characters.

*/ inline void SetStackSetName(const Aws::String& value) { m_stackSetNameHasBeenSet = true; m_stackSetName = value; } /** *

The name to associate with the stack set. The name must be unique in the * Region where you create your stack set.

A stack name can contain * only alphanumeric characters (case-sensitive) and hyphens. It must start with an * alphabetic character and can't be longer than 128 characters.

*/ inline void SetStackSetName(Aws::String&& value) { m_stackSetNameHasBeenSet = true; m_stackSetName = std::move(value); } /** *

The name to associate with the stack set. The name must be unique in the * Region where you create your stack set.

A stack name can contain * only alphanumeric characters (case-sensitive) and hyphens. It must start with an * alphabetic character and can't be longer than 128 characters.

*/ inline void SetStackSetName(const char* value) { m_stackSetNameHasBeenSet = true; m_stackSetName.assign(value); } /** *

The name to associate with the stack set. The name must be unique in the * Region where you create your stack set.

A stack name can contain * only alphanumeric characters (case-sensitive) and hyphens. It must start with an * alphabetic character and can't be longer than 128 characters.

*/ inline CreateStackSetRequest& WithStackSetName(const Aws::String& value) { SetStackSetName(value); return *this;} /** *

The name to associate with the stack set. The name must be unique in the * Region where you create your stack set.

A stack name can contain * only alphanumeric characters (case-sensitive) and hyphens. It must start with an * alphabetic character and can't be longer than 128 characters.

*/ inline CreateStackSetRequest& WithStackSetName(Aws::String&& value) { SetStackSetName(std::move(value)); return *this;} /** *

The name to associate with the stack set. The name must be unique in the * Region where you create your stack set.

A stack name can contain * only alphanumeric characters (case-sensitive) and hyphens. It must start with an * alphabetic character and can't be longer than 128 characters.

*/ inline CreateStackSetRequest& WithStackSetName(const char* value) { SetStackSetName(value); return *this;} /** *

A description of the stack set. You can use the description to identify the * stack set's purpose or other important information.

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

A description of the stack set. You can use the description to identify the * stack set's purpose or other important information.

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

A description of the stack set. You can use the description to identify the * stack set's purpose or other important information.

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

A description of the stack set. You can use the description to identify the * stack set's purpose or other important information.

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

A description of the stack set. You can use the description to identify the * stack set's purpose or other important information.

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

A description of the stack set. You can use the description to identify the * stack set's purpose or other important information.

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

A description of the stack set. You can use the description to identify the * stack set's purpose or other important information.

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

A description of the stack set. You can use the description to identify the * stack set's purpose or other important information.

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

The structure that contains the template body, with a minimum length of 1 * byte and a maximum length of 51,200 bytes. For more information, see Template * Anatomy in the CloudFormation User Guide.

Conditional: You must * specify either the TemplateBody or the TemplateURL parameter, but not both.

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

The structure that contains the template body, with a minimum length of 1 * byte and a maximum length of 51,200 bytes. For more information, see Template * Anatomy in the CloudFormation User Guide.

Conditional: You must * specify either the TemplateBody or the TemplateURL parameter, but not both.

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

The structure that contains the template body, with a minimum length of 1 * byte and a maximum length of 51,200 bytes. For more information, see Template * Anatomy in the CloudFormation User Guide.

Conditional: You must * specify either the TemplateBody or the TemplateURL parameter, but not both.

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

The structure that contains the template body, with a minimum length of 1 * byte and a maximum length of 51,200 bytes. For more information, see Template * Anatomy in the CloudFormation User Guide.

Conditional: You must * specify either the TemplateBody or the TemplateURL parameter, but not both.

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

The structure that contains the template body, with a minimum length of 1 * byte and a maximum length of 51,200 bytes. For more information, see Template * Anatomy in the CloudFormation User Guide.

Conditional: You must * specify either the TemplateBody or the TemplateURL parameter, but not both.

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

The structure that contains the template body, with a minimum length of 1 * byte and a maximum length of 51,200 bytes. For more information, see Template * Anatomy in the CloudFormation User Guide.

Conditional: You must * specify either the TemplateBody or the TemplateURL parameter, but not both.

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

The structure that contains the template body, with a minimum length of 1 * byte and a maximum length of 51,200 bytes. For more information, see Template * Anatomy in the CloudFormation User Guide.

Conditional: You must * specify either the TemplateBody or the TemplateURL parameter, but not both.

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

The structure that contains the template body, with a minimum length of 1 * byte and a maximum length of 51,200 bytes. For more information, see Template * Anatomy in the CloudFormation User Guide.

Conditional: You must * specify either the TemplateBody or the TemplateURL parameter, but not both.

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

The location of the file that contains the template body. The URL must point * to a template (maximum size: 460,800 bytes) that's located in an Amazon S3 * bucket or a Systems Manager document. For more information, see Template * Anatomy in the CloudFormation User Guide.

Conditional: You must * specify either the TemplateBody or the TemplateURL parameter, but not both.

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

The location of the file that contains the template body. The URL must point * to a template (maximum size: 460,800 bytes) that's located in an Amazon S3 * bucket or a Systems Manager document. For more information, see Template * Anatomy in the CloudFormation User Guide.

Conditional: You must * specify either the TemplateBody or the TemplateURL parameter, but not both.

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

The location of the file that contains the template body. The URL must point * to a template (maximum size: 460,800 bytes) that's located in an Amazon S3 * bucket or a Systems Manager document. For more information, see Template * Anatomy in the CloudFormation User Guide.

Conditional: You must * specify either the TemplateBody or the TemplateURL parameter, but not both.

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

The location of the file that contains the template body. The URL must point * to a template (maximum size: 460,800 bytes) that's located in an Amazon S3 * bucket or a Systems Manager document. For more information, see Template * Anatomy in the CloudFormation User Guide.

Conditional: You must * specify either the TemplateBody or the TemplateURL parameter, but not both.

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

The location of the file that contains the template body. The URL must point * to a template (maximum size: 460,800 bytes) that's located in an Amazon S3 * bucket or a Systems Manager document. For more information, see Template * Anatomy in the CloudFormation User Guide.

Conditional: You must * specify either the TemplateBody or the TemplateURL parameter, but not both.

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

The location of the file that contains the template body. The URL must point * to a template (maximum size: 460,800 bytes) that's located in an Amazon S3 * bucket or a Systems Manager document. For more information, see Template * Anatomy in the CloudFormation User Guide.

Conditional: You must * specify either the TemplateBody or the TemplateURL parameter, but not both.

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

The location of the file that contains the template body. The URL must point * to a template (maximum size: 460,800 bytes) that's located in an Amazon S3 * bucket or a Systems Manager document. For more information, see Template * Anatomy in the CloudFormation User Guide.

Conditional: You must * specify either the TemplateBody or the TemplateURL parameter, but not both.

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

The location of the file that contains the template body. The URL must point * to a template (maximum size: 460,800 bytes) that's located in an Amazon S3 * bucket or a Systems Manager document. For more information, see Template * Anatomy in the CloudFormation User Guide.

Conditional: You must * specify either the TemplateBody or the TemplateURL parameter, but not both.

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

The stack ID you are importing into a new stack set. Specify the Amazon * Resource Name (ARN) of the stack.

*/ inline const Aws::String& GetStackId() const{ return m_stackId; } /** *

The stack ID you are importing into a new stack set. Specify the Amazon * Resource Name (ARN) of the stack.

*/ inline bool StackIdHasBeenSet() const { return m_stackIdHasBeenSet; } /** *

The stack ID you are importing into a new stack set. Specify the Amazon * Resource Name (ARN) of the stack.

*/ inline void SetStackId(const Aws::String& value) { m_stackIdHasBeenSet = true; m_stackId = value; } /** *

The stack ID you are importing into a new stack set. Specify the Amazon * Resource Name (ARN) of the stack.

*/ inline void SetStackId(Aws::String&& value) { m_stackIdHasBeenSet = true; m_stackId = std::move(value); } /** *

The stack ID you are importing into a new stack set. Specify the Amazon * Resource Name (ARN) of the stack.

*/ inline void SetStackId(const char* value) { m_stackIdHasBeenSet = true; m_stackId.assign(value); } /** *

The stack ID you are importing into a new stack set. Specify the Amazon * Resource Name (ARN) of the stack.

*/ inline CreateStackSetRequest& WithStackId(const Aws::String& value) { SetStackId(value); return *this;} /** *

The stack ID you are importing into a new stack set. Specify the Amazon * Resource Name (ARN) of the stack.

*/ inline CreateStackSetRequest& WithStackId(Aws::String&& value) { SetStackId(std::move(value)); return *this;} /** *

The stack ID you are importing into a new stack set. Specify the Amazon * Resource Name (ARN) of the stack.

*/ inline CreateStackSetRequest& WithStackId(const char* value) { SetStackId(value); return *this;} /** *

The input parameters for the stack set template.

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

The input parameters for the stack set template.

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

The input parameters for the stack set template.

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

The input parameters for the stack set template.

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

The input parameters for the stack set template.

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

The input parameters for the stack set template.

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

The input parameters for the stack set template.

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

The input parameters for the stack set template.

*/ inline CreateStackSetRequest& 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 set template * contains certain capabilities in order for CloudFormation to create the stack * set and related stack instances.

  • CAPABILITY_IAM * and CAPABILITY_NAMED_IAM

    Some stack templates might include * resources that can affect permissions in your Amazon Web Services account; for * example, by creating new Identity and Access Management (IAM) users. For those * stack sets, you must explicitly acknowledge this by specifying one of these * capabilities.

    The following IAM resources require you to specify either * the CAPABILITY_IAM or CAPABILITY_NAMED_IAM * capability.

    • If you have IAM resources, you can specify either * capability.

    • If you have IAM resources with custom names, you * must specify CAPABILITY_NAMED_IAM.

    • If you * don't specify either of these capabilities, CloudFormation returns an * InsufficientCapabilities error.

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

    For more information, see Acknowledging * IAM Resources in CloudFormation Templates.

  • * CAPABILITY_AUTO_EXPAND

    Some templates reference macros. If * your stack set template references one or more macros, you must create the stack * set directly from the processed template, without first reviewing the resulting * changes in a change set. To create the stack set directly, you must acknowledge * this capability. For more information, see Using * CloudFormation Macros to Perform Custom Processing on Templates.

    *

    Stack sets with service-managed permissions don't currently * support the use of macros in templates. (This includes the AWS::Include * and AWS::Serverless * transforms, which are macros hosted by CloudFormation.) Even if you specify this * capability for a stack set with service-managed permissions, if you reference a * macro in your template the stack set operation will fail.

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

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

  • CAPABILITY_IAM * and CAPABILITY_NAMED_IAM

    Some stack templates might include * resources that can affect permissions in your Amazon Web Services account; for * example, by creating new Identity and Access Management (IAM) users. For those * stack sets, you must explicitly acknowledge this by specifying one of these * capabilities.

    The following IAM resources require you to specify either * the CAPABILITY_IAM or CAPABILITY_NAMED_IAM * capability.

    • If you have IAM resources, you can specify either * capability.

    • If you have IAM resources with custom names, you * must specify CAPABILITY_NAMED_IAM.

    • If you * don't specify either of these capabilities, CloudFormation returns an * InsufficientCapabilities error.

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

    For more information, see Acknowledging * IAM Resources in CloudFormation Templates.

  • * CAPABILITY_AUTO_EXPAND

    Some templates reference macros. If * your stack set template references one or more macros, you must create the stack * set directly from the processed template, without first reviewing the resulting * changes in a change set. To create the stack set directly, you must acknowledge * this capability. For more information, see Using * CloudFormation Macros to Perform Custom Processing on Templates.

    *

    Stack sets with service-managed permissions don't currently * support the use of macros in templates. (This includes the AWS::Include * and AWS::Serverless * transforms, which are macros hosted by CloudFormation.) Even if you specify this * capability for a stack set with service-managed permissions, if you reference a * macro in your template the stack set operation will fail.

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

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

  • CAPABILITY_IAM * and CAPABILITY_NAMED_IAM

    Some stack templates might include * resources that can affect permissions in your Amazon Web Services account; for * example, by creating new Identity and Access Management (IAM) users. For those * stack sets, you must explicitly acknowledge this by specifying one of these * capabilities.

    The following IAM resources require you to specify either * the CAPABILITY_IAM or CAPABILITY_NAMED_IAM * capability.

    • If you have IAM resources, you can specify either * capability.

    • If you have IAM resources with custom names, you * must specify CAPABILITY_NAMED_IAM.

    • If you * don't specify either of these capabilities, CloudFormation returns an * InsufficientCapabilities error.

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

    For more information, see Acknowledging * IAM Resources in CloudFormation Templates.

  • * CAPABILITY_AUTO_EXPAND

    Some templates reference macros. If * your stack set template references one or more macros, you must create the stack * set directly from the processed template, without first reviewing the resulting * changes in a change set. To create the stack set directly, you must acknowledge * this capability. For more information, see Using * CloudFormation Macros to Perform Custom Processing on Templates.

    *

    Stack sets with service-managed permissions don't currently * support the use of macros in templates. (This includes the AWS::Include * and AWS::Serverless * transforms, which are macros hosted by CloudFormation.) Even if you specify this * capability for a stack set with service-managed permissions, if you reference a * macro in your template the stack set operation will fail.

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

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

  • CAPABILITY_IAM * and CAPABILITY_NAMED_IAM

    Some stack templates might include * resources that can affect permissions in your Amazon Web Services account; for * example, by creating new Identity and Access Management (IAM) users. For those * stack sets, you must explicitly acknowledge this by specifying one of these * capabilities.

    The following IAM resources require you to specify either * the CAPABILITY_IAM or CAPABILITY_NAMED_IAM * capability.

    • If you have IAM resources, you can specify either * capability.

    • If you have IAM resources with custom names, you * must specify CAPABILITY_NAMED_IAM.

    • If you * don't specify either of these capabilities, CloudFormation returns an * InsufficientCapabilities error.

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

    For more information, see Acknowledging * IAM Resources in CloudFormation Templates.

  • * CAPABILITY_AUTO_EXPAND

    Some templates reference macros. If * your stack set template references one or more macros, you must create the stack * set directly from the processed template, without first reviewing the resulting * changes in a change set. To create the stack set directly, you must acknowledge * this capability. For more information, see Using * CloudFormation Macros to Perform Custom Processing on Templates.

    *

    Stack sets with service-managed permissions don't currently * support the use of macros in templates. (This includes the AWS::Include * and AWS::Serverless * transforms, which are macros hosted by CloudFormation.) Even if you specify this * capability for a stack set with service-managed permissions, if you reference a * macro in your template the stack set operation will fail.

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

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

  • CAPABILITY_IAM * and CAPABILITY_NAMED_IAM

    Some stack templates might include * resources that can affect permissions in your Amazon Web Services account; for * example, by creating new Identity and Access Management (IAM) users. For those * stack sets, you must explicitly acknowledge this by specifying one of these * capabilities.

    The following IAM resources require you to specify either * the CAPABILITY_IAM or CAPABILITY_NAMED_IAM * capability.

    • If you have IAM resources, you can specify either * capability.

    • If you have IAM resources with custom names, you * must specify CAPABILITY_NAMED_IAM.

    • If you * don't specify either of these capabilities, CloudFormation returns an * InsufficientCapabilities error.

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

    For more information, see Acknowledging * IAM Resources in CloudFormation Templates.

  • * CAPABILITY_AUTO_EXPAND

    Some templates reference macros. If * your stack set template references one or more macros, you must create the stack * set directly from the processed template, without first reviewing the resulting * changes in a change set. To create the stack set directly, you must acknowledge * this capability. For more information, see Using * CloudFormation Macros to Perform Custom Processing on Templates.

    *

    Stack sets with service-managed permissions don't currently * support the use of macros in templates. (This includes the AWS::Include * and AWS::Serverless * transforms, which are macros hosted by CloudFormation.) Even if you specify this * capability for a stack set with service-managed permissions, if you reference a * macro in your template the stack set operation will fail.

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

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

  • CAPABILITY_IAM * and CAPABILITY_NAMED_IAM

    Some stack templates might include * resources that can affect permissions in your Amazon Web Services account; for * example, by creating new Identity and Access Management (IAM) users. For those * stack sets, you must explicitly acknowledge this by specifying one of these * capabilities.

    The following IAM resources require you to specify either * the CAPABILITY_IAM or CAPABILITY_NAMED_IAM * capability.

    • If you have IAM resources, you can specify either * capability.

    • If you have IAM resources with custom names, you * must specify CAPABILITY_NAMED_IAM.

    • If you * don't specify either of these capabilities, CloudFormation returns an * InsufficientCapabilities error.

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

    For more information, see Acknowledging * IAM Resources in CloudFormation Templates.

  • * CAPABILITY_AUTO_EXPAND

    Some templates reference macros. If * your stack set template references one or more macros, you must create the stack * set directly from the processed template, without first reviewing the resulting * changes in a change set. To create the stack set directly, you must acknowledge * this capability. For more information, see Using * CloudFormation Macros to Perform Custom Processing on Templates.

    *

    Stack sets with service-managed permissions don't currently * support the use of macros in templates. (This includes the AWS::Include * and AWS::Serverless * transforms, which are macros hosted by CloudFormation.) Even if you specify this * capability for a stack set with service-managed permissions, if you reference a * macro in your template the stack set operation will fail.

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

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

  • CAPABILITY_IAM * and CAPABILITY_NAMED_IAM

    Some stack templates might include * resources that can affect permissions in your Amazon Web Services account; for * example, by creating new Identity and Access Management (IAM) users. For those * stack sets, you must explicitly acknowledge this by specifying one of these * capabilities.

    The following IAM resources require you to specify either * the CAPABILITY_IAM or CAPABILITY_NAMED_IAM * capability.

    • If you have IAM resources, you can specify either * capability.

    • If you have IAM resources with custom names, you * must specify CAPABILITY_NAMED_IAM.

    • If you * don't specify either of these capabilities, CloudFormation returns an * InsufficientCapabilities error.

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

    For more information, see Acknowledging * IAM Resources in CloudFormation Templates.

  • * CAPABILITY_AUTO_EXPAND

    Some templates reference macros. If * your stack set template references one or more macros, you must create the stack * set directly from the processed template, without first reviewing the resulting * changes in a change set. To create the stack set directly, you must acknowledge * this capability. For more information, see Using * CloudFormation Macros to Perform Custom Processing on Templates.

    *

    Stack sets with service-managed permissions don't currently * support the use of macros in templates. (This includes the AWS::Include * and AWS::Serverless * transforms, which are macros hosted by CloudFormation.) Even if you specify this * capability for a stack set with service-managed permissions, if you reference a * macro in your template the stack set operation will fail.

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

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

  • CAPABILITY_IAM * and CAPABILITY_NAMED_IAM

    Some stack templates might include * resources that can affect permissions in your Amazon Web Services account; for * example, by creating new Identity and Access Management (IAM) users. For those * stack sets, you must explicitly acknowledge this by specifying one of these * capabilities.

    The following IAM resources require you to specify either * the CAPABILITY_IAM or CAPABILITY_NAMED_IAM * capability.

    • If you have IAM resources, you can specify either * capability.

    • If you have IAM resources with custom names, you * must specify CAPABILITY_NAMED_IAM.

    • If you * don't specify either of these capabilities, CloudFormation returns an * InsufficientCapabilities error.

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

    For more information, see Acknowledging * IAM Resources in CloudFormation Templates.

  • * CAPABILITY_AUTO_EXPAND

    Some templates reference macros. If * your stack set template references one or more macros, you must create the stack * set directly from the processed template, without first reviewing the resulting * changes in a change set. To create the stack set directly, you must acknowledge * this capability. For more information, see Using * CloudFormation Macros to Perform Custom Processing on Templates.

    *

    Stack sets with service-managed permissions don't currently * support the use of macros in templates. (This includes the AWS::Include * and AWS::Serverless * transforms, which are macros hosted by CloudFormation.) Even if you specify this * capability for a stack set with service-managed permissions, if you reference a * macro in your template the stack set operation will fail.

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

The key-value pairs to associate with this stack set and the stacks created * from it. CloudFormation also propagates these tags to supported resources that * are created in the stacks. A maximum number of 50 tags can be specified.

*

If you specify tags as part of a CreateStackSet action, * CloudFormation checks to see if you have the required IAM permission to tag * resources. If you don't, the entire CreateStackSet action fails * with an access denied error, and the stack set is not created.

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

The key-value pairs to associate with this stack set and the stacks created * from it. CloudFormation also propagates these tags to supported resources that * are created in the stacks. A maximum number of 50 tags can be specified.

*

If you specify tags as part of a CreateStackSet action, * CloudFormation checks to see if you have the required IAM permission to tag * resources. If you don't, the entire CreateStackSet action fails * with an access denied error, and the stack set is not created.

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

The key-value pairs to associate with this stack set and the stacks created * from it. CloudFormation also propagates these tags to supported resources that * are created in the stacks. A maximum number of 50 tags can be specified.

*

If you specify tags as part of a CreateStackSet action, * CloudFormation checks to see if you have the required IAM permission to tag * resources. If you don't, the entire CreateStackSet action fails * with an access denied error, and the stack set is not created.

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

The key-value pairs to associate with this stack set and the stacks created * from it. CloudFormation also propagates these tags to supported resources that * are created in the stacks. A maximum number of 50 tags can be specified.

*

If you specify tags as part of a CreateStackSet action, * CloudFormation checks to see if you have the required IAM permission to tag * resources. If you don't, the entire CreateStackSet action fails * with an access denied error, and the stack set is not created.

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

The key-value pairs to associate with this stack set and the stacks created * from it. CloudFormation also propagates these tags to supported resources that * are created in the stacks. A maximum number of 50 tags can be specified.

*

If you specify tags as part of a CreateStackSet action, * CloudFormation checks to see if you have the required IAM permission to tag * resources. If you don't, the entire CreateStackSet action fails * with an access denied error, and the stack set is not created.

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

The key-value pairs to associate with this stack set and the stacks created * from it. CloudFormation also propagates these tags to supported resources that * are created in the stacks. A maximum number of 50 tags can be specified.

*

If you specify tags as part of a CreateStackSet action, * CloudFormation checks to see if you have the required IAM permission to tag * resources. If you don't, the entire CreateStackSet action fails * with an access denied error, and the stack set is not created.

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

The key-value pairs to associate with this stack set and the stacks created * from it. CloudFormation also propagates these tags to supported resources that * are created in the stacks. A maximum number of 50 tags can be specified.

*

If you specify tags as part of a CreateStackSet action, * CloudFormation checks to see if you have the required IAM permission to tag * resources. If you don't, the entire CreateStackSet action fails * with an access denied error, and the stack set is not created.

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

The key-value pairs to associate with this stack set and the stacks created * from it. CloudFormation also propagates these tags to supported resources that * are created in the stacks. A maximum number of 50 tags can be specified.

*

If you specify tags as part of a CreateStackSet action, * CloudFormation checks to see if you have the required IAM permission to tag * resources. If you don't, the entire CreateStackSet action fails * with an access denied error, and the stack set is not created.

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

The Amazon Resource Name (ARN) of the IAM role to use to create this stack * set.

Specify an IAM role only if you are using customized administrator * roles to control which users or groups can manage specific stack sets within the * same administrator account. For more information, see Prerequisites: * Granting Permissions for Stack Set Operations in the CloudFormation User * Guide.

*/ inline const Aws::String& GetAdministrationRoleARN() const{ return m_administrationRoleARN; } /** *

The Amazon Resource Name (ARN) of the IAM role to use to create this stack * set.

Specify an IAM role only if you are using customized administrator * roles to control which users or groups can manage specific stack sets within the * same administrator account. For more information, see Prerequisites: * Granting Permissions for Stack Set Operations in the CloudFormation User * Guide.

*/ inline bool AdministrationRoleARNHasBeenSet() const { return m_administrationRoleARNHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the IAM role to use to create this stack * set.

Specify an IAM role only if you are using customized administrator * roles to control which users or groups can manage specific stack sets within the * same administrator account. For more information, see Prerequisites: * Granting Permissions for Stack Set Operations in the CloudFormation User * Guide.

*/ inline void SetAdministrationRoleARN(const Aws::String& value) { m_administrationRoleARNHasBeenSet = true; m_administrationRoleARN = value; } /** *

The Amazon Resource Name (ARN) of the IAM role to use to create this stack * set.

Specify an IAM role only if you are using customized administrator * roles to control which users or groups can manage specific stack sets within the * same administrator account. For more information, see Prerequisites: * Granting Permissions for Stack Set Operations in the CloudFormation User * Guide.

*/ inline void SetAdministrationRoleARN(Aws::String&& value) { m_administrationRoleARNHasBeenSet = true; m_administrationRoleARN = std::move(value); } /** *

The Amazon Resource Name (ARN) of the IAM role to use to create this stack * set.

Specify an IAM role only if you are using customized administrator * roles to control which users or groups can manage specific stack sets within the * same administrator account. For more information, see Prerequisites: * Granting Permissions for Stack Set Operations in the CloudFormation User * Guide.

*/ inline void SetAdministrationRoleARN(const char* value) { m_administrationRoleARNHasBeenSet = true; m_administrationRoleARN.assign(value); } /** *

The Amazon Resource Name (ARN) of the IAM role to use to create this stack * set.

Specify an IAM role only if you are using customized administrator * roles to control which users or groups can manage specific stack sets within the * same administrator account. For more information, see Prerequisites: * Granting Permissions for Stack Set Operations in the CloudFormation User * Guide.

*/ inline CreateStackSetRequest& WithAdministrationRoleARN(const Aws::String& value) { SetAdministrationRoleARN(value); return *this;} /** *

The Amazon Resource Name (ARN) of the IAM role to use to create this stack * set.

Specify an IAM role only if you are using customized administrator * roles to control which users or groups can manage specific stack sets within the * same administrator account. For more information, see Prerequisites: * Granting Permissions for Stack Set Operations in the CloudFormation User * Guide.

*/ inline CreateStackSetRequest& WithAdministrationRoleARN(Aws::String&& value) { SetAdministrationRoleARN(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the IAM role to use to create this stack * set.

Specify an IAM role only if you are using customized administrator * roles to control which users or groups can manage specific stack sets within the * same administrator account. For more information, see Prerequisites: * Granting Permissions for Stack Set Operations in the CloudFormation User * Guide.

*/ inline CreateStackSetRequest& WithAdministrationRoleARN(const char* value) { SetAdministrationRoleARN(value); return *this;} /** *

The name of the IAM execution role to use to create the stack set. If you do * not specify an execution role, CloudFormation uses the * AWSCloudFormationStackSetExecutionRole role for the stack set * operation.

Specify an IAM role only if you are using customized execution * roles to control which stack resources users and groups can include in their * stack sets.

*/ inline const Aws::String& GetExecutionRoleName() const{ return m_executionRoleName; } /** *

The name of the IAM execution role to use to create the stack set. If you do * not specify an execution role, CloudFormation uses the * AWSCloudFormationStackSetExecutionRole role for the stack set * operation.

Specify an IAM role only if you are using customized execution * roles to control which stack resources users and groups can include in their * stack sets.

*/ inline bool ExecutionRoleNameHasBeenSet() const { return m_executionRoleNameHasBeenSet; } /** *

The name of the IAM execution role to use to create the stack set. If you do * not specify an execution role, CloudFormation uses the * AWSCloudFormationStackSetExecutionRole role for the stack set * operation.

Specify an IAM role only if you are using customized execution * roles to control which stack resources users and groups can include in their * stack sets.

*/ inline void SetExecutionRoleName(const Aws::String& value) { m_executionRoleNameHasBeenSet = true; m_executionRoleName = value; } /** *

The name of the IAM execution role to use to create the stack set. If you do * not specify an execution role, CloudFormation uses the * AWSCloudFormationStackSetExecutionRole role for the stack set * operation.

Specify an IAM role only if you are using customized execution * roles to control which stack resources users and groups can include in their * stack sets.

*/ inline void SetExecutionRoleName(Aws::String&& value) { m_executionRoleNameHasBeenSet = true; m_executionRoleName = std::move(value); } /** *

The name of the IAM execution role to use to create the stack set. If you do * not specify an execution role, CloudFormation uses the * AWSCloudFormationStackSetExecutionRole role for the stack set * operation.

Specify an IAM role only if you are using customized execution * roles to control which stack resources users and groups can include in their * stack sets.

*/ inline void SetExecutionRoleName(const char* value) { m_executionRoleNameHasBeenSet = true; m_executionRoleName.assign(value); } /** *

The name of the IAM execution role to use to create the stack set. If you do * not specify an execution role, CloudFormation uses the * AWSCloudFormationStackSetExecutionRole role for the stack set * operation.

Specify an IAM role only if you are using customized execution * roles to control which stack resources users and groups can include in their * stack sets.

*/ inline CreateStackSetRequest& WithExecutionRoleName(const Aws::String& value) { SetExecutionRoleName(value); return *this;} /** *

The name of the IAM execution role to use to create the stack set. If you do * not specify an execution role, CloudFormation uses the * AWSCloudFormationStackSetExecutionRole role for the stack set * operation.

Specify an IAM role only if you are using customized execution * roles to control which stack resources users and groups can include in their * stack sets.

*/ inline CreateStackSetRequest& WithExecutionRoleName(Aws::String&& value) { SetExecutionRoleName(std::move(value)); return *this;} /** *

The name of the IAM execution role to use to create the stack set. If you do * not specify an execution role, CloudFormation uses the * AWSCloudFormationStackSetExecutionRole role for the stack set * operation.

Specify an IAM role only if you are using customized execution * roles to control which stack resources users and groups can include in their * stack sets.

*/ inline CreateStackSetRequest& WithExecutionRoleName(const char* value) { SetExecutionRoleName(value); return *this;} /** *

Describes how the IAM roles required for stack set operations are created. By * default, SELF-MANAGED is specified.

*/ inline const PermissionModels& GetPermissionModel() const{ return m_permissionModel; } /** *

Describes how the IAM roles required for stack set operations are created. By * default, SELF-MANAGED is specified.

*/ inline bool PermissionModelHasBeenSet() const { return m_permissionModelHasBeenSet; } /** *

Describes how the IAM roles required for stack set operations are created. By * default, SELF-MANAGED is specified.

*/ inline void SetPermissionModel(const PermissionModels& value) { m_permissionModelHasBeenSet = true; m_permissionModel = value; } /** *

Describes how the IAM roles required for stack set operations are created. By * default, SELF-MANAGED is specified.

*/ inline void SetPermissionModel(PermissionModels&& value) { m_permissionModelHasBeenSet = true; m_permissionModel = std::move(value); } /** *

Describes how the IAM roles required for stack set operations are created. By * default, SELF-MANAGED is specified.

*/ inline CreateStackSetRequest& WithPermissionModel(const PermissionModels& value) { SetPermissionModel(value); return *this;} /** *

Describes how the IAM roles required for stack set operations are created. By * default, SELF-MANAGED is specified.

*/ inline CreateStackSetRequest& WithPermissionModel(PermissionModels&& value) { SetPermissionModel(std::move(value)); return *this;} /** *

Describes whether StackSets automatically deploys to Organizations accounts * that are added to the target organization or organizational unit (OU). Specify * only if PermissionModel is SERVICE_MANAGED.

*/ inline const AutoDeployment& GetAutoDeployment() const{ return m_autoDeployment; } /** *

Describes whether StackSets automatically deploys to Organizations accounts * that are added to the target organization or organizational unit (OU). Specify * only if PermissionModel is SERVICE_MANAGED.

*/ inline bool AutoDeploymentHasBeenSet() const { return m_autoDeploymentHasBeenSet; } /** *

Describes whether StackSets automatically deploys to Organizations accounts * that are added to the target organization or organizational unit (OU). Specify * only if PermissionModel is SERVICE_MANAGED.

*/ inline void SetAutoDeployment(const AutoDeployment& value) { m_autoDeploymentHasBeenSet = true; m_autoDeployment = value; } /** *

Describes whether StackSets automatically deploys to Organizations accounts * that are added to the target organization or organizational unit (OU). Specify * only if PermissionModel is SERVICE_MANAGED.

*/ inline void SetAutoDeployment(AutoDeployment&& value) { m_autoDeploymentHasBeenSet = true; m_autoDeployment = std::move(value); } /** *

Describes whether StackSets automatically deploys to Organizations accounts * that are added to the target organization or organizational unit (OU). Specify * only if PermissionModel is SERVICE_MANAGED.

*/ inline CreateStackSetRequest& WithAutoDeployment(const AutoDeployment& value) { SetAutoDeployment(value); return *this;} /** *

Describes whether StackSets automatically deploys to Organizations accounts * that are added to the target organization or organizational unit (OU). Specify * only if PermissionModel is SERVICE_MANAGED.

*/ inline CreateStackSetRequest& WithAutoDeployment(AutoDeployment&& value) { SetAutoDeployment(std::move(value)); return *this;} /** *

[Service-managed permissions] Specifies whether you are acting as an account * administrator in the organization's management account or as a delegated * administrator in a member account.

By default, SELF is * specified. Use SELF for stack sets with self-managed * permissions.

  • To create a stack set with service-managed * permissions while signed in to the management account, specify * SELF.

  • To create a stack set with service-managed * permissions while signed in to a delegated administrator account, specify * DELEGATED_ADMIN.

    Your Amazon Web Services account must be * registered as a delegated admin in the management account. For more information, * see Register * a delegated administrator in the CloudFormation User Guide.

  • *

Stack sets with service-managed permissions are created in the * management account, including stack sets that are created by delegated * administrators.

*/ inline const CallAs& GetCallAs() const{ return m_callAs; } /** *

[Service-managed permissions] Specifies whether you are acting as an account * administrator in the organization's management account or as a delegated * administrator in a member account.

By default, SELF is * specified. Use SELF for stack sets with self-managed * permissions.

  • To create a stack set with service-managed * permissions while signed in to the management account, specify * SELF.

  • To create a stack set with service-managed * permissions while signed in to a delegated administrator account, specify * DELEGATED_ADMIN.

    Your Amazon Web Services account must be * registered as a delegated admin in the management account. For more information, * see Register * a delegated administrator in the CloudFormation User Guide.

  • *

Stack sets with service-managed permissions are created in the * management account, including stack sets that are created by delegated * administrators.

*/ inline bool CallAsHasBeenSet() const { return m_callAsHasBeenSet; } /** *

[Service-managed permissions] Specifies whether you are acting as an account * administrator in the organization's management account or as a delegated * administrator in a member account.

By default, SELF is * specified. Use SELF for stack sets with self-managed * permissions.

  • To create a stack set with service-managed * permissions while signed in to the management account, specify * SELF.

  • To create a stack set with service-managed * permissions while signed in to a delegated administrator account, specify * DELEGATED_ADMIN.

    Your Amazon Web Services account must be * registered as a delegated admin in the management account. For more information, * see Register * a delegated administrator in the CloudFormation User Guide.

  • *

Stack sets with service-managed permissions are created in the * management account, including stack sets that are created by delegated * administrators.

*/ inline void SetCallAs(const CallAs& value) { m_callAsHasBeenSet = true; m_callAs = value; } /** *

[Service-managed permissions] Specifies whether you are acting as an account * administrator in the organization's management account or as a delegated * administrator in a member account.

By default, SELF is * specified. Use SELF for stack sets with self-managed * permissions.

  • To create a stack set with service-managed * permissions while signed in to the management account, specify * SELF.

  • To create a stack set with service-managed * permissions while signed in to a delegated administrator account, specify * DELEGATED_ADMIN.

    Your Amazon Web Services account must be * registered as a delegated admin in the management account. For more information, * see Register * a delegated administrator in the CloudFormation User Guide.

  • *

Stack sets with service-managed permissions are created in the * management account, including stack sets that are created by delegated * administrators.

*/ inline void SetCallAs(CallAs&& value) { m_callAsHasBeenSet = true; m_callAs = std::move(value); } /** *

[Service-managed permissions] Specifies whether you are acting as an account * administrator in the organization's management account or as a delegated * administrator in a member account.

By default, SELF is * specified. Use SELF for stack sets with self-managed * permissions.

  • To create a stack set with service-managed * permissions while signed in to the management account, specify * SELF.

  • To create a stack set with service-managed * permissions while signed in to a delegated administrator account, specify * DELEGATED_ADMIN.

    Your Amazon Web Services account must be * registered as a delegated admin in the management account. For more information, * see Register * a delegated administrator in the CloudFormation User Guide.

  • *

Stack sets with service-managed permissions are created in the * management account, including stack sets that are created by delegated * administrators.

*/ inline CreateStackSetRequest& WithCallAs(const CallAs& value) { SetCallAs(value); return *this;} /** *

[Service-managed permissions] Specifies whether you are acting as an account * administrator in the organization's management account or as a delegated * administrator in a member account.

By default, SELF is * specified. Use SELF for stack sets with self-managed * permissions.

  • To create a stack set with service-managed * permissions while signed in to the management account, specify * SELF.

  • To create a stack set with service-managed * permissions while signed in to a delegated administrator account, specify * DELEGATED_ADMIN.

    Your Amazon Web Services account must be * registered as a delegated admin in the management account. For more information, * see Register * a delegated administrator in the CloudFormation User Guide.

  • *

Stack sets with service-managed permissions are created in the * management account, including stack sets that are created by delegated * administrators.

*/ inline CreateStackSetRequest& WithCallAs(CallAs&& value) { SetCallAs(std::move(value)); return *this;} /** *

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

If you don't specify an operation ID, the SDK * generates one automatically.

*/ inline const Aws::String& GetClientRequestToken() const{ return m_clientRequestToken; } /** *

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

If you don't specify an operation ID, the SDK * generates one automatically.

*/ inline bool ClientRequestTokenHasBeenSet() const { return m_clientRequestTokenHasBeenSet; } /** *

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

If you don't specify an operation ID, the SDK * generates one automatically.

*/ inline void SetClientRequestToken(const Aws::String& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = value; } /** *

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

If you don't specify an operation ID, the SDK * generates one automatically.

*/ inline void SetClientRequestToken(Aws::String&& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = std::move(value); } /** *

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

If you don't specify an operation ID, the SDK * generates one automatically.

*/ inline void SetClientRequestToken(const char* value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken.assign(value); } /** *

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

If you don't specify an operation ID, the SDK * generates one automatically.

*/ inline CreateStackSetRequest& WithClientRequestToken(const Aws::String& value) { SetClientRequestToken(value); return *this;} /** *

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

If you don't specify an operation ID, the SDK * generates one automatically.

*/ inline CreateStackSetRequest& WithClientRequestToken(Aws::String&& value) { SetClientRequestToken(std::move(value)); return *this;} /** *

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

If you don't specify an operation ID, the SDK * generates one automatically.

*/ inline CreateStackSetRequest& WithClientRequestToken(const char* value) { SetClientRequestToken(value); return *this;} /** *

Describes whether StackSets performs non-conflicting operations concurrently * and queues conflicting operations.

*/ inline const ManagedExecution& GetManagedExecution() const{ return m_managedExecution; } /** *

Describes whether StackSets performs non-conflicting operations concurrently * and queues conflicting operations.

*/ inline bool ManagedExecutionHasBeenSet() const { return m_managedExecutionHasBeenSet; } /** *

Describes whether StackSets performs non-conflicting operations concurrently * and queues conflicting operations.

*/ inline void SetManagedExecution(const ManagedExecution& value) { m_managedExecutionHasBeenSet = true; m_managedExecution = value; } /** *

Describes whether StackSets performs non-conflicting operations concurrently * and queues conflicting operations.

*/ inline void SetManagedExecution(ManagedExecution&& value) { m_managedExecutionHasBeenSet = true; m_managedExecution = std::move(value); } /** *

Describes whether StackSets performs non-conflicting operations concurrently * and queues conflicting operations.

*/ inline CreateStackSetRequest& WithManagedExecution(const ManagedExecution& value) { SetManagedExecution(value); return *this;} /** *

Describes whether StackSets performs non-conflicting operations concurrently * and queues conflicting operations.

*/ inline CreateStackSetRequest& WithManagedExecution(ManagedExecution&& value) { SetManagedExecution(std::move(value)); return *this;} private: Aws::String m_stackSetName; bool m_stackSetNameHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::String m_templateBody; bool m_templateBodyHasBeenSet = false; Aws::String m_templateURL; bool m_templateURLHasBeenSet = false; Aws::String m_stackId; bool m_stackIdHasBeenSet = false; Aws::Vector m_parameters; bool m_parametersHasBeenSet = false; Aws::Vector m_capabilities; bool m_capabilitiesHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::String m_administrationRoleARN; bool m_administrationRoleARNHasBeenSet = false; Aws::String m_executionRoleName; bool m_executionRoleNameHasBeenSet = false; PermissionModels m_permissionModel; bool m_permissionModelHasBeenSet = false; AutoDeployment m_autoDeployment; bool m_autoDeploymentHasBeenSet = false; CallAs m_callAs; bool m_callAsHasBeenSet = false; Aws::String m_clientRequestToken; bool m_clientRequestTokenHasBeenSet = false; ManagedExecution m_managedExecution; bool m_managedExecutionHasBeenSet = false; }; } // namespace Model } // namespace CloudFormation } // namespace Aws