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