Skip to main content

nominal_api/conjure/objects/scout/run/api/
update_run_request.rs

1#[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 UpdateRunRequest {
16    #[builder(default, into)]
17    #[serde(rename = "title", skip_serializing_if = "Option::is_none", default)]
18    title: Option<String>,
19    #[builder(default, into)]
20    #[serde(rename = "description", skip_serializing_if = "Option::is_none", default)]
21    description: Option<String>,
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 = "startTime", skip_serializing_if = "Option::is_none", default)]
31    start_time: Option<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(default, into)]
43    #[serde(rename = "properties", skip_serializing_if = "Option::is_none", default)]
44    properties: Option<
45        std::collections::BTreeMap<
46            super::super::super::super::api::PropertyName,
47            super::super::super::super::api::PropertyValue,
48        >,
49    >,
50    #[builder(default, into)]
51    #[serde(rename = "labels", skip_serializing_if = "Option::is_none", default)]
52    labels: Option<std::collections::BTreeSet<super::super::super::super::api::Label>>,
53    #[builder(default, into)]
54    #[serde(rename = "links", skip_serializing_if = "Option::is_none", default)]
55    links: Option<Vec<super::Link>>,
56    #[builder(default, into)]
57    #[serde(rename = "runPrefix", skip_serializing_if = "Option::is_none", default)]
58    run_prefix: Option<String>,
59    #[builder(default, into)]
60    #[serde(rename = "dataSources", skip_serializing_if = "Option::is_none", default)]
61    data_sources: Option<
62        std::collections::BTreeMap<
63            super::super::super::api::DataSourceRefName,
64            super::CreateRunDataSource,
65        >,
66    >,
67    #[builder(default, into)]
68    #[serde(rename = "attachments", skip_serializing_if = "Option::is_none", default)]
69    attachments: Option<
70        std::collections::BTreeSet<super::super::super::super::api::rids::AttachmentRid>,
71    >,
72    #[builder(default, into)]
73    #[serde(rename = "asset", skip_serializing_if = "Option::is_none", default)]
74    asset: Option<super::super::super::rids::api::AssetRid>,
75    #[builder(default, list(item(type = super::super::super::rids::api::AssetRid)))]
76    #[serde(rename = "assets", skip_serializing_if = "Vec::is_empty", default)]
77    assets: Vec<super::super::super::rids::api::AssetRid>,
78    #[builder(default, into)]
79    #[serde(
80        rename = "strictOverwrite",
81        skip_serializing_if = "Option::is_none",
82        default
83    )]
84    strict_overwrite: Option<bool>,
85}
86impl UpdateRunRequest {
87    /// Constructs a new instance of the type.
88    #[inline]
89    pub fn new() -> Self {
90        Self::builder().build()
91    }
92    #[inline]
93    pub fn title(&self) -> Option<&str> {
94        self.title.as_ref().map(|o| &**o)
95    }
96    #[inline]
97    pub fn description(&self) -> Option<&str> {
98        self.description.as_ref().map(|o| &**o)
99    }
100    /// If strictOverwrite is false, will only update the startTime if it is before the existing startTime.
101    #[inline]
102    pub fn start_time(&self) -> Option<&super::UtcTimestamp> {
103        self.start_time.as_ref().map(|o| &**o)
104    }
105    /// If strictOverwrite is false, will only update the endTime if it is after the existing endTime.
106    #[inline]
107    pub fn end_time(&self) -> Option<&super::UtcTimestamp> {
108        self.end_time.as_ref().map(|o| &**o)
109    }
110    #[inline]
111    pub fn properties(
112        &self,
113    ) -> Option<
114        &std::collections::BTreeMap<
115            super::super::super::super::api::PropertyName,
116            super::super::super::super::api::PropertyValue,
117        >,
118    > {
119        self.properties.as_ref().map(|o| &*o)
120    }
121    #[inline]
122    pub fn labels(
123        &self,
124    ) -> Option<&std::collections::BTreeSet<super::super::super::super::api::Label>> {
125        self.labels.as_ref().map(|o| &*o)
126    }
127    #[inline]
128    pub fn links(&self) -> Option<&[super::Link]> {
129        self.links.as_ref().map(|o| &**o)
130    }
131    /// Pass in an empty string to remove the run prefix.
132    #[inline]
133    pub fn run_prefix(&self) -> Option<&str> {
134        self.run_prefix.as_ref().map(|o| &**o)
135    }
136    #[inline]
137    pub fn data_sources(
138        &self,
139    ) -> Option<
140        &std::collections::BTreeMap<
141            super::super::super::api::DataSourceRefName,
142            super::CreateRunDataSource,
143        >,
144    > {
145        self.data_sources.as_ref().map(|o| &*o)
146    }
147    #[inline]
148    pub fn attachments(
149        &self,
150    ) -> Option<
151        &std::collections::BTreeSet<super::super::super::super::api::rids::AttachmentRid>,
152    > {
153        self.attachments.as_ref().map(|o| &*o)
154    }
155    #[deprecated(note = "Use assets")]
156    #[inline]
157    pub fn asset(&self) -> Option<&super::super::super::rids::api::AssetRid> {
158        self.asset.as_ref().map(|o| &*o)
159    }
160    #[inline]
161    pub fn assets(&self) -> &[super::super::super::rids::api::AssetRid] {
162        &*self.assets
163    }
164    /// If true, will blindly overwrite the existing fields with the new values in the request.
165    /// If false, will only update the fields if application constraints are maintained.
166    /// See individual field docs for more details.
167    /// Defaults to true for backwards compatibility.
168    #[inline]
169    pub fn strict_overwrite(&self) -> Option<bool> {
170        self.strict_overwrite.as_ref().map(|o| *o)
171    }
172}