nominal_api_conjure/conjure/objects/scout/run/api/
create_run_request.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 CreateRunRequest {
13 #[builder(into)]
14 #[serde(rename = "title")]
15 title: String,
16 #[builder(into)]
17 #[serde(rename = "description")]
18 description: String,
19 #[builder(custom(type = super::UtcTimestamp, convert = Box::new))]
20 #[serde(rename = "startTime")]
21 start_time: Box<super::UtcTimestamp>,
22 #[builder(
23 default,
24 custom(
25 type = impl
26 Into<Option<super::UtcTimestamp>>,
27 convert = |v|v.into().map(Box::new)
28 )
29 )]
30 #[serde(rename = "endTime", skip_serializing_if = "Option::is_none", default)]
31 end_time: Option<Box<super::UtcTimestamp>>,
32 #[builder(
33 default,
34 map(
35 key(type = super::super::super::super::api::PropertyName),
36 value(type = super::super::super::super::api::PropertyValue)
37 )
38 )]
39 #[serde(
40 rename = "properties",
41 skip_serializing_if = "std::collections::BTreeMap::is_empty",
42 default
43 )]
44 properties: std::collections::BTreeMap<
45 super::super::super::super::api::PropertyName,
46 super::super::super::super::api::PropertyValue,
47 >,
48 #[builder(
49 default,
50 map(
51 key(type = super::super::super::super::api::PropertyName),
52 value(type = super::super::super::super::api::TypedPropertyValue)
53 )
54 )]
55 #[serde(
56 rename = "typedProperties",
57 skip_serializing_if = "std::collections::BTreeMap::is_empty",
58 default
59 )]
60 typed_properties: std::collections::BTreeMap<
61 super::super::super::super::api::PropertyName,
62 super::super::super::super::api::TypedPropertyValue,
63 >,
64 #[builder(default, set(item(type = super::super::super::super::api::Label)))]
65 #[serde(
66 rename = "labels",
67 skip_serializing_if = "std::collections::BTreeSet::is_empty",
68 default
69 )]
70 labels: std::collections::BTreeSet<super::super::super::super::api::Label>,
71 #[builder(default, list(item(type = super::Link)))]
72 #[serde(rename = "links", skip_serializing_if = "Vec::is_empty", default)]
73 links: Vec<super::Link>,
74 #[builder(default, into)]
75 #[serde(rename = "runPrefix", skip_serializing_if = "Option::is_none", default)]
76 run_prefix: Option<String>,
77 #[builder(
78 default,
79 map(
80 key(type = super::super::super::api::DataSourceRefName),
81 value(type = super::CreateRunDataSource)
82 )
83 )]
84 #[serde(
85 rename = "dataSources",
86 skip_serializing_if = "std::collections::BTreeMap::is_empty",
87 default
88 )]
89 data_sources: std::collections::BTreeMap<
90 super::super::super::api::DataSourceRefName,
91 super::CreateRunDataSource,
92 >,
93 #[builder(
94 default,
95 set(item(type = super::super::super::super::api::rids::AttachmentRid))
96 )]
97 #[serde(
98 rename = "attachments",
99 skip_serializing_if = "std::collections::BTreeSet::is_empty",
100 default
101 )]
102 attachments: std::collections::BTreeSet<
103 super::super::super::super::api::rids::AttachmentRid,
104 >,
105 #[builder(default, into)]
106 #[serde(rename = "asset", skip_serializing_if = "Option::is_none", default)]
107 asset: Option<super::super::super::rids::api::AssetRid>,
108 #[builder(default, list(item(type = super::super::super::rids::api::AssetRid)))]
109 #[serde(rename = "assets", skip_serializing_if = "Vec::is_empty", default)]
110 assets: Vec<super::super::super::rids::api::AssetRid>,
111 #[builder(default, into)]
112 #[serde(rename = "workspace", skip_serializing_if = "Option::is_none", default)]
113 workspace: Option<super::super::super::super::api::rids::WorkspaceRid>,
114}
115impl CreateRunRequest {
116 #[inline]
118 pub fn new(
119 title: impl Into<String>,
120 description: impl Into<String>,
121 start_time: super::UtcTimestamp,
122 ) -> Self {
123 Self::builder()
124 .title(title)
125 .description(description)
126 .start_time(start_time)
127 .build()
128 }
129 #[inline]
130 pub fn title(&self) -> &str {
131 &*self.title
132 }
133 #[inline]
134 pub fn description(&self) -> &str {
135 &*self.description
136 }
137 #[inline]
138 pub fn start_time(&self) -> &super::UtcTimestamp {
139 &*self.start_time
140 }
141 #[inline]
142 pub fn end_time(&self) -> Option<&super::UtcTimestamp> {
143 self.end_time.as_ref().map(|o| &**o)
144 }
145 #[deprecated(note = "use typedProperties")]
146 #[inline]
147 pub fn properties(
148 &self,
149 ) -> &std::collections::BTreeMap<
150 super::super::super::super::api::PropertyName,
151 super::super::super::super::api::PropertyValue,
152 > {
153 &self.properties
154 }
155 #[inline]
156 pub fn typed_properties(
157 &self,
158 ) -> &std::collections::BTreeMap<
159 super::super::super::super::api::PropertyName,
160 super::super::super::super::api::TypedPropertyValue,
161 > {
162 &self.typed_properties
163 }
164 #[inline]
165 pub fn labels(
166 &self,
167 ) -> &std::collections::BTreeSet<super::super::super::super::api::Label> {
168 &self.labels
169 }
170 #[inline]
171 pub fn links(&self) -> &[super::Link] {
172 &*self.links
173 }
174 #[inline]
175 pub fn run_prefix(&self) -> Option<&str> {
176 self.run_prefix.as_ref().map(|o| &**o)
177 }
178 #[inline]
179 pub fn data_sources(
180 &self,
181 ) -> &std::collections::BTreeMap<
182 super::super::super::api::DataSourceRefName,
183 super::CreateRunDataSource,
184 > {
185 &self.data_sources
186 }
187 #[inline]
188 pub fn attachments(
189 &self,
190 ) -> &std::collections::BTreeSet<
191 super::super::super::super::api::rids::AttachmentRid,
192 > {
193 &self.attachments
194 }
195 #[deprecated(note = "Use assets")]
196 #[inline]
197 pub fn asset(&self) -> Option<&super::super::super::rids::api::AssetRid> {
198 self.asset.as_ref().map(|o| &*o)
199 }
200 #[inline]
201 pub fn assets(&self) -> &[super::super::super::rids::api::AssetRid] {
202 &*self.assets
203 }
204 #[inline]
209 pub fn workspace(
210 &self,
211 ) -> Option<&super::super::super::super::api::rids::WorkspaceRid> {
212 self.workspace.as_ref().map(|o| &*o)
213 }
214}