fleetforge_contracts_telemetry/
lib.rs1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3use serde_json::Value;
4use uuid::Uuid;
5
6#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
7pub struct TrustMetadata {
8 pub subject: String,
9 pub provenance: Value,
10}
11
12#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
13pub struct RunEventContract {
14 pub run_id: Uuid,
15 pub status: String,
16 pub created_at: DateTime<Utc>,
17 pub updated_at: DateTime<Utc>,
18 pub duration_ms: Option<u64>,
19 pub attributes: Value,
20 #[serde(skip_serializing_if = "Option::is_none")]
21 pub trust: Option<TrustMetadata>,
22}
23
24#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
25pub struct StepEventContract {
26 pub run_id: Uuid,
27 pub step_id: Uuid,
28 pub status: String,
29 pub attempt: i32,
30 pub started_at: DateTime<Utc>,
31 pub finished_at: Option<DateTime<Utc>>,
32 pub latency_ms: Option<u64>,
33 pub attributes: Value,
34 #[serde(skip_serializing_if = "Option::is_none")]
35 pub trust: Option<TrustMetadata>,
36}