modelrelay/workflow/
run.rs1use chrono::{DateTime, Utc};
13use serde::{Deserialize, Serialize};
14use serde_json::Value;
15
16use super::ids::{ArtifactKey, NodeId, Sha256Hash};
17use super::spec::NodeTypeV1;
18
19pub use crate::generated::{
21 NodeErrorV0, NodeStatusV0, RunCostLineItemV0, RunCostSummaryV0, RunStatusV0,
22};
23
24#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
26pub struct PayloadInfoV0 {
27 pub bytes: u64,
28 pub sha256: Sha256Hash,
29 pub included: bool,
30}
31
32#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
34pub struct PayloadArtifactV0 {
35 pub artifact_key: ArtifactKey,
36 pub info: PayloadInfoV0,
37}
38
39#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
43pub struct NodeResultV0 {
44 pub id: NodeId,
45 #[serde(rename = "type")]
46 pub node_type: NodeTypeV1,
47 pub status: NodeStatusV0,
48 #[serde(skip_serializing_if = "Option::is_none")]
49 pub started_at: Option<DateTime<Utc>>,
50 #[serde(skip_serializing_if = "Option::is_none")]
51 pub ended_at: Option<DateTime<Utc>>,
52 #[serde(skip_serializing_if = "Option::is_none")]
53 pub output: Option<Value>,
54 #[serde(skip_serializing_if = "Option::is_none")]
55 pub error: Option<NodeErrorV0>,
56}
57
58