aws_sdk_datasync/client/create_task.rs
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`CreateTask`](crate::operation::create_task::builders::CreateTaskFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`source_location_arn(impl Into<String>)`](crate::operation::create_task::builders::CreateTaskFluentBuilder::source_location_arn) / [`set_source_location_arn(Option<String>)`](crate::operation::create_task::builders::CreateTaskFluentBuilder::set_source_location_arn):<br>required: **true**<br><p>Specifies the ARN of your transfer's source location.</p><br>
/// - [`destination_location_arn(impl Into<String>)`](crate::operation::create_task::builders::CreateTaskFluentBuilder::destination_location_arn) / [`set_destination_location_arn(Option<String>)`](crate::operation::create_task::builders::CreateTaskFluentBuilder::set_destination_location_arn):<br>required: **true**<br><p>Specifies the ARN of your transfer's destination location.</p><br>
/// - [`cloud_watch_log_group_arn(impl Into<String>)`](crate::operation::create_task::builders::CreateTaskFluentBuilder::cloud_watch_log_group_arn) / [`set_cloud_watch_log_group_arn(Option<String>)`](crate::operation::create_task::builders::CreateTaskFluentBuilder::set_cloud_watch_log_group_arn):<br>required: **false**<br><p>Specifies the Amazon Resource Name (ARN) of an Amazon CloudWatch log group for monitoring your task.</p> <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><br>
/// - [`name(impl Into<String>)`](crate::operation::create_task::builders::CreateTaskFluentBuilder::name) / [`set_name(Option<String>)`](crate::operation::create_task::builders::CreateTaskFluentBuilder::set_name):<br>required: **false**<br><p>Specifies the name of your task.</p><br>
/// - [`options(Options)`](crate::operation::create_task::builders::CreateTaskFluentBuilder::options) / [`set_options(Option<Options>)`](crate::operation::create_task::builders::CreateTaskFluentBuilder::set_options):<br>required: **false**<br><p>Specifies your task's settings, such as preserving file metadata, verifying data integrity, among other options.</p><br>
/// - [`excludes(FilterRule)`](crate::operation::create_task::builders::CreateTaskFluentBuilder::excludes) / [`set_excludes(Option<Vec::<FilterRule>>)`](crate::operation::create_task::builders::CreateTaskFluentBuilder::set_excludes):<br>required: **false**<br><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><br>
/// - [`schedule(TaskSchedule)`](crate::operation::create_task::builders::CreateTaskFluentBuilder::schedule) / [`set_schedule(Option<TaskSchedule>)`](crate::operation::create_task::builders::CreateTaskFluentBuilder::set_schedule):<br>required: **false**<br><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><br>
/// - [`tags(TagListEntry)`](crate::operation::create_task::builders::CreateTaskFluentBuilder::tags) / [`set_tags(Option<Vec::<TagListEntry>>)`](crate::operation::create_task::builders::CreateTaskFluentBuilder::set_tags):<br>required: **false**<br><p>Specifies the tags that you want to apply to your task.</p> <p><i>Tags</i> are key-value pairs that help you manage, filter, and search for your DataSync resources.</p><br>
/// - [`includes(FilterRule)`](crate::operation::create_task::builders::CreateTaskFluentBuilder::includes) / [`set_includes(Option<Vec::<FilterRule>>)`](crate::operation::create_task::builders::CreateTaskFluentBuilder::set_includes):<br>required: **false**<br><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><br>
/// - [`manifest_config(ManifestConfig)`](crate::operation::create_task::builders::CreateTaskFluentBuilder::manifest_config) / [`set_manifest_config(Option<ManifestConfig>)`](crate::operation::create_task::builders::CreateTaskFluentBuilder::set_manifest_config):<br>required: **false**<br><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> <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><br>
/// - [`task_report_config(TaskReportConfig)`](crate::operation::create_task::builders::CreateTaskFluentBuilder::task_report_config) / [`set_task_report_config(Option<TaskReportConfig>)`](crate::operation::create_task::builders::CreateTaskFluentBuilder::set_task_report_config):<br>required: **false**<br><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> <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><br>
/// - [`task_mode(TaskMode)`](crate::operation::create_task::builders::CreateTaskFluentBuilder::task_mode) / [`set_task_mode(Option<TaskMode>)`](crate::operation::create_task::builders::CreateTaskFluentBuilder::set_task_mode):<br>required: **false**<br><p>Specifies one of the following task modes for your data transfer:</p> <ul> <li> <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.</p><note> <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> </note></li> <li> <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> </ul> <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><br>
/// - On success, responds with [`CreateTaskOutput`](crate::operation::create_task::CreateTaskOutput) with field(s):
/// - [`task_arn(Option<String>)`](crate::operation::create_task::CreateTaskOutput::task_arn): <p>The Amazon Resource Name (ARN) of the task.</p>
/// - On failure, responds with [`SdkError<CreateTaskError>`](crate::operation::create_task::CreateTaskError)
pub fn create_task(&self) -> crate::operation::create_task::builders::CreateTaskFluentBuilder {
crate::operation::create_task::builders::CreateTaskFluentBuilder::new(self.handle.clone())
}
}