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_concurrent")]
32 pub is_concurrent: bool,
33 #[serde(rename = "is_matrix")]
34 pub is_matrix: bool,
35 #[serde(rename = "is_resolved")]
36 pub is_resolved: bool,
37 #[serde(rename = "is_reusable")]
38 pub is_reusable: bool,
39 #[serde(rename = "job_key")]
40 pub job_key: String,
41 #[serde(rename = "kernel")]
42 pub kernel: String,
43 #[serde(rename = "kind")]
44 pub kind: String,
45 #[serde(rename = "labels")]
46 pub labels: Vec<String>,
47 #[serde(rename = "limit")]
48 pub limit: i64,
49 #[serde(rename = "limit_repo")]
50 pub limit_repo: i64,
51 #[serde(rename = "machine")]
52 pub machine: String,
53 #[serde(rename = "name")]
54 pub name: String,
55 #[serde(rename = "needs")]
56 pub needs: Vec<String>,
57 #[serde(rename = "number")]
58 pub number: i64,
59 #[serde(rename = "on_failure")]
60 pub on_failure: bool,
61 #[serde(rename = "on_success")]
62 pub on_success: bool,
63 #[serde(rename = "os")]
64 pub os: String,
65 #[serde(
66 rename = "outputs",
67 default,
68 with = "::serde_with::rust::double_option",
69 skip_serializing_if = "Option::is_none"
70 )]
71 pub outputs: Option<Option<std::collections::HashMap<String, String>>>,
72 #[serde(rename = "parent_group_id")]
73 pub parent_group_id: i64,
74 #[serde(
75 rename = "parent_id",
76 default,
77 with = "::serde_with::rust::double_option",
78 skip_serializing_if = "Option::is_none"
79 )]
80 pub parent_id: Option<Option<i64>>,
81 #[serde(rename = "repo_id")]
82 pub repo_id: i64,
83 #[serde(
84 rename = "started",
85 default,
86 with = "::serde_with::rust::double_option",
87 skip_serializing_if = "Option::is_none"
88 )]
89 pub started: Option<Option<i64>>,
90 #[serde(rename = "status")]
91 pub status: models::CiStatus,
92 #[serde(
93 rename = "stopped",
94 default,
95 with = "::serde_with::rust::double_option",
96 skip_serializing_if = "Option::is_none"
97 )]
98 pub stopped: Option<Option<i64>>,
99 #[serde(rename = "type")]
100 pub r#type: String,
101 #[serde(rename = "updated")]
102 pub updated: i64,
103 #[serde(rename = "variant")]
104 pub variant: String,
105 #[serde(rename = "version")]
106 pub version: i64,
107 #[serde(rename = "workflow_id")]
108 pub workflow_id: i64,
109 #[serde(rename = "yaml_provider")]
110 pub yaml_provider: models::WorkflowProvider,
111 #[serde(rename = "yaml_resolved")]
112 pub yaml_resolved: String,
113 #[serde(
114 rename = "yaml_uses",
115 default,
116 with = "::serde_with::rust::double_option",
117 skip_serializing_if = "Option::is_none"
118 )]
119 pub yaml_uses: Option<Option<String>>,
120}
121
122impl StageModel {
123 pub fn new(
124 action_id: i64,
125 arch: String,
126 created: i64,
127 errignore: bool,
128 error: String,
129 exit_code: i64,
130 id: i64,
131 is_concurrent: bool,
132 is_matrix: bool,
133 is_resolved: bool,
134 is_reusable: bool,
135 job_key: String,
136 kernel: String,
137 kind: String,
138 labels: Vec<String>,
139 limit: i64,
140 limit_repo: i64,
141 machine: String,
142 name: String,
143 needs: Vec<String>,
144 number: i64,
145 on_failure: bool,
146 on_success: bool,
147 os: String,
148 parent_group_id: i64,
149 repo_id: i64,
150 status: models::CiStatus,
151 r#type: String,
152 updated: i64,
153 variant: String,
154 version: i64,
155 workflow_id: i64,
156 yaml_provider: models::WorkflowProvider,
157 yaml_resolved: String,
158 ) -> StageModel {
159 StageModel {
160 action_id,
161 arch,
162 created,
163 errignore,
164 error,
165 exit_code,
166 id,
167 is_concurrent,
168 is_matrix,
169 is_resolved,
170 is_reusable,
171 job_key,
172 kernel,
173 kind,
174 labels,
175 limit,
176 limit_repo,
177 machine,
178 name,
179 needs,
180 number,
181 on_failure,
182 on_success,
183 os,
184 outputs: None,
185 parent_group_id,
186 parent_id: None,
187 repo_id,
188 started: None,
189 status,
190 stopped: None,
191 r#type,
192 updated,
193 variant,
194 version,
195 workflow_id,
196 yaml_provider,
197 yaml_resolved,
198 yaml_uses: None,
199 }
200 }
201}