Skip to main content

aws_sdk_datasync/operation/describe_task/
_describe_task_output.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2
3/// <p>DescribeTaskResponse</p>
4#[non_exhaustive]
5#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
6pub struct DescribeTaskOutput {
7    /// <p>The ARN of your task.</p>
8    pub task_arn: ::std::option::Option<::std::string::String>,
9    /// <p>The status of your task. For information about what each status means, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-task-how-to.html#understand-task-creation-statuses">Task statuses</a>.</p>
10    pub status: ::std::option::Option<crate::types::TaskStatus>,
11    /// <p>The name of your task.</p>
12    pub name: ::std::option::Option<::std::string::String>,
13    /// <p>The ARN of the most recent task execution.</p>
14    pub current_task_execution_arn: ::std::option::Option<::std::string::String>,
15    /// <p>The ARN of your transfer's source location.</p>
16    pub source_location_arn: ::std::option::Option<::std::string::String>,
17    /// <p>The ARN of your transfer's destination location.</p>
18    pub destination_location_arn: ::std::option::Option<::std::string::String>,
19    /// <p>The Amazon Resource Name (ARN) of an Amazon CloudWatch log group for monitoring your task.</p>
20    /// <p>For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/configure-logging.html">Monitoring data transfers with CloudWatch Logs</a>.</p>
21    pub cloud_watch_log_group_arn: ::std::option::Option<::std::string::String>,
22    /// <p>The ARNs of the <a href="https://docs.aws.amazon.com/datasync/latest/userguide/datasync-network.html#required-network-interfaces">network interfaces</a> that DataSync created for your source location.</p>
23    pub source_network_interface_arns: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
24    /// <p>The ARNs of the <a href="https://docs.aws.amazon.com/datasync/latest/userguide/datasync-network.html#required-network-interfaces">network interfaces</a> that DataSync created for your destination location.</p>
25    pub destination_network_interface_arns: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
26    /// <p>The task's settings. For example, what file metadata gets preserved, how data integrity gets verified at the end of your transfer, bandwidth limits, among other options.</p>
27    pub options: ::std::option::Option<crate::types::Options>,
28    /// <p>The exclude filters that define the files, objects, and folders in your source location that you don't want DataSync to transfer. For more information and examples, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html">Specifying what DataSync transfers by using filters</a>.</p>
29    pub excludes: ::std::option::Option<::std::vec::Vec<crate::types::FilterRule>>,
30    /// <p>The schedule for when you want your task to run. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/task-scheduling.html">Scheduling your task</a>.</p>
31    pub schedule: ::std::option::Option<crate::types::TaskSchedule>,
32    /// <p>If there's an issue with your task, you can use the error code to help you troubleshoot the problem. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/troubleshooting-datasync-locations-tasks.html">Troubleshooting issues with DataSync transfers</a>.</p>
33    pub error_code: ::std::option::Option<::std::string::String>,
34    /// <p>If there's an issue with your task, you can use the error details to help you troubleshoot the problem. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/troubleshooting-datasync-locations-tasks.html">Troubleshooting issues with DataSync transfers</a>.</p>
35    pub error_detail: ::std::option::Option<::std::string::String>,
36    /// <p>The time that the task was created.</p>
37    pub creation_time: ::std::option::Option<::aws_smithy_types::DateTime>,
38    /// <p>The include filters that define the files, objects, and folders in your source location that you want DataSync to transfer. For more information and examples, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html">Specifying what DataSync transfers by using filters</a>.</p>
39    pub includes: ::std::option::Option<::std::vec::Vec<crate::types::FilterRule>>,
40    /// <p>The configuration of the manifest that lists the files or objects that you want DataSync to transfer. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html">Specifying what DataSync transfers by using a manifest</a>.</p>
41    pub manifest_config: ::std::option::Option<crate::types::ManifestConfig>,
42    /// <p>The configuration of your task report, which provides detailed information about your DataSync transfer. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/task-reports.html">Monitoring your DataSync transfers with task reports</a>.</p>
43    pub task_report_config: ::std::option::Option<crate::types::TaskReportConfig>,
44    /// <p>The details about your <a href="https://docs.aws.amazon.com/datasync/latest/userguide/task-scheduling.html">task schedule</a>.</p>
45    pub schedule_details: ::std::option::Option<crate::types::TaskScheduleDetails>,
46    /// <p>The task mode that you're using. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/choosing-task-mode.html">Choosing a task mode for your data transfer</a>.</p>
47    pub task_mode: ::std::option::Option<crate::types::TaskMode>,
48    _request_id: Option<String>,
49}
50impl DescribeTaskOutput {
51    /// <p>The ARN of your task.</p>
52    pub fn task_arn(&self) -> ::std::option::Option<&str> {
53        self.task_arn.as_deref()
54    }
55    /// <p>The status of your task. For information about what each status means, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-task-how-to.html#understand-task-creation-statuses">Task statuses</a>.</p>
56    pub fn status(&self) -> ::std::option::Option<&crate::types::TaskStatus> {
57        self.status.as_ref()
58    }
59    /// <p>The name of your task.</p>
60    pub fn name(&self) -> ::std::option::Option<&str> {
61        self.name.as_deref()
62    }
63    /// <p>The ARN of the most recent task execution.</p>
64    pub fn current_task_execution_arn(&self) -> ::std::option::Option<&str> {
65        self.current_task_execution_arn.as_deref()
66    }
67    /// <p>The ARN of your transfer's source location.</p>
68    pub fn source_location_arn(&self) -> ::std::option::Option<&str> {
69        self.source_location_arn.as_deref()
70    }
71    /// <p>The ARN of your transfer's destination location.</p>
72    pub fn destination_location_arn(&self) -> ::std::option::Option<&str> {
73        self.destination_location_arn.as_deref()
74    }
75    /// <p>The Amazon Resource Name (ARN) of an Amazon CloudWatch log group for monitoring your task.</p>
76    /// <p>For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/configure-logging.html">Monitoring data transfers with CloudWatch Logs</a>.</p>
77    pub fn cloud_watch_log_group_arn(&self) -> ::std::option::Option<&str> {
78        self.cloud_watch_log_group_arn.as_deref()
79    }
80    /// <p>The ARNs of the <a href="https://docs.aws.amazon.com/datasync/latest/userguide/datasync-network.html#required-network-interfaces">network interfaces</a> that DataSync created for your source location.</p>
81    ///
82    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.source_network_interface_arns.is_none()`.
83    pub fn source_network_interface_arns(&self) -> &[::std::string::String] {
84        self.source_network_interface_arns.as_deref().unwrap_or_default()
85    }
86    /// <p>The ARNs of the <a href="https://docs.aws.amazon.com/datasync/latest/userguide/datasync-network.html#required-network-interfaces">network interfaces</a> that DataSync created for your destination location.</p>
87    ///
88    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.destination_network_interface_arns.is_none()`.
89    pub fn destination_network_interface_arns(&self) -> &[::std::string::String] {
90        self.destination_network_interface_arns.as_deref().unwrap_or_default()
91    }
92    /// <p>The task's settings. For example, what file metadata gets preserved, how data integrity gets verified at the end of your transfer, bandwidth limits, among other options.</p>
93    pub fn options(&self) -> ::std::option::Option<&crate::types::Options> {
94        self.options.as_ref()
95    }
96    /// <p>The exclude filters that define the files, objects, and folders in your source location that you don't want DataSync to transfer. For more information and examples, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html">Specifying what DataSync transfers by using filters</a>.</p>
97    ///
98    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.excludes.is_none()`.
99    pub fn excludes(&self) -> &[crate::types::FilterRule] {
100        self.excludes.as_deref().unwrap_or_default()
101    }
102    /// <p>The schedule for when you want your task to run. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/task-scheduling.html">Scheduling your task</a>.</p>
103    pub fn schedule(&self) -> ::std::option::Option<&crate::types::TaskSchedule> {
104        self.schedule.as_ref()
105    }
106    /// <p>If there's an issue with your task, you can use the error code to help you troubleshoot the problem. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/troubleshooting-datasync-locations-tasks.html">Troubleshooting issues with DataSync transfers</a>.</p>
107    pub fn error_code(&self) -> ::std::option::Option<&str> {
108        self.error_code.as_deref()
109    }
110    /// <p>If there's an issue with your task, you can use the error details to help you troubleshoot the problem. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/troubleshooting-datasync-locations-tasks.html">Troubleshooting issues with DataSync transfers</a>.</p>
111    pub fn error_detail(&self) -> ::std::option::Option<&str> {
112        self.error_detail.as_deref()
113    }
114    /// <p>The time that the task was created.</p>
115    pub fn creation_time(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
116        self.creation_time.as_ref()
117    }
118    /// <p>The include filters that define the files, objects, and folders in your source location that you want DataSync to transfer. For more information and examples, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html">Specifying what DataSync transfers by using filters</a>.</p>
119    ///
120    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.includes.is_none()`.
121    pub fn includes(&self) -> &[crate::types::FilterRule] {
122        self.includes.as_deref().unwrap_or_default()
123    }
124    /// <p>The configuration of the manifest that lists the files or objects that you want DataSync to transfer. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html">Specifying what DataSync transfers by using a manifest</a>.</p>
125    pub fn manifest_config(&self) -> ::std::option::Option<&crate::types::ManifestConfig> {
126        self.manifest_config.as_ref()
127    }
128    /// <p>The configuration of your task report, which provides detailed information about your DataSync transfer. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/task-reports.html">Monitoring your DataSync transfers with task reports</a>.</p>
129    pub fn task_report_config(&self) -> ::std::option::Option<&crate::types::TaskReportConfig> {
130        self.task_report_config.as_ref()
131    }
132    /// <p>The details about your <a href="https://docs.aws.amazon.com/datasync/latest/userguide/task-scheduling.html">task schedule</a>.</p>
133    pub fn schedule_details(&self) -> ::std::option::Option<&crate::types::TaskScheduleDetails> {
134        self.schedule_details.as_ref()
135    }
136    /// <p>The task mode that you're using. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/choosing-task-mode.html">Choosing a task mode for your data transfer</a>.</p>
137    pub fn task_mode(&self) -> ::std::option::Option<&crate::types::TaskMode> {
138        self.task_mode.as_ref()
139    }
140}
141static DESCRIBETASKOUTPUT_MEMBER_TASK_ARN: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
142    ::aws_smithy_schema::ShapeId::from_parts(
143        "com.amazonaws.datasync.synthetic#DescribeTaskOutput$TaskArn",
144        "com.amazonaws.datasync.synthetic",
145        "DescribeTaskOutput",
146    ),
147    ::aws_smithy_schema::ShapeType::String,
148    "TaskArn",
149    0,
150);
151static DESCRIBETASKOUTPUT_MEMBER_STATUS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
152    ::aws_smithy_schema::ShapeId::from_parts(
153        "com.amazonaws.datasync.synthetic#DescribeTaskOutput$Status",
154        "com.amazonaws.datasync.synthetic",
155        "DescribeTaskOutput",
156    ),
157    ::aws_smithy_schema::ShapeType::String,
158    "Status",
159    1,
160);
161static DESCRIBETASKOUTPUT_MEMBER_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
162    ::aws_smithy_schema::ShapeId::from_parts(
163        "com.amazonaws.datasync.synthetic#DescribeTaskOutput$Name",
164        "com.amazonaws.datasync.synthetic",
165        "DescribeTaskOutput",
166    ),
167    ::aws_smithy_schema::ShapeType::String,
168    "Name",
169    2,
170);
171static DESCRIBETASKOUTPUT_MEMBER_CURRENT_TASK_EXECUTION_ARN: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
172    ::aws_smithy_schema::ShapeId::from_parts(
173        "com.amazonaws.datasync.synthetic#DescribeTaskOutput$CurrentTaskExecutionArn",
174        "com.amazonaws.datasync.synthetic",
175        "DescribeTaskOutput",
176    ),
177    ::aws_smithy_schema::ShapeType::String,
178    "CurrentTaskExecutionArn",
179    3,
180);
181static DESCRIBETASKOUTPUT_MEMBER_SOURCE_LOCATION_ARN: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
182    ::aws_smithy_schema::ShapeId::from_parts(
183        "com.amazonaws.datasync.synthetic#DescribeTaskOutput$SourceLocationArn",
184        "com.amazonaws.datasync.synthetic",
185        "DescribeTaskOutput",
186    ),
187    ::aws_smithy_schema::ShapeType::String,
188    "SourceLocationArn",
189    4,
190);
191static DESCRIBETASKOUTPUT_MEMBER_DESTINATION_LOCATION_ARN: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
192    ::aws_smithy_schema::ShapeId::from_parts(
193        "com.amazonaws.datasync.synthetic#DescribeTaskOutput$DestinationLocationArn",
194        "com.amazonaws.datasync.synthetic",
195        "DescribeTaskOutput",
196    ),
197    ::aws_smithy_schema::ShapeType::String,
198    "DestinationLocationArn",
199    5,
200);
201static DESCRIBETASKOUTPUT_MEMBER_CLOUD_WATCH_LOG_GROUP_ARN: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
202    ::aws_smithy_schema::ShapeId::from_parts(
203        "com.amazonaws.datasync.synthetic#DescribeTaskOutput$CloudWatchLogGroupArn",
204        "com.amazonaws.datasync.synthetic",
205        "DescribeTaskOutput",
206    ),
207    ::aws_smithy_schema::ShapeType::String,
208    "CloudWatchLogGroupArn",
209    6,
210);
211static DESCRIBETASKOUTPUT_MEMBER_SOURCE_NETWORK_INTERFACE_ARNS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
212    ::aws_smithy_schema::ShapeId::from_parts(
213        "com.amazonaws.datasync#SourceNetworkInterfaceArns$member",
214        "com.amazonaws.datasync",
215        "SourceNetworkInterfaceArns",
216    ),
217    ::aws_smithy_schema::ShapeType::String,
218    "member",
219    0,
220);
221static DESCRIBETASKOUTPUT_MEMBER_SOURCE_NETWORK_INTERFACE_ARNS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
222    ::aws_smithy_schema::ShapeId::from_parts(
223        "com.amazonaws.datasync.synthetic#DescribeTaskOutput$SourceNetworkInterfaceArns",
224        "com.amazonaws.datasync.synthetic",
225        "DescribeTaskOutput",
226    ),
227    ::aws_smithy_schema::ShapeType::List,
228    "SourceNetworkInterfaceArns",
229    7,
230)
231.with_list_member(&DESCRIBETASKOUTPUT_MEMBER_SOURCE_NETWORK_INTERFACE_ARNS_MEMBER);
232static DESCRIBETASKOUTPUT_MEMBER_DESTINATION_NETWORK_INTERFACE_ARNS_MEMBER: ::aws_smithy_schema::Schema<'static> =
233    ::aws_smithy_schema::Schema::new_member(
234        ::aws_smithy_schema::ShapeId::from_parts(
235            "com.amazonaws.datasync#DestinationNetworkInterfaceArns$member",
236            "com.amazonaws.datasync",
237            "DestinationNetworkInterfaceArns",
238        ),
239        ::aws_smithy_schema::ShapeType::String,
240        "member",
241        0,
242    );
243static DESCRIBETASKOUTPUT_MEMBER_DESTINATION_NETWORK_INTERFACE_ARNS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
244    ::aws_smithy_schema::ShapeId::from_parts(
245        "com.amazonaws.datasync.synthetic#DescribeTaskOutput$DestinationNetworkInterfaceArns",
246        "com.amazonaws.datasync.synthetic",
247        "DescribeTaskOutput",
248    ),
249    ::aws_smithy_schema::ShapeType::List,
250    "DestinationNetworkInterfaceArns",
251    8,
252)
253.with_list_member(&DESCRIBETASKOUTPUT_MEMBER_DESTINATION_NETWORK_INTERFACE_ARNS_MEMBER);
254static DESCRIBETASKOUTPUT_MEMBER_OPTIONS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
255    ::aws_smithy_schema::ShapeId::from_parts(
256        "com.amazonaws.datasync.synthetic#DescribeTaskOutput$Options",
257        "com.amazonaws.datasync.synthetic",
258        "DescribeTaskOutput",
259    ),
260    ::aws_smithy_schema::ShapeType::Structure,
261    "Options",
262    9,
263);
264static DESCRIBETASKOUTPUT_MEMBER_EXCLUDES_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
265    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.datasync#FilterList$member", "com.amazonaws.datasync", "FilterList"),
266    ::aws_smithy_schema::ShapeType::Structure,
267    "member",
268    0,
269);
270static DESCRIBETASKOUTPUT_MEMBER_EXCLUDES: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
271    ::aws_smithy_schema::ShapeId::from_parts(
272        "com.amazonaws.datasync.synthetic#DescribeTaskOutput$Excludes",
273        "com.amazonaws.datasync.synthetic",
274        "DescribeTaskOutput",
275    ),
276    ::aws_smithy_schema::ShapeType::List,
277    "Excludes",
278    10,
279)
280.with_list_member(&DESCRIBETASKOUTPUT_MEMBER_EXCLUDES_MEMBER);
281static DESCRIBETASKOUTPUT_MEMBER_SCHEDULE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
282    ::aws_smithy_schema::ShapeId::from_parts(
283        "com.amazonaws.datasync.synthetic#DescribeTaskOutput$Schedule",
284        "com.amazonaws.datasync.synthetic",
285        "DescribeTaskOutput",
286    ),
287    ::aws_smithy_schema::ShapeType::Structure,
288    "Schedule",
289    11,
290);
291static DESCRIBETASKOUTPUT_MEMBER_ERROR_CODE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
292    ::aws_smithy_schema::ShapeId::from_parts(
293        "com.amazonaws.datasync.synthetic#DescribeTaskOutput$ErrorCode",
294        "com.amazonaws.datasync.synthetic",
295        "DescribeTaskOutput",
296    ),
297    ::aws_smithy_schema::ShapeType::String,
298    "ErrorCode",
299    12,
300);
301static DESCRIBETASKOUTPUT_MEMBER_ERROR_DETAIL: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
302    ::aws_smithy_schema::ShapeId::from_parts(
303        "com.amazonaws.datasync.synthetic#DescribeTaskOutput$ErrorDetail",
304        "com.amazonaws.datasync.synthetic",
305        "DescribeTaskOutput",
306    ),
307    ::aws_smithy_schema::ShapeType::String,
308    "ErrorDetail",
309    13,
310);
311static DESCRIBETASKOUTPUT_MEMBER_CREATION_TIME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
312    ::aws_smithy_schema::ShapeId::from_parts(
313        "com.amazonaws.datasync.synthetic#DescribeTaskOutput$CreationTime",
314        "com.amazonaws.datasync.synthetic",
315        "DescribeTaskOutput",
316    ),
317    ::aws_smithy_schema::ShapeType::Timestamp,
318    "CreationTime",
319    14,
320);
321static DESCRIBETASKOUTPUT_MEMBER_INCLUDES_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
322    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.datasync#FilterList$member", "com.amazonaws.datasync", "FilterList"),
323    ::aws_smithy_schema::ShapeType::Structure,
324    "member",
325    0,
326);
327static DESCRIBETASKOUTPUT_MEMBER_INCLUDES: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
328    ::aws_smithy_schema::ShapeId::from_parts(
329        "com.amazonaws.datasync.synthetic#DescribeTaskOutput$Includes",
330        "com.amazonaws.datasync.synthetic",
331        "DescribeTaskOutput",
332    ),
333    ::aws_smithy_schema::ShapeType::List,
334    "Includes",
335    15,
336)
337.with_list_member(&DESCRIBETASKOUTPUT_MEMBER_INCLUDES_MEMBER);
338static DESCRIBETASKOUTPUT_MEMBER_MANIFEST_CONFIG: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
339    ::aws_smithy_schema::ShapeId::from_parts(
340        "com.amazonaws.datasync.synthetic#DescribeTaskOutput$ManifestConfig",
341        "com.amazonaws.datasync.synthetic",
342        "DescribeTaskOutput",
343    ),
344    ::aws_smithy_schema::ShapeType::Structure,
345    "ManifestConfig",
346    16,
347);
348static DESCRIBETASKOUTPUT_MEMBER_TASK_REPORT_CONFIG: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
349    ::aws_smithy_schema::ShapeId::from_parts(
350        "com.amazonaws.datasync.synthetic#DescribeTaskOutput$TaskReportConfig",
351        "com.amazonaws.datasync.synthetic",
352        "DescribeTaskOutput",
353    ),
354    ::aws_smithy_schema::ShapeType::Structure,
355    "TaskReportConfig",
356    17,
357);
358static DESCRIBETASKOUTPUT_MEMBER_SCHEDULE_DETAILS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
359    ::aws_smithy_schema::ShapeId::from_parts(
360        "com.amazonaws.datasync.synthetic#DescribeTaskOutput$ScheduleDetails",
361        "com.amazonaws.datasync.synthetic",
362        "DescribeTaskOutput",
363    ),
364    ::aws_smithy_schema::ShapeType::Structure,
365    "ScheduleDetails",
366    18,
367);
368static DESCRIBETASKOUTPUT_MEMBER_TASK_MODE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
369    ::aws_smithy_schema::ShapeId::from_parts(
370        "com.amazonaws.datasync.synthetic#DescribeTaskOutput$TaskMode",
371        "com.amazonaws.datasync.synthetic",
372        "DescribeTaskOutput",
373    ),
374    ::aws_smithy_schema::ShapeType::String,
375    "TaskMode",
376    19,
377);
378static DESCRIBETASKOUTPUT_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
379    ::aws_smithy_schema::ShapeId::from_parts(
380        "com.amazonaws.datasync.synthetic#DescribeTaskOutput",
381        "com.amazonaws.datasync.synthetic",
382        "DescribeTaskOutput",
383    ),
384    ::aws_smithy_schema::ShapeType::Structure,
385    &[
386        &DESCRIBETASKOUTPUT_MEMBER_TASK_ARN,
387        &DESCRIBETASKOUTPUT_MEMBER_STATUS,
388        &DESCRIBETASKOUTPUT_MEMBER_NAME,
389        &DESCRIBETASKOUTPUT_MEMBER_CURRENT_TASK_EXECUTION_ARN,
390        &DESCRIBETASKOUTPUT_MEMBER_SOURCE_LOCATION_ARN,
391        &DESCRIBETASKOUTPUT_MEMBER_DESTINATION_LOCATION_ARN,
392        &DESCRIBETASKOUTPUT_MEMBER_CLOUD_WATCH_LOG_GROUP_ARN,
393        &DESCRIBETASKOUTPUT_MEMBER_SOURCE_NETWORK_INTERFACE_ARNS,
394        &DESCRIBETASKOUTPUT_MEMBER_DESTINATION_NETWORK_INTERFACE_ARNS,
395        &DESCRIBETASKOUTPUT_MEMBER_OPTIONS,
396        &DESCRIBETASKOUTPUT_MEMBER_EXCLUDES,
397        &DESCRIBETASKOUTPUT_MEMBER_SCHEDULE,
398        &DESCRIBETASKOUTPUT_MEMBER_ERROR_CODE,
399        &DESCRIBETASKOUTPUT_MEMBER_ERROR_DETAIL,
400        &DESCRIBETASKOUTPUT_MEMBER_CREATION_TIME,
401        &DESCRIBETASKOUTPUT_MEMBER_INCLUDES,
402        &DESCRIBETASKOUTPUT_MEMBER_MANIFEST_CONFIG,
403        &DESCRIBETASKOUTPUT_MEMBER_TASK_REPORT_CONFIG,
404        &DESCRIBETASKOUTPUT_MEMBER_SCHEDULE_DETAILS,
405        &DESCRIBETASKOUTPUT_MEMBER_TASK_MODE,
406    ],
407)
408.with_original_name("DescribeTaskResponse");
409impl DescribeTaskOutput {
410    /// The schema for this shape.
411    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &DESCRIBETASKOUTPUT_SCHEMA;
412}
413impl ::aws_smithy_schema::serde::SerializableStruct for DescribeTaskOutput {
414    fn schema(&self) -> &::aws_smithy_schema::Schema<'_> {
415        Self::SCHEMA
416    }
417
418    #[allow(unused_variables, clippy::diverging_sub_expression)]
419    fn serialize_members(
420        &self,
421        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
422    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
423        if let Some(ref val) = self.task_arn {
424            ser.write_string(&DESCRIBETASKOUTPUT_MEMBER_TASK_ARN, val)?;
425        }
426        if let Some(ref val) = self.status {
427            ser.write_string(&DESCRIBETASKOUTPUT_MEMBER_STATUS, val.as_str())?;
428        }
429        if let Some(ref val) = self.name {
430            ser.write_string(&DESCRIBETASKOUTPUT_MEMBER_NAME, val)?;
431        }
432        if let Some(ref val) = self.current_task_execution_arn {
433            ser.write_string(&DESCRIBETASKOUTPUT_MEMBER_CURRENT_TASK_EXECUTION_ARN, val)?;
434        }
435        if let Some(ref val) = self.source_location_arn {
436            ser.write_string(&DESCRIBETASKOUTPUT_MEMBER_SOURCE_LOCATION_ARN, val)?;
437        }
438        if let Some(ref val) = self.destination_location_arn {
439            ser.write_string(&DESCRIBETASKOUTPUT_MEMBER_DESTINATION_LOCATION_ARN, val)?;
440        }
441        if let Some(ref val) = self.cloud_watch_log_group_arn {
442            ser.write_string(&DESCRIBETASKOUTPUT_MEMBER_CLOUD_WATCH_LOG_GROUP_ARN, val)?;
443        }
444        if let Some(ref val) = self.source_network_interface_arns {
445            ser.write_list(
446                &DESCRIBETASKOUTPUT_MEMBER_SOURCE_NETWORK_INTERFACE_ARNS,
447                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
448                    for item in val {
449                        ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
450                    }
451                    Ok(())
452                },
453            )?;
454        }
455        if let Some(ref val) = self.destination_network_interface_arns {
456            ser.write_list(
457                &DESCRIBETASKOUTPUT_MEMBER_DESTINATION_NETWORK_INTERFACE_ARNS,
458                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
459                    for item in val {
460                        ser.write_string(&aws_smithy_schema::prelude::STRING, item)?;
461                    }
462                    Ok(())
463                },
464            )?;
465        }
466        if let Some(ref val) = self.options {
467            ser.write_struct(&DESCRIBETASKOUTPUT_MEMBER_OPTIONS, val)?;
468        }
469        if let Some(ref val) = self.excludes {
470            ser.write_list(
471                &DESCRIBETASKOUTPUT_MEMBER_EXCLUDES,
472                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
473                    for item in val {
474                        ser.write_struct(crate::types::FilterRule::SCHEMA, item)?;
475                    }
476                    Ok(())
477                },
478            )?;
479        }
480        if let Some(ref val) = self.schedule {
481            ser.write_struct(&DESCRIBETASKOUTPUT_MEMBER_SCHEDULE, val)?;
482        }
483        if let Some(ref val) = self.error_code {
484            ser.write_string(&DESCRIBETASKOUTPUT_MEMBER_ERROR_CODE, val)?;
485        }
486        if let Some(ref val) = self.error_detail {
487            ser.write_string(&DESCRIBETASKOUTPUT_MEMBER_ERROR_DETAIL, val)?;
488        }
489        if let Some(ref val) = self.creation_time {
490            ser.write_timestamp(&DESCRIBETASKOUTPUT_MEMBER_CREATION_TIME, val)?;
491        }
492        if let Some(ref val) = self.includes {
493            ser.write_list(
494                &DESCRIBETASKOUTPUT_MEMBER_INCLUDES,
495                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
496                    for item in val {
497                        ser.write_struct(crate::types::FilterRule::SCHEMA, item)?;
498                    }
499                    Ok(())
500                },
501            )?;
502        }
503        if let Some(ref val) = self.manifest_config {
504            ser.write_struct(&DESCRIBETASKOUTPUT_MEMBER_MANIFEST_CONFIG, val)?;
505        }
506        if let Some(ref val) = self.task_report_config {
507            ser.write_struct(&DESCRIBETASKOUTPUT_MEMBER_TASK_REPORT_CONFIG, val)?;
508        }
509        if let Some(ref val) = self.schedule_details {
510            ser.write_struct(&DESCRIBETASKOUTPUT_MEMBER_SCHEDULE_DETAILS, val)?;
511        }
512        if let Some(ref val) = self.task_mode {
513            ser.write_string(&DESCRIBETASKOUTPUT_MEMBER_TASK_MODE, val.as_str())?;
514        }
515        Ok(())
516    }
517}
518impl crate::operation::describe_task::builders::DescribeTaskOutputBuilder {
519    #[allow(
520        unused_variables,
521        unreachable_code,
522        clippy::single_match,
523        clippy::match_single_binding,
524        clippy::diverging_sub_expression
525    )]
526    pub(crate) fn deserialize_members(
527        &mut self,
528        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
529    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
530        deserializer.read_struct(&DESCRIBETASKOUTPUT_SCHEMA, &mut |member, deser| {
531            match member.member_index() {
532                Some(0) => {
533                    if deser.is_null() {
534                        deser.read_null()?;
535                    } else {
536                        self.task_arn = Some(deser.read_string(member)?);
537                    }
538                }
539                Some(1) => {
540                    if deser.is_null() {
541                        deser.read_null()?;
542                    } else {
543                        self.status = Some(crate::types::TaskStatus::from(deser.read_string(member)?.as_str()));
544                    }
545                }
546                Some(2) => {
547                    if deser.is_null() {
548                        deser.read_null()?;
549                    } else {
550                        self.name = Some(deser.read_string(member)?);
551                    }
552                }
553                Some(3) => {
554                    if deser.is_null() {
555                        deser.read_null()?;
556                    } else {
557                        self.current_task_execution_arn = Some(deser.read_string(member)?);
558                    }
559                }
560                Some(4) => {
561                    if deser.is_null() {
562                        deser.read_null()?;
563                    } else {
564                        self.source_location_arn = Some(deser.read_string(member)?);
565                    }
566                }
567                Some(5) => {
568                    if deser.is_null() {
569                        deser.read_null()?;
570                    } else {
571                        self.destination_location_arn = Some(deser.read_string(member)?);
572                    }
573                }
574                Some(6) => {
575                    if deser.is_null() {
576                        deser.read_null()?;
577                    } else {
578                        self.cloud_watch_log_group_arn = Some(deser.read_string(member)?);
579                    }
580                }
581                Some(7) => {
582                    if deser.is_null() {
583                        deser.read_null()?;
584                    } else {
585                        self.source_network_interface_arns = Some(deser.read_string_list(member)?);
586                    }
587                }
588                Some(8) => {
589                    if deser.is_null() {
590                        deser.read_null()?;
591                    } else {
592                        self.destination_network_interface_arns = Some(deser.read_string_list(member)?);
593                    }
594                }
595                Some(9) => {
596                    if deser.is_null() {
597                        deser.read_null()?;
598                    } else {
599                        self.options = Some(crate::types::Options::deserialize(deser)?);
600                    }
601                }
602                Some(10) => {
603                    if deser.is_null() {
604                        deser.read_null()?;
605                    } else {
606                        self.excludes = Some({
607                            let mut container = Vec::new();
608                            deser.read_list(member, &mut |deser| {
609                                container.push(crate::types::FilterRule::deserialize(deser)?);
610                                Ok(())
611                            })?;
612                            container
613                        });
614                    }
615                }
616                Some(11) => {
617                    if deser.is_null() {
618                        deser.read_null()?;
619                    } else {
620                        self.schedule = Some(crate::types::TaskSchedule::deserialize(deser)?);
621                    }
622                }
623                Some(12) => {
624                    if deser.is_null() {
625                        deser.read_null()?;
626                    } else {
627                        self.error_code = Some(deser.read_string(member)?);
628                    }
629                }
630                Some(13) => {
631                    if deser.is_null() {
632                        deser.read_null()?;
633                    } else {
634                        self.error_detail = Some(deser.read_string(member)?);
635                    }
636                }
637                Some(14) => {
638                    if deser.is_null() {
639                        deser.read_null()?;
640                    } else {
641                        self.creation_time = Some(deser.read_timestamp(member)?);
642                    }
643                }
644                Some(15) => {
645                    if deser.is_null() {
646                        deser.read_null()?;
647                    } else {
648                        self.includes = Some({
649                            let mut container = Vec::new();
650                            deser.read_list(member, &mut |deser| {
651                                container.push(crate::types::FilterRule::deserialize(deser)?);
652                                Ok(())
653                            })?;
654                            container
655                        });
656                    }
657                }
658                Some(16) => {
659                    if deser.is_null() {
660                        deser.read_null()?;
661                    } else {
662                        self.manifest_config = Some(crate::types::ManifestConfig::deserialize(deser)?);
663                    }
664                }
665                Some(17) => {
666                    if deser.is_null() {
667                        deser.read_null()?;
668                    } else {
669                        self.task_report_config = Some(crate::types::TaskReportConfig::deserialize(deser)?);
670                    }
671                }
672                Some(18) => {
673                    if deser.is_null() {
674                        deser.read_null()?;
675                    } else {
676                        self.schedule_details = Some(crate::types::TaskScheduleDetails::deserialize(deser)?);
677                    }
678                }
679                Some(19) => {
680                    if deser.is_null() {
681                        deser.read_null()?;
682                    } else {
683                        self.task_mode = Some(crate::types::TaskMode::from(deser.read_string(member)?.as_str()));
684                    }
685                }
686                _ => {}
687            }
688            Ok(())
689        })
690    }
691}
692
693impl DescribeTaskOutput {
694    /// Deserializes this structure from a [`ShapeDeserializer`].
695    pub fn deserialize(
696        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
697    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
698        let mut builder = Self::builder();
699        builder.deserialize_members(deserializer)?;
700        Ok(builder.build())
701    }
702}
703impl ::aws_types::request_id::RequestId for DescribeTaskOutput {
704    fn request_id(&self) -> Option<&str> {
705        self._request_id.as_deref()
706    }
707}
708impl DescribeTaskOutput {
709    /// Creates a new builder-style object to manufacture [`DescribeTaskOutput`](crate::operation::describe_task::DescribeTaskOutput).
710    pub fn builder() -> crate::operation::describe_task::builders::DescribeTaskOutputBuilder {
711        crate::operation::describe_task::builders::DescribeTaskOutputBuilder::default()
712    }
713}
714
715/// A builder for [`DescribeTaskOutput`](crate::operation::describe_task::DescribeTaskOutput).
716#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
717#[non_exhaustive]
718pub struct DescribeTaskOutputBuilder {
719    pub(crate) task_arn: ::std::option::Option<::std::string::String>,
720    pub(crate) status: ::std::option::Option<crate::types::TaskStatus>,
721    pub(crate) name: ::std::option::Option<::std::string::String>,
722    pub(crate) current_task_execution_arn: ::std::option::Option<::std::string::String>,
723    pub(crate) source_location_arn: ::std::option::Option<::std::string::String>,
724    pub(crate) destination_location_arn: ::std::option::Option<::std::string::String>,
725    pub(crate) cloud_watch_log_group_arn: ::std::option::Option<::std::string::String>,
726    pub(crate) source_network_interface_arns: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
727    pub(crate) destination_network_interface_arns: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
728    pub(crate) options: ::std::option::Option<crate::types::Options>,
729    pub(crate) excludes: ::std::option::Option<::std::vec::Vec<crate::types::FilterRule>>,
730    pub(crate) schedule: ::std::option::Option<crate::types::TaskSchedule>,
731    pub(crate) error_code: ::std::option::Option<::std::string::String>,
732    pub(crate) error_detail: ::std::option::Option<::std::string::String>,
733    pub(crate) creation_time: ::std::option::Option<::aws_smithy_types::DateTime>,
734    pub(crate) includes: ::std::option::Option<::std::vec::Vec<crate::types::FilterRule>>,
735    pub(crate) manifest_config: ::std::option::Option<crate::types::ManifestConfig>,
736    pub(crate) task_report_config: ::std::option::Option<crate::types::TaskReportConfig>,
737    pub(crate) schedule_details: ::std::option::Option<crate::types::TaskScheduleDetails>,
738    pub(crate) task_mode: ::std::option::Option<crate::types::TaskMode>,
739    _request_id: Option<String>,
740}
741impl DescribeTaskOutputBuilder {
742    /// <p>The ARN of your task.</p>
743    pub fn task_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
744        self.task_arn = ::std::option::Option::Some(input.into());
745        self
746    }
747    /// <p>The ARN of your task.</p>
748    pub fn set_task_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
749        self.task_arn = input;
750        self
751    }
752    /// <p>The ARN of your task.</p>
753    pub fn get_task_arn(&self) -> &::std::option::Option<::std::string::String> {
754        &self.task_arn
755    }
756    /// <p>The status of your task. For information about what each status means, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-task-how-to.html#understand-task-creation-statuses">Task statuses</a>.</p>
757    pub fn status(mut self, input: crate::types::TaskStatus) -> Self {
758        self.status = ::std::option::Option::Some(input);
759        self
760    }
761    /// <p>The status of your task. For information about what each status means, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-task-how-to.html#understand-task-creation-statuses">Task statuses</a>.</p>
762    pub fn set_status(mut self, input: ::std::option::Option<crate::types::TaskStatus>) -> Self {
763        self.status = input;
764        self
765    }
766    /// <p>The status of your task. For information about what each status means, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/create-task-how-to.html#understand-task-creation-statuses">Task statuses</a>.</p>
767    pub fn get_status(&self) -> &::std::option::Option<crate::types::TaskStatus> {
768        &self.status
769    }
770    /// <p>The name of your task.</p>
771    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
772        self.name = ::std::option::Option::Some(input.into());
773        self
774    }
775    /// <p>The name of your task.</p>
776    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
777        self.name = input;
778        self
779    }
780    /// <p>The name of your task.</p>
781    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
782        &self.name
783    }
784    /// <p>The ARN of the most recent task execution.</p>
785    pub fn current_task_execution_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
786        self.current_task_execution_arn = ::std::option::Option::Some(input.into());
787        self
788    }
789    /// <p>The ARN of the most recent task execution.</p>
790    pub fn set_current_task_execution_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
791        self.current_task_execution_arn = input;
792        self
793    }
794    /// <p>The ARN of the most recent task execution.</p>
795    pub fn get_current_task_execution_arn(&self) -> &::std::option::Option<::std::string::String> {
796        &self.current_task_execution_arn
797    }
798    /// <p>The ARN of your transfer's source location.</p>
799    pub fn source_location_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
800        self.source_location_arn = ::std::option::Option::Some(input.into());
801        self
802    }
803    /// <p>The ARN of your transfer's source location.</p>
804    pub fn set_source_location_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
805        self.source_location_arn = input;
806        self
807    }
808    /// <p>The ARN of your transfer's source location.</p>
809    pub fn get_source_location_arn(&self) -> &::std::option::Option<::std::string::String> {
810        &self.source_location_arn
811    }
812    /// <p>The ARN of your transfer's destination location.</p>
813    pub fn destination_location_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
814        self.destination_location_arn = ::std::option::Option::Some(input.into());
815        self
816    }
817    /// <p>The ARN of your transfer's destination location.</p>
818    pub fn set_destination_location_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
819        self.destination_location_arn = input;
820        self
821    }
822    /// <p>The ARN of your transfer's destination location.</p>
823    pub fn get_destination_location_arn(&self) -> &::std::option::Option<::std::string::String> {
824        &self.destination_location_arn
825    }
826    /// <p>The Amazon Resource Name (ARN) of an Amazon CloudWatch log group for monitoring your task.</p>
827    /// <p>For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/configure-logging.html">Monitoring data transfers with CloudWatch Logs</a>.</p>
828    pub fn cloud_watch_log_group_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
829        self.cloud_watch_log_group_arn = ::std::option::Option::Some(input.into());
830        self
831    }
832    /// <p>The Amazon Resource Name (ARN) of an Amazon CloudWatch log group for monitoring your task.</p>
833    /// <p>For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/configure-logging.html">Monitoring data transfers with CloudWatch Logs</a>.</p>
834    pub fn set_cloud_watch_log_group_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
835        self.cloud_watch_log_group_arn = input;
836        self
837    }
838    /// <p>The Amazon Resource Name (ARN) of an Amazon CloudWatch log group for monitoring your task.</p>
839    /// <p>For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/configure-logging.html">Monitoring data transfers with CloudWatch Logs</a>.</p>
840    pub fn get_cloud_watch_log_group_arn(&self) -> &::std::option::Option<::std::string::String> {
841        &self.cloud_watch_log_group_arn
842    }
843    /// Appends an item to `source_network_interface_arns`.
844    ///
845    /// To override the contents of this collection use [`set_source_network_interface_arns`](Self::set_source_network_interface_arns).
846    ///
847    /// <p>The ARNs of the <a href="https://docs.aws.amazon.com/datasync/latest/userguide/datasync-network.html#required-network-interfaces">network interfaces</a> that DataSync created for your source location.</p>
848    pub fn source_network_interface_arns(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
849        let mut v = self.source_network_interface_arns.unwrap_or_default();
850        v.push(input.into());
851        self.source_network_interface_arns = ::std::option::Option::Some(v);
852        self
853    }
854    /// <p>The ARNs of the <a href="https://docs.aws.amazon.com/datasync/latest/userguide/datasync-network.html#required-network-interfaces">network interfaces</a> that DataSync created for your source location.</p>
855    pub fn set_source_network_interface_arns(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
856        self.source_network_interface_arns = input;
857        self
858    }
859    /// <p>The ARNs of the <a href="https://docs.aws.amazon.com/datasync/latest/userguide/datasync-network.html#required-network-interfaces">network interfaces</a> that DataSync created for your source location.</p>
860    pub fn get_source_network_interface_arns(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
861        &self.source_network_interface_arns
862    }
863    /// Appends an item to `destination_network_interface_arns`.
864    ///
865    /// To override the contents of this collection use [`set_destination_network_interface_arns`](Self::set_destination_network_interface_arns).
866    ///
867    /// <p>The ARNs of the <a href="https://docs.aws.amazon.com/datasync/latest/userguide/datasync-network.html#required-network-interfaces">network interfaces</a> that DataSync created for your destination location.</p>
868    pub fn destination_network_interface_arns(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
869        let mut v = self.destination_network_interface_arns.unwrap_or_default();
870        v.push(input.into());
871        self.destination_network_interface_arns = ::std::option::Option::Some(v);
872        self
873    }
874    /// <p>The ARNs of the <a href="https://docs.aws.amazon.com/datasync/latest/userguide/datasync-network.html#required-network-interfaces">network interfaces</a> that DataSync created for your destination location.</p>
875    pub fn set_destination_network_interface_arns(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
876        self.destination_network_interface_arns = input;
877        self
878    }
879    /// <p>The ARNs of the <a href="https://docs.aws.amazon.com/datasync/latest/userguide/datasync-network.html#required-network-interfaces">network interfaces</a> that DataSync created for your destination location.</p>
880    pub fn get_destination_network_interface_arns(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
881        &self.destination_network_interface_arns
882    }
883    /// <p>The task's settings. For example, what file metadata gets preserved, how data integrity gets verified at the end of your transfer, bandwidth limits, among other options.</p>
884    pub fn options(mut self, input: crate::types::Options) -> Self {
885        self.options = ::std::option::Option::Some(input);
886        self
887    }
888    /// <p>The task's settings. For example, what file metadata gets preserved, how data integrity gets verified at the end of your transfer, bandwidth limits, among other options.</p>
889    pub fn set_options(mut self, input: ::std::option::Option<crate::types::Options>) -> Self {
890        self.options = input;
891        self
892    }
893    /// <p>The task's settings. For example, what file metadata gets preserved, how data integrity gets verified at the end of your transfer, bandwidth limits, among other options.</p>
894    pub fn get_options(&self) -> &::std::option::Option<crate::types::Options> {
895        &self.options
896    }
897    /// Appends an item to `excludes`.
898    ///
899    /// To override the contents of this collection use [`set_excludes`](Self::set_excludes).
900    ///
901    /// <p>The exclude filters that define the files, objects, and folders in your source location that you don't want DataSync to transfer. For more information and examples, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html">Specifying what DataSync transfers by using filters</a>.</p>
902    pub fn excludes(mut self, input: crate::types::FilterRule) -> Self {
903        let mut v = self.excludes.unwrap_or_default();
904        v.push(input);
905        self.excludes = ::std::option::Option::Some(v);
906        self
907    }
908    /// <p>The exclude filters that define the files, objects, and folders in your source location that you don't want DataSync to transfer. For more information and examples, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html">Specifying what DataSync transfers by using filters</a>.</p>
909    pub fn set_excludes(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::FilterRule>>) -> Self {
910        self.excludes = input;
911        self
912    }
913    /// <p>The exclude filters that define the files, objects, and folders in your source location that you don't want DataSync to transfer. For more information and examples, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html">Specifying what DataSync transfers by using filters</a>.</p>
914    pub fn get_excludes(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::FilterRule>> {
915        &self.excludes
916    }
917    /// <p>The schedule for when you want your task to run. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/task-scheduling.html">Scheduling your task</a>.</p>
918    pub fn schedule(mut self, input: crate::types::TaskSchedule) -> Self {
919        self.schedule = ::std::option::Option::Some(input);
920        self
921    }
922    /// <p>The schedule for when you want your task to run. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/task-scheduling.html">Scheduling your task</a>.</p>
923    pub fn set_schedule(mut self, input: ::std::option::Option<crate::types::TaskSchedule>) -> Self {
924        self.schedule = input;
925        self
926    }
927    /// <p>The schedule for when you want your task to run. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/task-scheduling.html">Scheduling your task</a>.</p>
928    pub fn get_schedule(&self) -> &::std::option::Option<crate::types::TaskSchedule> {
929        &self.schedule
930    }
931    /// <p>If there's an issue with your task, you can use the error code to help you troubleshoot the problem. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/troubleshooting-datasync-locations-tasks.html">Troubleshooting issues with DataSync transfers</a>.</p>
932    pub fn error_code(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
933        self.error_code = ::std::option::Option::Some(input.into());
934        self
935    }
936    /// <p>If there's an issue with your task, you can use the error code to help you troubleshoot the problem. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/troubleshooting-datasync-locations-tasks.html">Troubleshooting issues with DataSync transfers</a>.</p>
937    pub fn set_error_code(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
938        self.error_code = input;
939        self
940    }
941    /// <p>If there's an issue with your task, you can use the error code to help you troubleshoot the problem. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/troubleshooting-datasync-locations-tasks.html">Troubleshooting issues with DataSync transfers</a>.</p>
942    pub fn get_error_code(&self) -> &::std::option::Option<::std::string::String> {
943        &self.error_code
944    }
945    /// <p>If there's an issue with your task, you can use the error details to help you troubleshoot the problem. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/troubleshooting-datasync-locations-tasks.html">Troubleshooting issues with DataSync transfers</a>.</p>
946    pub fn error_detail(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
947        self.error_detail = ::std::option::Option::Some(input.into());
948        self
949    }
950    /// <p>If there's an issue with your task, you can use the error details to help you troubleshoot the problem. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/troubleshooting-datasync-locations-tasks.html">Troubleshooting issues with DataSync transfers</a>.</p>
951    pub fn set_error_detail(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
952        self.error_detail = input;
953        self
954    }
955    /// <p>If there's an issue with your task, you can use the error details to help you troubleshoot the problem. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/troubleshooting-datasync-locations-tasks.html">Troubleshooting issues with DataSync transfers</a>.</p>
956    pub fn get_error_detail(&self) -> &::std::option::Option<::std::string::String> {
957        &self.error_detail
958    }
959    /// <p>The time that the task was created.</p>
960    pub fn creation_time(mut self, input: ::aws_smithy_types::DateTime) -> Self {
961        self.creation_time = ::std::option::Option::Some(input);
962        self
963    }
964    /// <p>The time that the task was created.</p>
965    pub fn set_creation_time(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
966        self.creation_time = input;
967        self
968    }
969    /// <p>The time that the task was created.</p>
970    pub fn get_creation_time(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
971        &self.creation_time
972    }
973    /// Appends an item to `includes`.
974    ///
975    /// To override the contents of this collection use [`set_includes`](Self::set_includes).
976    ///
977    /// <p>The include filters that define the files, objects, and folders in your source location that you want DataSync to transfer. For more information and examples, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html">Specifying what DataSync transfers by using filters</a>.</p>
978    pub fn includes(mut self, input: crate::types::FilterRule) -> Self {
979        let mut v = self.includes.unwrap_or_default();
980        v.push(input);
981        self.includes = ::std::option::Option::Some(v);
982        self
983    }
984    /// <p>The include filters that define the files, objects, and folders in your source location that you want DataSync to transfer. For more information and examples, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html">Specifying what DataSync transfers by using filters</a>.</p>
985    pub fn set_includes(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::FilterRule>>) -> Self {
986        self.includes = input;
987        self
988    }
989    /// <p>The include filters that define the files, objects, and folders in your source location that you want DataSync to transfer. For more information and examples, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/filtering.html">Specifying what DataSync transfers by using filters</a>.</p>
990    pub fn get_includes(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::FilterRule>> {
991        &self.includes
992    }
993    /// <p>The configuration of the manifest that lists the files or objects that you want DataSync to transfer. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html">Specifying what DataSync transfers by using a manifest</a>.</p>
994    pub fn manifest_config(mut self, input: crate::types::ManifestConfig) -> Self {
995        self.manifest_config = ::std::option::Option::Some(input);
996        self
997    }
998    /// <p>The configuration of the manifest that lists the files or objects that you want DataSync to transfer. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html">Specifying what DataSync transfers by using a manifest</a>.</p>
999    pub fn set_manifest_config(mut self, input: ::std::option::Option<crate::types::ManifestConfig>) -> Self {
1000        self.manifest_config = input;
1001        self
1002    }
1003    /// <p>The configuration of the manifest that lists the files or objects that you want DataSync to transfer. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/transferring-with-manifest.html">Specifying what DataSync transfers by using a manifest</a>.</p>
1004    pub fn get_manifest_config(&self) -> &::std::option::Option<crate::types::ManifestConfig> {
1005        &self.manifest_config
1006    }
1007    /// <p>The configuration of your task report, which provides detailed information about your DataSync transfer. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/task-reports.html">Monitoring your DataSync transfers with task reports</a>.</p>
1008    pub fn task_report_config(mut self, input: crate::types::TaskReportConfig) -> Self {
1009        self.task_report_config = ::std::option::Option::Some(input);
1010        self
1011    }
1012    /// <p>The configuration of your task report, which provides detailed information about your DataSync transfer. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/task-reports.html">Monitoring your DataSync transfers with task reports</a>.</p>
1013    pub fn set_task_report_config(mut self, input: ::std::option::Option<crate::types::TaskReportConfig>) -> Self {
1014        self.task_report_config = input;
1015        self
1016    }
1017    /// <p>The configuration of your task report, which provides detailed information about your DataSync transfer. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/task-reports.html">Monitoring your DataSync transfers with task reports</a>.</p>
1018    pub fn get_task_report_config(&self) -> &::std::option::Option<crate::types::TaskReportConfig> {
1019        &self.task_report_config
1020    }
1021    /// <p>The details about your <a href="https://docs.aws.amazon.com/datasync/latest/userguide/task-scheduling.html">task schedule</a>.</p>
1022    pub fn schedule_details(mut self, input: crate::types::TaskScheduleDetails) -> Self {
1023        self.schedule_details = ::std::option::Option::Some(input);
1024        self
1025    }
1026    /// <p>The details about your <a href="https://docs.aws.amazon.com/datasync/latest/userguide/task-scheduling.html">task schedule</a>.</p>
1027    pub fn set_schedule_details(mut self, input: ::std::option::Option<crate::types::TaskScheduleDetails>) -> Self {
1028        self.schedule_details = input;
1029        self
1030    }
1031    /// <p>The details about your <a href="https://docs.aws.amazon.com/datasync/latest/userguide/task-scheduling.html">task schedule</a>.</p>
1032    pub fn get_schedule_details(&self) -> &::std::option::Option<crate::types::TaskScheduleDetails> {
1033        &self.schedule_details
1034    }
1035    /// <p>The task mode that you're using. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/choosing-task-mode.html">Choosing a task mode for your data transfer</a>.</p>
1036    pub fn task_mode(mut self, input: crate::types::TaskMode) -> Self {
1037        self.task_mode = ::std::option::Option::Some(input);
1038        self
1039    }
1040    /// <p>The task mode that you're using. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/choosing-task-mode.html">Choosing a task mode for your data transfer</a>.</p>
1041    pub fn set_task_mode(mut self, input: ::std::option::Option<crate::types::TaskMode>) -> Self {
1042        self.task_mode = input;
1043        self
1044    }
1045    /// <p>The task mode that you're using. For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/choosing-task-mode.html">Choosing a task mode for your data transfer</a>.</p>
1046    pub fn get_task_mode(&self) -> &::std::option::Option<crate::types::TaskMode> {
1047        &self.task_mode
1048    }
1049    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
1050        self._request_id = Some(request_id.into());
1051        self
1052    }
1053
1054    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
1055        self._request_id = request_id;
1056        self
1057    }
1058    /// Consumes the builder and constructs a [`DescribeTaskOutput`](crate::operation::describe_task::DescribeTaskOutput).
1059    pub fn build(self) -> crate::operation::describe_task::DescribeTaskOutput {
1060        crate::operation::describe_task::DescribeTaskOutput {
1061            task_arn: self.task_arn,
1062            status: self.status,
1063            name: self.name,
1064            current_task_execution_arn: self.current_task_execution_arn,
1065            source_location_arn: self.source_location_arn,
1066            destination_location_arn: self.destination_location_arn,
1067            cloud_watch_log_group_arn: self.cloud_watch_log_group_arn,
1068            source_network_interface_arns: self.source_network_interface_arns,
1069            destination_network_interface_arns: self.destination_network_interface_arns,
1070            options: self.options,
1071            excludes: self.excludes,
1072            schedule: self.schedule,
1073            error_code: self.error_code,
1074            error_detail: self.error_detail,
1075            creation_time: self.creation_time,
1076            includes: self.includes,
1077            manifest_config: self.manifest_config,
1078            task_report_config: self.task_report_config,
1079            schedule_details: self.schedule_details,
1080            task_mode: self.task_mode,
1081            _request_id: self._request_id,
1082        }
1083    }
1084}