#[non_exhaustive]pub enum ReasonCode {
Show 30 variants
Unconditional,
AllChecksPassed,
CapabilityPresent,
CapabilityMissing,
IssuerMatch,
IssuerMismatch,
Revoked,
Expired,
InsufficientTtl,
IssuedTooLongAgo,
RoleMismatch,
ScopeMismatch,
ChainTooDeep,
DelegationMismatch,
AttrMismatch,
MissingField,
RecursionExceeded,
ShortCircuit,
CombinatorResult,
WorkloadMismatch,
WitnessQuorumNotMet,
SignerTypeMatch,
SignerTypeMismatch,
ApprovalRequired,
ApprovalGranted,
ApprovalExpired,
ApprovalAlreadyUsed,
ApprovalRequestMismatch,
AssuranceMet,
AssuranceInsufficient,
}Expand description
Machine-readable reason code for stable logging and alerting.
These codes are designed to be stable across versions for use in monitoring dashboards, alerting rules, and audit queries.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Unconditional
Unconditional allow/deny (True/False expressions).
AllChecksPassed
All checks in a policy passed.
CapabilityPresent
Required capability is present.
CapabilityMissing
Required capability is missing.
IssuerMatch
Issuer matches expected value.
IssuerMismatch
Issuer does not match expected value.
Revoked
Attestation has been revoked.
Expired
Attestation has expired.
InsufficientTtl
Remaining TTL is below required threshold.
IssuedTooLongAgo
Attestation was issued too long ago.
RoleMismatch
Role does not match expected value.
ScopeMismatch
Scope (repo, ref, path, env) does not match.
ChainTooDeep
Delegation chain exceeds maximum depth.
DelegationMismatch
Delegator does not match expected value.
AttrMismatch
Custom attribute does not match expected value.
MissingField
Required field is missing from context.
RecursionExceeded
Expression recursion limit exceeded.
ShortCircuit
Short-circuit evaluation in And/Or.
CombinatorResult
Result from And/Or/Not combinator.
WorkloadMismatch
Workload claim does not match expected value.
WitnessQuorumNotMet
Witness quorum was not met.
SignerTypeMatch
Signer type matches expected value.
SignerTypeMismatch
Signer type does not match expected value.
ApprovalRequired
Policy ApprovalGate determined human approval is needed.
ApprovalGranted
Approval attestation was valid and matched.
ApprovalExpired
Approval request TTL expired.
ApprovalAlreadyUsed
Approval JTI already used (replay attempt).
ApprovalRequestMismatch
Approval scope hash doesn’t match the current request.
AssuranceMet
Assurance level meets or exceeds the minimum requirement.
AssuranceInsufficient
Assurance level is below the minimum requirement.
Trait Implementations§
Source§impl Clone for ReasonCode
impl Clone for ReasonCode
Source§fn clone(&self) -> ReasonCode
fn clone(&self) -> ReasonCode
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ReasonCode
impl Debug for ReasonCode
Source§impl<'de> Deserialize<'de> for ReasonCode
impl<'de> Deserialize<'de> for ReasonCode
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<ReasonCode, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<ReasonCode, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Display for ReasonCode
impl Display for ReasonCode
Source§impl Hash for ReasonCode
impl Hash for ReasonCode
Source§impl PartialEq for ReasonCode
impl PartialEq for ReasonCode
Source§impl Serialize for ReasonCode
impl Serialize for ReasonCode
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl Eq for ReasonCode
impl StructuralPartialEq for ReasonCode
Auto Trait Implementations§
impl Freeze for ReasonCode
impl RefUnwindSafe for ReasonCode
impl Send for ReasonCode
impl Sync for ReasonCode
impl Unpin for ReasonCode
impl UnsafeUnpin for ReasonCode
impl UnwindSafe for ReasonCode
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.