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(default, set(item(type = conjure_object::ResourceIdentifier)))]
81 #[serde(
82 rename = "attachments",
83 skip_serializing_if = "std::collections::BTreeSet::is_empty",
84 default
85 )]
86 attachments: std::collections::BTreeSet<conjure_object::ResourceIdentifier>,
87 #[builder(default, into)]
88 #[serde(rename = "asset", skip_serializing_if = "Option::is_none", default)]
89 asset: Option<super::super::super::rids::api::AssetRid>,
90 #[builder(default, list(item(type = super::super::super::rids::api::AssetRid)))]
91 #[serde(rename = "assets", skip_serializing_if = "Vec::is_empty", default)]
92 assets: Vec<super::super::super::rids::api::AssetRid>,
93 #[builder(default, into)]
94 #[serde(rename = "workspace", skip_serializing_if = "Option::is_none", default)]
95 workspace: Option<conjure_object::ResourceIdentifier>,
96}
97impl CreateRunRequest {
98 #[inline]
100 pub fn new(
101 title: impl Into<String>,
102 description: impl Into<String>,
103 start_time: super::UtcTimestamp,
104 ) -> Self {
105 Self::builder()
106 .title(title)
107 .description(description)
108 .start_time(start_time)
109 .build()
110 }
111 #[inline]
112 pub fn title(&self) -> &str {
113 &*self.title
114 }
115 #[inline]
116 pub fn description(&self) -> &str {
117 &*self.description
118 }
119 #[inline]
120 pub fn start_time(&self) -> &super::UtcTimestamp {
121 &*self.start_time
122 }
123 #[inline]
124 pub fn end_time(&self) -> Option<&super::UtcTimestamp> {
125 self.end_time.as_ref().map(|o| &**o)
126 }
127 #[inline]
128 pub fn properties(
129 &self,
130 ) -> &std::collections::BTreeMap<
131 super::super::super::super::api::PropertyName,
132 super::super::super::super::api::PropertyValue,
133 > {
134 &self.properties
135 }
136 #[inline]
137 pub fn labels(
138 &self,
139 ) -> &std::collections::BTreeSet<super::super::super::super::api::Label> {
140 &self.labels
141 }
142 #[inline]
143 pub fn links(&self) -> &[super::Link] {
144 &*self.links
145 }
146 #[inline]
147 pub fn run_prefix(&self) -> Option<&str> {
148 self.run_prefix.as_ref().map(|o| &**o)
149 }
150 #[inline]
151 pub fn data_sources(
152 &self,
153 ) -> &std::collections::BTreeMap<
154 super::super::super::api::DataSourceRefName,
155 super::CreateRunDataSource,
156 > {
157 &self.data_sources
158 }
159 #[inline]
160 pub fn attachments(
161 &self,
162 ) -> &std::collections::BTreeSet<conjure_object::ResourceIdentifier> {
163 &self.attachments
164 }
165 #[deprecated(note = "Use assets")]
166 #[inline]
167 pub fn asset(&self) -> Option<&super::super::super::rids::api::AssetRid> {
168 self.asset.as_ref().map(|o| &*o)
169 }
170 #[inline]
171 pub fn assets(&self) -> &[super::super::super::rids::api::AssetRid] {
172 &*self.assets
173 }
174 #[inline]
179 pub fn workspace(&self) -> Option<&conjure_object::ResourceIdentifier> {
180 self.workspace.as_ref().map(|o| &*o)
181 }
182}