evg_api_rs/models/
task.rs

1use chrono::{DateTime, Utc};
2use serde::Deserialize;
3use std::collections::HashMap;
4
5#[derive(Debug, Deserialize, Clone)]
6pub struct EvgTaskArtifact {
7    pub name: String,
8    pub url: String,
9    pub visibility: String,
10    pub ignore_for_fetch: bool,
11}
12
13#[derive(Debug, Deserialize, Clone)]
14pub struct EvgTaskStatusDetails {
15    pub status: String,
16    #[serde(alias = "type")]
17    pub status_type: String,
18    pub desc: String,
19    pub timed_out: bool,
20}
21
22#[derive(Debug, Deserialize, Clone)]
23pub struct EvgTask {
24    pub activated: bool,
25    pub activated_by: String,
26    pub artifacts: Option<Vec<EvgTaskArtifact>>,
27    pub build_id: String,
28    pub build_variant: String,
29    pub create_time: DateTime<Utc>,
30    // depends_on: Optional[List[Union[str, DisplayTaskDependency]]]
31    pub dispatch_time: Option<DateTime<Utc>>,
32    pub display_name: String,
33    pub display_only: bool,
34    pub distro_id: String,
35    pub est_wait_to_start_ms: u32,
36    pub execution: u32,
37    pub execution_tasks: Option<Vec<String>>,
38    pub expected_duration_ms: u64,
39    pub finish_time: Option<DateTime<Utc>>,
40    pub generate_task: bool,
41    pub generated_by: String,
42    pub host_id: String,
43    pub ingest_time: Option<DateTime<Utc>>,
44    pub logs: HashMap<String, String>,
45    pub mainline: Option<bool>,
46    pub order: u64,
47    pub project_id: String,
48    pub priority: u32,
49    pub restarts: Option<u32>,
50    pub revision: String,
51    pub scheduled_time: Option<DateTime<Utc>>,
52    pub start_time: Option<DateTime<Utc>>,
53    pub status: String,
54    pub status_details: EvgTaskStatusDetails,
55    pub task_group: Option<String>,
56    pub task_group_max_hosts: Option<u16>,
57    pub task_id: String,
58    pub time_taken_ms: u64,
59    pub version_id: String,
60}