/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace SecurityHub { namespace Model { /** *

Nests a stack as a resource in a top-level template. Nested stacks are stacks * created as resources for another stack.

See Also:

AWS * API Reference

*/ class AwsCloudFormationStackDetails { public: AWS_SECURITYHUB_API AwsCloudFormationStackDetails(); AWS_SECURITYHUB_API AwsCloudFormationStackDetails(Aws::Utils::Json::JsonView jsonValue); AWS_SECURITYHUB_API AwsCloudFormationStackDetails& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_SECURITYHUB_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

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 AwsCloudFormationStackDetails& WithCapabilities(const Aws::Vector& value) { SetCapabilities(value); return *this;} /** *

The capabilities allowed in the stack.

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

The capabilities allowed in the stack.

*/ inline AwsCloudFormationStackDetails& AddCapabilities(const Aws::String& value) { m_capabilitiesHasBeenSet = true; m_capabilities.push_back(value); return *this; } /** *

The capabilities allowed in the stack.

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

The capabilities allowed in the stack.

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

The time at which the stack was created.

*/ inline const Aws::String& 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::String& value) { m_creationTimeHasBeenSet = true; m_creationTime = value; } /** *

The time at which the stack was created.

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

The time at which the stack was created.

*/ inline void SetCreationTime(const char* value) { m_creationTimeHasBeenSet = true; m_creationTime.assign(value); } /** *

The time at which the stack was created.

*/ inline AwsCloudFormationStackDetails& WithCreationTime(const Aws::String& value) { SetCreationTime(value); return *this;} /** *

The time at which the stack was created.

*/ inline AwsCloudFormationStackDetails& WithCreationTime(Aws::String&& value) { SetCreationTime(std::move(value)); return *this;} /** *

The time at which the stack was created.

*/ inline AwsCloudFormationStackDetails& WithCreationTime(const char* value) { SetCreationTime(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 AwsCloudFormationStackDetails& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A user-defined description associated with the stack.

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

A user-defined description associated with the stack.

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

Boolean to enable or disable rollback on stack creation failures.

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

Boolean to enable or disable rollback on stack creation failures.

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

Boolean to enable or disable rollback on stack creation failures.

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

Boolean to enable or disable rollback on stack creation failures.

*/ inline AwsCloudFormationStackDetails& WithDisableRollback(bool value) { SetDisableRollback(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.

*/ inline const AwsCloudFormationStackDriftInformationDetails& 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.

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

*/ inline void SetDriftInformation(const AwsCloudFormationStackDriftInformationDetails& 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.

*/ inline void SetDriftInformation(AwsCloudFormationStackDriftInformationDetails&& 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.

*/ inline AwsCloudFormationStackDetails& WithDriftInformation(const AwsCloudFormationStackDriftInformationDetails& 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.

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

Whether termination protection is enabled for the stack.

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

Whether termination protection is enabled for the stack.

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

Whether termination protection is enabled for the stack.

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

Whether termination protection is enabled for the stack.

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

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

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

The time the nested 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 nested stack was last updated. This field will only be returned * if the stack has been updated at least once.

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

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

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

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

*/ inline void SetLastUpdatedTime(const char* value) { m_lastUpdatedTimeHasBeenSet = true; m_lastUpdatedTime.assign(value); } /** *

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

*/ inline AwsCloudFormationStackDetails& WithLastUpdatedTime(const Aws::String& value) { SetLastUpdatedTime(value); return *this;} /** *

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

*/ inline AwsCloudFormationStackDetails& WithLastUpdatedTime(Aws::String&& value) { SetLastUpdatedTime(std::move(value)); return *this;} /** *

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

*/ inline AwsCloudFormationStackDetails& WithLastUpdatedTime(const char* value) { SetLastUpdatedTime(value); return *this;} /** *

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

*/ inline const Aws::Vector& GetNotificationArns() const{ return m_notificationArns; } /** *

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

*/ inline bool NotificationArnsHasBeenSet() const { return m_notificationArnsHasBeenSet; } /** *

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

*/ inline void SetNotificationArns(const Aws::Vector& value) { m_notificationArnsHasBeenSet = true; m_notificationArns = value; } /** *

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

*/ inline void SetNotificationArns(Aws::Vector&& value) { m_notificationArnsHasBeenSet = true; m_notificationArns = std::move(value); } /** *

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

*/ inline AwsCloudFormationStackDetails& WithNotificationArns(const Aws::Vector& value) { SetNotificationArns(value); return *this;} /** *

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

*/ inline AwsCloudFormationStackDetails& WithNotificationArns(Aws::Vector&& value) { SetNotificationArns(std::move(value)); return *this;} /** *

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

*/ inline AwsCloudFormationStackDetails& AddNotificationArns(const Aws::String& value) { m_notificationArnsHasBeenSet = true; m_notificationArns.push_back(value); return *this; } /** *

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

*/ inline AwsCloudFormationStackDetails& AddNotificationArns(Aws::String&& value) { m_notificationArnsHasBeenSet = true; m_notificationArns.push_back(std::move(value)); return *this; } /** *

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

*/ inline AwsCloudFormationStackDetails& AddNotificationArns(const char* value) { m_notificationArnsHasBeenSet = true; m_notificationArns.push_back(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 AwsCloudFormationStackDetails& WithOutputs(const Aws::Vector& value) { SetOutputs(value); return *this;} /** *

A list of output structures.

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

A list of output structures.

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

A list of output structures.

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

The ARN of an IAM role that's associated with the stack.

*/ inline const Aws::String& GetRoleArn() const{ return m_roleArn; } /** *

The ARN of an IAM role that's associated with the stack.

*/ inline bool RoleArnHasBeenSet() const { return m_roleArnHasBeenSet; } /** *

The ARN of an IAM role that's associated with the stack.

*/ inline void SetRoleArn(const Aws::String& value) { m_roleArnHasBeenSet = true; m_roleArn = value; } /** *

The ARN of an IAM role that's associated with the stack.

*/ inline void SetRoleArn(Aws::String&& value) { m_roleArnHasBeenSet = true; m_roleArn = std::move(value); } /** *

The ARN of an IAM role that's associated with the stack.

*/ inline void SetRoleArn(const char* value) { m_roleArnHasBeenSet = true; m_roleArn.assign(value); } /** *

The ARN of an IAM role that's associated with the stack.

*/ inline AwsCloudFormationStackDetails& WithRoleArn(const Aws::String& value) { SetRoleArn(value); return *this;} /** *

The ARN of an IAM role that's associated with the stack.

*/ inline AwsCloudFormationStackDetails& WithRoleArn(Aws::String&& value) { SetRoleArn(std::move(value)); return *this;} /** *

The ARN of an IAM role that's associated with the stack.

*/ inline AwsCloudFormationStackDetails& WithRoleArn(const char* value) { SetRoleArn(value); return *this;} /** *

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 AwsCloudFormationStackDetails& WithStackId(const Aws::String& value) { SetStackId(value); return *this;} /** *

Unique identifier of the stack.

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

Unique identifier of the stack.

*/ inline AwsCloudFormationStackDetails& 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 AwsCloudFormationStackDetails& WithStackName(const Aws::String& value) { SetStackName(value); return *this;} /** *

The name associated with the stack.

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

The name associated with the stack.

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

Current status of the stack.

*/ inline const Aws::String& 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 Aws::String& value) { m_stackStatusHasBeenSet = true; m_stackStatus = value; } /** *

Current status of the stack.

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

Current status of the stack.

*/ inline void SetStackStatus(const char* value) { m_stackStatusHasBeenSet = true; m_stackStatus.assign(value); } /** *

Current status of the stack.

*/ inline AwsCloudFormationStackDetails& WithStackStatus(const Aws::String& value) { SetStackStatus(value); return *this;} /** *

Current status of the stack.

*/ inline AwsCloudFormationStackDetails& WithStackStatus(Aws::String&& value) { SetStackStatus(std::move(value)); return *this;} /** *

Current status of the stack.

*/ inline AwsCloudFormationStackDetails& WithStackStatus(const char* value) { SetStackStatus(value); return *this;} /** *

Success or failure message associated with the stack status.

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

Success or failure message associated with the stack status.

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

Success or failure message associated with the stack status.

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

Success or failure message associated with the stack status.

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

Success or failure message associated with the stack status.

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

Success or failure message associated with the stack status.

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

Success or failure message associated with the stack status.

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

Success or failure message associated with the stack status.

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

The length of time, in minutes, that CloudFormation waits for the nested * stack to reach the CREATE_COMPLETE state.

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

The length of time, in minutes, that CloudFormation waits for the nested * stack to reach the CREATE_COMPLETE state.

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

The length of time, in minutes, that CloudFormation waits for the nested * stack to reach the CREATE_COMPLETE state.

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

The length of time, in minutes, that CloudFormation waits for the nested * stack to reach the CREATE_COMPLETE state.

*/ inline AwsCloudFormationStackDetails& WithTimeoutInMinutes(int value) { SetTimeoutInMinutes(value); return *this;} private: Aws::Vector m_capabilities; bool m_capabilitiesHasBeenSet = false; Aws::String m_creationTime; bool m_creationTimeHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; bool m_disableRollback; bool m_disableRollbackHasBeenSet = false; AwsCloudFormationStackDriftInformationDetails m_driftInformation; bool m_driftInformationHasBeenSet = false; bool m_enableTerminationProtection; bool m_enableTerminationProtectionHasBeenSet = false; Aws::String m_lastUpdatedTime; bool m_lastUpdatedTimeHasBeenSet = false; Aws::Vector m_notificationArns; bool m_notificationArnsHasBeenSet = false; Aws::Vector m_outputs; bool m_outputsHasBeenSet = false; Aws::String m_roleArn; bool m_roleArnHasBeenSet = false; Aws::String m_stackId; bool m_stackIdHasBeenSet = false; Aws::String m_stackName; bool m_stackNameHasBeenSet = false; Aws::String m_stackStatus; bool m_stackStatusHasBeenSet = false; Aws::String m_stackStatusReason; bool m_stackStatusReasonHasBeenSet = false; int m_timeoutInMinutes; bool m_timeoutInMinutesHasBeenSet = false; }; } // namespace Model } // namespace SecurityHub } // namespace Aws