pub struct ApprovalEscalatedEvent {
pub run_id: Uuid,
pub step_id: Uuid,
pub step_name: String,
pub stage: u32,
pub policy: String,
pub action: String,
pub reason: String,
pub assignee: Option<Assignee>,
pub at: DateTime<Utc>,
}Expand description
Payload of the Event::ApprovalEscalated event.
Emitted every time an approval gate misses its SLA deadline, including the
repeated firings of a bare Notify/Escalate policy and the final
“chain exhausted” notice. The audit log persists it verbatim, so the whole
escalation history of a gate is reconstructable from it.
§Examples
use chrono::Utc;
use ironflow_engine::notify::ApprovalEscalatedEvent;
use uuid::Uuid;
let payload = ApprovalEscalatedEvent {
run_id: Uuid::now_v7(),
step_id: Uuid::now_v7(),
step_name: "prod-gate".to_string(),
stage: 0,
policy: "auto_reject".to_string(),
action: "rejected".to_string(),
reason: "approval deadline of 3600s expired".to_string(),
assignee: None,
at: Utc::now(),
};
assert_eq!(payload.policy, "auto_reject");Fields§
§run_id: UuidRun identifier.
step_id: UuidApproval step identifier.
step_name: StringHuman-readable step name.
stage: u32Escalation stage that fired (0-based index into the policy chain).
policy: StringPolicy applied, e.g. "auto_reject", "notify", "escalate".
action: StringWhat the escalation did, for the audit log.
reason: StringWhy it fired, e.g. "approval deadline of 3600s expired".
assignee: Option<Assignee>Assignee after the escalation, when it reassigned the gate.
at: DateTime<Utc>When the escalation ran.
Trait Implementations§
Source§impl Clone for ApprovalEscalatedEvent
impl Clone for ApprovalEscalatedEvent
Source§impl Debug for ApprovalEscalatedEvent
impl Debug for ApprovalEscalatedEvent
Source§impl<'de> Deserialize<'de> for ApprovalEscalatedEvent
impl<'de> Deserialize<'de> for ApprovalEscalatedEvent
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for ApprovalEscalatedEvent
impl RefUnwindSafe for ApprovalEscalatedEvent
impl Send for ApprovalEscalatedEvent
impl Sync for ApprovalEscalatedEvent
impl Unpin for ApprovalEscalatedEvent
impl UnsafeUnpin for ApprovalEscalatedEvent
impl UnwindSafe for ApprovalEscalatedEvent
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
Mutably borrows from an owned value. Read more