AWS DataSync

2024/10/30 - AWS DataSync - 5 updated api methods

Changes  AWS DataSync now supports Enhanced mode tasks. This task mode supports transfer of virtually unlimited numbers of objects with enhanced metrics, more detailed logs, and higher performance than Basic mode. This mode currently supports transfers between Amazon S3 locations.

CreateTask (updated) Link ¶
Changes (request)
{'TaskMode': 'BASIC | ENHANCED'}

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).

Warning

If you're planning to transfer data to or from an Amazon S3 location, review how DataSync can affect your S3 request charges and the DataSync pricing page before you begin.

See also: AWS API Documentation

Request Syntax

client.create_task(
    SourceLocationArn='string',
    DestinationLocationArn='string',
    CloudWatchLogGroupArn='string',
    Name='string',
    Options={
        'VerifyMode': 'POINT_IN_TIME_CONSISTENT'|'ONLY_FILES_TRANSFERRED'|'NONE',
        'OverwriteMode': 'ALWAYS'|'NEVER',
        'Atime': 'NONE'|'BEST_EFFORT',
        'Mtime': 'NONE'|'PRESERVE',
        'Uid': 'NONE'|'INT_VALUE'|'NAME'|'BOTH',
        'Gid': 'NONE'|'INT_VALUE'|'NAME'|'BOTH',
        'PreserveDeletedFiles': 'PRESERVE'|'REMOVE',
        'PreserveDevices': 'NONE'|'PRESERVE',
        'PosixPermissions': 'NONE'|'PRESERVE',
        'BytesPerSecond': 123,
        'TaskQueueing': 'ENABLED'|'DISABLED',
        'LogLevel': 'OFF'|'BASIC'|'TRANSFER',
        'TransferMode': 'CHANGED'|'ALL',
        'SecurityDescriptorCopyFlags': 'NONE'|'OWNER_DACL'|'OWNER_DACL_SACL',
        'ObjectTags': 'PRESERVE'|'NONE'
    },
    Excludes=[
        {
            'FilterType': 'SIMPLE_PATTERN',
            'Value': 'string'
        },
    ],
    Schedule={
        'ScheduleExpression': 'string',
        'Status': 'ENABLED'|'DISABLED'
    },
    Tags=[
        {
            'Key': 'string',
            'Value': 'string'
        },
    ],
    Includes=[
        {
            'FilterType': 'SIMPLE_PATTERN',
            'Value': 'string'
        },
    ],
    ManifestConfig={
        'Action': 'TRANSFER',
        'Format': 'CSV',
        'Source': {
            'S3': {
                'ManifestObjectPath': 'string',
                'BucketAccessRoleArn': 'string',
                'S3BucketArn': 'string',
                'ManifestObjectVersionId': 'string'
            }
        }
    },
    TaskReportConfig={
        'Destination': {
            'S3': {
                'Subdirectory': 'string',
                'S3BucketArn': 'string',
                'BucketAccessRoleArn': 'string'
            }
        },
        'OutputType': 'SUMMARY_ONLY'|'STANDARD',
        'ReportLevel': 'ERRORS_ONLY'|'SUCCESSES_AND_ERRORS',
        'ObjectVersionIds': 'INCLUDE'|'NONE',
        'Overrides': {
            'Transferred': {
                'ReportLevel': 'ERRORS_ONLY'|'SUCCESSES_AND_ERRORS'
            },
            'Verified': {
                'ReportLevel': 'ERRORS_ONLY'|'SUCCESSES_AND_ERRORS'
            },
            'Deleted': {
                'ReportLevel': 'ERRORS_ONLY'|'SUCCESSES_AND_ERRORS'
            },
            'Skipped': {
                'ReportLevel': 'ERRORS_ONLY'|'SUCCESSES_AND_ERRORS'
            }
        }
    },
    TaskMode='BASIC'|'ENHANCED'
)
type SourceLocationArn

string

param SourceLocationArn

[REQUIRED]

Specifies the ARN of your transfer's source location.

type DestinationLocationArn

string

param DestinationLocationArn

[REQUIRED]

Specifies the ARN of your transfer's destination location.

type CloudWatchLogGroupArn

string

param 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 .

type Name

string

param Name

Specifies the name of your task.

type Options

dict

param Options

Specifies your task's settings, such as preserving file metadata, verifying data integrity, among other options.

  • VerifyMode (string) --

    Specifies if and how DataSync checks the integrity of your data at the end of your transfer.

    • ONLY_FILES_TRANSFERRED (recommended) - DataSync calculates the checksum of transferred data (including metadata) at the source location. At the end of the transfer, DataSync then compares this checksum to the checksum calculated on that data at the destination.

    Note

    This is the default option for Enhanced mode tasks.

    We recommend this option when transferring to S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive storage classes. For more information, see Storage class considerations with Amazon S3 locations.

    • POINT_IN_TIME_CONSISTENT - At the end of the transfer, DataSync checks the entire source and destination to verify that both locations are fully synchronized.

    Note

    The is the default option for Basic mode tasks and isn't currently supported with Enhanced mode tasks.

    If you use a manifest, DataSync only scans and verifies what's listed in the manifest. You can't use this option when transferring to S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive storage classes. For more information, see Storage class considerations with Amazon S3 locations.

    • NONE - DataSync performs data integrity checks only during your transfer. Unlike other options, there's no additional verification at the end of your transfer.

  • OverwriteMode (string) --

    Specifies whether DataSync should modify or preserve data at the destination location.

    • ALWAYS (default) - DataSync modifies data in the destination location when source data (including metadata) has changed. If DataSync overwrites objects, you might incur additional charges for certain Amazon S3 storage classes (for example, for retrieval or early deletion). For more information, see Storage class considerations with Amazon S3 transfers.

    • NEVER - DataSync doesn't overwrite data in the destination location even if the source data has changed. You can use this option to protect against overwriting changes made to files or objects in the destination.

  • Atime (string) --

    Specifies whether to preserve metadata indicating the last time a file was read or written to.

    Note

    The behavior of Atime isn't fully standard across platforms, so DataSync can only do this on a best-effort basis.

    • BEST_EFFORT (default) - DataSync attempts to preserve the original Atime attribute on all source files (that is, the version before the PREPARING steps of the task execution). This option is recommended.

    • NONE - Ignores Atime .

    Note

    If Atime is set to BEST_EFFORT , Mtime must be set to PRESERVE .

    If Atime is set to NONE , Mtime must also be NONE .

  • Mtime (string) --

    Specifies whether to preserve metadata indicating the last time that a file was written to before the PREPARING step of your task execution. This option is required when you need to run the a task more than once.

    • PRESERVE (default) - Preserves original Mtime , which is recommended.

    • NONE - Ignores Mtime .

    Note

    If Mtime is set to PRESERVE , Atime must be set to BEST_EFFORT .

    If Mtime is set to NONE , Atime must also be set to NONE .

  • Uid (string) --

    Specifies the POSIX user ID (UID) of the file's owner.

    • INT_VALUE (default) - Preserves the integer value of UID and group ID (GID), which is recommended.

    • NONE - Ignores UID and GID.

    For more information, see Metadata copied by DataSync.

  • Gid (string) --

    Specifies the POSIX group ID (GID) of the file's owners.

    • INT_VALUE (default) - Preserves the integer value of user ID (UID) and GID, which is recommended.

    • NONE - Ignores UID and GID.

    For more information, see Understanding how DataSync handles file and object metadata.

  • PreserveDeletedFiles (string) --

    Specifies whether files in the destination location that don't exist in the source should be preserved. This option can affect your Amazon S3 storage cost. If your task deletes objects, you might incur minimum storage duration charges for certain storage classes. For detailed information, see Considerations when working with Amazon S3 storage classes in DataSync.

    • PRESERVE (default) - Ignores such destination files, which is recommended.

    • REMOVE - Deletes destination files that aren’t present in the source.

    Note

    If you set this parameter to REMOVE , you can't set TransferMode to ALL . When you transfer all data, DataSync doesn't scan your destination location and doesn't know what to delete.

  • PreserveDevices (string) --

    Specifies whether DataSync should preserve the metadata of block and character devices in the source location and recreate the files with that device name and metadata on the destination. DataSync copies only the name and metadata of such devices.

    Note

    DataSync can't copy the actual contents of these devices because they're nonterminal and don't return an end-of-file (EOF) marker.

    • NONE (default) - Ignores special devices (recommended).

    • PRESERVE - Preserves character and block device metadata. This option currently isn't supported for Amazon EFS.

  • PosixPermissions (string) --

    Specifies which users or groups can access a file for a specific purpose such as reading, writing, or execution of the file.

    For more information, see Understanding how DataSync handles file and object metadata.

    • PRESERVE (default) - Preserves POSIX-style permissions, which is recommended.

    • NONE - Ignores POSIX-style permissions.

    Note

    DataSync can preserve extant permissions of a source location.

  • BytesPerSecond (integer) --

    Limits the bandwidth used by a DataSync task. For example, if you want DataSync to use a maximum of 1 MB, set this value to 1048576 ( =1024*1024 ).

    Note

    Not applicable to Enhanced mode tasks.

  • TaskQueueing (string) --

    Specifies whether your transfer tasks should be put into a queue during certain scenarios when running multiple tasks. This is ENABLED by default.

  • LogLevel (string) --

    Specifies the type of logs that DataSync publishes to a Amazon CloudWatch Logs log group. To specify the log group, see CloudWatchLogGroupArn.

    • BASIC - Publishes logs with only basic information (such as transfer errors).

    • TRANSFER - Publishes logs for all files or objects that your DataSync task transfers and performs data-integrity checks on.

    • OFF - No logs are published.

  • TransferMode (string) --

    Specifies whether DataSync transfers only the data (including metadata) that differs between locations following an initial copy or transfers all data every time you run the task. If you're planning on recurring transfers, you might only want to transfer what's changed since your previous task execution.

    • CHANGED (default) - After your initial full transfer, DataSync copies only the data and metadata that differs between the source and destination location.

    • ALL - DataSync copies everything in the source to the destination without comparing differences between the locations.

  • SecurityDescriptorCopyFlags (string) --

    Specifies which components of the SMB security descriptor are copied from source to destination objects.

    This value is only used for transfers between SMB and Amazon FSx for Windows File Server locations or between two FSx for Windows File Server locations. For more information, see Understanding how DataSync handles file and object metadata.

    • OWNER_DACL (default) - For each copied object, DataSync copies the following metadata:

      • The object owner.

      • NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object. DataSync won't copy NTFS system access control lists (SACLs) with this option.

    • OWNER_DACL_SACL - For each copied object, DataSync copies the following metadata:

      • The object owner.

      • NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object.

      • SACLs, which are used by administrators to log attempts to access a secured object. Copying SACLs requires granting additional permissions to the Windows user that DataSync uses to access your SMB location. For information about choosing a user with the right permissions, see required permissions for SMB, FSx for Windows File Server, or FSx for ONTAP (depending on the type of location in your transfer).

    • NONE - None of the SMB security descriptor components are copied. Destination objects are owned by the user that was provided for accessing the destination location. DACLs and SACLs are set based on the destination server’s configuration.

  • ObjectTags (string) --

    Specifies whether you want DataSync to PRESERVE object tags (default behavior) when transferring between object storage systems. If you want your DataSync task to ignore object tags, specify the NONE value.

type Excludes

list

param 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.

  • (dict) --

    Specifies which files, folders, and objects to include or exclude when transferring files from source to destination.

    • FilterType (string) --

      The type of filter rule to apply. DataSync only supports the SIMPLE_PATTERN rule type.

    • Value (string) --

      A single filter string that consists of the patterns to include or exclude. The patterns are delimited by "|" (that is, a pipe), for example: /folder1|/folder2

type Schedule

dict

param Schedule

Specifies a schedule for when you want your task to run. For more information, see Scheduling your task.

  • ScheduleExpression (string) -- [REQUIRED]

    Specifies your task schedule by using a cron or rate expression.

    Use cron expressions for task schedules that run on a specific time and day. For example, the following cron expression creates a task schedule that runs at 8 AM on the first Wednesday of every month:

    cron(0 8 * * 3#1)

    Use rate expressions for task schedules that run on a regular interval. For example, the following rate expression creates a task schedule that runs every 12 hours:

    rate(12 hours)

    For information about cron and rate expression syntax, see the Amazon EventBridge User Guide.

  • Status (string) --

    Specifies whether to enable or disable your task schedule. Your schedule is enabled by default, but there can be situations where you need to disable it. For example, you might need to pause a recurring transfer to fix an issue with your task or perform maintenance on your storage system.

    DataSync might disable your schedule automatically if your task fails repeatedly with the same error. For more information, see TaskScheduleDetails.

type Tags

list

param 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.

  • (dict) --

    A key-value pair representing a single tag that's been applied to an Amazon Web Services resource.

    • Key (string) -- [REQUIRED]

      The key for an Amazon Web Services resource tag.

    • Value (string) --

      The value for an Amazon Web Services resource tag.

type Includes

list

param 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.

  • (dict) --

    Specifies which files, folders, and objects to include or exclude when transferring files from source to destination.

    • FilterType (string) --

      The type of filter rule to apply. DataSync only supports the SIMPLE_PATTERN rule type.

    • Value (string) --

      A single filter string that consists of the patterns to include or exclude. The patterns are delimited by "|" (that is, a pipe), for example: /folder1|/folder2

type ManifestConfig

dict

param 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.

  • Action (string) --

    Specifies what DataSync uses the manifest for.

  • Format (string) --

    Specifies the file format of your manifest. For more information, see Creating a manifest.

  • Source (dict) --

    Specifies the manifest that you want DataSync to use and where it's hosted.

    Note

    You must specify this parameter if you're configuring a new manifest on or after February 7, 2024.

    If you don't, you'll get a 400 status code and ValidationException error stating that you're missing the IAM role for DataSync to access the S3 bucket where you're hosting your manifest. For more information, see Providing DataSync access to your manifest.

    • S3 (dict) -- [REQUIRED]

      Specifies the S3 bucket where you're hosting your manifest.

      • ManifestObjectPath (string) -- [REQUIRED]

        Specifies the Amazon S3 object key of your manifest. This can include a prefix (for example, prefix/my-manifest.csv ).

      • BucketAccessRoleArn (string) -- [REQUIRED]

        Specifies the Identity and Access Management (IAM) role that allows DataSync to access your manifest. For more information, see Providing DataSync access to your manifest.

      • S3BucketArn (string) -- [REQUIRED]

        Specifies the Amazon Resource Name (ARN) of the S3 bucket where you're hosting your manifest.

      • ManifestObjectVersionId (string) --

        Specifies the object version ID of the manifest that you want DataSync to use. If you don't set this, DataSync uses the latest version of the object.

type TaskReportConfig

dict

param 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.

  • Destination (dict) --

    Specifies the Amazon S3 bucket where DataSync uploads your task report. For more information, see Task reports.

    • S3 (dict) --

      Specifies the Amazon S3 bucket where DataSync uploads your task report.

      • Subdirectory (string) --

        Specifies a bucket prefix for your report.

      • S3BucketArn (string) -- [REQUIRED]

        Specifies the ARN of the S3 bucket where DataSync uploads your report.

      • BucketAccessRoleArn (string) -- [REQUIRED]

        Specifies the Amazon Resource Name (ARN) of the IAM policy that allows DataSync to upload a task report to your S3 bucket. For more information, see Allowing DataSync to upload a task report to an Amazon S3 bucket.

  • OutputType (string) --

    Specifies the type of task report that you want:

    • SUMMARY_ONLY : Provides necessary details about your task, including the number of files, objects, and directories transferred and transfer duration.

    • STANDARD : Provides complete details about your task, including a full list of files, objects, and directories that were transferred, skipped, verified, and more.

  • ReportLevel (string) --

    Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.

    • ERRORS_ONLY : A report shows what DataSync was unable to transfer, skip, verify, and delete.

    • SUCCESSES_AND_ERRORS : A report shows what DataSync was able and unable to transfer, skip, verify, and delete.

  • ObjectVersionIds (string) --

    Specifies whether your task report includes the new version of each object transferred into an S3 bucket. This only applies if you enable versioning on your bucket. Keep in mind that setting this to INCLUDE can increase the duration of your task execution.

  • Overrides (dict) --

    Customizes the reporting level for aspects of your task report. For example, your report might generally only include errors, but you could specify that you want a list of successes and errors just for the files that DataSync attempted to delete in your destination location.

    • Transferred (dict) --

      Specifies the level of reporting for the files, objects, and directories that DataSync attempted to transfer.

      • ReportLevel (string) --

        Specifies whether your task report includes errors only or successes and errors.

        For example, your report might mostly include only what didn't go well in your transfer ( ERRORS_ONLY ). At the same time, you want to verify that your task filter is working correctly. In this situation, you can get a list of what files DataSync successfully skipped and if something transferred that you didn't to transfer ( SUCCESSES_AND_ERRORS ).

    • Verified (dict) --

      Specifies the level of reporting for the files, objects, and directories that DataSync attempted to verify at the end of your transfer.

      • ReportLevel (string) --

        Specifies whether your task report includes errors only or successes and errors.

        For example, your report might mostly include only what didn't go well in your transfer ( ERRORS_ONLY ). At the same time, you want to verify that your task filter is working correctly. In this situation, you can get a list of what files DataSync successfully skipped and if something transferred that you didn't to transfer ( SUCCESSES_AND_ERRORS ).

    • Deleted (dict) --

      Specifies the level of reporting for the files, objects, and directories that DataSync attempted to delete in your destination location. This only applies if you configure your task to delete data in the destination that isn't in the source.

      • ReportLevel (string) --

        Specifies whether your task report includes errors only or successes and errors.

        For example, your report might mostly include only what didn't go well in your transfer ( ERRORS_ONLY ). At the same time, you want to verify that your task filter is working correctly. In this situation, you can get a list of what files DataSync successfully skipped and if something transferred that you didn't to transfer ( SUCCESSES_AND_ERRORS ).

    • Skipped (dict) --

      Specifies the level of reporting for the files, objects, and directories that DataSync attempted to skip during your transfer.

      • ReportLevel (string) --

        Specifies whether your task report includes errors only or successes and errors.

        For example, your report might mostly include only what didn't go well in your transfer ( ERRORS_ONLY ). At the same time, you want to verify that your task filter is working correctly. In this situation, you can get a list of what files DataSync successfully skipped and if something transferred that you didn't to transfer ( SUCCESSES_AND_ERRORS ).

type TaskMode

string

param TaskMode

Specifies one of the following task modes for your data transfer:

  • ENHANCED - Transfer virtually unlimited numbers of objects with enhanced metrics, more detailed logs, and higher performance than Basic mode. Currently available for transfers between Amazon S3 locations.

Note

To create an Enhanced mode task, the IAM role that you use to call the CreateTask operation must have the iam:CreateServiceLinkedRole permission.

  • BASIC (default) - Transfer files or objects between Amazon Web Services storage and on-premises, edge, or other cloud storage. DataSync quotas apply.

For more information, see Understanding task mode differences.

rtype

dict

returns

Response Syntax

{
    'TaskArn': 'string'
}

Response Structure

  • (dict) --

    CreateTaskResponse

    • TaskArn (string) --

      The Amazon Resource Name (ARN) of the task.

DescribeTask (updated) Link ¶
Changes (response)
{'TaskMode': 'BASIC | ENHANCED'}

Provides information about a task , which defines where and how DataSync transfers your data.

See also: AWS API Documentation

Request Syntax

client.describe_task(
    TaskArn='string'
)
type TaskArn

string

param TaskArn

[REQUIRED]

Specifies the Amazon Resource Name (ARN) of the transfer task that you want information about.

rtype

dict

returns

Response Syntax

{
    'TaskArn': 'string',
    'Status': 'AVAILABLE'|'CREATING'|'QUEUED'|'RUNNING'|'UNAVAILABLE',
    'Name': 'string',
    'CurrentTaskExecutionArn': 'string',
    'SourceLocationArn': 'string',
    'DestinationLocationArn': 'string',
    'CloudWatchLogGroupArn': 'string',
    'SourceNetworkInterfaceArns': [
        'string',
    ],
    'DestinationNetworkInterfaceArns': [
        'string',
    ],
    'Options': {
        'VerifyMode': 'POINT_IN_TIME_CONSISTENT'|'ONLY_FILES_TRANSFERRED'|'NONE',
        'OverwriteMode': 'ALWAYS'|'NEVER',
        'Atime': 'NONE'|'BEST_EFFORT',
        'Mtime': 'NONE'|'PRESERVE',
        'Uid': 'NONE'|'INT_VALUE'|'NAME'|'BOTH',
        'Gid': 'NONE'|'INT_VALUE'|'NAME'|'BOTH',
        'PreserveDeletedFiles': 'PRESERVE'|'REMOVE',
        'PreserveDevices': 'NONE'|'PRESERVE',
        'PosixPermissions': 'NONE'|'PRESERVE',
        'BytesPerSecond': 123,
        'TaskQueueing': 'ENABLED'|'DISABLED',
        'LogLevel': 'OFF'|'BASIC'|'TRANSFER',
        'TransferMode': 'CHANGED'|'ALL',
        'SecurityDescriptorCopyFlags': 'NONE'|'OWNER_DACL'|'OWNER_DACL_SACL',
        'ObjectTags': 'PRESERVE'|'NONE'
    },
    'Excludes': [
        {
            'FilterType': 'SIMPLE_PATTERN',
            'Value': 'string'
        },
    ],
    'Schedule': {
        'ScheduleExpression': 'string',
        'Status': 'ENABLED'|'DISABLED'
    },
    'ErrorCode': 'string',
    'ErrorDetail': 'string',
    'CreationTime': datetime(2015, 1, 1),
    'Includes': [
        {
            'FilterType': 'SIMPLE_PATTERN',
            'Value': 'string'
        },
    ],
    'ManifestConfig': {
        'Action': 'TRANSFER',
        'Format': 'CSV',
        'Source': {
            'S3': {
                'ManifestObjectPath': 'string',
                'BucketAccessRoleArn': 'string',
                'S3BucketArn': 'string',
                'ManifestObjectVersionId': 'string'
            }
        }
    },
    'TaskReportConfig': {
        'Destination': {
            'S3': {
                'Subdirectory': 'string',
                'S3BucketArn': 'string',
                'BucketAccessRoleArn': 'string'
            }
        },
        'OutputType': 'SUMMARY_ONLY'|'STANDARD',
        'ReportLevel': 'ERRORS_ONLY'|'SUCCESSES_AND_ERRORS',
        'ObjectVersionIds': 'INCLUDE'|'NONE',
        'Overrides': {
            'Transferred': {
                'ReportLevel': 'ERRORS_ONLY'|'SUCCESSES_AND_ERRORS'
            },
            'Verified': {
                'ReportLevel': 'ERRORS_ONLY'|'SUCCESSES_AND_ERRORS'
            },
            'Deleted': {
                'ReportLevel': 'ERRORS_ONLY'|'SUCCESSES_AND_ERRORS'
            },
            'Skipped': {
                'ReportLevel': 'ERRORS_ONLY'|'SUCCESSES_AND_ERRORS'
            }
        }
    },
    'ScheduleDetails': {
        'StatusUpdateTime': datetime(2015, 1, 1),
        'DisabledReason': 'string',
        'DisabledBy': 'USER'|'SERVICE'
    },
    'TaskMode': 'BASIC'|'ENHANCED'
}

Response Structure

  • (dict) --

    DescribeTaskResponse

    • TaskArn (string) --

      The ARN of your task.

    • Status (string) --

      The status of your task. For information about what each status means, see Task statuses.

    • Name (string) --

      The name of your task.

    • CurrentTaskExecutionArn (string) --

      The ARN of the most recent task execution.

    • SourceLocationArn (string) --

      The ARN of your transfer's source location.

    • DestinationLocationArn (string) --

      The ARN of your transfer's destination location.

    • CloudWatchLogGroupArn (string) --

      The Amazon Resource Name (ARN) of an Amazon CloudWatch log group for monitoring your task.

      For more information, see Monitoring data transfers with CloudWatch Logs.

    • SourceNetworkInterfaceArns (list) --

      The ARNs of the network interfaces that DataSync created for your source location.

      • (string) --

    • DestinationNetworkInterfaceArns (list) --

      The ARNs of the network interfaces that DataSync created for your destination location.

      • (string) --

    • Options (dict) --

      The task's settings. For example, what file metadata gets preserved, how data integrity gets verified at the end of your transfer, bandwidth limits, among other options.

      • VerifyMode (string) --

        Specifies if and how DataSync checks the integrity of your data at the end of your transfer.

        • ONLY_FILES_TRANSFERRED (recommended) - DataSync calculates the checksum of transferred data (including metadata) at the source location. At the end of the transfer, DataSync then compares this checksum to the checksum calculated on that data at the destination.

        Note

        This is the default option for Enhanced mode tasks.

        We recommend this option when transferring to S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive storage classes. For more information, see Storage class considerations with Amazon S3 locations.

        • POINT_IN_TIME_CONSISTENT - At the end of the transfer, DataSync checks the entire source and destination to verify that both locations are fully synchronized.

        Note

        The is the default option for Basic mode tasks and isn't currently supported with Enhanced mode tasks.

        If you use a manifest, DataSync only scans and verifies what's listed in the manifest. You can't use this option when transferring to S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive storage classes. For more information, see Storage class considerations with Amazon S3 locations.

        • NONE - DataSync performs data integrity checks only during your transfer. Unlike other options, there's no additional verification at the end of your transfer.

      • OverwriteMode (string) --

        Specifies whether DataSync should modify or preserve data at the destination location.

        • ALWAYS (default) - DataSync modifies data in the destination location when source data (including metadata) has changed. If DataSync overwrites objects, you might incur additional charges for certain Amazon S3 storage classes (for example, for retrieval or early deletion). For more information, see Storage class considerations with Amazon S3 transfers.

        • NEVER - DataSync doesn't overwrite data in the destination location even if the source data has changed. You can use this option to protect against overwriting changes made to files or objects in the destination.

      • Atime (string) --

        Specifies whether to preserve metadata indicating the last time a file was read or written to.

        Note

        The behavior of Atime isn't fully standard across platforms, so DataSync can only do this on a best-effort basis.

        • BEST_EFFORT (default) - DataSync attempts to preserve the original Atime attribute on all source files (that is, the version before the PREPARING steps of the task execution). This option is recommended.

        • NONE - Ignores Atime .

        Note

        If Atime is set to BEST_EFFORT , Mtime must be set to PRESERVE .

        If Atime is set to NONE , Mtime must also be NONE .

      • Mtime (string) --

        Specifies whether to preserve metadata indicating the last time that a file was written to before the PREPARING step of your task execution. This option is required when you need to run the a task more than once.

        • PRESERVE (default) - Preserves original Mtime , which is recommended.

        • NONE - Ignores Mtime .

        Note

        If Mtime is set to PRESERVE , Atime must be set to BEST_EFFORT .

        If Mtime is set to NONE , Atime must also be set to NONE .

      • Uid (string) --

        Specifies the POSIX user ID (UID) of the file's owner.

        • INT_VALUE (default) - Preserves the integer value of UID and group ID (GID), which is recommended.

        • NONE - Ignores UID and GID.

        For more information, see Metadata copied by DataSync.

      • Gid (string) --

        Specifies the POSIX group ID (GID) of the file's owners.

        • INT_VALUE (default) - Preserves the integer value of user ID (UID) and GID, which is recommended.

        • NONE - Ignores UID and GID.

        For more information, see Understanding how DataSync handles file and object metadata.

      • PreserveDeletedFiles (string) --

        Specifies whether files in the destination location that don't exist in the source should be preserved. This option can affect your Amazon S3 storage cost. If your task deletes objects, you might incur minimum storage duration charges for certain storage classes. For detailed information, see Considerations when working with Amazon S3 storage classes in DataSync.

        • PRESERVE (default) - Ignores such destination files, which is recommended.

        • REMOVE - Deletes destination files that aren’t present in the source.

        Note

        If you set this parameter to REMOVE , you can't set TransferMode to ALL . When you transfer all data, DataSync doesn't scan your destination location and doesn't know what to delete.

      • PreserveDevices (string) --

        Specifies whether DataSync should preserve the metadata of block and character devices in the source location and recreate the files with that device name and metadata on the destination. DataSync copies only the name and metadata of such devices.

        Note

        DataSync can't copy the actual contents of these devices because they're nonterminal and don't return an end-of-file (EOF) marker.

        • NONE (default) - Ignores special devices (recommended).

        • PRESERVE - Preserves character and block device metadata. This option currently isn't supported for Amazon EFS.

      • PosixPermissions (string) --

        Specifies which users or groups can access a file for a specific purpose such as reading, writing, or execution of the file.

        For more information, see Understanding how DataSync handles file and object metadata.

        • PRESERVE (default) - Preserves POSIX-style permissions, which is recommended.

        • NONE - Ignores POSIX-style permissions.

        Note

        DataSync can preserve extant permissions of a source location.

      • BytesPerSecond (integer) --

        Limits the bandwidth used by a DataSync task. For example, if you want DataSync to use a maximum of 1 MB, set this value to 1048576 ( =1024*1024 ).

        Note

        Not applicable to Enhanced mode tasks.

      • TaskQueueing (string) --

        Specifies whether your transfer tasks should be put into a queue during certain scenarios when running multiple tasks. This is ENABLED by default.

      • LogLevel (string) --

        Specifies the type of logs that DataSync publishes to a Amazon CloudWatch Logs log group. To specify the log group, see CloudWatchLogGroupArn.

        • BASIC - Publishes logs with only basic information (such as transfer errors).

        • TRANSFER - Publishes logs for all files or objects that your DataSync task transfers and performs data-integrity checks on.

        • OFF - No logs are published.

      • TransferMode (string) --

        Specifies whether DataSync transfers only the data (including metadata) that differs between locations following an initial copy or transfers all data every time you run the task. If you're planning on recurring transfers, you might only want to transfer what's changed since your previous task execution.

        • CHANGED (default) - After your initial full transfer, DataSync copies only the data and metadata that differs between the source and destination location.

        • ALL - DataSync copies everything in the source to the destination without comparing differences between the locations.

      • SecurityDescriptorCopyFlags (string) --

        Specifies which components of the SMB security descriptor are copied from source to destination objects.

        This value is only used for transfers between SMB and Amazon FSx for Windows File Server locations or between two FSx for Windows File Server locations. For more information, see Understanding how DataSync handles file and object metadata.

        • OWNER_DACL (default) - For each copied object, DataSync copies the following metadata:

          • The object owner.

          • NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object. DataSync won't copy NTFS system access control lists (SACLs) with this option.

        • OWNER_DACL_SACL - For each copied object, DataSync copies the following metadata:

          • The object owner.

          • NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object.

          • SACLs, which are used by administrators to log attempts to access a secured object. Copying SACLs requires granting additional permissions to the Windows user that DataSync uses to access your SMB location. For information about choosing a user with the right permissions, see required permissions for SMB, FSx for Windows File Server, or FSx for ONTAP (depending on the type of location in your transfer).

        • NONE - None of the SMB security descriptor components are copied. Destination objects are owned by the user that was provided for accessing the destination location. DACLs and SACLs are set based on the destination server’s configuration.

      • ObjectTags (string) --

        Specifies whether you want DataSync to PRESERVE object tags (default behavior) when transferring between object storage systems. If you want your DataSync task to ignore object tags, specify the NONE value.

    • Excludes (list) --

      The exclude filters that define the files, objects, and folders in your source location that you don't want DataSync to transfer. For more information and examples, see Specifying what DataSync transfers by using filters.

      • (dict) --

        Specifies which files, folders, and objects to include or exclude when transferring files from source to destination.

        • FilterType (string) --

          The type of filter rule to apply. DataSync only supports the SIMPLE_PATTERN rule type.

        • Value (string) --

          A single filter string that consists of the patterns to include or exclude. The patterns are delimited by "|" (that is, a pipe), for example: /folder1|/folder2

    • Schedule (dict) --

      The schedule for when you want your task to run. For more information, see Scheduling your task.

      • ScheduleExpression (string) --

        Specifies your task schedule by using a cron or rate expression.

        Use cron expressions for task schedules that run on a specific time and day. For example, the following cron expression creates a task schedule that runs at 8 AM on the first Wednesday of every month:

        cron(0 8 * * 3#1)

        Use rate expressions for task schedules that run on a regular interval. For example, the following rate expression creates a task schedule that runs every 12 hours:

        rate(12 hours)

        For information about cron and rate expression syntax, see the Amazon EventBridge User Guide.

      • Status (string) --

        Specifies whether to enable or disable your task schedule. Your schedule is enabled by default, but there can be situations where you need to disable it. For example, you might need to pause a recurring transfer to fix an issue with your task or perform maintenance on your storage system.

        DataSync might disable your schedule automatically if your task fails repeatedly with the same error. For more information, see TaskScheduleDetails.

    • ErrorCode (string) --

      If there's an issue with your task, you can use the error code to help you troubleshoot the problem. For more information, see Troubleshooting issues with DataSync transfers.

    • ErrorDetail (string) --

      If there's an issue with your task, you can use the error details to help you troubleshoot the problem. For more information, see Troubleshooting issues with DataSync transfers.

    • CreationTime (datetime) --

      The time that the task was created.

    • Includes (list) --

      The include filters that define the files, objects, and folders in your source location that you want DataSync to transfer. For more information and examples, see Specifying what DataSync transfers by using filters.

      • (dict) --

        Specifies which files, folders, and objects to include or exclude when transferring files from source to destination.

        • FilterType (string) --

          The type of filter rule to apply. DataSync only supports the SIMPLE_PATTERN rule type.

        • Value (string) --

          A single filter string that consists of the patterns to include or exclude. The patterns are delimited by "|" (that is, a pipe), for example: /folder1|/folder2

    • ManifestConfig (dict) --

      The configuration of the manifest that lists the files or objects that you want DataSync to transfer. For more information, see Specifying what DataSync transfers by using a manifest.

      • Action (string) --

        Specifies what DataSync uses the manifest for.

      • Format (string) --

        Specifies the file format of your manifest. For more information, see Creating a manifest.

      • Source (dict) --

        Specifies the manifest that you want DataSync to use and where it's hosted.

        Note

        You must specify this parameter if you're configuring a new manifest on or after February 7, 2024.

        If you don't, you'll get a 400 status code and ValidationException error stating that you're missing the IAM role for DataSync to access the S3 bucket where you're hosting your manifest. For more information, see Providing DataSync access to your manifest.

        • S3 (dict) --

          Specifies the S3 bucket where you're hosting your manifest.

          • ManifestObjectPath (string) --

            Specifies the Amazon S3 object key of your manifest. This can include a prefix (for example, prefix/my-manifest.csv ).

          • BucketAccessRoleArn (string) --

            Specifies the Identity and Access Management (IAM) role that allows DataSync to access your manifest. For more information, see Providing DataSync access to your manifest.

          • S3BucketArn (string) --

            Specifies the Amazon Resource Name (ARN) of the S3 bucket where you're hosting your manifest.

          • ManifestObjectVersionId (string) --

            Specifies the object version ID of the manifest that you want DataSync to use. If you don't set this, DataSync uses the latest version of the object.

    • TaskReportConfig (dict) --

      The configuration of your task report, which provides detailed information about your DataSync transfer. For more information, see Monitoring your DataSync transfers with task reports.

      • Destination (dict) --

        Specifies the Amazon S3 bucket where DataSync uploads your task report. For more information, see Task reports.

        • S3 (dict) --

          Specifies the Amazon S3 bucket where DataSync uploads your task report.

          • Subdirectory (string) --

            Specifies a bucket prefix for your report.

          • S3BucketArn (string) --

            Specifies the ARN of the S3 bucket where DataSync uploads your report.

          • BucketAccessRoleArn (string) --

            Specifies the Amazon Resource Name (ARN) of the IAM policy that allows DataSync to upload a task report to your S3 bucket. For more information, see Allowing DataSync to upload a task report to an Amazon S3 bucket.

      • OutputType (string) --

        Specifies the type of task report that you want:

        • SUMMARY_ONLY : Provides necessary details about your task, including the number of files, objects, and directories transferred and transfer duration.

        • STANDARD : Provides complete details about your task, including a full list of files, objects, and directories that were transferred, skipped, verified, and more.

      • ReportLevel (string) --

        Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.

        • ERRORS_ONLY : A report shows what DataSync was unable to transfer, skip, verify, and delete.

        • SUCCESSES_AND_ERRORS : A report shows what DataSync was able and unable to transfer, skip, verify, and delete.

      • ObjectVersionIds (string) --

        Specifies whether your task report includes the new version of each object transferred into an S3 bucket. This only applies if you enable versioning on your bucket. Keep in mind that setting this to INCLUDE can increase the duration of your task execution.

      • Overrides (dict) --

        Customizes the reporting level for aspects of your task report. For example, your report might generally only include errors, but you could specify that you want a list of successes and errors just for the files that DataSync attempted to delete in your destination location.

        • Transferred (dict) --

          Specifies the level of reporting for the files, objects, and directories that DataSync attempted to transfer.

          • ReportLevel (string) --

            Specifies whether your task report includes errors only or successes and errors.

            For example, your report might mostly include only what didn't go well in your transfer ( ERRORS_ONLY ). At the same time, you want to verify that your task filter is working correctly. In this situation, you can get a list of what files DataSync successfully skipped and if something transferred that you didn't to transfer ( SUCCESSES_AND_ERRORS ).

        • Verified (dict) --

          Specifies the level of reporting for the files, objects, and directories that DataSync attempted to verify at the end of your transfer.

          • ReportLevel (string) --

            Specifies whether your task report includes errors only or successes and errors.

            For example, your report might mostly include only what didn't go well in your transfer ( ERRORS_ONLY ). At the same time, you want to verify that your task filter is working correctly. In this situation, you can get a list of what files DataSync successfully skipped and if something transferred that you didn't to transfer ( SUCCESSES_AND_ERRORS ).

        • Deleted (dict) --

          Specifies the level of reporting for the files, objects, and directories that DataSync attempted to delete in your destination location. This only applies if you configure your task to delete data in the destination that isn't in the source.

          • ReportLevel (string) --

            Specifies whether your task report includes errors only or successes and errors.

            For example, your report might mostly include only what didn't go well in your transfer ( ERRORS_ONLY ). At the same time, you want to verify that your task filter is working correctly. In this situation, you can get a list of what files DataSync successfully skipped and if something transferred that you didn't to transfer ( SUCCESSES_AND_ERRORS ).

        • Skipped (dict) --

          Specifies the level of reporting for the files, objects, and directories that DataSync attempted to skip during your transfer.

          • ReportLevel (string) --

            Specifies whether your task report includes errors only or successes and errors.

            For example, your report might mostly include only what didn't go well in your transfer ( ERRORS_ONLY ). At the same time, you want to verify that your task filter is working correctly. In this situation, you can get a list of what files DataSync successfully skipped and if something transferred that you didn't to transfer ( SUCCESSES_AND_ERRORS ).

    • ScheduleDetails (dict) --

      The details about your task schedule.

      • StatusUpdateTime (datetime) --

        Indicates the last time the status of your task schedule changed. For example, if DataSync automatically disables your schedule because of a repeated error, you can see when the schedule was disabled.

      • DisabledReason (string) --

        Provides a reason if the task schedule is disabled.

        If your schedule is disabled by USER , you see a Manually disabled by user. message.

        If your schedule is disabled by SERVICE , you see an error message to help you understand why the task keeps failing. For information on resolving DataSync errors, see Troubleshooting issues with DataSync transfers.

      • DisabledBy (string) --

        Indicates how your task schedule was disabled.

        • USER - Your schedule was manually disabled by using the UpdateTask operation or DataSync console.

        • SERVICE - Your schedule was automatically disabled by DataSync because the task failed repeatedly with the same error.

    • TaskMode (string) --

      The task mode that you're using. For more information, see Choosing a task mode for your data transfer.

DescribeTaskExecution (updated) Link ¶
Changes (response)
{'FilesFailed': {'Delete': 'long',
                 'Prepare': 'long',
                 'Transfer': 'long',
                 'Verify': 'long'},
 'FilesListed': {'AtDestinationForDelete': 'long', 'AtSource': 'long'},
 'FilesPrepared': 'long',
 'TaskMode': 'BASIC | ENHANCED'}

Provides information about an execution of your DataSync task. You can use this operation to help monitor the progress of an ongoing data transfer or check the results of the transfer.

Note

Some DescribeTaskExecution response elements are only relevant to a specific task mode. For information, see Understanding task mode differences and Understanding data transfer performance metrics.

See also: AWS API Documentation

Request Syntax

client.describe_task_execution(
    TaskExecutionArn='string'
)
type TaskExecutionArn

string

param TaskExecutionArn

[REQUIRED]

Specifies the Amazon Resource Name (ARN) of the task execution that you want information about.

rtype

dict

returns

Response Syntax

{
    'TaskExecutionArn': 'string',
    'Status': 'QUEUED'|'CANCELLING'|'LAUNCHING'|'PREPARING'|'TRANSFERRING'|'VERIFYING'|'SUCCESS'|'ERROR',
    'Options': {
        'VerifyMode': 'POINT_IN_TIME_CONSISTENT'|'ONLY_FILES_TRANSFERRED'|'NONE',
        'OverwriteMode': 'ALWAYS'|'NEVER',
        'Atime': 'NONE'|'BEST_EFFORT',
        'Mtime': 'NONE'|'PRESERVE',
        'Uid': 'NONE'|'INT_VALUE'|'NAME'|'BOTH',
        'Gid': 'NONE'|'INT_VALUE'|'NAME'|'BOTH',
        'PreserveDeletedFiles': 'PRESERVE'|'REMOVE',
        'PreserveDevices': 'NONE'|'PRESERVE',
        'PosixPermissions': 'NONE'|'PRESERVE',
        'BytesPerSecond': 123,
        'TaskQueueing': 'ENABLED'|'DISABLED',
        'LogLevel': 'OFF'|'BASIC'|'TRANSFER',
        'TransferMode': 'CHANGED'|'ALL',
        'SecurityDescriptorCopyFlags': 'NONE'|'OWNER_DACL'|'OWNER_DACL_SACL',
        'ObjectTags': 'PRESERVE'|'NONE'
    },
    'Excludes': [
        {
            'FilterType': 'SIMPLE_PATTERN',
            'Value': 'string'
        },
    ],
    'Includes': [
        {
            'FilterType': 'SIMPLE_PATTERN',
            'Value': 'string'
        },
    ],
    'ManifestConfig': {
        'Action': 'TRANSFER',
        'Format': 'CSV',
        'Source': {
            'S3': {
                'ManifestObjectPath': 'string',
                'BucketAccessRoleArn': 'string',
                'S3BucketArn': 'string',
                'ManifestObjectVersionId': 'string'
            }
        }
    },
    'StartTime': datetime(2015, 1, 1),
    'EstimatedFilesToTransfer': 123,
    'EstimatedBytesToTransfer': 123,
    'FilesTransferred': 123,
    'BytesWritten': 123,
    'BytesTransferred': 123,
    'BytesCompressed': 123,
    'Result': {
        'PrepareDuration': 123,
        'PrepareStatus': 'PENDING'|'SUCCESS'|'ERROR',
        'TotalDuration': 123,
        'TransferDuration': 123,
        'TransferStatus': 'PENDING'|'SUCCESS'|'ERROR',
        'VerifyDuration': 123,
        'VerifyStatus': 'PENDING'|'SUCCESS'|'ERROR',
        'ErrorCode': 'string',
        'ErrorDetail': 'string'
    },
    'TaskReportConfig': {
        'Destination': {
            'S3': {
                'Subdirectory': 'string',
                'S3BucketArn': 'string',
                'BucketAccessRoleArn': 'string'
            }
        },
        'OutputType': 'SUMMARY_ONLY'|'STANDARD',
        'ReportLevel': 'ERRORS_ONLY'|'SUCCESSES_AND_ERRORS',
        'ObjectVersionIds': 'INCLUDE'|'NONE',
        'Overrides': {
            'Transferred': {
                'ReportLevel': 'ERRORS_ONLY'|'SUCCESSES_AND_ERRORS'
            },
            'Verified': {
                'ReportLevel': 'ERRORS_ONLY'|'SUCCESSES_AND_ERRORS'
            },
            'Deleted': {
                'ReportLevel': 'ERRORS_ONLY'|'SUCCESSES_AND_ERRORS'
            },
            'Skipped': {
                'ReportLevel': 'ERRORS_ONLY'|'SUCCESSES_AND_ERRORS'
            }
        }
    },
    'FilesDeleted': 123,
    'FilesSkipped': 123,
    'FilesVerified': 123,
    'ReportResult': {
        'Status': 'PENDING'|'SUCCESS'|'ERROR',
        'ErrorCode': 'string',
        'ErrorDetail': 'string'
    },
    'EstimatedFilesToDelete': 123,
    'TaskMode': 'BASIC'|'ENHANCED',
    'FilesPrepared': 123,
    'FilesListed': {
        'AtSource': 123,
        'AtDestinationForDelete': 123
    },
    'FilesFailed': {
        'Prepare': 123,
        'Transfer': 123,
        'Verify': 123,
        'Delete': 123
    }
}

Response Structure

  • (dict) --

    DescribeTaskExecutionResponse

    • TaskExecutionArn (string) --

      The ARN of the task execution that you wanted information about. TaskExecutionArn is hierarchical and includes TaskArn for the task that was executed.

      For example, a TaskExecution value with the ARN arn:aws:datasync:us-east-1:111222333444:task/task-0208075f79cedf4a2/execution/exec-08ef1e88ec491019b executed the task with the ARN arn:aws:datasync:us-east-1:111222333444:task/task-0208075f79cedf4a2 .

    • Status (string) --

      The status of the task execution.

    • Options (dict) --

      Indicates how your transfer task is configured. These options include how DataSync handles files, objects, and their associated metadata during your transfer. You also can specify how to verify data integrity, set bandwidth limits for your task, among other options.

      Each option has a default value. Unless you need to, you don't have to configure any option before calling StartTaskExecution.

      You also can override your task options for each task execution. For example, you might want to adjust the LogLevel for an individual execution.

      • VerifyMode (string) --

        Specifies if and how DataSync checks the integrity of your data at the end of your transfer.

        • ONLY_FILES_TRANSFERRED (recommended) - DataSync calculates the checksum of transferred data (including metadata) at the source location. At the end of the transfer, DataSync then compares this checksum to the checksum calculated on that data at the destination.

        Note

        This is the default option for Enhanced mode tasks.

        We recommend this option when transferring to S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive storage classes. For more information, see Storage class considerations with Amazon S3 locations.

        • POINT_IN_TIME_CONSISTENT - At the end of the transfer, DataSync checks the entire source and destination to verify that both locations are fully synchronized.

        Note

        The is the default option for Basic mode tasks and isn't currently supported with Enhanced mode tasks.

        If you use a manifest, DataSync only scans and verifies what's listed in the manifest. You can't use this option when transferring to S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive storage classes. For more information, see Storage class considerations with Amazon S3 locations.

        • NONE - DataSync performs data integrity checks only during your transfer. Unlike other options, there's no additional verification at the end of your transfer.

      • OverwriteMode (string) --

        Specifies whether DataSync should modify or preserve data at the destination location.

        • ALWAYS (default) - DataSync modifies data in the destination location when source data (including metadata) has changed. If DataSync overwrites objects, you might incur additional charges for certain Amazon S3 storage classes (for example, for retrieval or early deletion). For more information, see Storage class considerations with Amazon S3 transfers.

        • NEVER - DataSync doesn't overwrite data in the destination location even if the source data has changed. You can use this option to protect against overwriting changes made to files or objects in the destination.

      • Atime (string) --

        Specifies whether to preserve metadata indicating the last time a file was read or written to.

        Note

        The behavior of Atime isn't fully standard across platforms, so DataSync can only do this on a best-effort basis.

        • BEST_EFFORT (default) - DataSync attempts to preserve the original Atime attribute on all source files (that is, the version before the PREPARING steps of the task execution). This option is recommended.

        • NONE - Ignores Atime .

        Note

        If Atime is set to BEST_EFFORT , Mtime must be set to PRESERVE .

        If Atime is set to NONE , Mtime must also be NONE .

      • Mtime (string) --

        Specifies whether to preserve metadata indicating the last time that a file was written to before the PREPARING step of your task execution. This option is required when you need to run the a task more than once.

        • PRESERVE (default) - Preserves original Mtime , which is recommended.

        • NONE - Ignores Mtime .

        Note

        If Mtime is set to PRESERVE , Atime must be set to BEST_EFFORT .

        If Mtime is set to NONE , Atime must also be set to NONE .

      • Uid (string) --

        Specifies the POSIX user ID (UID) of the file's owner.

        • INT_VALUE (default) - Preserves the integer value of UID and group ID (GID), which is recommended.

        • NONE - Ignores UID and GID.

        For more information, see Metadata copied by DataSync.

      • Gid (string) --

        Specifies the POSIX group ID (GID) of the file's owners.

        • INT_VALUE (default) - Preserves the integer value of user ID (UID) and GID, which is recommended.

        • NONE - Ignores UID and GID.

        For more information, see Understanding how DataSync handles file and object metadata.

      • PreserveDeletedFiles (string) --

        Specifies whether files in the destination location that don't exist in the source should be preserved. This option can affect your Amazon S3 storage cost. If your task deletes objects, you might incur minimum storage duration charges for certain storage classes. For detailed information, see Considerations when working with Amazon S3 storage classes in DataSync.

        • PRESERVE (default) - Ignores such destination files, which is recommended.

        • REMOVE - Deletes destination files that aren’t present in the source.

        Note

        If you set this parameter to REMOVE , you can't set TransferMode to ALL . When you transfer all data, DataSync doesn't scan your destination location and doesn't know what to delete.

      • PreserveDevices (string) --

        Specifies whether DataSync should preserve the metadata of block and character devices in the source location and recreate the files with that device name and metadata on the destination. DataSync copies only the name and metadata of such devices.

        Note

        DataSync can't copy the actual contents of these devices because they're nonterminal and don't return an end-of-file (EOF) marker.

        • NONE (default) - Ignores special devices (recommended).

        • PRESERVE - Preserves character and block device metadata. This option currently isn't supported for Amazon EFS.

      • PosixPermissions (string) --

        Specifies which users or groups can access a file for a specific purpose such as reading, writing, or execution of the file.

        For more information, see Understanding how DataSync handles file and object metadata.

        • PRESERVE (default) - Preserves POSIX-style permissions, which is recommended.

        • NONE - Ignores POSIX-style permissions.

        Note

        DataSync can preserve extant permissions of a source location.

      • BytesPerSecond (integer) --

        Limits the bandwidth used by a DataSync task. For example, if you want DataSync to use a maximum of 1 MB, set this value to 1048576 ( =1024*1024 ).

        Note

        Not applicable to Enhanced mode tasks.

      • TaskQueueing (string) --

        Specifies whether your transfer tasks should be put into a queue during certain scenarios when running multiple tasks. This is ENABLED by default.

      • LogLevel (string) --

        Specifies the type of logs that DataSync publishes to a Amazon CloudWatch Logs log group. To specify the log group, see CloudWatchLogGroupArn.

        • BASIC - Publishes logs with only basic information (such as transfer errors).

        • TRANSFER - Publishes logs for all files or objects that your DataSync task transfers and performs data-integrity checks on.

        • OFF - No logs are published.

      • TransferMode (string) --

        Specifies whether DataSync transfers only the data (including metadata) that differs between locations following an initial copy or transfers all data every time you run the task. If you're planning on recurring transfers, you might only want to transfer what's changed since your previous task execution.

        • CHANGED (default) - After your initial full transfer, DataSync copies only the data and metadata that differs between the source and destination location.

        • ALL - DataSync copies everything in the source to the destination without comparing differences between the locations.

      • SecurityDescriptorCopyFlags (string) --

        Specifies which components of the SMB security descriptor are copied from source to destination objects.

        This value is only used for transfers between SMB and Amazon FSx for Windows File Server locations or between two FSx for Windows File Server locations. For more information, see Understanding how DataSync handles file and object metadata.

        • OWNER_DACL (default) - For each copied object, DataSync copies the following metadata:

          • The object owner.

          • NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object. DataSync won't copy NTFS system access control lists (SACLs) with this option.

        • OWNER_DACL_SACL - For each copied object, DataSync copies the following metadata:

          • The object owner.

          • NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object.

          • SACLs, which are used by administrators to log attempts to access a secured object. Copying SACLs requires granting additional permissions to the Windows user that DataSync uses to access your SMB location. For information about choosing a user with the right permissions, see required permissions for SMB, FSx for Windows File Server, or FSx for ONTAP (depending on the type of location in your transfer).

        • NONE - None of the SMB security descriptor components are copied. Destination objects are owned by the user that was provided for accessing the destination location. DACLs and SACLs are set based on the destination server’s configuration.

      • ObjectTags (string) --

        Specifies whether you want DataSync to PRESERVE object tags (default behavior) when transferring between object storage systems. If you want your DataSync task to ignore object tags, specify the NONE value.

    • Excludes (list) --

      A list of filter rules that exclude specific data during your transfer. For more information and examples, see Filtering data transferred by DataSync.

      • (dict) --

        Specifies which files, folders, and objects to include or exclude when transferring files from source to destination.

        • FilterType (string) --

          The type of filter rule to apply. DataSync only supports the SIMPLE_PATTERN rule type.

        • Value (string) --

          A single filter string that consists of the patterns to include or exclude. The patterns are delimited by "|" (that is, a pipe), for example: /folder1|/folder2

    • Includes (list) --

      A list of filter rules that include specific data during your transfer. For more information and examples, see Filtering data transferred by DataSync.

      • (dict) --

        Specifies which files, folders, and objects to include or exclude when transferring files from source to destination.

        • FilterType (string) --

          The type of filter rule to apply. DataSync only supports the SIMPLE_PATTERN rule type.

        • Value (string) --

          A single filter string that consists of the patterns to include or exclude. The patterns are delimited by "|" (that is, a pipe), for example: /folder1|/folder2

    • ManifestConfig (dict) --

      The configuration of the manifest that lists the files or objects to transfer. For more information, see Specifying what DataSync transfers by using a manifest.

      • Action (string) --

        Specifies what DataSync uses the manifest for.

      • Format (string) --

        Specifies the file format of your manifest. For more information, see Creating a manifest.

      • Source (dict) --

        Specifies the manifest that you want DataSync to use and where it's hosted.

        Note

        You must specify this parameter if you're configuring a new manifest on or after February 7, 2024.

        If you don't, you'll get a 400 status code and ValidationException error stating that you're missing the IAM role for DataSync to access the S3 bucket where you're hosting your manifest. For more information, see Providing DataSync access to your manifest.

        • S3 (dict) --

          Specifies the S3 bucket where you're hosting your manifest.

          • ManifestObjectPath (string) --

            Specifies the Amazon S3 object key of your manifest. This can include a prefix (for example, prefix/my-manifest.csv ).

          • BucketAccessRoleArn (string) --

            Specifies the Identity and Access Management (IAM) role that allows DataSync to access your manifest. For more information, see Providing DataSync access to your manifest.

          • S3BucketArn (string) --

            Specifies the Amazon Resource Name (ARN) of the S3 bucket where you're hosting your manifest.

          • ManifestObjectVersionId (string) --

            Specifies the object version ID of the manifest that you want DataSync to use. If you don't set this, DataSync uses the latest version of the object.

    • StartTime (datetime) --

      The time when the task execution started.

    • EstimatedFilesToTransfer (integer) --

      The number of files, objects, and directories that DataSync expects to transfer over the network. This value is calculated during the task execution's PREPARING step before the TRANSFERRING step.

      How this gets calculated depends primarily on your task’s transfer mode configuration:

      • If TranserMode is set to CHANGED - The calculation is based on comparing the content of the source and destination locations and determining the difference that needs to be transferred. The difference can include:

        • Anything that's added or modified at the source location.

        • Anything that's in both locations and modified at the destination after an initial transfer (unless OverwriteMode is set to NEVER ).

        • (Basic task mode only) The number of items that DataSync expects to delete (if PreserveDeletedFiles is set to REMOVE ).

      • If TranserMode is set to ALL - The calculation is based only on the items that DataSync finds at the source location.

    • EstimatedBytesToTransfer (integer) --

      The number of logical bytes that DataSync expects to write to the destination location.

    • FilesTransferred (integer) --

      The number of files, objects, and directories that DataSync actually transfers over the network. This value is updated periodically during the task execution's TRANSFERRING step when something is read from the source and sent over the network.

      If DataSync fails to transfer something, this value can be less than EstimatedFilesToTransfer . In some cases, this value can also be greater than EstimatedFilesToTransfer . This element is implementation-specific for some location types, so don't use it as an exact indication of what's transferring or to monitor your task execution.

    • BytesWritten (integer) --

      The number of logical bytes that DataSync actually writes to the destination location.

    • BytesTransferred (integer) --

      The number of bytes that DataSync sends to the network before compression (if compression is possible). For the number of bytes transferred over the network, see BytesCompressed.

    • BytesCompressed (integer) --

      The number of physical bytes that DataSync transfers over the network after compression (if compression is possible). This number is typically less than BytesTransferred unless the data isn't compressible.

      Note

      Not currently supported with Enhanced mode tasks.

    • Result (dict) --

      The result of the task execution.

      • PrepareDuration (integer) --

        The time in milliseconds that your task execution was in the PREPARING step. For more information, see Task execution statuses.

        For Enhanced mode tasks, the value is always 0 . For more information, see How DataSync prepares your data transfer.

      • PrepareStatus (string) --

        The status of the PREPARING step for your task execution. For more information, see Task execution statuses.

      • TotalDuration (integer) --

        The time in milliseconds that your task execution ran.

      • TransferDuration (integer) --

        The time in milliseconds that your task execution was in the TRANSFERRING step. For more information, see Task execution statuses.

        For Enhanced mode tasks, the value is always 0 . For more information, see How DataSync transfers your data.

      • TransferStatus (string) --

        The status of the TRANSFERRING step for your task execution. For more information, see Task execution statuses.

      • VerifyDuration (integer) --

        The time in milliseconds that your task execution was in the VERIFYING step. For more information, see Task execution statuses.

        For Enhanced mode tasks, the value is always 0 . For more information, see How DataSync verifies your data's integrity.

      • VerifyStatus (string) --

        The status of the VERIFYING step for your task execution. For more information, see Task execution statuses.

      • ErrorCode (string) --

        An error that DataSync encountered during your task execution. You can use this information to help troubleshoot issues.

      • ErrorDetail (string) --

        The detailed description of an error that DataSync encountered during your task execution. You can use this information to help troubleshoot issues.

    • TaskReportConfig (dict) --

      The configuration of your task report, which provides detailed information about for your DataSync transfer. For more information, see Creating a task report.

      • Destination (dict) --

        Specifies the Amazon S3 bucket where DataSync uploads your task report. For more information, see Task reports.

        • S3 (dict) --

          Specifies the Amazon S3 bucket where DataSync uploads your task report.

          • Subdirectory (string) --

            Specifies a bucket prefix for your report.

          • S3BucketArn (string) --

            Specifies the ARN of the S3 bucket where DataSync uploads your report.

          • BucketAccessRoleArn (string) --

            Specifies the Amazon Resource Name (ARN) of the IAM policy that allows DataSync to upload a task report to your S3 bucket. For more information, see Allowing DataSync to upload a task report to an Amazon S3 bucket.

      • OutputType (string) --

        Specifies the type of task report that you want:

        • SUMMARY_ONLY : Provides necessary details about your task, including the number of files, objects, and directories transferred and transfer duration.

        • STANDARD : Provides complete details about your task, including a full list of files, objects, and directories that were transferred, skipped, verified, and more.

      • ReportLevel (string) --

        Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't.

        • ERRORS_ONLY : A report shows what DataSync was unable to transfer, skip, verify, and delete.

        • SUCCESSES_AND_ERRORS : A report shows what DataSync was able and unable to transfer, skip, verify, and delete.

      • ObjectVersionIds (string) --

        Specifies whether your task report includes the new version of each object transferred into an S3 bucket. This only applies if you enable versioning on your bucket. Keep in mind that setting this to INCLUDE can increase the duration of your task execution.

      • Overrides (dict) --

        Customizes the reporting level for aspects of your task report. For example, your report might generally only include errors, but you could specify that you want a list of successes and errors just for the files that DataSync attempted to delete in your destination location.

        • Transferred (dict) --

          Specifies the level of reporting for the files, objects, and directories that DataSync attempted to transfer.

          • ReportLevel (string) --

            Specifies whether your task report includes errors only or successes and errors.

            For example, your report might mostly include only what didn't go well in your transfer ( ERRORS_ONLY ). At the same time, you want to verify that your task filter is working correctly. In this situation, you can get a list of what files DataSync successfully skipped and if something transferred that you didn't to transfer ( SUCCESSES_AND_ERRORS ).

        • Verified (dict) --

          Specifies the level of reporting for the files, objects, and directories that DataSync attempted to verify at the end of your transfer.

          • ReportLevel (string) --

            Specifies whether your task report includes errors only or successes and errors.

            For example, your report might mostly include only what didn't go well in your transfer ( ERRORS_ONLY ). At the same time, you want to verify that your task filter is working correctly. In this situation, you can get a list of what files DataSync successfully skipped and if something transferred that you didn't to transfer ( SUCCESSES_AND_ERRORS ).

        • Deleted (dict) --

          Specifies the level of reporting for the files, objects, and directories that DataSync attempted to delete in your destination location. This only applies if you configure your task to delete data in the destination that isn't in the source.

          • ReportLevel (string) --

            Specifies whether your task report includes errors only or successes and errors.

            For example, your report might mostly include only what didn't go well in your transfer ( ERRORS_ONLY ). At the same time, you want to verify that your task filter is working correctly. In this situation, you can get a list of what files DataSync successfully skipped and if something transferred that you didn't to transfer ( SUCCESSES_AND_ERRORS ).

        • Skipped (dict) --

          Specifies the level of reporting for the files, objects, and directories that DataSync attempted to skip during your transfer.

          • ReportLevel (string) --

            Specifies whether your task report includes errors only or successes and errors.

            For example, your report might mostly include only what didn't go well in your transfer ( ERRORS_ONLY ). At the same time, you want to verify that your task filter is working correctly. In this situation, you can get a list of what files DataSync successfully skipped and if something transferred that you didn't to transfer ( SUCCESSES_AND_ERRORS ).

    • FilesDeleted (integer) --

      The number of files, objects, and directories that DataSync actually deletes in your destination location. If you don't configure your task to delete data in the destination that isn't in the source, the value is always 0 .

    • FilesSkipped (integer) --

      The number of files, objects, and directories that DataSync skips during your transfer.

    • FilesVerified (integer) --

      The number of files, objects, and directories that DataSync verifies during your transfer.

      Note

      When you configure your task to verify only the data that's transferred, DataSync doesn't verify directories in some situations or files that fail to transfer.

    • ReportResult (dict) --

      Indicates whether DataSync generated a complete task report for your transfer.

      • Status (string) --

        Indicates whether DataSync is still working on your report, created a report, or can't create a complete report.

      • ErrorCode (string) --

        Indicates the code associated with the error if DataSync can't create a complete report.

      • ErrorDetail (string) --

        Provides details about issues creating a report.

    • EstimatedFilesToDelete (integer) --

      The number of files, objects, and directories that DataSync expects to delete in your destination location. If you don't configure your task to delete data in the destination that isn't in the source, the value is always 0 .

    • TaskMode (string) --

      The task mode that you're using. For more information, see Choosing a task mode for your data transfer.

    • FilesPrepared (integer) --

      The number of objects that DataSync will attempt to transfer after comparing your source and destination locations.

      Note

      Applies only to Enhanced mode tasks.

      This metric isn't applicable if you configure your task to transfer all data. In that scenario, DataSync copies everything from the source to the destination without comparing differences between the locations.

    • FilesListed (dict) --

      The number of objects that DataSync finds at your locations.

      Note

      Applies only to Enhanced mode tasks.

      • AtSource (integer) --

        The number of objects that DataSync finds at your source location.

        • With a manifest, DataSync lists only what's in your manifest (and not everything at your source location).

        • With an include filter, DataSync lists only what matches the filter at your source location.

        • With an exclude filter, DataSync lists everything at your source location before applying the filter.

      • AtDestinationForDelete (integer) --

        The number of objects that DataSync finds at your destination location. This metric is only applicable if you configure your task to delete data in the destination that isn't in the source.

    • FilesFailed (dict) --

      The number of objects that DataSync fails to prepare, transfer, verify, and delete during your task execution.

      Note

      Applies only to Enhanced mode tasks.

      • Prepare (integer) --

        The number of objects that DataSync fails to prepare during your task execution.

      • Transfer (integer) --

        The number of objects that DataSync fails to transfer during your task execution.

      • Verify (integer) --

        The number of objects that DataSync fails to verify during your task execution.

      • Delete (integer) --

        The number of objects that DataSync fails to delete during your task execution.

ListTaskExecutions (updated) Link ¶
Changes (response)
{'TaskExecutions': {'TaskMode': 'BASIC | ENHANCED'}}

Returns a list of executions for an DataSync transfer task.

See also: AWS API Documentation

Request Syntax

client.list_task_executions(
    TaskArn='string',
    MaxResults=123,
    NextToken='string'
)
type TaskArn

string

param TaskArn

Specifies the Amazon Resource Name (ARN) of the task that you want execution information about.

type MaxResults

integer

param MaxResults

Specifies how many results you want in the response.

type NextToken

string

param NextToken

Specifies an opaque string that indicates the position at which to begin the next list of results in the response.

rtype

dict

returns

Response Syntax

{
    'TaskExecutions': [
        {
            'TaskExecutionArn': 'string',
            'Status': 'QUEUED'|'CANCELLING'|'LAUNCHING'|'PREPARING'|'TRANSFERRING'|'VERIFYING'|'SUCCESS'|'ERROR',
            'TaskMode': 'BASIC'|'ENHANCED'
        },
    ],
    'NextToken': 'string'
}

Response Structure

  • (dict) --

    ListTaskExecutionsResponse

    • TaskExecutions (list) --

      A list of the task's executions.

      • (dict) --

        Represents a single entry in a list of DataSync task executions that's returned with the ListTaskExecutions operation.

    • NextToken (string) --

      The opaque string that indicates the position to begin the next list of results in the response.

ListTasks (updated) Link ¶
Changes (response)
{'Tasks': {'TaskMode': 'BASIC | ENHANCED'}}

Returns a list of the DataSync tasks you created.

See also: AWS API Documentation

Request Syntax

client.list_tasks(
    MaxResults=123,
    NextToken='string',
    Filters=[
        {
            'Name': 'LocationId'|'CreationTime',
            'Values': [
                'string',
            ],
            'Operator': 'Equals'|'NotEquals'|'In'|'LessThanOrEqual'|'LessThan'|'GreaterThanOrEqual'|'GreaterThan'|'Contains'|'NotContains'|'BeginsWith'
        },
    ]
)
type MaxResults

integer

param MaxResults

The maximum number of tasks to return.

type NextToken

string

param NextToken

An opaque string that indicates the position at which to begin the next list of tasks.

type Filters

list

param Filters

You can use API filters to narrow down the list of resources returned by ListTasks . For example, to retrieve all tasks on a specific source location, you can use ListTasks with filter name LocationId and Operator Equals with the ARN for the location.

  • (dict) --

    You can use API filters to narrow down the list of resources returned by ListTasks . For example, to retrieve all tasks on a source location, you can use ListTasks with filter name LocationId and Operator Equals with the ARN for the location.

    For more information, see filtering DataSync resources.

    • Name (string) -- [REQUIRED]

      The name of the filter being used. Each API call supports a list of filters that are available for it. For example, LocationId for ListTasks .

    • Values (list) -- [REQUIRED]

      The values that you want to filter for. For example, you might want to display only tasks for a specific destination location.

      • (string) --

    • Operator (string) -- [REQUIRED]

      The operator that is used to compare filter values (for example, Equals or Contains ).

rtype

dict

returns

Response Syntax

{
    'Tasks': [
        {
            'TaskArn': 'string',
            'Status': 'AVAILABLE'|'CREATING'|'QUEUED'|'RUNNING'|'UNAVAILABLE',
            'Name': 'string',
            'TaskMode': 'BASIC'|'ENHANCED'
        },
    ],
    'NextToken': 'string'
}

Response Structure

  • (dict) --

    ListTasksResponse

    • Tasks (list) --

      A list of all the tasks that are returned.

      • (dict) --

        Represents a single entry in a list of tasks. TaskListEntry returns an array that contains a list of tasks when the ListTasks operation is called. A task includes the source and destination file systems to sync and the options to use for the tasks.

        • TaskArn (string) --

          The Amazon Resource Name (ARN) of the task.

        • Status (string) --

          The status of the task.

        • Name (string) --

          The name of the task.

        • TaskMode (string) --

          The task mode that you're using. For more information, see Choosing a task mode for your data transfer.

    • NextToken (string) --

      An opaque string that indicates the position at which to begin returning the next list of tasks.