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

The user-specified preferences for how CloudFormation performs a stack set * operation.

For more information about maximum concurrent accounts and * failure tolerance, see Stack * set operation options.

See Also:

AWS * API Reference

*/ class StackSetOperationPreferences { public: AWS_CLOUDFORMATION_API StackSetOperationPreferences(); AWS_CLOUDFORMATION_API StackSetOperationPreferences(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_CLOUDFORMATION_API StackSetOperationPreferences& 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; /** *

The concurrency type of deploying StackSets operations in Regions, could be * in parallel or one Region at a time.

*/ inline const RegionConcurrencyType& GetRegionConcurrencyType() const{ return m_regionConcurrencyType; } /** *

The concurrency type of deploying StackSets operations in Regions, could be * in parallel or one Region at a time.

*/ inline bool RegionConcurrencyTypeHasBeenSet() const { return m_regionConcurrencyTypeHasBeenSet; } /** *

The concurrency type of deploying StackSets operations in Regions, could be * in parallel or one Region at a time.

*/ inline void SetRegionConcurrencyType(const RegionConcurrencyType& value) { m_regionConcurrencyTypeHasBeenSet = true; m_regionConcurrencyType = value; } /** *

The concurrency type of deploying StackSets operations in Regions, could be * in parallel or one Region at a time.

*/ inline void SetRegionConcurrencyType(RegionConcurrencyType&& value) { m_regionConcurrencyTypeHasBeenSet = true; m_regionConcurrencyType = std::move(value); } /** *

The concurrency type of deploying StackSets operations in Regions, could be * in parallel or one Region at a time.

*/ inline StackSetOperationPreferences& WithRegionConcurrencyType(const RegionConcurrencyType& value) { SetRegionConcurrencyType(value); return *this;} /** *

The concurrency type of deploying StackSets operations in Regions, could be * in parallel or one Region at a time.

*/ inline StackSetOperationPreferences& WithRegionConcurrencyType(RegionConcurrencyType&& value) { SetRegionConcurrencyType(std::move(value)); return *this;} /** *

The order of the Regions where you want to perform the stack operation.

*/ inline const Aws::Vector& GetRegionOrder() const{ return m_regionOrder; } /** *

The order of the Regions where you want to perform the stack operation.

*/ inline bool RegionOrderHasBeenSet() const { return m_regionOrderHasBeenSet; } /** *

The order of the Regions where you want to perform the stack operation.

*/ inline void SetRegionOrder(const Aws::Vector& value) { m_regionOrderHasBeenSet = true; m_regionOrder = value; } /** *

The order of the Regions where you want to perform the stack operation.

*/ inline void SetRegionOrder(Aws::Vector&& value) { m_regionOrderHasBeenSet = true; m_regionOrder = std::move(value); } /** *

The order of the Regions where you want to perform the stack operation.

*/ inline StackSetOperationPreferences& WithRegionOrder(const Aws::Vector& value) { SetRegionOrder(value); return *this;} /** *

The order of the Regions where you want to perform the stack operation.

*/ inline StackSetOperationPreferences& WithRegionOrder(Aws::Vector&& value) { SetRegionOrder(std::move(value)); return *this;} /** *

The order of the Regions where you want to perform the stack operation.

*/ inline StackSetOperationPreferences& AddRegionOrder(const Aws::String& value) { m_regionOrderHasBeenSet = true; m_regionOrder.push_back(value); return *this; } /** *

The order of the Regions where you want to perform the stack operation.

*/ inline StackSetOperationPreferences& AddRegionOrder(Aws::String&& value) { m_regionOrderHasBeenSet = true; m_regionOrder.push_back(std::move(value)); return *this; } /** *

The order of the Regions where you want to perform the stack operation.

*/ inline StackSetOperationPreferences& AddRegionOrder(const char* value) { m_regionOrderHasBeenSet = true; m_regionOrder.push_back(value); return *this; } /** *

The number of accounts, per Region, for which this operation can fail before * CloudFormation stops the operation in that Region. If the operation is stopped * in a Region, CloudFormation doesn't attempt the operation in any subsequent * Regions.

Conditional: You must specify either * FailureToleranceCount or FailureTolerancePercentage * (but not both).

By default, 0 is specified.

*/ inline int GetFailureToleranceCount() const{ return m_failureToleranceCount; } /** *

The number of accounts, per Region, for which this operation can fail before * CloudFormation stops the operation in that Region. If the operation is stopped * in a Region, CloudFormation doesn't attempt the operation in any subsequent * Regions.

Conditional: You must specify either * FailureToleranceCount or FailureTolerancePercentage * (but not both).

By default, 0 is specified.

*/ inline bool FailureToleranceCountHasBeenSet() const { return m_failureToleranceCountHasBeenSet; } /** *

The number of accounts, per Region, for which this operation can fail before * CloudFormation stops the operation in that Region. If the operation is stopped * in a Region, CloudFormation doesn't attempt the operation in any subsequent * Regions.

Conditional: You must specify either * FailureToleranceCount or FailureTolerancePercentage * (but not both).

By default, 0 is specified.

*/ inline void SetFailureToleranceCount(int value) { m_failureToleranceCountHasBeenSet = true; m_failureToleranceCount = value; } /** *

The number of accounts, per Region, for which this operation can fail before * CloudFormation stops the operation in that Region. If the operation is stopped * in a Region, CloudFormation doesn't attempt the operation in any subsequent * Regions.

Conditional: You must specify either * FailureToleranceCount or FailureTolerancePercentage * (but not both).

By default, 0 is specified.

*/ inline StackSetOperationPreferences& WithFailureToleranceCount(int value) { SetFailureToleranceCount(value); return *this;} /** *

The percentage of accounts, per Region, for which this stack operation can * fail before CloudFormation stops the operation in that Region. If the operation * is stopped in a Region, CloudFormation doesn't attempt the operation in any * subsequent Regions.

When calculating the number of accounts based on the * specified percentage, CloudFormation rounds down to the next whole * number.

Conditional: You must specify either * FailureToleranceCount or FailureTolerancePercentage, * but not both.

By default, 0 is specified.

*/ inline int GetFailureTolerancePercentage() const{ return m_failureTolerancePercentage; } /** *

The percentage of accounts, per Region, for which this stack operation can * fail before CloudFormation stops the operation in that Region. If the operation * is stopped in a Region, CloudFormation doesn't attempt the operation in any * subsequent Regions.

When calculating the number of accounts based on the * specified percentage, CloudFormation rounds down to the next whole * number.

Conditional: You must specify either * FailureToleranceCount or FailureTolerancePercentage, * but not both.

By default, 0 is specified.

*/ inline bool FailureTolerancePercentageHasBeenSet() const { return m_failureTolerancePercentageHasBeenSet; } /** *

The percentage of accounts, per Region, for which this stack operation can * fail before CloudFormation stops the operation in that Region. If the operation * is stopped in a Region, CloudFormation doesn't attempt the operation in any * subsequent Regions.

When calculating the number of accounts based on the * specified percentage, CloudFormation rounds down to the next whole * number.

Conditional: You must specify either * FailureToleranceCount or FailureTolerancePercentage, * but not both.

By default, 0 is specified.

*/ inline void SetFailureTolerancePercentage(int value) { m_failureTolerancePercentageHasBeenSet = true; m_failureTolerancePercentage = value; } /** *

The percentage of accounts, per Region, for which this stack operation can * fail before CloudFormation stops the operation in that Region. If the operation * is stopped in a Region, CloudFormation doesn't attempt the operation in any * subsequent Regions.

When calculating the number of accounts based on the * specified percentage, CloudFormation rounds down to the next whole * number.

Conditional: You must specify either * FailureToleranceCount or FailureTolerancePercentage, * but not both.

By default, 0 is specified.

*/ inline StackSetOperationPreferences& WithFailureTolerancePercentage(int value) { SetFailureTolerancePercentage(value); return *this;} /** *

The maximum number of accounts in which to perform this operation at one * time. This is dependent on the value of * FailureToleranceCount.MaxConcurrentCount is at most * one more than the FailureToleranceCount.

Note that this * setting lets you specify the maximum for operations. For large * deployments, under certain circumstances the actual number of accounts acted * upon concurrently may be lower due to service throttling.

Conditional: * You must specify either MaxConcurrentCount or * MaxConcurrentPercentage, but not both.

By default, * 1 is specified.

*/ inline int GetMaxConcurrentCount() const{ return m_maxConcurrentCount; } /** *

The maximum number of accounts in which to perform this operation at one * time. This is dependent on the value of * FailureToleranceCount.MaxConcurrentCount is at most * one more than the FailureToleranceCount.

Note that this * setting lets you specify the maximum for operations. For large * deployments, under certain circumstances the actual number of accounts acted * upon concurrently may be lower due to service throttling.

Conditional: * You must specify either MaxConcurrentCount or * MaxConcurrentPercentage, but not both.

By default, * 1 is specified.

*/ inline bool MaxConcurrentCountHasBeenSet() const { return m_maxConcurrentCountHasBeenSet; } /** *

The maximum number of accounts in which to perform this operation at one * time. This is dependent on the value of * FailureToleranceCount.MaxConcurrentCount is at most * one more than the FailureToleranceCount.

Note that this * setting lets you specify the maximum for operations. For large * deployments, under certain circumstances the actual number of accounts acted * upon concurrently may be lower due to service throttling.

Conditional: * You must specify either MaxConcurrentCount or * MaxConcurrentPercentage, but not both.

By default, * 1 is specified.

*/ inline void SetMaxConcurrentCount(int value) { m_maxConcurrentCountHasBeenSet = true; m_maxConcurrentCount = value; } /** *

The maximum number of accounts in which to perform this operation at one * time. This is dependent on the value of * FailureToleranceCount.MaxConcurrentCount is at most * one more than the FailureToleranceCount.

Note that this * setting lets you specify the maximum for operations. For large * deployments, under certain circumstances the actual number of accounts acted * upon concurrently may be lower due to service throttling.

Conditional: * You must specify either MaxConcurrentCount or * MaxConcurrentPercentage, but not both.

By default, * 1 is specified.

*/ inline StackSetOperationPreferences& WithMaxConcurrentCount(int value) { SetMaxConcurrentCount(value); return *this;} /** *

The maximum percentage of accounts in which to perform this operation at one * time.

When calculating the number of accounts based on the specified * percentage, CloudFormation rounds down to the next whole number. This is true * except in cases where rounding down would result is zero. In this case, * CloudFormation sets the number as one instead.

Note that this setting * lets you specify the maximum for operations. For large deployments, under * certain circumstances the actual number of accounts acted upon concurrently may * be lower due to service throttling.

Conditional: You must specify either * MaxConcurrentCount or MaxConcurrentPercentage, but not * both.

By default, 1 is specified.

*/ inline int GetMaxConcurrentPercentage() const{ return m_maxConcurrentPercentage; } /** *

The maximum percentage of accounts in which to perform this operation at one * time.

When calculating the number of accounts based on the specified * percentage, CloudFormation rounds down to the next whole number. This is true * except in cases where rounding down would result is zero. In this case, * CloudFormation sets the number as one instead.

Note that this setting * lets you specify the maximum for operations. For large deployments, under * certain circumstances the actual number of accounts acted upon concurrently may * be lower due to service throttling.

Conditional: You must specify either * MaxConcurrentCount or MaxConcurrentPercentage, but not * both.

By default, 1 is specified.

*/ inline bool MaxConcurrentPercentageHasBeenSet() const { return m_maxConcurrentPercentageHasBeenSet; } /** *

The maximum percentage of accounts in which to perform this operation at one * time.

When calculating the number of accounts based on the specified * percentage, CloudFormation rounds down to the next whole number. This is true * except in cases where rounding down would result is zero. In this case, * CloudFormation sets the number as one instead.

Note that this setting * lets you specify the maximum for operations. For large deployments, under * certain circumstances the actual number of accounts acted upon concurrently may * be lower due to service throttling.

Conditional: You must specify either * MaxConcurrentCount or MaxConcurrentPercentage, but not * both.

By default, 1 is specified.

*/ inline void SetMaxConcurrentPercentage(int value) { m_maxConcurrentPercentageHasBeenSet = true; m_maxConcurrentPercentage = value; } /** *

The maximum percentage of accounts in which to perform this operation at one * time.

When calculating the number of accounts based on the specified * percentage, CloudFormation rounds down to the next whole number. This is true * except in cases where rounding down would result is zero. In this case, * CloudFormation sets the number as one instead.

Note that this setting * lets you specify the maximum for operations. For large deployments, under * certain circumstances the actual number of accounts acted upon concurrently may * be lower due to service throttling.

Conditional: You must specify either * MaxConcurrentCount or MaxConcurrentPercentage, but not * both.

By default, 1 is specified.

*/ inline StackSetOperationPreferences& WithMaxConcurrentPercentage(int value) { SetMaxConcurrentPercentage(value); return *this;} private: RegionConcurrencyType m_regionConcurrencyType; bool m_regionConcurrencyTypeHasBeenSet = false; Aws::Vector m_regionOrder; bool m_regionOrderHasBeenSet = false; int m_failureToleranceCount; bool m_failureToleranceCountHasBeenSet = false; int m_failureTolerancePercentage; bool m_failureTolerancePercentageHasBeenSet = false; int m_maxConcurrentCount; bool m_maxConcurrentCountHasBeenSet = false; int m_maxConcurrentPercentage; bool m_maxConcurrentPercentageHasBeenSet = false; }; } // namespace Model } // namespace CloudFormation } // namespace Aws