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
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.