#[non_exhaustive]pub enum ConflictKind {
DependencyAlreadyExists {
existing: EdgeSnapshot,
},
CycleDetected,
SelfReferencingEdge,
ExecutionAlreadyInFlow,
WaitpointAlreadyExists,
BudgetAttachConflict,
QuotaAttachConflict,
RotationConflict(String),
ActiveAttemptExists,
}Expand description
Permanent conflict sub-kinds. Caller must reconcile rather than retry.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
DependencyAlreadyExists
Dependency edge already exists. Carries the pre-existing
EdgeSnapshot so callers implementing “409 on re-declare
with different kind/ref” don’t need a follow-up read.
Note: the plain From<ScriptError> for EngineError impl
cannot populate existing (that requires an async
describe_edge round trip), so it falls through to
EngineError::Transport. Callers on the stage_dependency
path use ff_sdk::engine_error::enrich_dependency_conflict
to perform the follow-up read and promote the error.
Fields
existing: EdgeSnapshotCycleDetected
Edge would create a cycle.
SelfReferencingEdge
Self-referencing edge (upstream == downstream).
ExecutionAlreadyInFlow
Execution is already a member of another flow.
WaitpointAlreadyExists
Waitpoint already exists (pending or active).
BudgetAttachConflict
Budget already attached or conflicts.
QuotaAttachConflict
Quota policy already attached.
RotationConflict(String)
Rotation: same kid already installed with a different secret. String is the conflicting kid.
ActiveAttemptExists
Invariant violation: active attempt already exists where one was expected absent.
Trait Implementations§
Source§impl Clone for ConflictKind
impl Clone for ConflictKind
Source§fn clone(&self) -> ConflictKind
fn clone(&self) -> ConflictKind
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more