Skip to main content

aws_sdk_datasync/operation/create_task/
_create_task_input.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2
3/// <p>CreateTaskRequest</p>
4#[non_exhaustive]
5#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
6pub struct CreateTaskInput {
7    /// <p>Specifies the ARN of your transfer's source location.</p>
8    pub source_location_arn: ::std::option::Option<::std::string::String>,
9    /// <p>Specifies the ARN of your transfer's destination location.</p>
10    pub destination_location_arn: ::std::option::Option<::std::string::String>,
11    /// <p>Specifies the Amazon Resource Name (ARN) of an Amazon CloudWatch log group for monitoring your task.</p>
12    /// <p>For Enhanced mode tasks, you don't need to specify anything. DataSync automatically sends logs to a CloudWatch log group named <code>/aws/datasync</code>.</p>
13    pub cloud_watch_log_group_arn: ::std::option::Option<::std::string::String>,
14    /// <p>Specifies the name of your task.</p>
15    pub name: ::std::option::Option<::std::string::String>,
16    /// <p>Specifies your task's settings, such as preserving file metadata, verifying data integrity, among other options.</p>
17    pub options: ::std::option::Option<crate::types::Options>,
18    /// <p>Specifies 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>
19    pub excludes: ::std::option::Option<::std::vec::Vec<crate::types::FilterRule>>,
20    /// <p>Specifies a 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>
21    pub schedule: ::std::option::Option<crate::types::TaskSchedule>,
22    /// <p>Specifies the tags that you want to apply to your task.</p>
23    /// <p><i>Tags</i> are key-value pairs that help you manage, filter, and search for your DataSync resources.</p>
24    pub tags: ::std::option::Option<::std::vec::Vec<crate::types::TagListEntry>>,
25    /// <p>Specifies 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>
26    pub includes: ::std::option::Option<::std::vec::Vec<crate::types::FilterRule>>,
27    /// <p>Configures a manifest, which is a list of files or objects that you want DataSync to transfer. For more information and configuration examples, 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>
28    /// <p>When using this parameter, your caller identity (the role that you're using DataSync with) must have the <code>iam:PassRole</code> permission. The <a href="https://docs.aws.amazon.com/datasync/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-awsdatasyncfullaccess">AWSDataSyncFullAccess</a> policy includes this permission.</p>
29    pub manifest_config: ::std::option::Option<crate::types::ManifestConfig>,
30    /// <p>Specifies how you want to configure a 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>
31    /// <p>When using this parameter, your caller identity (the role that you're using DataSync with) must have the <code>iam:PassRole</code> permission. The <a href="https://docs.aws.amazon.com/datasync/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-awsdatasyncfullaccess">AWSDataSyncFullAccess</a> policy includes this permission.</p>
32    pub task_report_config: ::std::option::Option<crate::types::TaskReportConfig>,
33    /// <p>Specifies one of the following task modes for your data transfer:</p>
34    /// <ul>
35    /// <li>
36    /// <p><code>ENHANCED</code> - Transfer virtually unlimited numbers of objects with higher performance than Basic mode. Enhanced mode tasks optimize the data transfer process by listing, preparing, transferring, and verifying data in parallel. Enhanced mode is currently available for transfers between Amazon S3 locations, transfers between Azure Blob and Amazon S3 without an agent, and transfers between other clouds and Amazon S3 without an agent.</p><note>
37    /// <p>To create an Enhanced mode task, the IAM role that you use to call the <code>CreateTask</code> operation must have the <code>iam:CreateServiceLinkedRole</code> permission.</p>
38    /// </note></li>
39    /// <li>
40    /// <p><code>BASIC</code> (default) - Transfer files or objects between Amazon Web Services storage and all other supported DataSync locations. Basic mode tasks are subject to <a href="https://docs.aws.amazon.com/datasync/latest/userguide/datasync-limits.html">quotas</a> on the number of files, objects, and directories in a dataset. Basic mode sequentially prepares, transfers, and verifies data, making it slower than Enhanced mode for most workloads.</p></li>
41    /// </ul>
42    /// <p>For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/choosing-task-mode.html#task-mode-differences">Understanding task mode differences</a>.</p>
43    pub task_mode: ::std::option::Option<crate::types::TaskMode>,
44}
45impl CreateTaskInput {
46    /// <p>Specifies the ARN of your transfer's source location.</p>
47    pub fn source_location_arn(&self) -> ::std::option::Option<&str> {
48        self.source_location_arn.as_deref()
49    }
50    /// <p>Specifies the ARN of your transfer's destination location.</p>
51    pub fn destination_location_arn(&self) -> ::std::option::Option<&str> {
52        self.destination_location_arn.as_deref()
53    }
54    /// <p>Specifies the Amazon Resource Name (ARN) of an Amazon CloudWatch log group for monitoring your task.</p>
55    /// <p>For Enhanced mode tasks, you don't need to specify anything. DataSync automatically sends logs to a CloudWatch log group named <code>/aws/datasync</code>.</p>
56    pub fn cloud_watch_log_group_arn(&self) -> ::std::option::Option<&str> {
57        self.cloud_watch_log_group_arn.as_deref()
58    }
59    /// <p>Specifies the name of your task.</p>
60    pub fn name(&self) -> ::std::option::Option<&str> {
61        self.name.as_deref()
62    }
63    /// <p>Specifies your task's settings, such as preserving file metadata, verifying data integrity, among other options.</p>
64    pub fn options(&self) -> ::std::option::Option<&crate::types::Options> {
65        self.options.as_ref()
66    }
67    /// <p>Specifies 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>
68    ///
69    /// 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()`.
70    pub fn excludes(&self) -> &[crate::types::FilterRule] {
71        self.excludes.as_deref().unwrap_or_default()
72    }
73    /// <p>Specifies a 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>
74    pub fn schedule(&self) -> ::std::option::Option<&crate::types::TaskSchedule> {
75        self.schedule.as_ref()
76    }
77    /// <p>Specifies the tags that you want to apply to your task.</p>
78    /// <p><i>Tags</i> are key-value pairs that help you manage, filter, and search for your DataSync resources.</p>
79    ///
80    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tags.is_none()`.
81    pub fn tags(&self) -> &[crate::types::TagListEntry] {
82        self.tags.as_deref().unwrap_or_default()
83    }
84    /// <p>Specifies 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>
85    ///
86    /// 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()`.
87    pub fn includes(&self) -> &[crate::types::FilterRule] {
88        self.includes.as_deref().unwrap_or_default()
89    }
90    /// <p>Configures a manifest, which is a list of files or objects that you want DataSync to transfer. For more information and configuration examples, 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>
91    /// <p>When using this parameter, your caller identity (the role that you're using DataSync with) must have the <code>iam:PassRole</code> permission. The <a href="https://docs.aws.amazon.com/datasync/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-awsdatasyncfullaccess">AWSDataSyncFullAccess</a> policy includes this permission.</p>
92    pub fn manifest_config(&self) -> ::std::option::Option<&crate::types::ManifestConfig> {
93        self.manifest_config.as_ref()
94    }
95    /// <p>Specifies how you want to configure a 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>
96    /// <p>When using this parameter, your caller identity (the role that you're using DataSync with) must have the <code>iam:PassRole</code> permission. The <a href="https://docs.aws.amazon.com/datasync/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-awsdatasyncfullaccess">AWSDataSyncFullAccess</a> policy includes this permission.</p>
97    pub fn task_report_config(&self) -> ::std::option::Option<&crate::types::TaskReportConfig> {
98        self.task_report_config.as_ref()
99    }
100    /// <p>Specifies one of the following task modes for your data transfer:</p>
101    /// <ul>
102    /// <li>
103    /// <p><code>ENHANCED</code> - Transfer virtually unlimited numbers of objects with higher performance than Basic mode. Enhanced mode tasks optimize the data transfer process by listing, preparing, transferring, and verifying data in parallel. Enhanced mode is currently available for transfers between Amazon S3 locations, transfers between Azure Blob and Amazon S3 without an agent, and transfers between other clouds and Amazon S3 without an agent.</p><note>
104    /// <p>To create an Enhanced mode task, the IAM role that you use to call the <code>CreateTask</code> operation must have the <code>iam:CreateServiceLinkedRole</code> permission.</p>
105    /// </note></li>
106    /// <li>
107    /// <p><code>BASIC</code> (default) - Transfer files or objects between Amazon Web Services storage and all other supported DataSync locations. Basic mode tasks are subject to <a href="https://docs.aws.amazon.com/datasync/latest/userguide/datasync-limits.html">quotas</a> on the number of files, objects, and directories in a dataset. Basic mode sequentially prepares, transfers, and verifies data, making it slower than Enhanced mode for most workloads.</p></li>
108    /// </ul>
109    /// <p>For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/choosing-task-mode.html#task-mode-differences">Understanding task mode differences</a>.</p>
110    pub fn task_mode(&self) -> ::std::option::Option<&crate::types::TaskMode> {
111        self.task_mode.as_ref()
112    }
113}
114static CREATETASKINPUT_MEMBER_SOURCE_LOCATION_ARN: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
115    ::aws_smithy_schema::ShapeId::from_parts(
116        "com.amazonaws.datasync.synthetic#CreateTaskInput$SourceLocationArn",
117        "com.amazonaws.datasync.synthetic",
118        "CreateTaskInput",
119    ),
120    ::aws_smithy_schema::ShapeType::String,
121    "SourceLocationArn",
122    0,
123);
124static CREATETASKINPUT_MEMBER_DESTINATION_LOCATION_ARN: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
125    ::aws_smithy_schema::ShapeId::from_parts(
126        "com.amazonaws.datasync.synthetic#CreateTaskInput$DestinationLocationArn",
127        "com.amazonaws.datasync.synthetic",
128        "CreateTaskInput",
129    ),
130    ::aws_smithy_schema::ShapeType::String,
131    "DestinationLocationArn",
132    1,
133);
134static CREATETASKINPUT_MEMBER_CLOUD_WATCH_LOG_GROUP_ARN: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
135    ::aws_smithy_schema::ShapeId::from_parts(
136        "com.amazonaws.datasync.synthetic#CreateTaskInput$CloudWatchLogGroupArn",
137        "com.amazonaws.datasync.synthetic",
138        "CreateTaskInput",
139    ),
140    ::aws_smithy_schema::ShapeType::String,
141    "CloudWatchLogGroupArn",
142    2,
143);
144static CREATETASKINPUT_MEMBER_NAME: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
145    ::aws_smithy_schema::ShapeId::from_parts(
146        "com.amazonaws.datasync.synthetic#CreateTaskInput$Name",
147        "com.amazonaws.datasync.synthetic",
148        "CreateTaskInput",
149    ),
150    ::aws_smithy_schema::ShapeType::String,
151    "Name",
152    3,
153);
154static CREATETASKINPUT_MEMBER_OPTIONS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
155    ::aws_smithy_schema::ShapeId::from_parts(
156        "com.amazonaws.datasync.synthetic#CreateTaskInput$Options",
157        "com.amazonaws.datasync.synthetic",
158        "CreateTaskInput",
159    ),
160    ::aws_smithy_schema::ShapeType::Structure,
161    "Options",
162    4,
163);
164static CREATETASKINPUT_MEMBER_EXCLUDES_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
165    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.datasync#FilterList$member", "com.amazonaws.datasync", "FilterList"),
166    ::aws_smithy_schema::ShapeType::Structure,
167    "member",
168    0,
169);
170static CREATETASKINPUT_MEMBER_EXCLUDES: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
171    ::aws_smithy_schema::ShapeId::from_parts(
172        "com.amazonaws.datasync.synthetic#CreateTaskInput$Excludes",
173        "com.amazonaws.datasync.synthetic",
174        "CreateTaskInput",
175    ),
176    ::aws_smithy_schema::ShapeType::List,
177    "Excludes",
178    5,
179)
180.with_list_member(&CREATETASKINPUT_MEMBER_EXCLUDES_MEMBER);
181static CREATETASKINPUT_MEMBER_SCHEDULE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
182    ::aws_smithy_schema::ShapeId::from_parts(
183        "com.amazonaws.datasync.synthetic#CreateTaskInput$Schedule",
184        "com.amazonaws.datasync.synthetic",
185        "CreateTaskInput",
186    ),
187    ::aws_smithy_schema::ShapeType::Structure,
188    "Schedule",
189    6,
190);
191static CREATETASKINPUT_MEMBER_TAGS_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
192    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.datasync#InputTagList$member", "com.amazonaws.datasync", "InputTagList"),
193    ::aws_smithy_schema::ShapeType::Structure,
194    "member",
195    0,
196);
197static CREATETASKINPUT_MEMBER_TAGS: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
198    ::aws_smithy_schema::ShapeId::from_parts(
199        "com.amazonaws.datasync.synthetic#CreateTaskInput$Tags",
200        "com.amazonaws.datasync.synthetic",
201        "CreateTaskInput",
202    ),
203    ::aws_smithy_schema::ShapeType::List,
204    "Tags",
205    7,
206)
207.with_list_member(&CREATETASKINPUT_MEMBER_TAGS_MEMBER);
208static CREATETASKINPUT_MEMBER_INCLUDES_MEMBER: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
209    ::aws_smithy_schema::ShapeId::from_parts("com.amazonaws.datasync#FilterList$member", "com.amazonaws.datasync", "FilterList"),
210    ::aws_smithy_schema::ShapeType::Structure,
211    "member",
212    0,
213);
214static CREATETASKINPUT_MEMBER_INCLUDES: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
215    ::aws_smithy_schema::ShapeId::from_parts(
216        "com.amazonaws.datasync.synthetic#CreateTaskInput$Includes",
217        "com.amazonaws.datasync.synthetic",
218        "CreateTaskInput",
219    ),
220    ::aws_smithy_schema::ShapeType::List,
221    "Includes",
222    8,
223)
224.with_list_member(&CREATETASKINPUT_MEMBER_INCLUDES_MEMBER);
225static CREATETASKINPUT_MEMBER_MANIFEST_CONFIG: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
226    ::aws_smithy_schema::ShapeId::from_parts(
227        "com.amazonaws.datasync.synthetic#CreateTaskInput$ManifestConfig",
228        "com.amazonaws.datasync.synthetic",
229        "CreateTaskInput",
230    ),
231    ::aws_smithy_schema::ShapeType::Structure,
232    "ManifestConfig",
233    9,
234);
235static CREATETASKINPUT_MEMBER_TASK_REPORT_CONFIG: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
236    ::aws_smithy_schema::ShapeId::from_parts(
237        "com.amazonaws.datasync.synthetic#CreateTaskInput$TaskReportConfig",
238        "com.amazonaws.datasync.synthetic",
239        "CreateTaskInput",
240    ),
241    ::aws_smithy_schema::ShapeType::Structure,
242    "TaskReportConfig",
243    10,
244);
245static CREATETASKINPUT_MEMBER_TASK_MODE: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_member(
246    ::aws_smithy_schema::ShapeId::from_parts(
247        "com.amazonaws.datasync.synthetic#CreateTaskInput$TaskMode",
248        "com.amazonaws.datasync.synthetic",
249        "CreateTaskInput",
250    ),
251    ::aws_smithy_schema::ShapeType::String,
252    "TaskMode",
253    11,
254);
255static CREATETASKINPUT_SCHEMA: ::aws_smithy_schema::Schema<'static> = ::aws_smithy_schema::Schema::new_struct(
256    ::aws_smithy_schema::ShapeId::from_parts(
257        "com.amazonaws.datasync.synthetic#CreateTaskInput",
258        "com.amazonaws.datasync.synthetic",
259        "CreateTaskInput",
260    ),
261    ::aws_smithy_schema::ShapeType::Structure,
262    &[
263        &CREATETASKINPUT_MEMBER_SOURCE_LOCATION_ARN,
264        &CREATETASKINPUT_MEMBER_DESTINATION_LOCATION_ARN,
265        &CREATETASKINPUT_MEMBER_CLOUD_WATCH_LOG_GROUP_ARN,
266        &CREATETASKINPUT_MEMBER_NAME,
267        &CREATETASKINPUT_MEMBER_OPTIONS,
268        &CREATETASKINPUT_MEMBER_EXCLUDES,
269        &CREATETASKINPUT_MEMBER_SCHEDULE,
270        &CREATETASKINPUT_MEMBER_TAGS,
271        &CREATETASKINPUT_MEMBER_INCLUDES,
272        &CREATETASKINPUT_MEMBER_MANIFEST_CONFIG,
273        &CREATETASKINPUT_MEMBER_TASK_REPORT_CONFIG,
274        &CREATETASKINPUT_MEMBER_TASK_MODE,
275    ],
276)
277.with_payload_hint(::aws_smithy_schema::PayloadHint::NoStructPayload)
278.with_original_name("CreateTaskRequest");
279impl CreateTaskInput {
280    /// The schema for this shape.
281    pub const SCHEMA: &'static ::aws_smithy_schema::Schema<'static> = &CREATETASKINPUT_SCHEMA;
282}
283impl ::aws_smithy_schema::serde::SerializableStruct for CreateTaskInput {
284    fn schema(&self) -> &::aws_smithy_schema::Schema<'_> {
285        Self::SCHEMA
286    }
287
288    #[allow(unused_variables, clippy::diverging_sub_expression)]
289    fn serialize_members(
290        &self,
291        ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer,
292    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
293        if let Some(ref val) = self.source_location_arn {
294            ser.write_string(&CREATETASKINPUT_MEMBER_SOURCE_LOCATION_ARN, val)?;
295        }
296        if let Some(ref val) = self.destination_location_arn {
297            ser.write_string(&CREATETASKINPUT_MEMBER_DESTINATION_LOCATION_ARN, val)?;
298        }
299        if let Some(ref val) = self.cloud_watch_log_group_arn {
300            ser.write_string(&CREATETASKINPUT_MEMBER_CLOUD_WATCH_LOG_GROUP_ARN, val)?;
301        }
302        if let Some(ref val) = self.name {
303            ser.write_string(&CREATETASKINPUT_MEMBER_NAME, val)?;
304        }
305        if let Some(ref val) = self.options {
306            ser.write_struct(&CREATETASKINPUT_MEMBER_OPTIONS, val)?;
307        }
308        if let Some(ref val) = self.excludes {
309            ser.write_list(
310                &CREATETASKINPUT_MEMBER_EXCLUDES,
311                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
312                    for item in val {
313                        ser.write_struct(crate::types::FilterRule::SCHEMA, item)?;
314                    }
315                    Ok(())
316                },
317            )?;
318        }
319        if let Some(ref val) = self.schedule {
320            ser.write_struct(&CREATETASKINPUT_MEMBER_SCHEDULE, val)?;
321        }
322        if let Some(ref val) = self.tags {
323            ser.write_list(
324                &CREATETASKINPUT_MEMBER_TAGS,
325                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
326                    for item in val {
327                        ser.write_struct(crate::types::TagListEntry::SCHEMA, item)?;
328                    }
329                    Ok(())
330                },
331            )?;
332        }
333        if let Some(ref val) = self.includes {
334            ser.write_list(
335                &CREATETASKINPUT_MEMBER_INCLUDES,
336                &|ser: &mut dyn ::aws_smithy_schema::serde::ShapeSerializer| {
337                    for item in val {
338                        ser.write_struct(crate::types::FilterRule::SCHEMA, item)?;
339                    }
340                    Ok(())
341                },
342            )?;
343        }
344        if let Some(ref val) = self.manifest_config {
345            ser.write_struct(&CREATETASKINPUT_MEMBER_MANIFEST_CONFIG, val)?;
346        }
347        if let Some(ref val) = self.task_report_config {
348            ser.write_struct(&CREATETASKINPUT_MEMBER_TASK_REPORT_CONFIG, val)?;
349        }
350        if let Some(ref val) = self.task_mode {
351            ser.write_string(&CREATETASKINPUT_MEMBER_TASK_MODE, val.as_str())?;
352        }
353        Ok(())
354    }
355}
356impl crate::operation::create_task::builders::CreateTaskInputBuilder {
357    #[allow(
358        unused_variables,
359        unreachable_code,
360        clippy::single_match,
361        clippy::match_single_binding,
362        clippy::diverging_sub_expression
363    )]
364    pub(crate) fn deserialize_members(
365        &mut self,
366        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
367    ) -> ::std::result::Result<(), ::aws_smithy_schema::serde::SerdeError> {
368        deserializer.read_struct(&CREATETASKINPUT_SCHEMA, &mut |member, deser| {
369            match member.member_index() {
370                Some(0) => {
371                    if deser.is_null() {
372                        deser.read_null()?;
373                    } else {
374                        self.source_location_arn = Some(deser.read_string(member)?);
375                    }
376                }
377                Some(1) => {
378                    if deser.is_null() {
379                        deser.read_null()?;
380                    } else {
381                        self.destination_location_arn = Some(deser.read_string(member)?);
382                    }
383                }
384                Some(2) => {
385                    if deser.is_null() {
386                        deser.read_null()?;
387                    } else {
388                        self.cloud_watch_log_group_arn = Some(deser.read_string(member)?);
389                    }
390                }
391                Some(3) => {
392                    if deser.is_null() {
393                        deser.read_null()?;
394                    } else {
395                        self.name = Some(deser.read_string(member)?);
396                    }
397                }
398                Some(4) => {
399                    if deser.is_null() {
400                        deser.read_null()?;
401                    } else {
402                        self.options = Some(crate::types::Options::deserialize(deser)?);
403                    }
404                }
405                Some(5) => {
406                    if deser.is_null() {
407                        deser.read_null()?;
408                    } else {
409                        self.excludes = Some({
410                            let mut container = Vec::new();
411                            deser.read_list(member, &mut |deser| {
412                                container.push(crate::types::FilterRule::deserialize(deser)?);
413                                Ok(())
414                            })?;
415                            container
416                        });
417                    }
418                }
419                Some(6) => {
420                    if deser.is_null() {
421                        deser.read_null()?;
422                    } else {
423                        self.schedule = Some(crate::types::TaskSchedule::deserialize(deser)?);
424                    }
425                }
426                Some(7) => {
427                    if deser.is_null() {
428                        deser.read_null()?;
429                    } else {
430                        self.tags = Some({
431                            let mut container = Vec::new();
432                            deser.read_list(member, &mut |deser| {
433                                container.push(crate::types::TagListEntry::deserialize(deser)?);
434                                Ok(())
435                            })?;
436                            container
437                        });
438                    }
439                }
440                Some(8) => {
441                    if deser.is_null() {
442                        deser.read_null()?;
443                    } else {
444                        self.includes = Some({
445                            let mut container = Vec::new();
446                            deser.read_list(member, &mut |deser| {
447                                container.push(crate::types::FilterRule::deserialize(deser)?);
448                                Ok(())
449                            })?;
450                            container
451                        });
452                    }
453                }
454                Some(9) => {
455                    if deser.is_null() {
456                        deser.read_null()?;
457                    } else {
458                        self.manifest_config = Some(crate::types::ManifestConfig::deserialize(deser)?);
459                    }
460                }
461                Some(10) => {
462                    if deser.is_null() {
463                        deser.read_null()?;
464                    } else {
465                        self.task_report_config = Some(crate::types::TaskReportConfig::deserialize(deser)?);
466                    }
467                }
468                Some(11) => {
469                    if deser.is_null() {
470                        deser.read_null()?;
471                    } else {
472                        self.task_mode = Some(crate::types::TaskMode::from(deser.read_string(member)?.as_str()));
473                    }
474                }
475                _ => {}
476            }
477            Ok(())
478        })
479    }
480}
481
482impl CreateTaskInput {
483    /// Deserializes this structure from a [`ShapeDeserializer`].
484    pub fn deserialize(
485        deserializer: &mut dyn ::aws_smithy_schema::serde::ShapeDeserializer,
486    ) -> ::std::result::Result<Self, ::aws_smithy_schema::serde::SerdeError> {
487        let mut builder = Self::builder();
488        builder.deserialize_members(deserializer)?;
489        builder.source_location_arn = builder.source_location_arn.or(Some(String::new()));
490        builder.destination_location_arn = builder.destination_location_arn.or(Some(String::new()));
491        builder.build().map_err(|e| aws_smithy_schema::serde::SerdeError::custom(e.to_string()))
492    }
493}
494impl CreateTaskInput {
495    /// Creates a new builder-style object to manufacture [`CreateTaskInput`](crate::operation::create_task::CreateTaskInput).
496    pub fn builder() -> crate::operation::create_task::builders::CreateTaskInputBuilder {
497        crate::operation::create_task::builders::CreateTaskInputBuilder::default()
498    }
499}
500
501/// A builder for [`CreateTaskInput`](crate::operation::create_task::CreateTaskInput).
502#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
503#[non_exhaustive]
504pub struct CreateTaskInputBuilder {
505    pub(crate) source_location_arn: ::std::option::Option<::std::string::String>,
506    pub(crate) destination_location_arn: ::std::option::Option<::std::string::String>,
507    pub(crate) cloud_watch_log_group_arn: ::std::option::Option<::std::string::String>,
508    pub(crate) name: ::std::option::Option<::std::string::String>,
509    pub(crate) options: ::std::option::Option<crate::types::Options>,
510    pub(crate) excludes: ::std::option::Option<::std::vec::Vec<crate::types::FilterRule>>,
511    pub(crate) schedule: ::std::option::Option<crate::types::TaskSchedule>,
512    pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::TagListEntry>>,
513    pub(crate) includes: ::std::option::Option<::std::vec::Vec<crate::types::FilterRule>>,
514    pub(crate) manifest_config: ::std::option::Option<crate::types::ManifestConfig>,
515    pub(crate) task_report_config: ::std::option::Option<crate::types::TaskReportConfig>,
516    pub(crate) task_mode: ::std::option::Option<crate::types::TaskMode>,
517}
518impl CreateTaskInputBuilder {
519    /// <p>Specifies the ARN of your transfer's source location.</p>
520    /// This field is required.
521    pub fn source_location_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
522        self.source_location_arn = ::std::option::Option::Some(input.into());
523        self
524    }
525    /// <p>Specifies the ARN of your transfer's source location.</p>
526    pub fn set_source_location_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
527        self.source_location_arn = input;
528        self
529    }
530    /// <p>Specifies the ARN of your transfer's source location.</p>
531    pub fn get_source_location_arn(&self) -> &::std::option::Option<::std::string::String> {
532        &self.source_location_arn
533    }
534    /// <p>Specifies the ARN of your transfer's destination location.</p>
535    /// This field is required.
536    pub fn destination_location_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
537        self.destination_location_arn = ::std::option::Option::Some(input.into());
538        self
539    }
540    /// <p>Specifies the ARN of your transfer's destination location.</p>
541    pub fn set_destination_location_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
542        self.destination_location_arn = input;
543        self
544    }
545    /// <p>Specifies the ARN of your transfer's destination location.</p>
546    pub fn get_destination_location_arn(&self) -> &::std::option::Option<::std::string::String> {
547        &self.destination_location_arn
548    }
549    /// <p>Specifies the Amazon Resource Name (ARN) of an Amazon CloudWatch log group for monitoring your task.</p>
550    /// <p>For Enhanced mode tasks, you don't need to specify anything. DataSync automatically sends logs to a CloudWatch log group named <code>/aws/datasync</code>.</p>
551    pub fn cloud_watch_log_group_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
552        self.cloud_watch_log_group_arn = ::std::option::Option::Some(input.into());
553        self
554    }
555    /// <p>Specifies the Amazon Resource Name (ARN) of an Amazon CloudWatch log group for monitoring your task.</p>
556    /// <p>For Enhanced mode tasks, you don't need to specify anything. DataSync automatically sends logs to a CloudWatch log group named <code>/aws/datasync</code>.</p>
557    pub fn set_cloud_watch_log_group_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
558        self.cloud_watch_log_group_arn = input;
559        self
560    }
561    /// <p>Specifies the Amazon Resource Name (ARN) of an Amazon CloudWatch log group for monitoring your task.</p>
562    /// <p>For Enhanced mode tasks, you don't need to specify anything. DataSync automatically sends logs to a CloudWatch log group named <code>/aws/datasync</code>.</p>
563    pub fn get_cloud_watch_log_group_arn(&self) -> &::std::option::Option<::std::string::String> {
564        &self.cloud_watch_log_group_arn
565    }
566    /// <p>Specifies the name of your task.</p>
567    pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
568        self.name = ::std::option::Option::Some(input.into());
569        self
570    }
571    /// <p>Specifies the name of your task.</p>
572    pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
573        self.name = input;
574        self
575    }
576    /// <p>Specifies the name of your task.</p>
577    pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
578        &self.name
579    }
580    /// <p>Specifies your task's settings, such as preserving file metadata, verifying data integrity, among other options.</p>
581    pub fn options(mut self, input: crate::types::Options) -> Self {
582        self.options = ::std::option::Option::Some(input);
583        self
584    }
585    /// <p>Specifies your task's settings, such as preserving file metadata, verifying data integrity, among other options.</p>
586    pub fn set_options(mut self, input: ::std::option::Option<crate::types::Options>) -> Self {
587        self.options = input;
588        self
589    }
590    /// <p>Specifies your task's settings, such as preserving file metadata, verifying data integrity, among other options.</p>
591    pub fn get_options(&self) -> &::std::option::Option<crate::types::Options> {
592        &self.options
593    }
594    /// Appends an item to `excludes`.
595    ///
596    /// To override the contents of this collection use [`set_excludes`](Self::set_excludes).
597    ///
598    /// <p>Specifies 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>
599    pub fn excludes(mut self, input: crate::types::FilterRule) -> Self {
600        let mut v = self.excludes.unwrap_or_default();
601        v.push(input);
602        self.excludes = ::std::option::Option::Some(v);
603        self
604    }
605    /// <p>Specifies 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>
606    pub fn set_excludes(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::FilterRule>>) -> Self {
607        self.excludes = input;
608        self
609    }
610    /// <p>Specifies 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>
611    pub fn get_excludes(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::FilterRule>> {
612        &self.excludes
613    }
614    /// <p>Specifies a 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>
615    pub fn schedule(mut self, input: crate::types::TaskSchedule) -> Self {
616        self.schedule = ::std::option::Option::Some(input);
617        self
618    }
619    /// <p>Specifies a 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>
620    pub fn set_schedule(mut self, input: ::std::option::Option<crate::types::TaskSchedule>) -> Self {
621        self.schedule = input;
622        self
623    }
624    /// <p>Specifies a 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>
625    pub fn get_schedule(&self) -> &::std::option::Option<crate::types::TaskSchedule> {
626        &self.schedule
627    }
628    /// Appends an item to `tags`.
629    ///
630    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
631    ///
632    /// <p>Specifies the tags that you want to apply to your task.</p>
633    /// <p><i>Tags</i> are key-value pairs that help you manage, filter, and search for your DataSync resources.</p>
634    pub fn tags(mut self, input: crate::types::TagListEntry) -> Self {
635        let mut v = self.tags.unwrap_or_default();
636        v.push(input);
637        self.tags = ::std::option::Option::Some(v);
638        self
639    }
640    /// <p>Specifies the tags that you want to apply to your task.</p>
641    /// <p><i>Tags</i> are key-value pairs that help you manage, filter, and search for your DataSync resources.</p>
642    pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::TagListEntry>>) -> Self {
643        self.tags = input;
644        self
645    }
646    /// <p>Specifies the tags that you want to apply to your task.</p>
647    /// <p><i>Tags</i> are key-value pairs that help you manage, filter, and search for your DataSync resources.</p>
648    pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::TagListEntry>> {
649        &self.tags
650    }
651    /// Appends an item to `includes`.
652    ///
653    /// To override the contents of this collection use [`set_includes`](Self::set_includes).
654    ///
655    /// <p>Specifies 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>
656    pub fn includes(mut self, input: crate::types::FilterRule) -> Self {
657        let mut v = self.includes.unwrap_or_default();
658        v.push(input);
659        self.includes = ::std::option::Option::Some(v);
660        self
661    }
662    /// <p>Specifies 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>
663    pub fn set_includes(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::FilterRule>>) -> Self {
664        self.includes = input;
665        self
666    }
667    /// <p>Specifies 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>
668    pub fn get_includes(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::FilterRule>> {
669        &self.includes
670    }
671    /// <p>Configures a manifest, which is a list of files or objects that you want DataSync to transfer. For more information and configuration examples, 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>
672    /// <p>When using this parameter, your caller identity (the role that you're using DataSync with) must have the <code>iam:PassRole</code> permission. The <a href="https://docs.aws.amazon.com/datasync/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-awsdatasyncfullaccess">AWSDataSyncFullAccess</a> policy includes this permission.</p>
673    pub fn manifest_config(mut self, input: crate::types::ManifestConfig) -> Self {
674        self.manifest_config = ::std::option::Option::Some(input);
675        self
676    }
677    /// <p>Configures a manifest, which is a list of files or objects that you want DataSync to transfer. For more information and configuration examples, 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>
678    /// <p>When using this parameter, your caller identity (the role that you're using DataSync with) must have the <code>iam:PassRole</code> permission. The <a href="https://docs.aws.amazon.com/datasync/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-awsdatasyncfullaccess">AWSDataSyncFullAccess</a> policy includes this permission.</p>
679    pub fn set_manifest_config(mut self, input: ::std::option::Option<crate::types::ManifestConfig>) -> Self {
680        self.manifest_config = input;
681        self
682    }
683    /// <p>Configures a manifest, which is a list of files or objects that you want DataSync to transfer. For more information and configuration examples, 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>
684    /// <p>When using this parameter, your caller identity (the role that you're using DataSync with) must have the <code>iam:PassRole</code> permission. The <a href="https://docs.aws.amazon.com/datasync/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-awsdatasyncfullaccess">AWSDataSyncFullAccess</a> policy includes this permission.</p>
685    pub fn get_manifest_config(&self) -> &::std::option::Option<crate::types::ManifestConfig> {
686        &self.manifest_config
687    }
688    /// <p>Specifies how you want to configure a 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>
689    /// <p>When using this parameter, your caller identity (the role that you're using DataSync with) must have the <code>iam:PassRole</code> permission. The <a href="https://docs.aws.amazon.com/datasync/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-awsdatasyncfullaccess">AWSDataSyncFullAccess</a> policy includes this permission.</p>
690    pub fn task_report_config(mut self, input: crate::types::TaskReportConfig) -> Self {
691        self.task_report_config = ::std::option::Option::Some(input);
692        self
693    }
694    /// <p>Specifies how you want to configure a 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>
695    /// <p>When using this parameter, your caller identity (the role that you're using DataSync with) must have the <code>iam:PassRole</code> permission. The <a href="https://docs.aws.amazon.com/datasync/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-awsdatasyncfullaccess">AWSDataSyncFullAccess</a> policy includes this permission.</p>
696    pub fn set_task_report_config(mut self, input: ::std::option::Option<crate::types::TaskReportConfig>) -> Self {
697        self.task_report_config = input;
698        self
699    }
700    /// <p>Specifies how you want to configure a 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>
701    /// <p>When using this parameter, your caller identity (the role that you're using DataSync with) must have the <code>iam:PassRole</code> permission. The <a href="https://docs.aws.amazon.com/datasync/latest/userguide/security-iam-awsmanpol.html#security-iam-awsmanpol-awsdatasyncfullaccess">AWSDataSyncFullAccess</a> policy includes this permission.</p>
702    pub fn get_task_report_config(&self) -> &::std::option::Option<crate::types::TaskReportConfig> {
703        &self.task_report_config
704    }
705    /// <p>Specifies one of the following task modes for your data transfer:</p>
706    /// <ul>
707    /// <li>
708    /// <p><code>ENHANCED</code> - Transfer virtually unlimited numbers of objects with higher performance than Basic mode. Enhanced mode tasks optimize the data transfer process by listing, preparing, transferring, and verifying data in parallel. Enhanced mode is currently available for transfers between Amazon S3 locations, transfers between Azure Blob and Amazon S3 without an agent, and transfers between other clouds and Amazon S3 without an agent.</p><note>
709    /// <p>To create an Enhanced mode task, the IAM role that you use to call the <code>CreateTask</code> operation must have the <code>iam:CreateServiceLinkedRole</code> permission.</p>
710    /// </note></li>
711    /// <li>
712    /// <p><code>BASIC</code> (default) - Transfer files or objects between Amazon Web Services storage and all other supported DataSync locations. Basic mode tasks are subject to <a href="https://docs.aws.amazon.com/datasync/latest/userguide/datasync-limits.html">quotas</a> on the number of files, objects, and directories in a dataset. Basic mode sequentially prepares, transfers, and verifies data, making it slower than Enhanced mode for most workloads.</p></li>
713    /// </ul>
714    /// <p>For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/choosing-task-mode.html#task-mode-differences">Understanding task mode differences</a>.</p>
715    pub fn task_mode(mut self, input: crate::types::TaskMode) -> Self {
716        self.task_mode = ::std::option::Option::Some(input);
717        self
718    }
719    /// <p>Specifies one of the following task modes for your data transfer:</p>
720    /// <ul>
721    /// <li>
722    /// <p><code>ENHANCED</code> - Transfer virtually unlimited numbers of objects with higher performance than Basic mode. Enhanced mode tasks optimize the data transfer process by listing, preparing, transferring, and verifying data in parallel. Enhanced mode is currently available for transfers between Amazon S3 locations, transfers between Azure Blob and Amazon S3 without an agent, and transfers between other clouds and Amazon S3 without an agent.</p><note>
723    /// <p>To create an Enhanced mode task, the IAM role that you use to call the <code>CreateTask</code> operation must have the <code>iam:CreateServiceLinkedRole</code> permission.</p>
724    /// </note></li>
725    /// <li>
726    /// <p><code>BASIC</code> (default) - Transfer files or objects between Amazon Web Services storage and all other supported DataSync locations. Basic mode tasks are subject to <a href="https://docs.aws.amazon.com/datasync/latest/userguide/datasync-limits.html">quotas</a> on the number of files, objects, and directories in a dataset. Basic mode sequentially prepares, transfers, and verifies data, making it slower than Enhanced mode for most workloads.</p></li>
727    /// </ul>
728    /// <p>For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/choosing-task-mode.html#task-mode-differences">Understanding task mode differences</a>.</p>
729    pub fn set_task_mode(mut self, input: ::std::option::Option<crate::types::TaskMode>) -> Self {
730        self.task_mode = input;
731        self
732    }
733    /// <p>Specifies one of the following task modes for your data transfer:</p>
734    /// <ul>
735    /// <li>
736    /// <p><code>ENHANCED</code> - Transfer virtually unlimited numbers of objects with higher performance than Basic mode. Enhanced mode tasks optimize the data transfer process by listing, preparing, transferring, and verifying data in parallel. Enhanced mode is currently available for transfers between Amazon S3 locations, transfers between Azure Blob and Amazon S3 without an agent, and transfers between other clouds and Amazon S3 without an agent.</p><note>
737    /// <p>To create an Enhanced mode task, the IAM role that you use to call the <code>CreateTask</code> operation must have the <code>iam:CreateServiceLinkedRole</code> permission.</p>
738    /// </note></li>
739    /// <li>
740    /// <p><code>BASIC</code> (default) - Transfer files or objects between Amazon Web Services storage and all other supported DataSync locations. Basic mode tasks are subject to <a href="https://docs.aws.amazon.com/datasync/latest/userguide/datasync-limits.html">quotas</a> on the number of files, objects, and directories in a dataset. Basic mode sequentially prepares, transfers, and verifies data, making it slower than Enhanced mode for most workloads.</p></li>
741    /// </ul>
742    /// <p>For more information, see <a href="https://docs.aws.amazon.com/datasync/latest/userguide/choosing-task-mode.html#task-mode-differences">Understanding task mode differences</a>.</p>
743    pub fn get_task_mode(&self) -> &::std::option::Option<crate::types::TaskMode> {
744        &self.task_mode
745    }
746    /// Consumes the builder and constructs a [`CreateTaskInput`](crate::operation::create_task::CreateTaskInput).
747    pub fn build(self) -> ::std::result::Result<crate::operation::create_task::CreateTaskInput, ::aws_smithy_types::error::operation::BuildError> {
748        ::std::result::Result::Ok(crate::operation::create_task::CreateTaskInput {
749            source_location_arn: self.source_location_arn,
750            destination_location_arn: self.destination_location_arn,
751            cloud_watch_log_group_arn: self.cloud_watch_log_group_arn,
752            name: self.name,
753            options: self.options,
754            excludes: self.excludes,
755            schedule: self.schedule,
756            tags: self.tags,
757            includes: self.includes,
758            manifest_config: self.manifest_config,
759            task_report_config: self.task_report_config,
760            task_mode: self.task_mode,
761        })
762    }
763}