aws_sdk_iotfleetwise/operation/get_campaign/
_get_campaign_output.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq)]
5pub struct GetCampaignOutput {
6    /// <p>The name of the campaign.</p>
7    pub name: ::std::option::Option<::std::string::String>,
8    /// <p>The Amazon Resource Name (ARN) of the campaign.</p>
9    pub arn: ::std::option::Option<::std::string::String>,
10    /// <p>The description of the campaign.</p>
11    pub description: ::std::option::Option<::std::string::String>,
12    /// <p>The ARN of a signal catalog.</p>
13    pub signal_catalog_arn: ::std::option::Option<::std::string::String>,
14    /// <p>The ARN of the vehicle or the fleet targeted by the campaign.</p>
15    pub target_arn: ::std::option::Option<::std::string::String>,
16    /// <p>The state of the campaign. The status can be one of: <code>CREATING</code>, <code>WAITING_FOR_APPROVAL</code>, <code>RUNNING</code>, and <code>SUSPENDED</code>.</p>
17    pub status: ::std::option::Option<crate::types::CampaignStatus>,
18    /// <p>The time, in milliseconds, to deliver a campaign after it was approved.</p>
19    pub start_time: ::std::option::Option<::aws_smithy_types::DateTime>,
20    /// <p>The time the campaign expires, in seconds since epoch (January 1, 1970 at midnight UTC time). Vehicle data won't be collected after the campaign expires.</p>
21    pub expiry_time: ::std::option::Option<::aws_smithy_types::DateTime>,
22    /// <p>How long (in seconds) to collect raw data after a triggering event initiates the collection.</p>
23    pub post_trigger_collection_duration: ::std::option::Option<i64>,
24    /// <p>Option for a vehicle to send diagnostic trouble codes to Amazon Web Services IoT FleetWise.</p>
25    pub diagnostics_mode: ::std::option::Option<crate::types::DiagnosticsMode>,
26    /// <p>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.</p>
27    pub spooling_mode: ::std::option::Option<crate::types::SpoolingMode>,
28    /// <p>Whether to compress signals before transmitting data to Amazon Web Services IoT FleetWise. If <code>OFF</code> is specified, the signals aren't compressed. If it's not specified, <code>SNAPPY</code> is used.</p>
29    pub compression: ::std::option::Option<crate::types::Compression>,
30    /// <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.</p>
31    pub priority: ::std::option::Option<i32>,
32    /// <p>Information about a list of signals to collect data on.</p>
33    pub signals_to_collect: ::std::option::Option<::std::vec::Vec<crate::types::SignalInformation>>,
34    /// <p>Information about the data collection scheme associated with the campaign.</p>
35    pub collection_scheme: ::std::option::Option<crate::types::CollectionScheme>,
36    /// <p>A list of vehicle attributes associated with the campaign.</p>
37    pub data_extra_dimensions: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
38    /// <p>The time the campaign was created in seconds since epoch (January 1, 1970 at midnight UTC time).</p>
39    pub creation_time: ::std::option::Option<::aws_smithy_types::DateTime>,
40    /// <p>The last time the campaign was modified.</p>
41    pub last_modification_time: ::std::option::Option<::aws_smithy_types::DateTime>,
42    /// <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>
43    /// <p>MQTT is the publish/subscribe messaging protocol used by Amazon Web Services IoT to communicate with your devices.</p>
44    /// <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.</p>
45    /// <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>
46    pub data_destination_configs: ::std::option::Option<::std::vec::Vec<crate::types::DataDestinationConfig>>,
47    /// <p>The data partitions associated with the signals collected from the vehicle.</p>
48    pub data_partitions: ::std::option::Option<::std::vec::Vec<crate::types::DataPartition>>,
49    /// <p>Information about a list of signals to fetch data from.</p>
50    pub signals_to_fetch: ::std::option::Option<::std::vec::Vec<crate::types::SignalFetchInformation>>,
51    _request_id: Option<String>,
52}
53impl GetCampaignOutput {
54    /// <p>The name of the campaign.</p>
55    pub fn name(&self) -> ::std::option::Option<&str> {
56        self.name.as_deref()
57    }
58    /// <p>The Amazon Resource Name (ARN) of the campaign.</p>
59    pub fn arn(&self) -> ::std::option::Option<&str> {
60        self.arn.as_deref()
61    }
62    /// <p>The description of the campaign.</p>
63    pub fn description(&self) -> ::std::option::Option<&str> {
64        self.description.as_deref()
65    }
66    /// <p>The ARN of a signal catalog.</p>
67    pub fn signal_catalog_arn(&self) -> ::std::option::Option<&str> {
68        self.signal_catalog_arn.as_deref()
69    }
70    /// <p>The ARN of the vehicle or the fleet targeted by the campaign.</p>
71    pub fn target_arn(&self) -> ::std::option::Option<&str> {
72        self.target_arn.as_deref()
73    }
74    /// <p>The state of the campaign. The status can be one of: <code>CREATING</code>, <code>WAITING_FOR_APPROVAL</code>, <code>RUNNING</code>, and <code>SUSPENDED</code>.</p>
75    pub fn status(&self) -> ::std::option::Option<&crate::types::CampaignStatus> {
76        self.status.as_ref()
77    }
78    /// <p>The time, in milliseconds, to deliver a campaign after it was approved.</p>
79    pub fn start_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
80        self.start_time.as_ref()
81    }
82    /// <p>The time the campaign expires, in seconds since epoch (January 1, 1970 at midnight UTC time). Vehicle data won't be collected after the campaign expires.</p>
83    pub fn expiry_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
84        self.expiry_time.as_ref()
85    }
86    /// <p>How long (in seconds) to collect raw data after a triggering event initiates the collection.</p>
87    pub fn post_trigger_collection_duration(&self) -> ::std::option::Option<i64> {
88        self.post_trigger_collection_duration
89    }
90    /// <p>Option for a vehicle to send diagnostic trouble codes to Amazon Web Services IoT FleetWise.</p>
91    pub fn diagnostics_mode(&self) -> ::std::option::Option<&crate::types::DiagnosticsMode> {
92        self.diagnostics_mode.as_ref()
93    }
94    /// <p>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.</p>
95    pub fn spooling_mode(&self) -> ::std::option::Option<&crate::types::SpoolingMode> {
96        self.spooling_mode.as_ref()
97    }
98    /// <p>Whether to compress signals before transmitting data to Amazon Web Services IoT FleetWise. If <code>OFF</code> is specified, the signals aren't compressed. If it's not specified, <code>SNAPPY</code> is used.</p>
99    pub fn compression(&self) -> ::std::option::Option<&crate::types::Compression> {
100        self.compression.as_ref()
101    }
102    /// <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.</p>
103    pub fn priority(&self) -> ::std::option::Option<i32> {
104        self.priority
105    }
106    /// <p>Information about a list of signals to collect data on.</p>
107    ///
108    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.signals_to_collect.is_none()`.
109    pub fn signals_to_collect(&self) -> &[crate::types::SignalInformation] {
110        self.signals_to_collect.as_deref().unwrap_or_default()
111    }
112    /// <p>Information about the data collection scheme associated with the campaign.</p>
113    pub fn collection_scheme(&self) -> ::std::option::Option<&crate::types::CollectionScheme> {
114        self.collection_scheme.as_ref()
115    }
116    /// <p>A list of vehicle attributes associated with the campaign.</p>
117    ///
118    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.data_extra_dimensions.is_none()`.
119    pub fn data_extra_dimensions(&self) -> &[::std::string::String] {
120        self.data_extra_dimensions.as_deref().unwrap_or_default()
121    }
122    /// <p>The time the campaign was created in seconds since epoch (January 1, 1970 at midnight UTC time).</p>
123    pub fn creation_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
124        self.creation_time.as_ref()
125    }
126    /// <p>The last time the campaign was modified.</p>
127    pub fn last_modification_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
128        self.last_modification_time.as_ref()
129    }
130    /// <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>
131    /// <p>MQTT is the publish/subscribe messaging protocol used by Amazon Web Services IoT to communicate with your devices.</p>
132    /// <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.</p>
133    /// <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>
134    ///
135    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.data_destination_configs.is_none()`.
136    pub fn data_destination_configs(&self) -> &[crate::types::DataDestinationConfig] {
137        self.data_destination_configs.as_deref().unwrap_or_default()
138    }
139    /// <p>The data partitions associated with the signals collected from the vehicle.</p>
140    ///
141    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.data_partitions.is_none()`.
142    pub fn data_partitions(&self) -> &[crate::types::DataPartition] {
143        self.data_partitions.as_deref().unwrap_or_default()
144    }
145    /// <p>Information about a list of signals to fetch data from.</p>
146    ///
147    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.signals_to_fetch.is_none()`.
148    pub fn signals_to_fetch(&self) -> &[crate::types::SignalFetchInformation] {
149        self.signals_to_fetch.as_deref().unwrap_or_default()
150    }
151}
152impl ::std::fmt::Debug for GetCampaignOutput {
153    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
154        let mut formatter = f.debug_struct("GetCampaignOutput");
155        formatter.field("name", &self.name);
156        formatter.field("arn", &self.arn);
157        formatter.field("description", &self.description);
158        formatter.field("signal_catalog_arn", &self.signal_catalog_arn);
159        formatter.field("target_arn", &self.target_arn);
160        formatter.field("status", &self.status);
161        formatter.field("start_time", &self.start_time);
162        formatter.field("expiry_time", &self.expiry_time);
163        formatter.field("post_trigger_collection_duration", &self.post_trigger_collection_duration);
164        formatter.field("diagnostics_mode", &self.diagnostics_mode);
165        formatter.field("spooling_mode", &self.spooling_mode);
166        formatter.field("compression", &self.compression);
167        formatter.field("priority", &self.priority);
168        formatter.field("signals_to_collect", &"*** Sensitive Data Redacted ***");
169        formatter.field("collection_scheme", &self.collection_scheme);
170        formatter.field("data_extra_dimensions", &"*** Sensitive Data Redacted ***");
171        formatter.field("creation_time", &self.creation_time);
172        formatter.field("last_modification_time", &self.last_modification_time);
173        formatter.field("data_destination_configs", &self.data_destination_configs);
174        formatter.field("data_partitions", &self.data_partitions);
175        formatter.field("signals_to_fetch", &self.signals_to_fetch);
176        formatter.field("_request_id", &self._request_id);
177        formatter.finish()
178    }
179}
180impl ::aws_types::request_id::RequestId for GetCampaignOutput {
181    fn request_id(&self) -> Option<&str> {
182        self._request_id.as_deref()
183    }
184}
185impl GetCampaignOutput {
186    /// Creates a new builder-style object to manufacture [`GetCampaignOutput`](crate::operation::get_campaign::GetCampaignOutput).
187    pub fn builder() -> crate::operation::get_campaign::builders::GetCampaignOutputBuilder {
188        crate::operation::get_campaign::builders::GetCampaignOutputBuilder::default()
189    }
190}
191
192/// A builder for [`GetCampaignOutput`](crate::operation::get_campaign::GetCampaignOutput).
193#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default)]
194#[non_exhaustive]
195pub struct GetCampaignOutputBuilder {
196    pub(crate) name: ::std::option::Option<::std::string::String>,
197    pub(crate) arn: ::std::option::Option<::std::string::String>,
198    pub(crate) description: ::std::option::Option<::std::string::String>,
199    pub(crate) signal_catalog_arn: ::std::option::Option<::std::string::String>,
200    pub(crate) target_arn: ::std::option::Option<::std::string::String>,
201    pub(crate) status: ::std::option::Option<crate::types::CampaignStatus>,
202    pub(crate) start_time: ::std::option::Option<::aws_smithy_types::DateTime>,
203    pub(crate) expiry_time: ::std::option::Option<::aws_smithy_types::DateTime>,
204    pub(crate) post_trigger_collection_duration: ::std::option::Option<i64>,
205    pub(crate) diagnostics_mode: ::std::option::Option<crate::types::DiagnosticsMode>,
206    pub(crate) spooling_mode: ::std::option::Option<crate::types::SpoolingMode>,
207    pub(crate) compression: ::std::option::Option<crate::types::Compression>,
208    pub(crate) priority: ::std::option::Option<i32>,
209    pub(crate) signals_to_collect: ::std::option::Option<::std::vec::Vec<crate::types::SignalInformation>>,
210    pub(crate) collection_scheme: ::std::option::Option<crate::types::CollectionScheme>,
211    pub(crate) data_extra_dimensions: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
212    pub(crate) creation_time: ::std::option::Option<::aws_smithy_types::DateTime>,
213    pub(crate) last_modification_time: ::std::option::Option<::aws_smithy_types::DateTime>,
214    pub(crate) data_destination_configs: ::std::option::Option<::std::vec::Vec<crate::types::DataDestinationConfig>>,
215    pub(crate) data_partitions: ::std::option::Option<::std::vec::Vec<crate::types::DataPartition>>,
216    pub(crate) signals_to_fetch: ::std::option::Option<::std::vec::Vec<crate::types::SignalFetchInformation>>,
217    _request_id: Option<String>,
218}
219impl GetCampaignOutputBuilder {
220    /// <p>The name of the campaign.</p>
221    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
222        self.name = ::std::option::Option::Some(input.into());
223        self
224    }
225    /// <p>The name of the campaign.</p>
226    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
227        self.name = input;
228        self
229    }
230    /// <p>The name of the campaign.</p>
231    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
232        &self.name
233    }
234    /// <p>The Amazon Resource Name (ARN) of the campaign.</p>
235    pub fn arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
236        self.arn = ::std::option::Option::Some(input.into());
237        self
238    }
239    /// <p>The Amazon Resource Name (ARN) of the campaign.</p>
240    pub fn set_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
241        self.arn = input;
242        self
243    }
244    /// <p>The Amazon Resource Name (ARN) of the campaign.</p>
245    pub fn get_arn(&self) -> &::std::option::Option<::std::string::String> {
246        &self.arn
247    }
248    /// <p>The description of the campaign.</p>
249    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
250        self.description = ::std::option::Option::Some(input.into());
251        self
252    }
253    /// <p>The description of the campaign.</p>
254    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
255        self.description = input;
256        self
257    }
258    /// <p>The description of the campaign.</p>
259    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
260        &self.description
261    }
262    /// <p>The ARN of a signal catalog.</p>
263    pub fn signal_catalog_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
264        self.signal_catalog_arn = ::std::option::Option::Some(input.into());
265        self
266    }
267    /// <p>The ARN of a signal catalog.</p>
268    pub fn set_signal_catalog_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
269        self.signal_catalog_arn = input;
270        self
271    }
272    /// <p>The ARN of a signal catalog.</p>
273    pub fn get_signal_catalog_arn(&self) -> &::std::option::Option<::std::string::String> {
274        &self.signal_catalog_arn
275    }
276    /// <p>The ARN of the vehicle or the fleet targeted by the campaign.</p>
277    pub fn target_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
278        self.target_arn = ::std::option::Option::Some(input.into());
279        self
280    }
281    /// <p>The ARN of the vehicle or the fleet targeted by the campaign.</p>
282    pub fn set_target_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
283        self.target_arn = input;
284        self
285    }
286    /// <p>The ARN of the vehicle or the fleet targeted by the campaign.</p>
287    pub fn get_target_arn(&self) -> &::std::option::Option<::std::string::String> {
288        &self.target_arn
289    }
290    /// <p>The state of the campaign. The status can be one of: <code>CREATING</code>, <code>WAITING_FOR_APPROVAL</code>, <code>RUNNING</code>, and <code>SUSPENDED</code>.</p>
291    pub fn status(mut self, input: crate::types::CampaignStatus) -> Self {
292        self.status = ::std::option::Option::Some(input);
293        self
294    }
295    /// <p>The state of the campaign. The status can be one of: <code>CREATING</code>, <code>WAITING_FOR_APPROVAL</code>, <code>RUNNING</code>, and <code>SUSPENDED</code>.</p>
296    pub fn set_status(mut self, input: ::std::option::Option<crate::types::CampaignStatus>) -> Self {
297        self.status = input;
298        self
299    }
300    /// <p>The state of the campaign. The status can be one of: <code>CREATING</code>, <code>WAITING_FOR_APPROVAL</code>, <code>RUNNING</code>, and <code>SUSPENDED</code>.</p>
301    pub fn get_status(&self) -> &::std::option::Option<crate::types::CampaignStatus> {
302        &self.status
303    }
304    /// <p>The time, in milliseconds, to deliver a campaign after it was approved.</p>
305    pub fn start_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
306        self.start_time = ::std::option::Option::Some(input);
307        self
308    }
309    /// <p>The time, in milliseconds, to deliver a campaign after it was approved.</p>
310    pub fn set_start_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
311        self.start_time = input;
312        self
313    }
314    /// <p>The time, in milliseconds, to deliver a campaign after it was approved.</p>
315    pub fn get_start_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
316        &self.start_time
317    }
318    /// <p>The time the campaign expires, in seconds since epoch (January 1, 1970 at midnight UTC time). Vehicle data won't be collected after the campaign expires.</p>
319    pub fn expiry_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
320        self.expiry_time = ::std::option::Option::Some(input);
321        self
322    }
323    /// <p>The time the campaign expires, in seconds since epoch (January 1, 1970 at midnight UTC time). Vehicle data won't be collected after the campaign expires.</p>
324    pub fn set_expiry_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
325        self.expiry_time = input;
326        self
327    }
328    /// <p>The time the campaign expires, in seconds since epoch (January 1, 1970 at midnight UTC time). Vehicle data won't be collected after the campaign expires.</p>
329    pub fn get_expiry_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
330        &self.expiry_time
331    }
332    /// <p>How long (in seconds) to collect raw data after a triggering event initiates the collection.</p>
333    pub fn post_trigger_collection_duration(mut self, input: i64) -> Self {
334        self.post_trigger_collection_duration = ::std::option::Option::Some(input);
335        self
336    }
337    /// <p>How long (in seconds) to collect raw data after a triggering event initiates the collection.</p>
338    pub fn set_post_trigger_collection_duration(mut self, input: ::std::option::Option<i64>) -> Self {
339        self.post_trigger_collection_duration = input;
340        self
341    }
342    /// <p>How long (in seconds) to collect raw data after a triggering event initiates the collection.</p>
343    pub fn get_post_trigger_collection_duration(&self) -> &::std::option::Option<i64> {
344        &self.post_trigger_collection_duration
345    }
346    /// <p>Option for a vehicle to send diagnostic trouble codes to Amazon Web Services IoT FleetWise.</p>
347    pub fn diagnostics_mode(mut self, input: crate::types::DiagnosticsMode) -> Self {
348        self.diagnostics_mode = ::std::option::Option::Some(input);
349        self
350    }
351    /// <p>Option for a vehicle to send diagnostic trouble codes to Amazon Web Services IoT FleetWise.</p>
352    pub fn set_diagnostics_mode(mut self, input: ::std::option::Option<crate::types::DiagnosticsMode>) -> Self {
353        self.diagnostics_mode = input;
354        self
355    }
356    /// <p>Option for a vehicle to send diagnostic trouble codes to Amazon Web Services IoT FleetWise.</p>
357    pub fn get_diagnostics_mode(&self) -> &::std::option::Option<crate::types::DiagnosticsMode> {
358        &self.diagnostics_mode
359    }
360    /// <p>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.</p>
361    pub fn spooling_mode(mut self, input: crate::types::SpoolingMode) -> Self {
362        self.spooling_mode = ::std::option::Option::Some(input);
363        self
364    }
365    /// <p>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.</p>
366    pub fn set_spooling_mode(mut self, input: ::std::option::Option<crate::types::SpoolingMode>) -> Self {
367        self.spooling_mode = input;
368        self
369    }
370    /// <p>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.</p>
371    pub fn get_spooling_mode(&self) -> &::std::option::Option<crate::types::SpoolingMode> {
372        &self.spooling_mode
373    }
374    /// <p>Whether to compress signals before transmitting data to Amazon Web Services IoT FleetWise. If <code>OFF</code> is specified, the signals aren't compressed. If it's not specified, <code>SNAPPY</code> is used.</p>
375    pub fn compression(mut self, input: crate::types::Compression) -> Self {
376        self.compression = ::std::option::Option::Some(input);
377        self
378    }
379    /// <p>Whether to compress signals before transmitting data to Amazon Web Services IoT FleetWise. If <code>OFF</code> is specified, the signals aren't compressed. If it's not specified, <code>SNAPPY</code> is used.</p>
380    pub fn set_compression(mut self, input: ::std::option::Option<crate::types::Compression>) -> Self {
381        self.compression = input;
382        self
383    }
384    /// <p>Whether to compress signals before transmitting data to Amazon Web Services IoT FleetWise. If <code>OFF</code> is specified, the signals aren't compressed. If it's not specified, <code>SNAPPY</code> is used.</p>
385    pub fn get_compression(&self) -> &::std::option::Option<crate::types::Compression> {
386        &self.compression
387    }
388    /// <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.</p>
389    pub fn priority(mut self, input: i32) -> Self {
390        self.priority = ::std::option::Option::Some(input);
391        self
392    }
393    /// <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.</p>
394    pub fn set_priority(mut self, input: ::std::option::Option<i32>) -> Self {
395        self.priority = input;
396        self
397    }
398    /// <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.</p>
399    pub fn get_priority(&self) -> &::std::option::Option<i32> {
400        &self.priority
401    }
402    /// Appends an item to `signals_to_collect`.
403    ///
404    /// To override the contents of this collection use [`set_signals_to_collect`](Self::set_signals_to_collect).
405    ///
406    /// <p>Information about a list of signals to collect data on.</p>
407    pub fn signals_to_collect(mut self, input: crate::types::SignalInformation) -> Self {
408        let mut v = self.signals_to_collect.unwrap_or_default();
409        v.push(input);
410        self.signals_to_collect = ::std::option::Option::Some(v);
411        self
412    }
413    /// <p>Information about a list of signals to collect data on.</p>
414    pub fn set_signals_to_collect(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::SignalInformation>>) -> Self {
415        self.signals_to_collect = input;
416        self
417    }
418    /// <p>Information about a list of signals to collect data on.</p>
419    pub fn get_signals_to_collect(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::SignalInformation>> {
420        &self.signals_to_collect
421    }
422    /// <p>Information about the data collection scheme associated with the campaign.</p>
423    pub fn collection_scheme(mut self, input: crate::types::CollectionScheme) -> Self {
424        self.collection_scheme = ::std::option::Option::Some(input);
425        self
426    }
427    /// <p>Information about the data collection scheme associated with the campaign.</p>
428    pub fn set_collection_scheme(mut self, input: ::std::option::Option<crate::types::CollectionScheme>) -> Self {
429        self.collection_scheme = input;
430        self
431    }
432    /// <p>Information about the data collection scheme associated with the campaign.</p>
433    pub fn get_collection_scheme(&self) -> &::std::option::Option<crate::types::CollectionScheme> {
434        &self.collection_scheme
435    }
436    /// Appends an item to `data_extra_dimensions`.
437    ///
438    /// To override the contents of this collection use [`set_data_extra_dimensions`](Self::set_data_extra_dimensions).
439    ///
440    /// <p>A list of vehicle attributes associated with the campaign.</p>
441    pub fn data_extra_dimensions(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
442        let mut v = self.data_extra_dimensions.unwrap_or_default();
443        v.push(input.into());
444        self.data_extra_dimensions = ::std::option::Option::Some(v);
445        self
446    }
447    /// <p>A list of vehicle attributes associated with the campaign.</p>
448    pub fn set_data_extra_dimensions(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
449        self.data_extra_dimensions = input;
450        self
451    }
452    /// <p>A list of vehicle attributes associated with the campaign.</p>
453    pub fn get_data_extra_dimensions(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
454        &self.data_extra_dimensions
455    }
456    /// <p>The time the campaign was created in seconds since epoch (January 1, 1970 at midnight UTC time).</p>
457    pub fn creation_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
458        self.creation_time = ::std::option::Option::Some(input);
459        self
460    }
461    /// <p>The time the campaign was created in seconds since epoch (January 1, 1970 at midnight UTC time).</p>
462    pub fn set_creation_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
463        self.creation_time = input;
464        self
465    }
466    /// <p>The time the campaign was created in seconds since epoch (January 1, 1970 at midnight UTC time).</p>
467    pub fn get_creation_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
468        &self.creation_time
469    }
470    /// <p>The last time the campaign was modified.</p>
471    pub fn last_modification_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
472        self.last_modification_time = ::std::option::Option::Some(input);
473        self
474    }
475    /// <p>The last time the campaign was modified.</p>
476    pub fn set_last_modification_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
477        self.last_modification_time = input;
478        self
479    }
480    /// <p>The last time the campaign was modified.</p>
481    pub fn get_last_modification_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
482        &self.last_modification_time
483    }
484    /// Appends an item to `data_destination_configs`.
485    ///
486    /// To override the contents of this collection use [`set_data_destination_configs`](Self::set_data_destination_configs).
487    ///
488    /// <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>
489    /// <p>MQTT is the publish/subscribe messaging protocol used by Amazon Web Services IoT to communicate with your devices.</p>
490    /// <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.</p>
491    /// <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>
492    pub fn data_destination_configs(mut self, input: crate::types::DataDestinationConfig) -> Self {
493        let mut v = self.data_destination_configs.unwrap_or_default();
494        v.push(input);
495        self.data_destination_configs = ::std::option::Option::Some(v);
496        self
497    }
498    /// <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>
499    /// <p>MQTT is the publish/subscribe messaging protocol used by Amazon Web Services IoT to communicate with your devices.</p>
500    /// <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.</p>
501    /// <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>
502    pub fn set_data_destination_configs(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::DataDestinationConfig>>) -> Self {
503        self.data_destination_configs = input;
504        self
505    }
506    /// <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>
507    /// <p>MQTT is the publish/subscribe messaging protocol used by Amazon Web Services IoT to communicate with your devices.</p>
508    /// <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.</p>
509    /// <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>
510    pub fn get_data_destination_configs(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::DataDestinationConfig>> {
511        &self.data_destination_configs
512    }
513    /// Appends an item to `data_partitions`.
514    ///
515    /// To override the contents of this collection use [`set_data_partitions`](Self::set_data_partitions).
516    ///
517    /// <p>The data partitions associated with the signals collected from the vehicle.</p>
518    pub fn data_partitions(mut self, input: crate::types::DataPartition) -> Self {
519        let mut v = self.data_partitions.unwrap_or_default();
520        v.push(input);
521        self.data_partitions = ::std::option::Option::Some(v);
522        self
523    }
524    /// <p>The data partitions associated with the signals collected from the vehicle.</p>
525    pub fn set_data_partitions(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::DataPartition>>) -> Self {
526        self.data_partitions = input;
527        self
528    }
529    /// <p>The data partitions associated with the signals collected from the vehicle.</p>
530    pub fn get_data_partitions(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::DataPartition>> {
531        &self.data_partitions
532    }
533    /// Appends an item to `signals_to_fetch`.
534    ///
535    /// To override the contents of this collection use [`set_signals_to_fetch`](Self::set_signals_to_fetch).
536    ///
537    /// <p>Information about a list of signals to fetch data from.</p>
538    pub fn signals_to_fetch(mut self, input: crate::types::SignalFetchInformation) -> Self {
539        let mut v = self.signals_to_fetch.unwrap_or_default();
540        v.push(input);
541        self.signals_to_fetch = ::std::option::Option::Some(v);
542        self
543    }
544    /// <p>Information about a list of signals to fetch data from.</p>
545    pub fn set_signals_to_fetch(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::SignalFetchInformation>>) -> Self {
546        self.signals_to_fetch = input;
547        self
548    }
549    /// <p>Information about a list of signals to fetch data from.</p>
550    pub fn get_signals_to_fetch(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::SignalFetchInformation>> {
551        &self.signals_to_fetch
552    }
553    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
554        self._request_id = Some(request_id.into());
555        self
556    }
557
558    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
559        self._request_id = request_id;
560        self
561    }
562    /// Consumes the builder and constructs a [`GetCampaignOutput`](crate::operation::get_campaign::GetCampaignOutput).
563    pub fn build(self) -> crate::operation::get_campaign::GetCampaignOutput {
564        crate::operation::get_campaign::GetCampaignOutput {
565            name: self.name,
566            arn: self.arn,
567            description: self.description,
568            signal_catalog_arn: self.signal_catalog_arn,
569            target_arn: self.target_arn,
570            status: self.status,
571            start_time: self.start_time,
572            expiry_time: self.expiry_time,
573            post_trigger_collection_duration: self.post_trigger_collection_duration,
574            diagnostics_mode: self.diagnostics_mode,
575            spooling_mode: self.spooling_mode,
576            compression: self.compression,
577            priority: self.priority,
578            signals_to_collect: self.signals_to_collect,
579            collection_scheme: self.collection_scheme,
580            data_extra_dimensions: self.data_extra_dimensions,
581            creation_time: self.creation_time,
582            last_modification_time: self.last_modification_time,
583            data_destination_configs: self.data_destination_configs,
584            data_partitions: self.data_partitions,
585            signals_to_fetch: self.signals_to_fetch,
586            _request_id: self._request_id,
587        }
588    }
589}
590impl ::std::fmt::Debug for GetCampaignOutputBuilder {
591    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
592        let mut formatter = f.debug_struct("GetCampaignOutputBuilder");
593        formatter.field("name", &self.name);
594        formatter.field("arn", &self.arn);
595        formatter.field("description", &self.description);
596        formatter.field("signal_catalog_arn", &self.signal_catalog_arn);
597        formatter.field("target_arn", &self.target_arn);
598        formatter.field("status", &self.status);
599        formatter.field("start_time", &self.start_time);
600        formatter.field("expiry_time", &self.expiry_time);
601        formatter.field("post_trigger_collection_duration", &self.post_trigger_collection_duration);
602        formatter.field("diagnostics_mode", &self.diagnostics_mode);
603        formatter.field("spooling_mode", &self.spooling_mode);
604        formatter.field("compression", &self.compression);
605        formatter.field("priority", &self.priority);
606        formatter.field("signals_to_collect", &"*** Sensitive Data Redacted ***");
607        formatter.field("collection_scheme", &self.collection_scheme);
608        formatter.field("data_extra_dimensions", &"*** Sensitive Data Redacted ***");
609        formatter.field("creation_time", &self.creation_time);
610        formatter.field("last_modification_time", &self.last_modification_time);
611        formatter.field("data_destination_configs", &self.data_destination_configs);
612        formatter.field("data_partitions", &self.data_partitions);
613        formatter.field("signals_to_fetch", &self.signals_to_fetch);
614        formatter.field("_request_id", &self._request_id);
615        formatter.finish()
616    }
617}