Enum cloudformatious::ApplyStackError

source ·
pub enum ApplyStackError {
    CloudFormationApi(Box<dyn Error>),
    Blocked {
        status: BlockedStackStatus,
    },
    CreateChangeSetFailed {
        id: String,
        status: ChangeSetStatus,
        status_reason: String,
    },
    Failure(StackFailure),
    Warning {
        output: ApplyStackOutput,
        warning: StackWarning,
    },
}
Expand description

Errors emitted by an apply_stack operation.

Variants§

§

CloudFormationApi(Box<dyn Error>)

A CloudFormation API error occurred.

This is likely to be due to invalid input parameters or missing CloudFormation permissions. The inner error should have a descriptive message.

Note: the inner error will always be some variant of SdkError, but since they are generic over the type of service errors we either need a variant per API used, or Box. If you do need to programmatically match a particular API error you can use Box::downcast.

§

Blocked

The stack cannot be modified as it’s in a blocked state.

Fields

§status: BlockedStackStatus

The blocked status that the stack is in.

§

CreateChangeSetFailed

The change set failed to create.

Change sets are created asynchronously and may settle in a FAILED state. Trying to execute a FAILED change set will fail (who would have guessed). This error includes details of the failing change set to help diagnose errors.

Fields

§id: String

The id of the failed change set.

§status: ChangeSetStatus

The status of the failed change set.

§status_reason: String

The reason the change set failed to create.

§

Failure(StackFailure)

The apply stack operation failed.

§

Warning

The apply stack operation succeeded with warnings.

It is possible for resource errors to occur even when the overall operation succeeds, such as failing to delete a resource during clean-up after a successful update. Rather than letting this pass silently, or relying on carefully interrogating StackEvents, the operation returns an error.

Note that the error includes the ApplyStackOutput, since the stack did settle into a successful status. If you don’t care about non-critical resource errors you can use this to simply map this variant away:

let output = client
    .apply_stack(input)
    .await
    .or_else(|error| match error {
        ApplyStackError::Warning { output, .. } => Ok(output),
        error => Err(error),
    })?;

Fields

§output: ApplyStackOutput

The operation output.

§warning: StackWarning

Details of what went wrong.

Trait Implementations§

source§

impl Debug for ApplyStackError

source§

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

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

impl Display for ApplyStackError

source§

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

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

impl Error for ApplyStackError

source§

fn source(&self) -> Option<&(dyn Error + 'static)>

The lower-level source of this error, if any. Read more
1.0.0 · source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type based access to context intended for error reports. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where 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 T
where 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<T> IntoResult<T> for T

§

type Err = Infallible

source§

fn into_result(self) -> Result<T, <T as IntoResult<T>>::Err>

source§

impl<Unshared, Shared> IntoShared<Shared> for Unshared
where 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> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where 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 T
where 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