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