yarli_cli/yarli-policy/src/
error.rs1use thiserror::Error;
4use uuid::Uuid;
5
6#[derive(Debug, Error)]
8pub enum PolicyError {
9 #[error("policy denied action '{action}': {reason} (rule: {rule_id})")]
11 Denied {
12 action: String,
13 rule_id: String,
14 reason: String,
15 },
16
17 #[error("action '{action}' requires approval: {reason}")]
19 ApprovalRequired { action: String, reason: String },
20
21 #[error("approval token {token_id} expired")]
23 TokenExpired { token_id: Uuid },
24
25 #[error("approval token {token_id} scope mismatch: {details}")]
27 TokenScopeMismatch { token_id: Uuid, details: String },
28
29 #[error("safe mode '{mode}' does not permit action '{action}'")]
31 SafeModeViolation { mode: String, action: String },
32
33 #[error("policy evaluation error: {0}")]
35 Internal(String),
36}