1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct UpdateVehicleInput {
/// <p>The unique ID of the vehicle to update.</p>
pub vehicle_name: ::std::option::Option<::std::string::String>,
/// <p>The ARN of a vehicle model (model manifest) associated with the vehicle.</p>
pub model_manifest_arn: ::std::option::Option<::std::string::String>,
/// <p>The ARN of the decoder manifest associated with this vehicle.</p>
pub decoder_manifest_arn: ::std::option::Option<::std::string::String>,
/// <p>Static information about a vehicle in a key-value pair. For example:</p>
/// <p><code>"engineType"</code> : <code>"1.3 L R2"</code></p>
pub attributes: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
/// <p>The method the specified attributes will update the existing attributes on the vehicle. Use<code>Overwite</code> to replace the vehicle attributes with the specified attributes. Or use <code>Merge</code> to combine all attributes.</p>
/// <p>This is required if attributes are present in the input.</p>
pub attribute_update_mode: ::std::option::Option<crate::types::UpdateMode>,
/// <p>Associate state templates with the vehicle.</p>
pub state_templates_to_add: ::std::option::Option<::std::vec::Vec<crate::types::StateTemplateAssociation>>,
/// <p>Remove state templates from the vehicle.</p>
pub state_templates_to_remove: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
/// <p>Change the <code>stateTemplateUpdateStrategy</code> of state templates already associated with the vehicle.</p>
pub state_templates_to_update: ::std::option::Option<::std::vec::Vec<crate::types::StateTemplateAssociation>>,
}
impl UpdateVehicleInput {
/// <p>The unique ID of the vehicle to update.</p>
pub fn vehicle_name(&self) -> ::std::option::Option<&str> {
self.vehicle_name.as_deref()
}
/// <p>The ARN of a vehicle model (model manifest) associated with the vehicle.</p>
pub fn model_manifest_arn(&self) -> ::std::option::Option<&str> {
self.model_manifest_arn.as_deref()
}
/// <p>The ARN of the decoder manifest associated with this vehicle.</p>
pub fn decoder_manifest_arn(&self) -> ::std::option::Option<&str> {
self.decoder_manifest_arn.as_deref()
}
/// <p>Static information about a vehicle in a key-value pair. For example:</p>
/// <p><code>"engineType"</code> : <code>"1.3 L R2"</code></p>
pub fn attributes(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
self.attributes.as_ref()
}
/// <p>The method the specified attributes will update the existing attributes on the vehicle. Use<code>Overwite</code> to replace the vehicle attributes with the specified attributes. Or use <code>Merge</code> to combine all attributes.</p>
/// <p>This is required if attributes are present in the input.</p>
pub fn attribute_update_mode(&self) -> ::std::option::Option<&crate::types::UpdateMode> {
self.attribute_update_mode.as_ref()
}
/// <p>Associate state templates with the vehicle.</p>
///
/// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.state_templates_to_add.is_none()`.
pub fn state_templates_to_add(&self) -> &[crate::types::StateTemplateAssociation] {
self.state_templates_to_add.as_deref().unwrap_or_default()
}
/// <p>Remove state templates from the vehicle.</p>
///
/// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.state_templates_to_remove.is_none()`.
pub fn state_templates_to_remove(&self) -> &[::std::string::String] {
self.state_templates_to_remove.as_deref().unwrap_or_default()
}
/// <p>Change the <code>stateTemplateUpdateStrategy</code> of state templates already associated with the vehicle.</p>
///
/// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.state_templates_to_update.is_none()`.
pub fn state_templates_to_update(&self) -> &[crate::types::StateTemplateAssociation] {
self.state_templates_to_update.as_deref().unwrap_or_default()
}
}
impl UpdateVehicleInput {
/// Creates a new builder-style object to manufacture [`UpdateVehicleInput`](crate::operation::update_vehicle::UpdateVehicleInput).
pub fn builder() -> crate::operation::update_vehicle::builders::UpdateVehicleInputBuilder {
crate::operation::update_vehicle::builders::UpdateVehicleInputBuilder::default()
}
}
/// A builder for [`UpdateVehicleInput`](crate::operation::update_vehicle::UpdateVehicleInput).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct UpdateVehicleInputBuilder {
pub(crate) vehicle_name: ::std::option::Option<::std::string::String>,
pub(crate) model_manifest_arn: ::std::option::Option<::std::string::String>,
pub(crate) decoder_manifest_arn: ::std::option::Option<::std::string::String>,
pub(crate) attributes: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
pub(crate) attribute_update_mode: ::std::option::Option<crate::types::UpdateMode>,
pub(crate) state_templates_to_add: ::std::option::Option<::std::vec::Vec<crate::types::StateTemplateAssociation>>,
pub(crate) state_templates_to_remove: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
pub(crate) state_templates_to_update: ::std::option::Option<::std::vec::Vec<crate::types::StateTemplateAssociation>>,
}
impl UpdateVehicleInputBuilder {
/// <p>The unique ID of the vehicle to update.</p>
/// This field is required.
pub fn vehicle_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.vehicle_name = ::std::option::Option::Some(input.into());
self
}
/// <p>The unique ID of the vehicle to update.</p>
pub fn set_vehicle_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.vehicle_name = input;
self
}
/// <p>The unique ID of the vehicle to update.</p>
pub fn get_vehicle_name(&self) -> &::std::option::Option<::std::string::String> {
&self.vehicle_name
}
/// <p>The ARN of a vehicle model (model manifest) associated with the vehicle.</p>
pub fn model_manifest_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.model_manifest_arn = ::std::option::Option::Some(input.into());
self
}
/// <p>The ARN of a vehicle model (model manifest) associated with the vehicle.</p>
pub fn set_model_manifest_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.model_manifest_arn = input;
self
}
/// <p>The ARN of a vehicle model (model manifest) associated with the vehicle.</p>
pub fn get_model_manifest_arn(&self) -> &::std::option::Option<::std::string::String> {
&self.model_manifest_arn
}
/// <p>The ARN of the decoder manifest associated with this vehicle.</p>
pub fn decoder_manifest_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.decoder_manifest_arn = ::std::option::Option::Some(input.into());
self
}
/// <p>The ARN of the decoder manifest associated with this vehicle.</p>
pub fn set_decoder_manifest_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.decoder_manifest_arn = input;
self
}
/// <p>The ARN of the decoder manifest associated with this vehicle.</p>
pub fn get_decoder_manifest_arn(&self) -> &::std::option::Option<::std::string::String> {
&self.decoder_manifest_arn
}
/// Adds a key-value pair to `attributes`.
///
/// To override the contents of this collection use [`set_attributes`](Self::set_attributes).
///
/// <p>Static information about a vehicle in a key-value pair. For example:</p>
/// <p><code>"engineType"</code> : <code>"1.3 L R2"</code></p>
pub fn attributes(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
let mut hash_map = self.attributes.unwrap_or_default();
hash_map.insert(k.into(), v.into());
self.attributes = ::std::option::Option::Some(hash_map);
self
}
/// <p>Static information about a vehicle in a key-value pair. For example:</p>
/// <p><code>"engineType"</code> : <code>"1.3 L R2"</code></p>
pub fn set_attributes(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
self.attributes = input;
self
}
/// <p>Static information about a vehicle in a key-value pair. For example:</p>
/// <p><code>"engineType"</code> : <code>"1.3 L R2"</code></p>
pub fn get_attributes(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
&self.attributes
}
/// <p>The method the specified attributes will update the existing attributes on the vehicle. Use<code>Overwite</code> to replace the vehicle attributes with the specified attributes. Or use <code>Merge</code> to combine all attributes.</p>
/// <p>This is required if attributes are present in the input.</p>
pub fn attribute_update_mode(mut self, input: crate::types::UpdateMode) -> Self {
self.attribute_update_mode = ::std::option::Option::Some(input);
self
}
/// <p>The method the specified attributes will update the existing attributes on the vehicle. Use<code>Overwite</code> to replace the vehicle attributes with the specified attributes. Or use <code>Merge</code> to combine all attributes.</p>
/// <p>This is required if attributes are present in the input.</p>
pub fn set_attribute_update_mode(mut self, input: ::std::option::Option<crate::types::UpdateMode>) -> Self {
self.attribute_update_mode = input;
self
}
/// <p>The method the specified attributes will update the existing attributes on the vehicle. Use<code>Overwite</code> to replace the vehicle attributes with the specified attributes. Or use <code>Merge</code> to combine all attributes.</p>
/// <p>This is required if attributes are present in the input.</p>
pub fn get_attribute_update_mode(&self) -> &::std::option::Option<crate::types::UpdateMode> {
&self.attribute_update_mode
}
/// Appends an item to `state_templates_to_add`.
///
/// To override the contents of this collection use [`set_state_templates_to_add`](Self::set_state_templates_to_add).
///
/// <p>Associate state templates with the vehicle.</p>
pub fn state_templates_to_add(mut self, input: crate::types::StateTemplateAssociation) -> Self {
let mut v = self.state_templates_to_add.unwrap_or_default();
v.push(input);
self.state_templates_to_add = ::std::option::Option::Some(v);
self
}
/// <p>Associate state templates with the vehicle.</p>
pub fn set_state_templates_to_add(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::StateTemplateAssociation>>) -> Self {
self.state_templates_to_add = input;
self
}
/// <p>Associate state templates with the vehicle.</p>
pub fn get_state_templates_to_add(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::StateTemplateAssociation>> {
&self.state_templates_to_add
}
/// Appends an item to `state_templates_to_remove`.
///
/// To override the contents of this collection use [`set_state_templates_to_remove`](Self::set_state_templates_to_remove).
///
/// <p>Remove state templates from the vehicle.</p>
pub fn state_templates_to_remove(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
let mut v = self.state_templates_to_remove.unwrap_or_default();
v.push(input.into());
self.state_templates_to_remove = ::std::option::Option::Some(v);
self
}
/// <p>Remove state templates from the vehicle.</p>
pub fn set_state_templates_to_remove(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
self.state_templates_to_remove = input;
self
}
/// <p>Remove state templates from the vehicle.</p>
pub fn get_state_templates_to_remove(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
&self.state_templates_to_remove
}
/// Appends an item to `state_templates_to_update`.
///
/// To override the contents of this collection use [`set_state_templates_to_update`](Self::set_state_templates_to_update).
///
/// <p>Change the <code>stateTemplateUpdateStrategy</code> of state templates already associated with the vehicle.</p>
pub fn state_templates_to_update(mut self, input: crate::types::StateTemplateAssociation) -> Self {
let mut v = self.state_templates_to_update.unwrap_or_default();
v.push(input);
self.state_templates_to_update = ::std::option::Option::Some(v);
self
}
/// <p>Change the <code>stateTemplateUpdateStrategy</code> of state templates already associated with the vehicle.</p>
pub fn set_state_templates_to_update(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::StateTemplateAssociation>>) -> Self {
self.state_templates_to_update = input;
self
}
/// <p>Change the <code>stateTemplateUpdateStrategy</code> of state templates already associated with the vehicle.</p>
pub fn get_state_templates_to_update(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::StateTemplateAssociation>> {
&self.state_templates_to_update
}
/// Consumes the builder and constructs a [`UpdateVehicleInput`](crate::operation::update_vehicle::UpdateVehicleInput).
pub fn build(
self,
) -> ::std::result::Result<crate::operation::update_vehicle::UpdateVehicleInput, ::aws_smithy_types::error::operation::BuildError> {
::std::result::Result::Ok(crate::operation::update_vehicle::UpdateVehicleInput {
vehicle_name: self.vehicle_name,
model_manifest_arn: self.model_manifest_arn,
decoder_manifest_arn: self.decoder_manifest_arn,
attributes: self.attributes,
attribute_update_mode: self.attribute_update_mode,
state_templates_to_add: self.state_templates_to_add,
state_templates_to_remove: self.state_templates_to_remove,
state_templates_to_update: self.state_templates_to_update,
})
}
}