#[non_exhaustive]
pub struct RefreshPreferences { pub min_healthy_percentage: Option<i32>, pub instance_warmup: Option<i32>, pub checkpoint_percentages: Option<Vec<i32>>, pub checkpoint_delay: Option<i32>, pub skip_matching: Option<bool>, pub auto_rollback: Option<bool>, pub scale_in_protected_instances: Option<ScaleInProtectedInstances>, pub standby_instances: Option<StandbyInstances>, pub alarm_specification: Option<AlarmSpecification>, }
Expand description

Describes the preferences for an instance refresh.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§min_healthy_percentage: Option<i32>

The amount of capacity in the Auto Scaling group that must pass your group's health checks to allow the operation to continue. The value is expressed as a percentage of the desired capacity of the Auto Scaling group (rounded up to the nearest integer). The default is 90.

Setting the minimum healthy percentage to 100 percent limits the rate of replacement to one instance at a time. In contrast, setting it to 0 percent has the effect of replacing all instances at the same time.

§instance_warmup: Option<i32>

A time period, in seconds, during which an instance refresh waits before moving on to replacing the next instance after a new instance enters the InService state.

This property is not required for normal usage. Instead, use the DefaultInstanceWarmup property of the Auto Scaling group. The InstanceWarmup and DefaultInstanceWarmup properties work the same way. Only specify this property if you must override the DefaultInstanceWarmup property.

If you do not specify this property, the instance warmup by default is the value of the DefaultInstanceWarmup property, if defined (which is recommended in all cases), or the HealthCheckGracePeriod property otherwise.

§checkpoint_percentages: Option<Vec<i32>>

(Optional) Threshold values for each checkpoint in ascending order. Each number must be unique. To replace all instances in the Auto Scaling group, the last number in the array must be 100.

For usage examples, see Adding checkpoints to an instance refresh in the Amazon EC2 Auto Scaling User Guide.

§checkpoint_delay: Option<i32>

(Optional) The amount of time, in seconds, to wait after a checkpoint before continuing. This property is optional, but if you specify a value for it, you must also specify a value for CheckpointPercentages. If you specify a value for CheckpointPercentages and not for CheckpointDelay, the CheckpointDelay defaults to 3600 (1 hour).

§skip_matching: Option<bool>

(Optional) Indicates whether skip matching is enabled. If enabled (true), then Amazon EC2 Auto Scaling skips replacing instances that match the desired configuration. If no desired configuration is specified, then it skips replacing instances that have the same launch template and instance types that the Auto Scaling group was using before the start of the instance refresh. The default is false.

For more information, see Use an instance refresh with skip matching in the Amazon EC2 Auto Scaling User Guide.

§auto_rollback: Option<bool>

(Optional) Indicates whether to roll back the Auto Scaling group to its previous configuration if the instance refresh fails or a CloudWatch alarm threshold is met. The default is false.

A rollback is not supported in the following situations:

  • There is no desired configuration specified for the instance refresh.

  • The Auto Scaling group has a launch template that uses an Amazon Web Services Systems Manager parameter instead of an AMI ID for the ImageId property.

  • The Auto Scaling group uses the launch template's $Latest or $Default version.

For more information, see Undo changes with a rollback in the Amazon EC2 Auto Scaling User Guide.

§scale_in_protected_instances: Option<ScaleInProtectedInstances>

Choose the behavior that you want Amazon EC2 Auto Scaling to use if instances protected from scale in are found.

The following lists the valid values:

Refresh

Amazon EC2 Auto Scaling replaces instances that are protected from scale in.

Ignore

Amazon EC2 Auto Scaling ignores instances that are protected from scale in and continues to replace instances that are not protected.

Wait (default)

Amazon EC2 Auto Scaling waits one hour for you to remove scale-in protection. Otherwise, the instance refresh will fail.

§standby_instances: Option<StandbyInstances>

Choose the behavior that you want Amazon EC2 Auto Scaling to use if instances in Standby state are found.

The following lists the valid values:

Terminate

Amazon EC2 Auto Scaling terminates instances that are in Standby.

Ignore

Amazon EC2 Auto Scaling ignores instances that are in Standby and continues to replace instances that are in the InService state.

Wait (default)

Amazon EC2 Auto Scaling waits one hour for you to return the instances to service. Otherwise, the instance refresh will fail.

§alarm_specification: Option<AlarmSpecification>

(Optional) The CloudWatch alarm specification. CloudWatch alarms can be used to identify any issues and fail the operation if an alarm threshold is met.

Implementations§

source§

impl RefreshPreferences

source

pub fn min_healthy_percentage(&self) -> Option<i32>

The amount of capacity in the Auto Scaling group that must pass your group's health checks to allow the operation to continue. The value is expressed as a percentage of the desired capacity of the Auto Scaling group (rounded up to the nearest integer). The default is 90.

Setting the minimum healthy percentage to 100 percent limits the rate of replacement to one instance at a time. In contrast, setting it to 0 percent has the effect of replacing all instances at the same time.

source

pub fn instance_warmup(&self) -> Option<i32>

A time period, in seconds, during which an instance refresh waits before moving on to replacing the next instance after a new instance enters the InService state.

This property is not required for normal usage. Instead, use the DefaultInstanceWarmup property of the Auto Scaling group. The InstanceWarmup and DefaultInstanceWarmup properties work the same way. Only specify this property if you must override the DefaultInstanceWarmup property.

If you do not specify this property, the instance warmup by default is the value of the DefaultInstanceWarmup property, if defined (which is recommended in all cases), or the HealthCheckGracePeriod property otherwise.

source

pub fn checkpoint_percentages(&self) -> &[i32]

(Optional) Threshold values for each checkpoint in ascending order. Each number must be unique. To replace all instances in the Auto Scaling group, the last number in the array must be 100.

For usage examples, see Adding checkpoints to an instance refresh in the Amazon EC2 Auto Scaling User Guide.

If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use .checkpoint_percentages.is_none().

source

pub fn checkpoint_delay(&self) -> Option<i32>

(Optional) The amount of time, in seconds, to wait after a checkpoint before continuing. This property is optional, but if you specify a value for it, you must also specify a value for CheckpointPercentages. If you specify a value for CheckpointPercentages and not for CheckpointDelay, the CheckpointDelay defaults to 3600 (1 hour).

source

pub fn skip_matching(&self) -> Option<bool>

(Optional) Indicates whether skip matching is enabled. If enabled (true), then Amazon EC2 Auto Scaling skips replacing instances that match the desired configuration. If no desired configuration is specified, then it skips replacing instances that have the same launch template and instance types that the Auto Scaling group was using before the start of the instance refresh. The default is false.

For more information, see Use an instance refresh with skip matching in the Amazon EC2 Auto Scaling User Guide.

source

pub fn auto_rollback(&self) -> Option<bool>

(Optional) Indicates whether to roll back the Auto Scaling group to its previous configuration if the instance refresh fails or a CloudWatch alarm threshold is met. The default is false.

A rollback is not supported in the following situations:

  • There is no desired configuration specified for the instance refresh.

  • The Auto Scaling group has a launch template that uses an Amazon Web Services Systems Manager parameter instead of an AMI ID for the ImageId property.

  • The Auto Scaling group uses the launch template's $Latest or $Default version.

For more information, see Undo changes with a rollback in the Amazon EC2 Auto Scaling User Guide.

source

pub fn scale_in_protected_instances(&self) -> Option<&ScaleInProtectedInstances>

Choose the behavior that you want Amazon EC2 Auto Scaling to use if instances protected from scale in are found.

The following lists the valid values:

Refresh

Amazon EC2 Auto Scaling replaces instances that are protected from scale in.

Ignore

Amazon EC2 Auto Scaling ignores instances that are protected from scale in and continues to replace instances that are not protected.

Wait (default)

Amazon EC2 Auto Scaling waits one hour for you to remove scale-in protection. Otherwise, the instance refresh will fail.

source

pub fn standby_instances(&self) -> Option<&StandbyInstances>

Choose the behavior that you want Amazon EC2 Auto Scaling to use if instances in Standby state are found.

The following lists the valid values:

Terminate

Amazon EC2 Auto Scaling terminates instances that are in Standby.

Ignore

Amazon EC2 Auto Scaling ignores instances that are in Standby and continues to replace instances that are in the InService state.

Wait (default)

Amazon EC2 Auto Scaling waits one hour for you to return the instances to service. Otherwise, the instance refresh will fail.

source

pub fn alarm_specification(&self) -> Option<&AlarmSpecification>

(Optional) The CloudWatch alarm specification. CloudWatch alarms can be used to identify any issues and fail the operation if an alarm threshold is met.

source§

impl RefreshPreferences

source

pub fn builder() -> RefreshPreferencesBuilder

Creates a new builder-style object to manufacture RefreshPreferences.

Trait Implementations§

source§

impl Clone for RefreshPreferences

source§

fn clone(&self) -> RefreshPreferences

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for RefreshPreferences

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for RefreshPreferences

source§

fn eq(&self, other: &RefreshPreferences) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl StructuralPartialEq for RefreshPreferences

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<Unshared, Shared> IntoShared<Shared> for Unsharedwhere Shared: FromUnshared<Unshared>,

source§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for Twhere T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more