1use serde::{Deserialize, Serialize};
12
13use crate::models;
14
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct StageModel {
17 #[serde(rename = "action_id")]
18 pub action_id: i64,
19 #[serde(rename = "arch")]
20 pub arch: String,
21 #[serde(rename = "created")]
22 pub created: i64,
23 #[serde(rename = "errignore")]
24 pub errignore: bool,
25 #[serde(rename = "error")]
26 pub error: String,
27 #[serde(rename = "exit_code")]
28 pub exit_code: i64,
29 #[serde(rename = "id")]
30 pub id: i64,
31 #[serde(rename = "is_reusable")]
32 pub is_reusable: bool,
33 #[serde(rename = "kernel")]
34 pub kernel: String,
35 #[serde(rename = "kind")]
36 pub kind: String,
37 #[serde(rename = "labels")]
38 pub labels: Vec<String>,
39 #[serde(rename = "limit")]
40 pub limit: i64,
41 #[serde(rename = "limit_repo")]
42 pub limit_repo: i64,
43 #[serde(rename = "machine")]
44 pub machine: String,
45 #[serde(rename = "name")]
46 pub name: String,
47 #[serde(rename = "needs")]
48 pub needs: Vec<String>,
49 #[serde(rename = "number")]
50 pub number: i64,
51 #[serde(rename = "on_failure")]
52 pub on_failure: bool,
53 #[serde(rename = "on_success")]
54 pub on_success: bool,
55 #[serde(rename = "os")]
56 pub os: String,
57 #[serde(rename = "outputs", skip_serializing_if = "Option::is_none")]
58 pub outputs: Option<std::collections::HashMap<String, serde_json::Value>>,
59 #[serde(rename = "parent_group_id")]
60 pub parent_group_id: i64,
61 #[serde(
62 rename = "parent_id",
63 default,
64 with = "::serde_with::rust::double_option",
65 skip_serializing_if = "Option::is_none"
66 )]
67 pub parent_id: Option<Option<i64>>,
68 #[serde(rename = "repo_id")]
69 pub repo_id: i64,
70 #[serde(
71 rename = "started",
72 default,
73 with = "::serde_with::rust::double_option",
74 skip_serializing_if = "Option::is_none"
75 )]
76 pub started: Option<Option<i64>>,
77 #[serde(rename = "status")]
78 pub status: models::CiStatus,
79 #[serde(
80 rename = "stopped",
81 default,
82 with = "::serde_with::rust::double_option",
83 skip_serializing_if = "Option::is_none"
84 )]
85 pub stopped: Option<Option<i64>>,
86 #[serde(rename = "type")]
87 pub r#type: String,
88 #[serde(rename = "updated")]
89 pub updated: i64,
90 #[serde(rename = "variant")]
91 pub variant: String,
92 #[serde(rename = "version")]
93 pub version: i64,
94 #[serde(rename = "workflow_id")]
95 pub workflow_id: i64,
96 #[serde(rename = "yaml_provider")]
97 pub yaml_provider: models::WorkflowProvider,
98 #[serde(rename = "yaml_resolved")]
99 pub yaml_resolved: String,
100}
101
102impl StageModel {
103 pub fn new(
104 action_id: i64,
105 arch: String,
106 created: i64,
107 errignore: bool,
108 error: String,
109 exit_code: i64,
110 id: i64,
111 is_reusable: bool,
112 kernel: String,
113 kind: String,
114 labels: Vec<String>,
115 limit: i64,
116 limit_repo: i64,
117 machine: String,
118 name: String,
119 needs: Vec<String>,
120 number: i64,
121 on_failure: bool,
122 on_success: bool,
123 os: String,
124 parent_group_id: i64,
125 repo_id: i64,
126 status: models::CiStatus,
127 r#type: String,
128 updated: i64,
129 variant: String,
130 version: i64,
131 workflow_id: i64,
132 yaml_provider: models::WorkflowProvider,
133 yaml_resolved: String,
134 ) -> StageModel {
135 StageModel {
136 action_id,
137 arch,
138 created,
139 errignore,
140 error,
141 exit_code,
142 id,
143 is_reusable,
144 kernel,
145 kind,
146 labels,
147 limit,
148 limit_repo,
149 machine,
150 name,
151 needs,
152 number,
153 on_failure,
154 on_success,
155 os,
156 outputs: None,
157 parent_group_id,
158 parent_id: None,
159 repo_id,
160 started: None,
161 status,
162 stopped: None,
163 r#type,
164 updated,
165 variant,
166 version,
167 workflow_id,
168 yaml_provider,
169 yaml_resolved,
170 }
171 }
172}