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}