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
status: ChangeSetStatus
The status of the failed change set.
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 StackEvent
s, 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
impl Debug for ApplyStackError
Source§impl Display for ApplyStackError
impl Display for ApplyStackError
Source§impl Error for ApplyStackError
impl Error for ApplyStackError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
Auto Trait Implementations§
impl Freeze for ApplyStackError
impl !RefUnwindSafe for ApplyStackError
impl !Send for ApplyStackError
impl !Sync for ApplyStackError
impl Unpin for ApplyStackError
impl !UnwindSafe for ApplyStackError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more