class Amazonite::CloudFormation::StackSetOperationPreferences

Overview

The user-specified preferences for how CloudFormation performs a StackSet operation.

For more information about maximum concurrent accounts and failure tolerance, see StackSet operation options.

StackSetOperationPreferences don't apply to AutoDeployment, even if it's enabled.

Defined in:

cloudformation/stack_set_operation_preferences.cr

Constructors

Instance Method Summary

Constructor Detail

def self.from_xml(node : XML::Node) : self #

[View source]
def self.new(region_concurrency_type : RegionConcurrencyType | Nil = nil, region_order : Array(String) | Nil = nil, failure_tolerance_count : Int32 | Nil = nil, failure_tolerance_percentage : Int32 | Nil = nil, max_concurrent_count : Int32 | Nil = nil, max_concurrent_percentage : Int32 | Nil = nil, concurrency_mode : ConcurrencyMode | Nil = nil) #

[View source]

Instance Method Detail

def ==(other : self) #
Description copied from class Reference

Returns true if this reference is the same as other. Invokes same?.


def concurrency_mode : ConcurrencyMode | Nil #

Specifies how the concurrency level behaves during the operation execution.

  • STRICT_FAILURE_TOLERANCE: This option dynamically lowers the concurrency level to ensure the number of failed accounts never exceeds the value of FailureToleranceCount +1. The initial actual concurrency is set to the lower of either the value of the MaxConcurrentCount, or the value of FailureToleranceCount +1. The actual concurrency is then reduced proportionally by the number of failures. This is the default behavior.

If failure tolerance or Maximum concurrent accounts are set to percentages, the behavior is similar.

  • SOFT_FAILURE_TOLERANCE: This option decouples FailureToleranceCount from the actual concurrency. This allows StackSet operations to run at the concurrency level set by the MaxConcurrentCount value, or MaxConcurrentPercentage, regardless of the number of failures.

[View source]
def concurrency_mode=(concurrency_mode : ConcurrencyMode | Nil) #

Specifies how the concurrency level behaves during the operation execution.

  • STRICT_FAILURE_TOLERANCE: This option dynamically lowers the concurrency level to ensure the number of failed accounts never exceeds the value of FailureToleranceCount +1. The initial actual concurrency is set to the lower of either the value of the MaxConcurrentCount, or the value of FailureToleranceCount +1. The actual concurrency is then reduced proportionally by the number of failures. This is the default behavior.

If failure tolerance or Maximum concurrent accounts are set to percentages, the behavior is similar.

  • SOFT_FAILURE_TOLERANCE: This option decouples FailureToleranceCount from the actual concurrency. This allows StackSet operations to run at the concurrency level set by the MaxConcurrentCount value, or MaxConcurrentPercentage, regardless of the number of failures.

[View source]
def failure_tolerance_count : Int32 | Nil #

The number of accounts per Region this operation can fail in 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.

You can specify either FailureToleranceCount or FailureTolerancePercentage, but not both.

By default, 0 is specified.


[View source]
def failure_tolerance_count=(failure_tolerance_count : Int32 | Nil) #

The number of accounts per Region this operation can fail in 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.

You can specify either FailureToleranceCount or FailureTolerancePercentage, but not both.

By default, 0 is specified.


[View source]
def failure_tolerance_percentage : Int32 | Nil #

The percentage of accounts per Region this stack operation can fail in 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.

You can specify either FailureToleranceCount or FailureTolerancePercentage, but not both.

By default, 0 is specified.


[View source]
def failure_tolerance_percentage=(failure_tolerance_percentage : Int32 | Nil) #

The percentage of accounts per Region this stack operation can fail in 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.

You can specify either FailureToleranceCount or FailureTolerancePercentage, but not both.

By default, 0 is specified.


[View source]
def hash(hasher) #
Description copied from class Reference

See Object#hash(hasher)


def max_concurrent_count : Int32 | Nil #

The maximum number of accounts in which to perform this operation at one time. This can depend on the value of FailureToleranceCount depending on your ConcurrencyMode. MaxConcurrentCount is at most one more than the FailureToleranceCount if you're using STRICT_FAILURE_TOLERANCE.

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.

You can specify either MaxConcurrentCount or MaxConcurrentPercentage, but not both.

By default, 1 is specified.


[View source]
def max_concurrent_count=(max_concurrent_count : Int32 | Nil) #

The maximum number of accounts in which to perform this operation at one time. This can depend on the value of FailureToleranceCount depending on your ConcurrencyMode. MaxConcurrentCount is at most one more than the FailureToleranceCount if you're using STRICT_FAILURE_TOLERANCE.

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.

You can specify either MaxConcurrentCount or MaxConcurrentPercentage, but not both.

By default, 1 is specified.


[View source]
def max_concurrent_percentage : Int32 | Nil #

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.

You can specify either MaxConcurrentCount or MaxConcurrentPercentage, but not both.

By default, 1 is specified.


[View source]
def max_concurrent_percentage=(max_concurrent_percentage : Int32 | Nil) #

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.

You can specify either MaxConcurrentCount or MaxConcurrentPercentage, but not both.

By default, 1 is specified.


[View source]
def region_concurrency_type : RegionConcurrencyType | Nil #

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


[View source]
def region_concurrency_type=(region_concurrency_type : RegionConcurrencyType | Nil) #

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


[View source]
def region_order : Array(String) | Nil #

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


[View source]
def region_order=(region_order : Array(String) | Nil) #

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


[View source]
def to_query_params(prefix : String) : Array(Tuple(String, String)) #

[View source]
def validate! : Nil #

[View source]