aws_sdk_iotfleetwise/operation/create_campaign/builders.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_campaign::_create_campaign_output::CreateCampaignOutputBuilder;
3
4pub use crate::operation::create_campaign::_create_campaign_input::CreateCampaignInputBuilder;
5
6impl crate::operation::create_campaign::builders::CreateCampaignInputBuilder {
7 /// Sends a request with this input using the given client.
8 pub async fn send_with(
9 self,
10 client: &crate::Client,
11 ) -> ::std::result::Result<
12 crate::operation::create_campaign::CreateCampaignOutput,
13 ::aws_smithy_runtime_api::client::result::SdkError<
14 crate::operation::create_campaign::CreateCampaignError,
15 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16 >,
17 > {
18 let mut fluent_builder = client.create_campaign();
19 fluent_builder.inner = self;
20 fluent_builder.send().await
21 }
22}
23/// Fluent builder constructing a request to `CreateCampaign`.
24///
25/// <p>Creates an orchestration of data collection rules. The Amazon Web Services IoT FleetWise Edge Agent software running in vehicles uses campaigns to decide how to collect and transfer data to the cloud. You create campaigns in the cloud. After you or your team approve campaigns, Amazon Web Services IoT FleetWise automatically deploys them to vehicles.</p>
26/// <p>For more information, see <a href="https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/campaigns.html">Collect and transfer data with campaigns</a> in the <i>Amazon Web Services IoT FleetWise Developer Guide</i>.</p><important>
27/// <p>Access to certain Amazon Web Services IoT FleetWise features is currently gated. For more information, see <a href="https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleetwise-regions.html">Amazon Web Services Region and feature availability</a> in the <i>Amazon Web Services IoT FleetWise Developer Guide</i>.</p>
28/// </important>
29#[derive(::std::clone::Clone, ::std::fmt::Debug)]
30pub struct CreateCampaignFluentBuilder {
31 handle: ::std::sync::Arc<crate::client::Handle>,
32 inner: crate::operation::create_campaign::builders::CreateCampaignInputBuilder,
33 config_override: ::std::option::Option<crate::config::Builder>,
34}
35impl
36 crate::client::customize::internal::CustomizableSend<
37 crate::operation::create_campaign::CreateCampaignOutput,
38 crate::operation::create_campaign::CreateCampaignError,
39 > for CreateCampaignFluentBuilder
40{
41 fn send(
42 self,
43 config_override: crate::config::Builder,
44 ) -> crate::client::customize::internal::BoxFuture<
45 crate::client::customize::internal::SendResult<
46 crate::operation::create_campaign::CreateCampaignOutput,
47 crate::operation::create_campaign::CreateCampaignError,
48 >,
49 > {
50 ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
51 }
52}
53impl CreateCampaignFluentBuilder {
54 /// Creates a new `CreateCampaignFluentBuilder`.
55 pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
56 Self {
57 handle,
58 inner: ::std::default::Default::default(),
59 config_override: ::std::option::Option::None,
60 }
61 }
62 /// Access the CreateCampaign as a reference.
63 pub fn as_input(&self) -> &crate::operation::create_campaign::builders::CreateCampaignInputBuilder {
64 &self.inner
65 }
66 /// Sends the request and returns the response.
67 ///
68 /// If an error occurs, an `SdkError` will be returned with additional details that
69 /// can be matched against.
70 ///
71 /// By default, any retryable failures will be retried twice. Retry behavior
72 /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
73 /// set when configuring the client.
74 pub async fn send(
75 self,
76 ) -> ::std::result::Result<
77 crate::operation::create_campaign::CreateCampaignOutput,
78 ::aws_smithy_runtime_api::client::result::SdkError<
79 crate::operation::create_campaign::CreateCampaignError,
80 ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
81 >,
82 > {
83 let input = self
84 .inner
85 .build()
86 .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
87 let runtime_plugins = crate::operation::create_campaign::CreateCampaign::operation_runtime_plugins(
88 self.handle.runtime_plugins.clone(),
89 &self.handle.conf,
90 self.config_override,
91 );
92 crate::operation::create_campaign::CreateCampaign::orchestrate(&runtime_plugins, input).await
93 }
94
95 /// Consumes this builder, creating a customizable operation that can be modified before being sent.
96 pub fn customize(
97 self,
98 ) -> crate::client::customize::CustomizableOperation<
99 crate::operation::create_campaign::CreateCampaignOutput,
100 crate::operation::create_campaign::CreateCampaignError,
101 Self,
102 > {
103 crate::client::customize::CustomizableOperation::new(self)
104 }
105 pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
106 self.set_config_override(::std::option::Option::Some(config_override.into()));
107 self
108 }
109
110 pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
111 self.config_override = config_override;
112 self
113 }
114 /// <p>The name of the campaign to create.</p>
115 pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
116 self.inner = self.inner.name(input.into());
117 self
118 }
119 /// <p>The name of the campaign to create.</p>
120 pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
121 self.inner = self.inner.set_name(input);
122 self
123 }
124 /// <p>The name of the campaign to create.</p>
125 pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
126 self.inner.get_name()
127 }
128 /// <p>An optional description of the campaign to help identify its purpose.</p>
129 pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
130 self.inner = self.inner.description(input.into());
131 self
132 }
133 /// <p>An optional description of the campaign to help identify its purpose.</p>
134 pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
135 self.inner = self.inner.set_description(input);
136 self
137 }
138 /// <p>An optional description of the campaign to help identify its purpose.</p>
139 pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
140 self.inner.get_description()
141 }
142 /// <p>The Amazon Resource Name (ARN) of the signal catalog to associate with the campaign.</p>
143 pub fn signal_catalog_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
144 self.inner = self.inner.signal_catalog_arn(input.into());
145 self
146 }
147 /// <p>The Amazon Resource Name (ARN) of the signal catalog to associate with the campaign.</p>
148 pub fn set_signal_catalog_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
149 self.inner = self.inner.set_signal_catalog_arn(input);
150 self
151 }
152 /// <p>The Amazon Resource Name (ARN) of the signal catalog to associate with the campaign.</p>
153 pub fn get_signal_catalog_arn(&self) -> &::std::option::Option<::std::string::String> {
154 self.inner.get_signal_catalog_arn()
155 }
156 /// <p>The ARN of the vehicle or fleet to deploy a campaign to.</p>
157 pub fn target_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
158 self.inner = self.inner.target_arn(input.into());
159 self
160 }
161 /// <p>The ARN of the vehicle or fleet to deploy a campaign to.</p>
162 pub fn set_target_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
163 self.inner = self.inner.set_target_arn(input);
164 self
165 }
166 /// <p>The ARN of the vehicle or fleet to deploy a campaign to.</p>
167 pub fn get_target_arn(&self) -> &::std::option::Option<::std::string::String> {
168 self.inner.get_target_arn()
169 }
170 /// <p>The time, in milliseconds, to deliver a campaign after it was approved. If it's not specified, <code>0</code> is used.</p>
171 /// <p>Default: <code>0</code></p>
172 pub fn start_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
173 self.inner = self.inner.start_time(input);
174 self
175 }
176 /// <p>The time, in milliseconds, to deliver a campaign after it was approved. If it's not specified, <code>0</code> is used.</p>
177 /// <p>Default: <code>0</code></p>
178 pub fn set_start_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
179 self.inner = self.inner.set_start_time(input);
180 self
181 }
182 /// <p>The time, in milliseconds, to deliver a campaign after it was approved. If it's not specified, <code>0</code> is used.</p>
183 /// <p>Default: <code>0</code></p>
184 pub fn get_start_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
185 self.inner.get_start_time()
186 }
187 /// <p>The time the campaign expires, in seconds since epoch (January 1, 1970 at midnight UTC time). Vehicle data isn't collected after the campaign expires.</p>
188 /// <p>Default: 253402214400 (December 31, 9999, 00:00:00 UTC)</p>
189 pub fn expiry_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
190 self.inner = self.inner.expiry_time(input);
191 self
192 }
193 /// <p>The time the campaign expires, in seconds since epoch (January 1, 1970 at midnight UTC time). Vehicle data isn't collected after the campaign expires.</p>
194 /// <p>Default: 253402214400 (December 31, 9999, 00:00:00 UTC)</p>
195 pub fn set_expiry_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
196 self.inner = self.inner.set_expiry_time(input);
197 self
198 }
199 /// <p>The time the campaign expires, in seconds since epoch (January 1, 1970 at midnight UTC time). Vehicle data isn't collected after the campaign expires.</p>
200 /// <p>Default: 253402214400 (December 31, 9999, 00:00:00 UTC)</p>
201 pub fn get_expiry_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
202 self.inner.get_expiry_time()
203 }
204 /// <p>How long (in milliseconds) to collect raw data after a triggering event initiates the collection. If it's not specified, <code>0</code> is used.</p>
205 /// <p>Default: <code>0</code></p>
206 pub fn post_trigger_collection_duration(mut self, input: i64) -> Self {
207 self.inner = self.inner.post_trigger_collection_duration(input);
208 self
209 }
210 /// <p>How long (in milliseconds) to collect raw data after a triggering event initiates the collection. If it's not specified, <code>0</code> is used.</p>
211 /// <p>Default: <code>0</code></p>
212 pub fn set_post_trigger_collection_duration(mut self, input: ::std::option::Option<i64>) -> Self {
213 self.inner = self.inner.set_post_trigger_collection_duration(input);
214 self
215 }
216 /// <p>How long (in milliseconds) to collect raw data after a triggering event initiates the collection. If it's not specified, <code>0</code> is used.</p>
217 /// <p>Default: <code>0</code></p>
218 pub fn get_post_trigger_collection_duration(&self) -> &::std::option::Option<i64> {
219 self.inner.get_post_trigger_collection_duration()
220 }
221 /// <p>Option for a vehicle to send diagnostic trouble codes to Amazon Web Services IoT FleetWise. If you want to send diagnostic trouble codes, use <code>SEND_ACTIVE_DTCS</code>. If it's not specified, <code>OFF</code> is used.</p>
222 /// <p>Default: <code>OFF</code></p>
223 pub fn diagnostics_mode(mut self, input: crate::types::DiagnosticsMode) -> Self {
224 self.inner = self.inner.diagnostics_mode(input);
225 self
226 }
227 /// <p>Option for a vehicle to send diagnostic trouble codes to Amazon Web Services IoT FleetWise. If you want to send diagnostic trouble codes, use <code>SEND_ACTIVE_DTCS</code>. If it's not specified, <code>OFF</code> is used.</p>
228 /// <p>Default: <code>OFF</code></p>
229 pub fn set_diagnostics_mode(mut self, input: ::std::option::Option<crate::types::DiagnosticsMode>) -> Self {
230 self.inner = self.inner.set_diagnostics_mode(input);
231 self
232 }
233 /// <p>Option for a vehicle to send diagnostic trouble codes to Amazon Web Services IoT FleetWise. If you want to send diagnostic trouble codes, use <code>SEND_ACTIVE_DTCS</code>. If it's not specified, <code>OFF</code> is used.</p>
234 /// <p>Default: <code>OFF</code></p>
235 pub fn get_diagnostics_mode(&self) -> &::std::option::Option<crate::types::DiagnosticsMode> {
236 self.inner.get_diagnostics_mode()
237 }
238 /// <p>Determines whether to store collected data after a vehicle lost a connection with the cloud. After a connection is re-established, the data is automatically forwarded to Amazon Web Services IoT FleetWise. If you want to store collected data when a vehicle loses connection with the cloud, use <code>TO_DISK</code>. If it's not specified, <code>OFF</code> is used.</p>
239 /// <p>Default: <code>OFF</code></p>
240 pub fn spooling_mode(mut self, input: crate::types::SpoolingMode) -> Self {
241 self.inner = self.inner.spooling_mode(input);
242 self
243 }
244 /// <p>Determines whether to store collected data after a vehicle lost a connection with the cloud. After a connection is re-established, the data is automatically forwarded to Amazon Web Services IoT FleetWise. If you want to store collected data when a vehicle loses connection with the cloud, use <code>TO_DISK</code>. If it's not specified, <code>OFF</code> is used.</p>
245 /// <p>Default: <code>OFF</code></p>
246 pub fn set_spooling_mode(mut self, input: ::std::option::Option<crate::types::SpoolingMode>) -> Self {
247 self.inner = self.inner.set_spooling_mode(input);
248 self
249 }
250 /// <p>Determines whether to store collected data after a vehicle lost a connection with the cloud. After a connection is re-established, the data is automatically forwarded to Amazon Web Services IoT FleetWise. If you want to store collected data when a vehicle loses connection with the cloud, use <code>TO_DISK</code>. If it's not specified, <code>OFF</code> is used.</p>
251 /// <p>Default: <code>OFF</code></p>
252 pub fn get_spooling_mode(&self) -> &::std::option::Option<crate::types::SpoolingMode> {
253 self.inner.get_spooling_mode()
254 }
255 /// <p>Determines whether to compress signals before transmitting data to Amazon Web Services IoT FleetWise. If you don't want to compress the signals, use <code>OFF</code>. If it's not specified, <code>SNAPPY</code> is used.</p>
256 /// <p>Default: <code>SNAPPY</code></p>
257 pub fn compression(mut self, input: crate::types::Compression) -> Self {
258 self.inner = self.inner.compression(input);
259 self
260 }
261 /// <p>Determines whether to compress signals before transmitting data to Amazon Web Services IoT FleetWise. If you don't want to compress the signals, use <code>OFF</code>. If it's not specified, <code>SNAPPY</code> is used.</p>
262 /// <p>Default: <code>SNAPPY</code></p>
263 pub fn set_compression(mut self, input: ::std::option::Option<crate::types::Compression>) -> Self {
264 self.inner = self.inner.set_compression(input);
265 self
266 }
267 /// <p>Determines whether to compress signals before transmitting data to Amazon Web Services IoT FleetWise. If you don't want to compress the signals, use <code>OFF</code>. If it's not specified, <code>SNAPPY</code> is used.</p>
268 /// <p>Default: <code>SNAPPY</code></p>
269 pub fn get_compression(&self) -> &::std::option::Option<crate::types::Compression> {
270 self.inner.get_compression()
271 }
272 /// <p>A number indicating the priority of one campaign over another campaign for a certain vehicle or fleet. A campaign with the lowest value is deployed to vehicles before any other campaigns. If it's not specified, <code>0</code> is used.</p>
273 /// <p>Default: <code>0</code></p>
274 #[deprecated(note = "priority is no longer used or needed as input")]
275 pub fn priority(mut self, input: i32) -> Self {
276 self.inner = self.inner.priority(input);
277 self
278 }
279 /// <p>A number indicating the priority of one campaign over another campaign for a certain vehicle or fleet. A campaign with the lowest value is deployed to vehicles before any other campaigns. If it's not specified, <code>0</code> is used.</p>
280 /// <p>Default: <code>0</code></p>
281 #[deprecated(note = "priority is no longer used or needed as input")]
282 pub fn set_priority(mut self, input: ::std::option::Option<i32>) -> Self {
283 self.inner = self.inner.set_priority(input);
284 self
285 }
286 /// <p>A number indicating the priority of one campaign over another campaign for a certain vehicle or fleet. A campaign with the lowest value is deployed to vehicles before any other campaigns. If it's not specified, <code>0</code> is used.</p>
287 /// <p>Default: <code>0</code></p>
288 #[deprecated(note = "priority is no longer used or needed as input")]
289 pub fn get_priority(&self) -> &::std::option::Option<i32> {
290 self.inner.get_priority()
291 }
292 ///
293 /// Appends an item to `signalsToCollect`.
294 ///
295 /// To override the contents of this collection use [`set_signals_to_collect`](Self::set_signals_to_collect).
296 ///
297 /// <p>A list of information about signals to collect.</p><note>
298 /// <p>If you upload a signal as a condition in a data partition for a campaign, then those same signals must be included in <code>signalsToCollect</code>.</p>
299 /// </note>
300 pub fn signals_to_collect(mut self, input: crate::types::SignalInformation) -> Self {
301 self.inner = self.inner.signals_to_collect(input);
302 self
303 }
304 /// <p>A list of information about signals to collect.</p><note>
305 /// <p>If you upload a signal as a condition in a data partition for a campaign, then those same signals must be included in <code>signalsToCollect</code>.</p>
306 /// </note>
307 pub fn set_signals_to_collect(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::SignalInformation>>) -> Self {
308 self.inner = self.inner.set_signals_to_collect(input);
309 self
310 }
311 /// <p>A list of information about signals to collect.</p><note>
312 /// <p>If you upload a signal as a condition in a data partition for a campaign, then those same signals must be included in <code>signalsToCollect</code>.</p>
313 /// </note>
314 pub fn get_signals_to_collect(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::SignalInformation>> {
315 self.inner.get_signals_to_collect()
316 }
317 /// <p>The data collection scheme associated with the campaign. You can specify a scheme that collects data based on time or an event.</p>
318 pub fn collection_scheme(mut self, input: crate::types::CollectionScheme) -> Self {
319 self.inner = self.inner.collection_scheme(input);
320 self
321 }
322 /// <p>The data collection scheme associated with the campaign. You can specify a scheme that collects data based on time or an event.</p>
323 pub fn set_collection_scheme(mut self, input: ::std::option::Option<crate::types::CollectionScheme>) -> Self {
324 self.inner = self.inner.set_collection_scheme(input);
325 self
326 }
327 /// <p>The data collection scheme associated with the campaign. You can specify a scheme that collects data based on time or an event.</p>
328 pub fn get_collection_scheme(&self) -> &::std::option::Option<crate::types::CollectionScheme> {
329 self.inner.get_collection_scheme()
330 }
331 ///
332 /// Appends an item to `dataExtraDimensions`.
333 ///
334 /// To override the contents of this collection use [`set_data_extra_dimensions`](Self::set_data_extra_dimensions).
335 ///
336 /// <p>A list of vehicle attributes to associate with a campaign.</p>
337 /// <p>Enrich the data with specified vehicle attributes. For example, add <code>make</code> and <code>model</code> to the campaign, and Amazon Web Services IoT FleetWise will associate the data with those attributes as dimensions in Amazon Timestream. You can then query the data against <code>make</code> and <code>model</code>.</p>
338 /// <p>Default: An empty array</p>
339 pub fn data_extra_dimensions(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
340 self.inner = self.inner.data_extra_dimensions(input.into());
341 self
342 }
343 /// <p>A list of vehicle attributes to associate with a campaign.</p>
344 /// <p>Enrich the data with specified vehicle attributes. For example, add <code>make</code> and <code>model</code> to the campaign, and Amazon Web Services IoT FleetWise will associate the data with those attributes as dimensions in Amazon Timestream. You can then query the data against <code>make</code> and <code>model</code>.</p>
345 /// <p>Default: An empty array</p>
346 pub fn set_data_extra_dimensions(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
347 self.inner = self.inner.set_data_extra_dimensions(input);
348 self
349 }
350 /// <p>A list of vehicle attributes to associate with a campaign.</p>
351 /// <p>Enrich the data with specified vehicle attributes. For example, add <code>make</code> and <code>model</code> to the campaign, and Amazon Web Services IoT FleetWise will associate the data with those attributes as dimensions in Amazon Timestream. You can then query the data against <code>make</code> and <code>model</code>.</p>
352 /// <p>Default: An empty array</p>
353 pub fn get_data_extra_dimensions(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
354 self.inner.get_data_extra_dimensions()
355 }
356 ///
357 /// Appends an item to `tags`.
358 ///
359 /// To override the contents of this collection use [`set_tags`](Self::set_tags).
360 ///
361 /// <p>Metadata that can be used to manage the campaign.</p>
362 pub fn tags(mut self, input: crate::types::Tag) -> Self {
363 self.inner = self.inner.tags(input);
364 self
365 }
366 /// <p>Metadata that can be used to manage the campaign.</p>
367 pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
368 self.inner = self.inner.set_tags(input);
369 self
370 }
371 /// <p>Metadata that can be used to manage the campaign.</p>
372 pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
373 self.inner.get_tags()
374 }
375 ///
376 /// Appends an item to `dataDestinationConfigs`.
377 ///
378 /// To override the contents of this collection use [`set_data_destination_configs`](Self::set_data_destination_configs).
379 ///
380 /// <p>The destination where the campaign sends data. You can send data to an MQTT topic, or store it in Amazon S3 or Amazon Timestream.</p>
381 /// <p>MQTT is the publish/subscribe messaging protocol used by Amazon Web Services IoT to communicate with your devices.</p>
382 /// <p>Amazon S3 optimizes the cost of data storage and provides additional mechanisms to use vehicle data, such as data lakes, centralized data storage, data processing pipelines, and analytics. Amazon Web Services IoT FleetWise supports at-least-once file delivery to S3. Your vehicle data is stored on multiple Amazon Web Services IoT FleetWise servers for redundancy and high availability.</p>
383 /// <p>You can use Amazon Timestream to access and analyze time series data, and Timestream to query vehicle data so that you can identify trends and patterns.</p>
384 pub fn data_destination_configs(mut self, input: crate::types::DataDestinationConfig) -> Self {
385 self.inner = self.inner.data_destination_configs(input);
386 self
387 }
388 /// <p>The destination where the campaign sends data. You can send data to an MQTT topic, or store it in Amazon S3 or Amazon Timestream.</p>
389 /// <p>MQTT is the publish/subscribe messaging protocol used by Amazon Web Services IoT to communicate with your devices.</p>
390 /// <p>Amazon S3 optimizes the cost of data storage and provides additional mechanisms to use vehicle data, such as data lakes, centralized data storage, data processing pipelines, and analytics. Amazon Web Services IoT FleetWise supports at-least-once file delivery to S3. Your vehicle data is stored on multiple Amazon Web Services IoT FleetWise servers for redundancy and high availability.</p>
391 /// <p>You can use Amazon Timestream to access and analyze time series data, and Timestream to query vehicle data so that you can identify trends and patterns.</p>
392 pub fn set_data_destination_configs(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::DataDestinationConfig>>) -> Self {
393 self.inner = self.inner.set_data_destination_configs(input);
394 self
395 }
396 /// <p>The destination where the campaign sends data. You can send data to an MQTT topic, or store it in Amazon S3 or Amazon Timestream.</p>
397 /// <p>MQTT is the publish/subscribe messaging protocol used by Amazon Web Services IoT to communicate with your devices.</p>
398 /// <p>Amazon S3 optimizes the cost of data storage and provides additional mechanisms to use vehicle data, such as data lakes, centralized data storage, data processing pipelines, and analytics. Amazon Web Services IoT FleetWise supports at-least-once file delivery to S3. Your vehicle data is stored on multiple Amazon Web Services IoT FleetWise servers for redundancy and high availability.</p>
399 /// <p>You can use Amazon Timestream to access and analyze time series data, and Timestream to query vehicle data so that you can identify trends and patterns.</p>
400 pub fn get_data_destination_configs(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::DataDestinationConfig>> {
401 self.inner.get_data_destination_configs()
402 }
403 ///
404 /// Appends an item to `dataPartitions`.
405 ///
406 /// To override the contents of this collection use [`set_data_partitions`](Self::set_data_partitions).
407 ///
408 /// <p>The data partitions associated with the signals collected from the vehicle.</p>
409 pub fn data_partitions(mut self, input: crate::types::DataPartition) -> Self {
410 self.inner = self.inner.data_partitions(input);
411 self
412 }
413 /// <p>The data partitions associated with the signals collected from the vehicle.</p>
414 pub fn set_data_partitions(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::DataPartition>>) -> Self {
415 self.inner = self.inner.set_data_partitions(input);
416 self
417 }
418 /// <p>The data partitions associated with the signals collected from the vehicle.</p>
419 pub fn get_data_partitions(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::DataPartition>> {
420 self.inner.get_data_partitions()
421 }
422 ///
423 /// Appends an item to `signalsToFetch`.
424 ///
425 /// To override the contents of this collection use [`set_signals_to_fetch`](Self::set_signals_to_fetch).
426 ///
427 /// <p>A list of information about signals to fetch.</p>
428 pub fn signals_to_fetch(mut self, input: crate::types::SignalFetchInformation) -> Self {
429 self.inner = self.inner.signals_to_fetch(input);
430 self
431 }
432 /// <p>A list of information about signals to fetch.</p>
433 pub fn set_signals_to_fetch(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::SignalFetchInformation>>) -> Self {
434 self.inner = self.inner.set_signals_to_fetch(input);
435 self
436 }
437 /// <p>A list of information about signals to fetch.</p>
438 pub fn get_signals_to_fetch(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::SignalFetchInformation>> {
439 self.inner.get_signals_to_fetch()
440 }
441}