nominal_api_conjure/conjure/objects/scout/run/api/
run.rs1#[derive(
2 Debug,
3 Clone,
4 conjure_object::serde::Serialize,
5 conjure_object::serde::Deserialize,
6 conjure_object::private::DeriveWith
7)]
8#[serde(crate = "conjure_object::serde")]
9#[derive_with(PartialEq, Eq, PartialOrd, Ord, Hash)]
10#[conjure_object::private::staged_builder::staged_builder]
11#[builder(crate = conjure_object::private::staged_builder, update, inline)]
12pub struct Run {
13 #[serde(rename = "rid")]
14 rid: super::RunRid,
15 #[serde(rename = "runNumber")]
16 run_number: conjure_object::SafeLong,
17 #[builder(default, into)]
18 #[serde(rename = "runPrefix", skip_serializing_if = "Option::is_none", default)]
19 run_prefix: Option<String>,
20 #[builder(into)]
21 #[serde(rename = "title")]
22 title: String,
23 #[builder(into)]
24 #[serde(rename = "description")]
25 description: String,
26 #[builder(default, into)]
27 #[serde(rename = "authorRid", skip_serializing_if = "Option::is_none", default)]
28 author_rid: Option<super::super::super::rids::api::UserRid>,
29 #[builder(custom(type = super::UtcTimestamp, convert = Box::new))]
30 #[serde(rename = "startTime")]
31 start_time: Box<super::UtcTimestamp>,
32 #[builder(
33 default,
34 custom(
35 type = impl
36 Into<Option<super::UtcTimestamp>>,
37 convert = |v|v.into().map(Box::new)
38 )
39 )]
40 #[serde(rename = "endTime", skip_serializing_if = "Option::is_none", default)]
41 end_time: Option<Box<super::UtcTimestamp>>,
42 #[builder(
43 default,
44 map(
45 key(type = super::super::super::super::api::PropertyName),
46 value(type = super::super::super::super::api::PropertyValue)
47 )
48 )]
49 #[serde(
50 rename = "properties",
51 skip_serializing_if = "std::collections::BTreeMap::is_empty",
52 default
53 )]
54 properties: std::collections::BTreeMap<
55 super::super::super::super::api::PropertyName,
56 super::super::super::super::api::PropertyValue,
57 >,
58 #[builder(
59 default,
60 map(
61 key(type = super::super::super::super::api::PropertyName),
62 value(type = super::super::super::super::api::TypedPropertyValue)
63 )
64 )]
65 #[serde(
66 rename = "typedProperties",
67 skip_serializing_if = "std::collections::BTreeMap::is_empty",
68 default
69 )]
70 typed_properties: std::collections::BTreeMap<
71 super::super::super::super::api::PropertyName,
72 super::super::super::super::api::TypedPropertyValue,
73 >,
74 #[builder(default, set(item(type = super::super::super::super::api::Label)))]
75 #[serde(
76 rename = "labels",
77 skip_serializing_if = "std::collections::BTreeSet::is_empty",
78 default
79 )]
80 labels: std::collections::BTreeSet<super::super::super::super::api::Label>,
81 #[builder(default, list(item(type = super::Link)))]
82 #[serde(rename = "links", skip_serializing_if = "Vec::is_empty", default)]
83 links: Vec<super::Link>,
84 #[serde(rename = "createdAt")]
85 created_at: conjure_object::DateTime<conjure_object::Utc>,
86 #[serde(rename = "updatedAt")]
87 updated_at: conjure_object::DateTime<conjure_object::Utc>,
88 #[builder(
89 default,
90 map(
91 key(type = super::super::super::rids::api::AssetRid),
92 value(type = super::DataScopes)
93 )
94 )]
95 #[serde(
96 rename = "assetDataScopesMap",
97 skip_serializing_if = "std::collections::BTreeMap::is_empty",
98 default
99 )]
100 asset_data_scopes_map: std::collections::BTreeMap<
101 super::super::super::rids::api::AssetRid,
102 super::DataScopes,
103 >,
104 #[builder(default, list(item(type = super::super::super::asset::api::DataScope)))]
105 #[serde(rename = "assetDataScopes", skip_serializing_if = "Vec::is_empty", default)]
106 asset_data_scopes: Vec<super::super::super::asset::api::DataScope>,
107 #[builder(
108 default,
109 map(
110 key(type = super::super::super::api::DataSourceRefName),
111 value(type = super::RunDataSource)
112 )
113 )]
114 #[serde(
115 rename = "dataSources",
116 skip_serializing_if = "std::collections::BTreeMap::is_empty",
117 default
118 )]
119 data_sources: std::collections::BTreeMap<
120 super::super::super::api::DataSourceRefName,
121 super::RunDataSource,
122 >,
123 #[builder(
124 default,
125 set(item(type = super::super::super::super::api::rids::AttachmentRid))
126 )]
127 #[serde(
128 rename = "attachments",
129 skip_serializing_if = "std::collections::BTreeSet::is_empty",
130 default
131 )]
132 attachments: std::collections::BTreeSet<
133 super::super::super::super::api::rids::AttachmentRid,
134 >,
135 #[builder(default, into)]
136 #[serde(rename = "asset", skip_serializing_if = "Option::is_none", default)]
137 asset: Option<super::super::super::rids::api::AssetRid>,
138 #[builder(default, list(item(type = super::super::super::rids::api::AssetRid)))]
139 #[serde(rename = "assets", skip_serializing_if = "Vec::is_empty", default)]
140 assets: Vec<super::super::super::rids::api::AssetRid>,
141 #[serde(rename = "isArchived")]
142 is_archived: bool,
143}
144impl Run {
145 #[inline]
146 pub fn rid(&self) -> &super::RunRid {
147 &self.rid
148 }
149 #[inline]
150 pub fn run_number(&self) -> conjure_object::SafeLong {
151 self.run_number
152 }
153 #[inline]
154 pub fn run_prefix(&self) -> Option<&str> {
155 self.run_prefix.as_ref().map(|o| &**o)
156 }
157 #[inline]
158 pub fn title(&self) -> &str {
159 &*self.title
160 }
161 #[inline]
162 pub fn description(&self) -> &str {
163 &*self.description
164 }
165 #[inline]
166 pub fn author_rid(&self) -> Option<&super::super::super::rids::api::UserRid> {
167 self.author_rid.as_ref().map(|o| &*o)
168 }
169 #[inline]
170 pub fn start_time(&self) -> &super::UtcTimestamp {
171 &*self.start_time
172 }
173 #[inline]
174 pub fn end_time(&self) -> Option<&super::UtcTimestamp> {
175 self.end_time.as_ref().map(|o| &**o)
176 }
177 #[deprecated(note = "use typedProperties")]
178 #[inline]
179 pub fn properties(
180 &self,
181 ) -> &std::collections::BTreeMap<
182 super::super::super::super::api::PropertyName,
183 super::super::super::super::api::PropertyValue,
184 > {
185 &self.properties
186 }
187 #[inline]
188 pub fn typed_properties(
189 &self,
190 ) -> &std::collections::BTreeMap<
191 super::super::super::super::api::PropertyName,
192 super::super::super::super::api::TypedPropertyValue,
193 > {
194 &self.typed_properties
195 }
196 #[inline]
197 pub fn labels(
198 &self,
199 ) -> &std::collections::BTreeSet<super::super::super::super::api::Label> {
200 &self.labels
201 }
202 #[inline]
203 pub fn links(&self) -> &[super::Link] {
204 &*self.links
205 }
206 #[inline]
207 pub fn created_at(&self) -> conjure_object::DateTime<conjure_object::Utc> {
208 self.created_at
209 }
210 #[inline]
211 pub fn updated_at(&self) -> conjure_object::DateTime<conjure_object::Utc> {
212 self.updated_at
213 }
214 #[inline]
216 pub fn asset_data_scopes_map(
217 &self,
218 ) -> &std::collections::BTreeMap<
219 super::super::super::rids::api::AssetRid,
220 super::DataScopes,
221 > {
222 &self.asset_data_scopes_map
223 }
224 #[deprecated(
225 note = "Use assetDataScopesMap instead. Will be empty for multi-asset runs."
226 )]
227 #[inline]
228 pub fn asset_data_scopes(&self) -> &[super::super::super::asset::api::DataScope] {
229 &*self.asset_data_scopes
230 }
231 #[inline]
233 pub fn data_sources(
234 &self,
235 ) -> &std::collections::BTreeMap<
236 super::super::super::api::DataSourceRefName,
237 super::RunDataSource,
238 > {
239 &self.data_sources
240 }
241 #[inline]
242 pub fn attachments(
243 &self,
244 ) -> &std::collections::BTreeSet<
245 super::super::super::super::api::rids::AttachmentRid,
246 > {
247 &self.attachments
248 }
249 #[deprecated(note = "Use assets")]
250 #[inline]
251 pub fn asset(&self) -> Option<&super::super::super::rids::api::AssetRid> {
252 self.asset.as_ref().map(|o| &*o)
253 }
254 #[inline]
255 pub fn assets(&self) -> &[super::super::super::rids::api::AssetRid] {
256 &*self.assets
257 }
258 #[inline]
259 pub fn is_archived(&self) -> bool {
260 self.is_archived
261 }
262}