/** * 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 Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace CloudFormation { namespace Model { /** *

The Stack data type.

See Also:

AWS * API Reference

*/ class Stack { public: AWS_CLOUDFORMATION_API Stack(); AWS_CLOUDFORMATION_API Stack(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_CLOUDFORMATION_API Stack& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_CLOUDFORMATION_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_CLOUDFORMATION_API void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

Unique identifier of the stack.

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

Unique identifier of the stack.

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

Unique identifier of the stack.

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

Unique identifier of the stack.

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

Unique identifier of the stack.

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

Unique identifier of the stack.

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

Unique identifier of the stack.

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

Unique identifier of the stack.

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

The name associated with the stack.

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

The name associated with the stack.

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

The name associated with the stack.

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

The name associated with the stack.

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

The name associated with the stack.

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

The name associated with the stack.

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

The name associated with the stack.

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

The name associated with the stack.

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

The unique ID of the change set.

*/ inline const Aws::String& GetChangeSetId() const{ return m_changeSetId; } /** *

The unique ID of the change set.

*/ inline bool ChangeSetIdHasBeenSet() const { return m_changeSetIdHasBeenSet; } /** *

The unique ID of the change set.

*/ inline void SetChangeSetId(const Aws::String& value) { m_changeSetIdHasBeenSet = true; m_changeSetId = value; } /** *

The unique ID of the change set.

*/ inline void SetChangeSetId(Aws::String&& value) { m_changeSetIdHasBeenSet = true; m_changeSetId = std::move(value); } /** *

The unique ID of the change set.

*/ inline void SetChangeSetId(const char* value) { m_changeSetIdHasBeenSet = true; m_changeSetId.assign(value); } /** *

The unique ID of the change set.

*/ inline Stack& WithChangeSetId(const Aws::String& value) { SetChangeSetId(value); return *this;} /** *

The unique ID of the change set.

*/ inline Stack& WithChangeSetId(Aws::String&& value) { SetChangeSetId(std::move(value)); return *this;} /** *

The unique ID of the change set.

*/ inline Stack& WithChangeSetId(const char* value) { SetChangeSetId(value); return *this;} /** *

A user-defined description associated with the stack.

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

A user-defined description associated with the stack.

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

A user-defined description associated with the stack.

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

A user-defined description associated with the stack.

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

A user-defined description associated with the stack.

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

A user-defined description associated with the stack.

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

A user-defined description associated with the stack.

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

A user-defined description associated with the stack.

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

A list of Parameter structures.

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

A list of Parameter structures.

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

A list of Parameter structures.

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

A list of Parameter structures.

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

A list of Parameter structures.

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

A list of Parameter structures.

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

A list of Parameter structures.

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

A list of Parameter structures.

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

The time at which the stack was created.

*/ inline const Aws::Utils::DateTime& GetCreationTime() const{ return m_creationTime; } /** *

The time at which the stack was created.

*/ inline bool CreationTimeHasBeenSet() const { return m_creationTimeHasBeenSet; } /** *

The time at which the stack was created.

*/ inline void SetCreationTime(const Aws::Utils::DateTime& value) { m_creationTimeHasBeenSet = true; m_creationTime = value; } /** *

The time at which the stack was created.

*/ inline void SetCreationTime(Aws::Utils::DateTime&& value) { m_creationTimeHasBeenSet = true; m_creationTime = std::move(value); } /** *

The time at which the stack was created.

*/ inline Stack& WithCreationTime(const Aws::Utils::DateTime& value) { SetCreationTime(value); return *this;} /** *

The time at which the stack was created.

*/ inline Stack& WithCreationTime(Aws::Utils::DateTime&& value) { SetCreationTime(std::move(value)); return *this;} /** *

The time the stack was deleted.

*/ inline const Aws::Utils::DateTime& GetDeletionTime() const{ return m_deletionTime; } /** *

The time the stack was deleted.

*/ inline bool DeletionTimeHasBeenSet() const { return m_deletionTimeHasBeenSet; } /** *

The time the stack was deleted.

*/ inline void SetDeletionTime(const Aws::Utils::DateTime& value) { m_deletionTimeHasBeenSet = true; m_deletionTime = value; } /** *

The time the stack was deleted.

*/ inline void SetDeletionTime(Aws::Utils::DateTime&& value) { m_deletionTimeHasBeenSet = true; m_deletionTime = std::move(value); } /** *

The time the stack was deleted.

*/ inline Stack& WithDeletionTime(const Aws::Utils::DateTime& value) { SetDeletionTime(value); return *this;} /** *

The time the stack was deleted.

*/ inline Stack& WithDeletionTime(Aws::Utils::DateTime&& value) { SetDeletionTime(std::move(value)); return *this;} /** *

The time the stack was last updated. This field will only be returned if the * stack has been updated at least once.

*/ inline const Aws::Utils::DateTime& GetLastUpdatedTime() const{ return m_lastUpdatedTime; } /** *

The time the stack was last updated. This field will only be returned if the * stack has been updated at least once.

*/ inline bool LastUpdatedTimeHasBeenSet() const { return m_lastUpdatedTimeHasBeenSet; } /** *

The time the stack was last updated. This field will only be returned if the * stack has been updated at least once.

*/ inline void SetLastUpdatedTime(const Aws::Utils::DateTime& value) { m_lastUpdatedTimeHasBeenSet = true; m_lastUpdatedTime = value; } /** *

The time the stack was last updated. This field will only be returned if the * stack has been updated at least once.

*/ inline void SetLastUpdatedTime(Aws::Utils::DateTime&& value) { m_lastUpdatedTimeHasBeenSet = true; m_lastUpdatedTime = std::move(value); } /** *

The time the stack was last updated. This field will only be returned if the * stack has been updated at least once.

*/ inline Stack& WithLastUpdatedTime(const Aws::Utils::DateTime& value) { SetLastUpdatedTime(value); return *this;} /** *

The time the stack was last updated. This field will only be returned if the * stack has been updated at least once.

*/ inline Stack& WithLastUpdatedTime(Aws::Utils::DateTime&& value) { SetLastUpdatedTime(std::move(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 Stack& 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 Stack& WithRollbackConfiguration(RollbackConfiguration&& value) { SetRollbackConfiguration(std::move(value)); return *this;} /** *

Current status of the stack.

*/ inline const StackStatus& GetStackStatus() const{ return m_stackStatus; } /** *

Current status of the stack.

*/ inline bool StackStatusHasBeenSet() const { return m_stackStatusHasBeenSet; } /** *

Current status of the stack.

*/ inline void SetStackStatus(const StackStatus& value) { m_stackStatusHasBeenSet = true; m_stackStatus = value; } /** *

Current status of the stack.

*/ inline void SetStackStatus(StackStatus&& value) { m_stackStatusHasBeenSet = true; m_stackStatus = std::move(value); } /** *

Current status of the stack.

*/ inline Stack& WithStackStatus(const StackStatus& value) { SetStackStatus(value); return *this;} /** *

Current status of the stack.

*/ inline Stack& WithStackStatus(StackStatus&& value) { SetStackStatus(std::move(value)); return *this;} /** *

Success/failure message associated with the stack status.

*/ inline const Aws::String& GetStackStatusReason() const{ return m_stackStatusReason; } /** *

Success/failure message associated with the stack status.

*/ inline bool StackStatusReasonHasBeenSet() const { return m_stackStatusReasonHasBeenSet; } /** *

Success/failure message associated with the stack status.

*/ inline void SetStackStatusReason(const Aws::String& value) { m_stackStatusReasonHasBeenSet = true; m_stackStatusReason = value; } /** *

Success/failure message associated with the stack status.

*/ inline void SetStackStatusReason(Aws::String&& value) { m_stackStatusReasonHasBeenSet = true; m_stackStatusReason = std::move(value); } /** *

Success/failure message associated with the stack status.

*/ inline void SetStackStatusReason(const char* value) { m_stackStatusReasonHasBeenSet = true; m_stackStatusReason.assign(value); } /** *

Success/failure message associated with the stack status.

*/ inline Stack& WithStackStatusReason(const Aws::String& value) { SetStackStatusReason(value); return *this;} /** *

Success/failure message associated with the stack status.

*/ inline Stack& WithStackStatusReason(Aws::String&& value) { SetStackStatusReason(std::move(value)); return *this;} /** *

Success/failure message associated with the stack status.

*/ inline Stack& WithStackStatusReason(const char* value) { SetStackStatusReason(value); return *this;} /** *

Boolean to enable or disable rollback on stack creation failures:

    *
  • true: disable rollback.

  • * false: enable rollback.

*/ inline bool GetDisableRollback() const{ return m_disableRollback; } /** *

Boolean to enable or disable rollback on stack creation failures:

    *
  • true: disable rollback.

  • * false: enable rollback.

*/ inline bool DisableRollbackHasBeenSet() const { return m_disableRollbackHasBeenSet; } /** *

Boolean to enable or disable rollback on stack creation failures:

    *
  • true: disable rollback.

  • * false: enable rollback.

*/ inline void SetDisableRollback(bool value) { m_disableRollbackHasBeenSet = true; m_disableRollback = value; } /** *

Boolean to enable or disable rollback on stack creation failures:

    *
  • true: disable rollback.

  • * false: enable rollback.

*/ inline Stack& WithDisableRollback(bool value) { SetDisableRollback(value); return *this;} /** *

Amazon SNS topic Amazon Resource Names (ARNs) to which stack related events * are published.

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

Amazon SNS topic Amazon Resource Names (ARNs) to which stack related events * are published.

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

Amazon SNS topic Amazon Resource Names (ARNs) to which stack related events * are published.

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

Amazon SNS topic Amazon Resource Names (ARNs) to which stack related events * are published.

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

Amazon SNS topic Amazon Resource Names (ARNs) to which stack related events * are published.

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

Amazon SNS topic Amazon Resource Names (ARNs) to which stack related events * are published.

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

Amazon SNS topic Amazon Resource Names (ARNs) to which stack related events * are published.

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

Amazon SNS topic Amazon Resource Names (ARNs) to which stack related events * are published.

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

Amazon SNS topic Amazon Resource Names (ARNs) to which stack related events * are published.

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

The amount of time within which stack creation should complete.

*/ inline int GetTimeoutInMinutes() const{ return m_timeoutInMinutes; } /** *

The amount of time within which stack creation should complete.

*/ inline bool TimeoutInMinutesHasBeenSet() const { return m_timeoutInMinutesHasBeenSet; } /** *

The amount of time within which stack creation should complete.

*/ inline void SetTimeoutInMinutes(int value) { m_timeoutInMinutesHasBeenSet = true; m_timeoutInMinutes = value; } /** *

The amount of time within which stack creation should complete.

*/ inline Stack& WithTimeoutInMinutes(int value) { SetTimeoutInMinutes(value); return *this;} /** *

The capabilities allowed in the stack.

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

The capabilities allowed in the stack.

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

The capabilities allowed in the stack.

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

The capabilities allowed in the stack.

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

The capabilities allowed in the stack.

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

The capabilities allowed in the stack.

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

The capabilities allowed in the stack.

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

The capabilities allowed in the stack.

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

A list of output structures.

*/ inline const Aws::Vector& GetOutputs() const{ return m_outputs; } /** *

A list of output structures.

*/ inline bool OutputsHasBeenSet() const { return m_outputsHasBeenSet; } /** *

A list of output structures.

*/ inline void SetOutputs(const Aws::Vector& value) { m_outputsHasBeenSet = true; m_outputs = value; } /** *

A list of output structures.

*/ inline void SetOutputs(Aws::Vector&& value) { m_outputsHasBeenSet = true; m_outputs = std::move(value); } /** *

A list of output structures.

*/ inline Stack& WithOutputs(const Aws::Vector& value) { SetOutputs(value); return *this;} /** *

A list of output structures.

*/ inline Stack& WithOutputs(Aws::Vector&& value) { SetOutputs(std::move(value)); return *this;} /** *

A list of output structures.

*/ inline Stack& AddOutputs(const Output& value) { m_outputsHasBeenSet = true; m_outputs.push_back(value); return *this; } /** *

A list of output structures.

*/ inline Stack& AddOutputs(Output&& value) { m_outputsHasBeenSet = true; m_outputs.push_back(std::move(value)); return *this; } /** *

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) * role that's associated with the stack. During a stack operation, CloudFormation * uses this role's credentials to make calls on your behalf.

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

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) * role that's associated with the stack. During a stack operation, CloudFormation * uses this role's credentials to make calls on your behalf.

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

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) * role that's associated with the stack. During a stack operation, CloudFormation * uses this role's credentials to make calls on your behalf.

*/ 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's associated with the stack. During a stack operation, CloudFormation * uses this role's credentials to make calls on your behalf.

*/ 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's associated with the stack. During a stack operation, CloudFormation * uses this role's credentials to make calls on your behalf.

*/ 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's associated with the stack. During a stack operation, CloudFormation * uses this role's credentials to make calls on your behalf.

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

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) * role that's associated with the stack. During a stack operation, CloudFormation * uses this role's credentials to make calls on your behalf.

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

The Amazon Resource Name (ARN) of an Identity and Access Management (IAM) * role that's associated with the stack. During a stack operation, CloudFormation * uses this role's credentials to make calls on your behalf.

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

A list of Tags that specify information about the stack.

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

A list of Tags that specify information about the stack.

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

A list of Tags that specify information about the stack.

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

A list of Tags that specify information about the stack.

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

A list of Tags that specify information about the stack.

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

A list of Tags that specify information about the stack.

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

A list of Tags that specify information about the stack.

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

A list of Tags that specify information about the stack.

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

Whether termination protection is enabled for the stack.

For nested * stacks, termination protection is set on the root stack and can't be changed * directly on the nested stack. For more information, see Protecting * a Stack From Being Deleted in the CloudFormation User Guide.

*/ inline bool GetEnableTerminationProtection() const{ return m_enableTerminationProtection; } /** *

Whether termination protection is enabled for the stack.

For nested * stacks, termination protection is set on the root stack and can't be changed * directly on the nested stack. For more information, see Protecting * a Stack From Being Deleted in the CloudFormation User Guide.

*/ inline bool EnableTerminationProtectionHasBeenSet() const { return m_enableTerminationProtectionHasBeenSet; } /** *

Whether termination protection is enabled for the stack.

For nested * stacks, termination protection is set on the root stack and can't be changed * directly on the nested stack. For more information, see Protecting * a Stack From Being Deleted in the CloudFormation User Guide.

*/ inline void SetEnableTerminationProtection(bool value) { m_enableTerminationProtectionHasBeenSet = true; m_enableTerminationProtection = value; } /** *

Whether termination protection is enabled for the stack.

For nested * stacks, termination protection is set on the root stack and can't be changed * directly on the nested stack. For more information, see Protecting * a Stack From Being Deleted in the CloudFormation User Guide.

*/ inline Stack& WithEnableTerminationProtection(bool value) { SetEnableTerminationProtection(value); return *this;} /** *

For nested stacks--stacks created as resources for another stack--the stack * ID of the direct parent of this stack. For the first level of nested stacks, the * root stack is also the parent stack.

For more information, see Working * with Nested Stacks in the CloudFormation User Guide.

*/ inline const Aws::String& GetParentId() const{ return m_parentId; } /** *

For nested stacks--stacks created as resources for another stack--the stack * ID of the direct parent of this stack. For the first level of nested stacks, the * root stack is also the parent stack.

For more information, see Working * with Nested Stacks in the CloudFormation User Guide.

*/ inline bool ParentIdHasBeenSet() const { return m_parentIdHasBeenSet; } /** *

For nested stacks--stacks created as resources for another stack--the stack * ID of the direct parent of this stack. For the first level of nested stacks, the * root stack is also the parent stack.

For more information, see Working * with Nested Stacks in the CloudFormation User Guide.

*/ inline void SetParentId(const Aws::String& value) { m_parentIdHasBeenSet = true; m_parentId = value; } /** *

For nested stacks--stacks created as resources for another stack--the stack * ID of the direct parent of this stack. For the first level of nested stacks, the * root stack is also the parent stack.

For more information, see Working * with Nested Stacks in the CloudFormation User Guide.

*/ inline void SetParentId(Aws::String&& value) { m_parentIdHasBeenSet = true; m_parentId = std::move(value); } /** *

For nested stacks--stacks created as resources for another stack--the stack * ID of the direct parent of this stack. For the first level of nested stacks, the * root stack is also the parent stack.

For more information, see Working * with Nested Stacks in the CloudFormation User Guide.

*/ inline void SetParentId(const char* value) { m_parentIdHasBeenSet = true; m_parentId.assign(value); } /** *

For nested stacks--stacks created as resources for another stack--the stack * ID of the direct parent of this stack. For the first level of nested stacks, the * root stack is also the parent stack.

For more information, see Working * with Nested Stacks in the CloudFormation User Guide.

*/ inline Stack& WithParentId(const Aws::String& value) { SetParentId(value); return *this;} /** *

For nested stacks--stacks created as resources for another stack--the stack * ID of the direct parent of this stack. For the first level of nested stacks, the * root stack is also the parent stack.

For more information, see Working * with Nested Stacks in the CloudFormation User Guide.

*/ inline Stack& WithParentId(Aws::String&& value) { SetParentId(std::move(value)); return *this;} /** *

For nested stacks--stacks created as resources for another stack--the stack * ID of the direct parent of this stack. For the first level of nested stacks, the * root stack is also the parent stack.

For more information, see Working * with Nested Stacks in the CloudFormation User Guide.

*/ inline Stack& WithParentId(const char* value) { SetParentId(value); return *this;} /** *

For nested stacks--stacks created as resources for another stack--the stack * ID of the top-level stack to which the nested stack ultimately belongs.

*

For more information, see Working * with Nested Stacks in the CloudFormation User Guide.

*/ inline const Aws::String& GetRootId() const{ return m_rootId; } /** *

For nested stacks--stacks created as resources for another stack--the stack * ID of the top-level stack to which the nested stack ultimately belongs.

*

For more information, see Working * with Nested Stacks in the CloudFormation User Guide.

*/ inline bool RootIdHasBeenSet() const { return m_rootIdHasBeenSet; } /** *

For nested stacks--stacks created as resources for another stack--the stack * ID of the top-level stack to which the nested stack ultimately belongs.

*

For more information, see Working * with Nested Stacks in the CloudFormation User Guide.

*/ inline void SetRootId(const Aws::String& value) { m_rootIdHasBeenSet = true; m_rootId = value; } /** *

For nested stacks--stacks created as resources for another stack--the stack * ID of the top-level stack to which the nested stack ultimately belongs.

*

For more information, see Working * with Nested Stacks in the CloudFormation User Guide.

*/ inline void SetRootId(Aws::String&& value) { m_rootIdHasBeenSet = true; m_rootId = std::move(value); } /** *

For nested stacks--stacks created as resources for another stack--the stack * ID of the top-level stack to which the nested stack ultimately belongs.

*

For more information, see Working * with Nested Stacks in the CloudFormation User Guide.

*/ inline void SetRootId(const char* value) { m_rootIdHasBeenSet = true; m_rootId.assign(value); } /** *

For nested stacks--stacks created as resources for another stack--the stack * ID of the top-level stack to which the nested stack ultimately belongs.

*

For more information, see Working * with Nested Stacks in the CloudFormation User Guide.

*/ inline Stack& WithRootId(const Aws::String& value) { SetRootId(value); return *this;} /** *

For nested stacks--stacks created as resources for another stack--the stack * ID of the top-level stack to which the nested stack ultimately belongs.

*

For more information, see Working * with Nested Stacks in the CloudFormation User Guide.

*/ inline Stack& WithRootId(Aws::String&& value) { SetRootId(std::move(value)); return *this;} /** *

For nested stacks--stacks created as resources for another stack--the stack * ID of the top-level stack to which the nested stack ultimately belongs.

*

For more information, see Working * with Nested Stacks in the CloudFormation User Guide.

*/ inline Stack& WithRootId(const char* value) { SetRootId(value); return *this;} /** *

Information about whether a stack's actual configuration differs, or has * drifted, from its expected configuration, as defined in the stack * template and any values specified as template parameters. For more information, * see Detecting * Unregulated Configuration Changes to Stacks and Resources.

*/ inline const StackDriftInformation& GetDriftInformation() const{ return m_driftInformation; } /** *

Information about whether a stack's actual configuration differs, or has * drifted, from its expected configuration, as defined in the stack * template and any values specified as template parameters. For more information, * see Detecting * Unregulated Configuration Changes to Stacks and Resources.

*/ inline bool DriftInformationHasBeenSet() const { return m_driftInformationHasBeenSet; } /** *

Information about whether a stack's actual configuration differs, or has * drifted, from its expected configuration, as defined in the stack * template and any values specified as template parameters. For more information, * see Detecting * Unregulated Configuration Changes to Stacks and Resources.

*/ inline void SetDriftInformation(const StackDriftInformation& value) { m_driftInformationHasBeenSet = true; m_driftInformation = value; } /** *

Information about whether a stack's actual configuration differs, or has * drifted, from its expected configuration, as defined in the stack * template and any values specified as template parameters. For more information, * see Detecting * Unregulated Configuration Changes to Stacks and Resources.

*/ inline void SetDriftInformation(StackDriftInformation&& value) { m_driftInformationHasBeenSet = true; m_driftInformation = std::move(value); } /** *

Information about whether a stack's actual configuration differs, or has * drifted, from its expected configuration, as defined in the stack * template and any values specified as template parameters. For more information, * see Detecting * Unregulated Configuration Changes to Stacks and Resources.

*/ inline Stack& WithDriftInformation(const StackDriftInformation& value) { SetDriftInformation(value); return *this;} /** *

Information about whether a stack's actual configuration differs, or has * drifted, from its expected configuration, as defined in the stack * template and any values specified as template parameters. For more information, * see Detecting * Unregulated Configuration Changes to Stacks and Resources.

*/ inline Stack& WithDriftInformation(StackDriftInformation&& value) { SetDriftInformation(std::move(value)); return *this;} /** *

This deletion policy deletes newly created resources, but retains existing * resources, when a stack operation is rolled back. This ensures new, empty, and * unused resources are deleted, while critical resources and their data are * retained. RetainExceptOnCreate can be specified for any resource * that supports the * DeletionPolicy attribute.

*/ inline bool GetRetainExceptOnCreate() const{ return m_retainExceptOnCreate; } /** *

This deletion policy deletes newly created resources, but retains existing * resources, when a stack operation is rolled back. This ensures new, empty, and * unused resources are deleted, while critical resources and their data are * retained. RetainExceptOnCreate can be specified for any resource * that supports the * DeletionPolicy attribute.

*/ inline bool RetainExceptOnCreateHasBeenSet() const { return m_retainExceptOnCreateHasBeenSet; } /** *

This deletion policy deletes newly created resources, but retains existing * resources, when a stack operation is rolled back. This ensures new, empty, and * unused resources are deleted, while critical resources and their data are * retained. RetainExceptOnCreate can be specified for any resource * that supports the * DeletionPolicy attribute.

*/ inline void SetRetainExceptOnCreate(bool value) { m_retainExceptOnCreateHasBeenSet = true; m_retainExceptOnCreate = value; } /** *

This deletion policy deletes newly created resources, but retains existing * resources, when a stack operation is rolled back. This ensures new, empty, and * unused resources are deleted, while critical resources and their data are * retained. RetainExceptOnCreate can be specified for any resource * that supports the * DeletionPolicy attribute.

*/ inline Stack& WithRetainExceptOnCreate(bool value) { SetRetainExceptOnCreate(value); return *this;} private: Aws::String m_stackId; bool m_stackIdHasBeenSet = false; Aws::String m_stackName; bool m_stackNameHasBeenSet = false; Aws::String m_changeSetId; bool m_changeSetIdHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::Vector m_parameters; bool m_parametersHasBeenSet = false; Aws::Utils::DateTime m_creationTime; bool m_creationTimeHasBeenSet = false; Aws::Utils::DateTime m_deletionTime; bool m_deletionTimeHasBeenSet = false; Aws::Utils::DateTime m_lastUpdatedTime; bool m_lastUpdatedTimeHasBeenSet = false; RollbackConfiguration m_rollbackConfiguration; bool m_rollbackConfigurationHasBeenSet = false; StackStatus m_stackStatus; bool m_stackStatusHasBeenSet = false; Aws::String m_stackStatusReason; bool m_stackStatusReasonHasBeenSet = false; bool m_disableRollback; bool m_disableRollbackHasBeenSet = false; Aws::Vector m_notificationARNs; bool m_notificationARNsHasBeenSet = false; int m_timeoutInMinutes; bool m_timeoutInMinutesHasBeenSet = false; Aws::Vector m_capabilities; bool m_capabilitiesHasBeenSet = false; Aws::Vector m_outputs; bool m_outputsHasBeenSet = false; Aws::String m_roleARN; bool m_roleARNHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; bool m_enableTerminationProtection; bool m_enableTerminationProtectionHasBeenSet = false; Aws::String m_parentId; bool m_parentIdHasBeenSet = false; Aws::String m_rootId; bool m_rootIdHasBeenSet = false; StackDriftInformation m_driftInformation; bool m_driftInformationHasBeenSet = false; bool m_retainExceptOnCreate; bool m_retainExceptOnCreateHasBeenSet = false; }; } // namespace Model } // namespace CloudFormation } // namespace Aws