createTask method
- required String destinationLocationArn,
- required String sourceLocationArn,
- String? cloudWatchLogGroupArn,
- List<
FilterRule> ? excludes, - List<
FilterRule> ? includes, - ManifestConfig? manifestConfig,
- String? name,
- Options? options,
- TaskSchedule? schedule,
- List<
TagListEntry> ? tags, - TaskMode? taskMode,
- TaskReportConfig? taskReportConfig,
Configures a task, which defines where and how DataSync transfers your data.
A task includes a source location, destination location, and transfer options (such as bandwidth limits, scheduling, and more).
May throw InternalException.
May throw InvalidRequestException.
Parameter destinationLocationArn :
Specifies the ARN of your transfer's destination location.
Parameter sourceLocationArn :
Specifies the ARN of your transfer's source location.
Parameter cloudWatchLogGroupArn :
Specifies the Amazon Resource Name (ARN) of an Amazon CloudWatch log group
for monitoring your task.
For Enhanced mode tasks, you don't need to specify anything. DataSync
automatically sends logs to a CloudWatch log group named
/aws/datasync.
Parameter excludes :
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 Specifying
what DataSync transfers by using filters.
Parameter includes :
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 Specifying
what DataSync transfers by using filters.
Parameter manifestConfig :
Configures a manifest, which is a list of files or objects that you want
DataSync to transfer. For more information and configuration examples, see
Specifying
what DataSync transfers by using a manifest.
When using this parameter, your caller identity (the role that you're
using DataSync with) must have the iam:PassRole permission.
The AWSDataSyncFullAccess
policy includes this permission.
Parameter name :
Specifies the name of your task.
Parameter options :
Specifies your task's settings, such as preserving file metadata,
verifying data integrity, among other options.
Parameter schedule :
Specifies a schedule for when you want your task to run. For more
information, see Scheduling
your task.
Parameter tags :
Specifies the tags that you want to apply to your task.
Tags are key-value pairs that help you manage, filter, and search for your DataSync resources.
Parameter taskMode :
Specifies one of the following task modes for your data transfer:
-
ENHANCED- 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. -
BASIC(default) - Transfer files or objects between Amazon Web Services storage and all other supported DataSync locations. Basic mode tasks are subject to quotas 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.
Parameter taskReportConfig :
Specifies how you want to configure a task report, which provides detailed
information about your DataSync transfer. For more information, see Monitoring
your DataSync transfers with task reports.
When using this parameter, your caller identity (the role that you're
using DataSync with) must have the iam:PassRole permission.
The AWSDataSyncFullAccess
policy includes this permission.
Implementation
Future<CreateTaskResponse> createTask({
required String destinationLocationArn,
required String sourceLocationArn,
String? cloudWatchLogGroupArn,
List<FilterRule>? excludes,
List<FilterRule>? includes,
ManifestConfig? manifestConfig,
String? name,
Options? options,
TaskSchedule? schedule,
List<TagListEntry>? tags,
TaskMode? taskMode,
TaskReportConfig? taskReportConfig,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'FmrsService.CreateTask'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'DestinationLocationArn': destinationLocationArn,
'SourceLocationArn': sourceLocationArn,
if (cloudWatchLogGroupArn != null)
'CloudWatchLogGroupArn': cloudWatchLogGroupArn,
if (excludes != null) 'Excludes': excludes,
if (includes != null) 'Includes': includes,
if (manifestConfig != null) 'ManifestConfig': manifestConfig,
if (name != null) 'Name': name,
if (options != null) 'Options': options,
if (schedule != null) 'Schedule': schedule,
if (tags != null) 'Tags': tags,
if (taskMode != null) 'TaskMode': taskMode.value,
if (taskReportConfig != null) 'TaskReportConfig': taskReportConfig,
},
);
return CreateTaskResponse.fromJson(jsonResponse.body);
}