astro_run_shared/types/
mod.rs

1mod envs;
2mod workflow_event;
3mod workflow_state;
4mod workflow_state_event;
5
6pub use envs::*;
7pub use workflow_event::*;
8pub use workflow_state::*;
9pub use workflow_state_event::*;
10
11use serde::{Deserialize, Serialize};
12
13pub type Id = String;
14
15// #[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
16// pub struct Secret {
17//   pub key: String,
18//   pub value: String,
19// }
20
21// #[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
22// pub struct Volume {
23//   pub from: String,
24//   pub to: String,
25// }
26
27#[derive(Serialize, Deserialize, Debug, Clone, PartialEq)]
28#[serde(rename_all = "snake_case")]
29pub enum WorkflowLogType {
30  Error,
31  Log,
32}
33
34#[derive(Serialize, Deserialize, Debug, Clone)]
35pub struct WorkflowLog {
36  pub workflow_id: Id,
37  pub job_key: String,
38  pub step_number: usize,
39  pub log_type: WorkflowLogType,
40  pub message: String,
41  pub time: chrono::DateTime<chrono::Utc>,
42}
43
44impl Default for WorkflowLog {
45  fn default() -> Self {
46    WorkflowLog {
47      workflow_id: "".to_string(),
48      job_key: "".to_string(),
49      step_number: 0,
50      log_type: WorkflowLogType::Log,
51      message: "".to_string(),
52      time: chrono::Utc::now(),
53    }
54  }
55}