/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace DataSync { namespace Model { /** *

Represents the options that are available to control the behavior of a * StartTaskExecution operation. Behavior includes preserving metadata such * as user ID (UID), group ID (GID), and file permissions, and also overwriting * files in the destination, data integrity verification, and so on.

A task * has a set of default options associated with it. If you don't specify an option * in StartTaskExecution, the default value is used. You can override the * defaults options on each task execution by specifying an overriding * Options value to StartTaskExecution.

See * Also:

AWS * API Reference

*/ class AWS_DATASYNC_API Options { public: Options(); Options(Aws::Utils::Json::JsonView jsonValue); Options& operator=(Aws::Utils::Json::JsonView jsonValue); Aws::Utils::Json::JsonValue Jsonize() const; /** *

A value that determines whether a data integrity verification should be * performed at the end of a task execution after all data and metadata have been * transferred. For more information, see create-task

Default value: * POINT_IN_TIME_CONSISTENT.

ONLY_FILES_TRANSFERRED (recommended): Perform * verification only on files that were transferred.

*

POINT_IN_TIME_CONSISTENT: Scan the entire source and entire destination at * the end of the transfer to verify that source and destination are fully * synchronized. This option isn't supported when transferring to S3 Glacier or S3 * Glacier Deep Archive storage classes.

NONE: No additional verification is * done at the end of the transfer, but all data transmissions are * integrity-checked with checksum verification during the transfer.

*/ inline const VerifyMode& GetVerifyMode() const{ return m_verifyMode; } /** *

A value that determines whether a data integrity verification should be * performed at the end of a task execution after all data and metadata have been * transferred. For more information, see create-task

Default value: * POINT_IN_TIME_CONSISTENT.

ONLY_FILES_TRANSFERRED (recommended): Perform * verification only on files that were transferred.

*

POINT_IN_TIME_CONSISTENT: Scan the entire source and entire destination at * the end of the transfer to verify that source and destination are fully * synchronized. This option isn't supported when transferring to S3 Glacier or S3 * Glacier Deep Archive storage classes.

NONE: No additional verification is * done at the end of the transfer, but all data transmissions are * integrity-checked with checksum verification during the transfer.

*/ inline bool VerifyModeHasBeenSet() const { return m_verifyModeHasBeenSet; } /** *

A value that determines whether a data integrity verification should be * performed at the end of a task execution after all data and metadata have been * transferred. For more information, see create-task

Default value: * POINT_IN_TIME_CONSISTENT.

ONLY_FILES_TRANSFERRED (recommended): Perform * verification only on files that were transferred.

*

POINT_IN_TIME_CONSISTENT: Scan the entire source and entire destination at * the end of the transfer to verify that source and destination are fully * synchronized. This option isn't supported when transferring to S3 Glacier or S3 * Glacier Deep Archive storage classes.

NONE: No additional verification is * done at the end of the transfer, but all data transmissions are * integrity-checked with checksum verification during the transfer.

*/ inline void SetVerifyMode(const VerifyMode& value) { m_verifyModeHasBeenSet = true; m_verifyMode = value; } /** *

A value that determines whether a data integrity verification should be * performed at the end of a task execution after all data and metadata have been * transferred. For more information, see create-task

Default value: * POINT_IN_TIME_CONSISTENT.

ONLY_FILES_TRANSFERRED (recommended): Perform * verification only on files that were transferred.

*

POINT_IN_TIME_CONSISTENT: Scan the entire source and entire destination at * the end of the transfer to verify that source and destination are fully * synchronized. This option isn't supported when transferring to S3 Glacier or S3 * Glacier Deep Archive storage classes.

NONE: No additional verification is * done at the end of the transfer, but all data transmissions are * integrity-checked with checksum verification during the transfer.

*/ inline void SetVerifyMode(VerifyMode&& value) { m_verifyModeHasBeenSet = true; m_verifyMode = std::move(value); } /** *

A value that determines whether a data integrity verification should be * performed at the end of a task execution after all data and metadata have been * transferred. For more information, see create-task

Default value: * POINT_IN_TIME_CONSISTENT.

ONLY_FILES_TRANSFERRED (recommended): Perform * verification only on files that were transferred.

*

POINT_IN_TIME_CONSISTENT: Scan the entire source and entire destination at * the end of the transfer to verify that source and destination are fully * synchronized. This option isn't supported when transferring to S3 Glacier or S3 * Glacier Deep Archive storage classes.

NONE: No additional verification is * done at the end of the transfer, but all data transmissions are * integrity-checked with checksum verification during the transfer.

*/ inline Options& WithVerifyMode(const VerifyMode& value) { SetVerifyMode(value); return *this;} /** *

A value that determines whether a data integrity verification should be * performed at the end of a task execution after all data and metadata have been * transferred. For more information, see create-task

Default value: * POINT_IN_TIME_CONSISTENT.

ONLY_FILES_TRANSFERRED (recommended): Perform * verification only on files that were transferred.

*

POINT_IN_TIME_CONSISTENT: Scan the entire source and entire destination at * the end of the transfer to verify that source and destination are fully * synchronized. This option isn't supported when transferring to S3 Glacier or S3 * Glacier Deep Archive storage classes.

NONE: No additional verification is * done at the end of the transfer, but all data transmissions are * integrity-checked with checksum verification during the transfer.

*/ inline Options& WithVerifyMode(VerifyMode&& value) { SetVerifyMode(std::move(value)); return *this;} /** *

A value that determines whether files at the destination should be * overwritten or preserved when copying files. If set to NEVER a * destination file will not be replaced by a source file, even if the destination * file differs from the source file. If you modify files in the destination and * you sync the files, you can use this value to protect against overwriting those * changes.

Some storage classes have specific behaviors that can affect * your S3 storage cost. For detailed information, see using-storage-classes * in the AWS DataSync User Guide.

*/ inline const OverwriteMode& GetOverwriteMode() const{ return m_overwriteMode; } /** *

A value that determines whether files at the destination should be * overwritten or preserved when copying files. If set to NEVER a * destination file will not be replaced by a source file, even if the destination * file differs from the source file. If you modify files in the destination and * you sync the files, you can use this value to protect against overwriting those * changes.

Some storage classes have specific behaviors that can affect * your S3 storage cost. For detailed information, see using-storage-classes * in the AWS DataSync User Guide.

*/ inline bool OverwriteModeHasBeenSet() const { return m_overwriteModeHasBeenSet; } /** *

A value that determines whether files at the destination should be * overwritten or preserved when copying files. If set to NEVER a * destination file will not be replaced by a source file, even if the destination * file differs from the source file. If you modify files in the destination and * you sync the files, you can use this value to protect against overwriting those * changes.

Some storage classes have specific behaviors that can affect * your S3 storage cost. For detailed information, see using-storage-classes * in the AWS DataSync User Guide.

*/ inline void SetOverwriteMode(const OverwriteMode& value) { m_overwriteModeHasBeenSet = true; m_overwriteMode = value; } /** *

A value that determines whether files at the destination should be * overwritten or preserved when copying files. If set to NEVER a * destination file will not be replaced by a source file, even if the destination * file differs from the source file. If you modify files in the destination and * you sync the files, you can use this value to protect against overwriting those * changes.

Some storage classes have specific behaviors that can affect * your S3 storage cost. For detailed information, see using-storage-classes * in the AWS DataSync User Guide.

*/ inline void SetOverwriteMode(OverwriteMode&& value) { m_overwriteModeHasBeenSet = true; m_overwriteMode = std::move(value); } /** *

A value that determines whether files at the destination should be * overwritten or preserved when copying files. If set to NEVER a * destination file will not be replaced by a source file, even if the destination * file differs from the source file. If you modify files in the destination and * you sync the files, you can use this value to protect against overwriting those * changes.

Some storage classes have specific behaviors that can affect * your S3 storage cost. For detailed information, see using-storage-classes * in the AWS DataSync User Guide.

*/ inline Options& WithOverwriteMode(const OverwriteMode& value) { SetOverwriteMode(value); return *this;} /** *

A value that determines whether files at the destination should be * overwritten or preserved when copying files. If set to NEVER a * destination file will not be replaced by a source file, even if the destination * file differs from the source file. If you modify files in the destination and * you sync the files, you can use this value to protect against overwriting those * changes.

Some storage classes have specific behaviors that can affect * your S3 storage cost. For detailed information, see using-storage-classes * in the AWS DataSync User Guide.

*/ inline Options& WithOverwriteMode(OverwriteMode&& value) { SetOverwriteMode(std::move(value)); return *this;} /** *

A file metadata value that shows the last time a file was accessed (that is, * when the file was read or written to). If you set Atime to * BEST_EFFORT, DataSync attempts to preserve the original Atime * attribute on all source files (that is, the version before the PREPARING phase). * However, Atime's behavior is not fully standard across platforms, * so AWS DataSync can only do this on a best-effort basis.

Default value: * BEST_EFFORT.

BEST_EFFORT: Attempt to preserve the per-file * Atime value (recommended).

NONE: Ignore * Atime.

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

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

*/ inline const Atime& GetAtime() const{ return m_atime; } /** *

A file metadata value that shows the last time a file was accessed (that is, * when the file was read or written to). If you set Atime to * BEST_EFFORT, DataSync attempts to preserve the original Atime * attribute on all source files (that is, the version before the PREPARING phase). * However, Atime's behavior is not fully standard across platforms, * so AWS DataSync can only do this on a best-effort basis.

Default value: * BEST_EFFORT.

BEST_EFFORT: Attempt to preserve the per-file * Atime value (recommended).

NONE: Ignore * Atime.

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

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

*/ inline bool AtimeHasBeenSet() const { return m_atimeHasBeenSet; } /** *

A file metadata value that shows the last time a file was accessed (that is, * when the file was read or written to). If you set Atime to * BEST_EFFORT, DataSync attempts to preserve the original Atime * attribute on all source files (that is, the version before the PREPARING phase). * However, Atime's behavior is not fully standard across platforms, * so AWS DataSync can only do this on a best-effort basis.

Default value: * BEST_EFFORT.

BEST_EFFORT: Attempt to preserve the per-file * Atime value (recommended).

NONE: Ignore * Atime.

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

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

*/ inline void SetAtime(const Atime& value) { m_atimeHasBeenSet = true; m_atime = value; } /** *

A file metadata value that shows the last time a file was accessed (that is, * when the file was read or written to). If you set Atime to * BEST_EFFORT, DataSync attempts to preserve the original Atime * attribute on all source files (that is, the version before the PREPARING phase). * However, Atime's behavior is not fully standard across platforms, * so AWS DataSync can only do this on a best-effort basis.

Default value: * BEST_EFFORT.

BEST_EFFORT: Attempt to preserve the per-file * Atime value (recommended).

NONE: Ignore * Atime.

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

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

*/ inline void SetAtime(Atime&& value) { m_atimeHasBeenSet = true; m_atime = std::move(value); } /** *

A file metadata value that shows the last time a file was accessed (that is, * when the file was read or written to). If you set Atime to * BEST_EFFORT, DataSync attempts to preserve the original Atime * attribute on all source files (that is, the version before the PREPARING phase). * However, Atime's behavior is not fully standard across platforms, * so AWS DataSync can only do this on a best-effort basis.

Default value: * BEST_EFFORT.

BEST_EFFORT: Attempt to preserve the per-file * Atime value (recommended).

NONE: Ignore * Atime.

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

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

*/ inline Options& WithAtime(const Atime& value) { SetAtime(value); return *this;} /** *

A file metadata value that shows the last time a file was accessed (that is, * when the file was read or written to). If you set Atime to * BEST_EFFORT, DataSync attempts to preserve the original Atime * attribute on all source files (that is, the version before the PREPARING phase). * However, Atime's behavior is not fully standard across platforms, * so AWS DataSync can only do this on a best-effort basis.

Default value: * BEST_EFFORT.

BEST_EFFORT: Attempt to preserve the per-file * Atime value (recommended).

NONE: Ignore * Atime.

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

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

*/ inline Options& WithAtime(Atime&& value) { SetAtime(std::move(value)); return *this;} /** *

A value that indicates the last time that a file was modified (that is, a * file was written to) before the PREPARING phase.

Default value: * PRESERVE.

PRESERVE: Preserve original Mtime * (recommended)

NONE: Ignore Mtime.

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.

*/ inline const Mtime& GetMtime() const{ return m_mtime; } /** *

A value that indicates the last time that a file was modified (that is, a * file was written to) before the PREPARING phase.

Default value: * PRESERVE.

PRESERVE: Preserve original Mtime * (recommended)

NONE: Ignore Mtime.

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.

*/ inline bool MtimeHasBeenSet() const { return m_mtimeHasBeenSet; } /** *

A value that indicates the last time that a file was modified (that is, a * file was written to) before the PREPARING phase.

Default value: * PRESERVE.

PRESERVE: Preserve original Mtime * (recommended)

NONE: Ignore Mtime.

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.

*/ inline void SetMtime(const Mtime& value) { m_mtimeHasBeenSet = true; m_mtime = value; } /** *

A value that indicates the last time that a file was modified (that is, a * file was written to) before the PREPARING phase.

Default value: * PRESERVE.

PRESERVE: Preserve original Mtime * (recommended)

NONE: Ignore Mtime.

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.

*/ inline void SetMtime(Mtime&& value) { m_mtimeHasBeenSet = true; m_mtime = std::move(value); } /** *

A value that indicates the last time that a file was modified (that is, a * file was written to) before the PREPARING phase.

Default value: * PRESERVE.

PRESERVE: Preserve original Mtime * (recommended)

NONE: Ignore Mtime.

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.

*/ inline Options& WithMtime(const Mtime& value) { SetMtime(value); return *this;} /** *

A value that indicates the last time that a file was modified (that is, a * file was written to) before the PREPARING phase.

Default value: * PRESERVE.

PRESERVE: Preserve original Mtime * (recommended)

NONE: Ignore Mtime.

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.

*/ inline Options& WithMtime(Mtime&& value) { SetMtime(std::move(value)); return *this;} /** *

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

Default value: INT_VALUE. This * preserves the integer value of the ID.

INT_VALUE: Preserve the integer * value of UID and group ID (GID) (recommended).

NONE: Ignore UID and GID. *

*/ inline const Uid& GetUid() const{ return m_uid; } /** *

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

Default value: INT_VALUE. This * preserves the integer value of the ID.

INT_VALUE: Preserve the integer * value of UID and group ID (GID) (recommended).

NONE: Ignore UID and GID. *

*/ inline bool UidHasBeenSet() const { return m_uidHasBeenSet; } /** *

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

Default value: INT_VALUE. This * preserves the integer value of the ID.

INT_VALUE: Preserve the integer * value of UID and group ID (GID) (recommended).

NONE: Ignore UID and GID. *

*/ inline void SetUid(const Uid& value) { m_uidHasBeenSet = true; m_uid = value; } /** *

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

Default value: INT_VALUE. This * preserves the integer value of the ID.

INT_VALUE: Preserve the integer * value of UID and group ID (GID) (recommended).

NONE: Ignore UID and GID. *

*/ inline void SetUid(Uid&& value) { m_uidHasBeenSet = true; m_uid = std::move(value); } /** *

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

Default value: INT_VALUE. This * preserves the integer value of the ID.

INT_VALUE: Preserve the integer * value of UID and group ID (GID) (recommended).

NONE: Ignore UID and GID. *

*/ inline Options& WithUid(const Uid& value) { SetUid(value); return *this;} /** *

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

Default value: INT_VALUE. This * preserves the integer value of the ID.

INT_VALUE: Preserve the integer * value of UID and group ID (GID) (recommended).

NONE: Ignore UID and GID. *

*/ inline Options& WithUid(Uid&& value) { SetUid(std::move(value)); return *this;} /** *

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

Default value: INT_VALUE. * This preserves the integer value of the ID.

INT_VALUE: Preserve the * integer value of user ID (UID) and GID (recommended).

NONE: Ignore UID * and GID.

*/ inline const Gid& GetGid() const{ return m_gid; } /** *

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

Default value: INT_VALUE. * This preserves the integer value of the ID.

INT_VALUE: Preserve the * integer value of user ID (UID) and GID (recommended).

NONE: Ignore UID * and GID.

*/ inline bool GidHasBeenSet() const { return m_gidHasBeenSet; } /** *

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

Default value: INT_VALUE. * This preserves the integer value of the ID.

INT_VALUE: Preserve the * integer value of user ID (UID) and GID (recommended).

NONE: Ignore UID * and GID.

*/ inline void SetGid(const Gid& value) { m_gidHasBeenSet = true; m_gid = value; } /** *

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

Default value: INT_VALUE. * This preserves the integer value of the ID.

INT_VALUE: Preserve the * integer value of user ID (UID) and GID (recommended).

NONE: Ignore UID * and GID.

*/ inline void SetGid(Gid&& value) { m_gidHasBeenSet = true; m_gid = std::move(value); } /** *

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

Default value: INT_VALUE. * This preserves the integer value of the ID.

INT_VALUE: Preserve the * integer value of user ID (UID) and GID (recommended).

NONE: Ignore UID * and GID.

*/ inline Options& WithGid(const Gid& value) { SetGid(value); return *this;} /** *

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

Default value: INT_VALUE. * This preserves the integer value of the ID.

INT_VALUE: Preserve the * integer value of user ID (UID) and GID (recommended).

NONE: Ignore UID * and GID.

*/ inline Options& WithGid(Gid&& value) { SetGid(std::move(value)); return *this;} /** *

A value that specifies whether files in the destination that don't exist in * the source file system should be preserved. This option can affect your storage * cost. If your task deletes objects, you might incur minimum storage duration * charges for certain storage classes. For detailed information, see * using-storage-classes in the AWS DataSync User Guide.

*

Default value: PRESERVE.

PRESERVE: Ignore such destination files * (recommended).

REMOVE: Delete destination files that aren’t present in * the source.

*/ inline const PreserveDeletedFiles& GetPreserveDeletedFiles() const{ return m_preserveDeletedFiles; } /** *

A value that specifies whether files in the destination that don't exist in * the source file system should be preserved. This option can affect your storage * cost. If your task deletes objects, you might incur minimum storage duration * charges for certain storage classes. For detailed information, see * using-storage-classes in the AWS DataSync User Guide.

*

Default value: PRESERVE.

PRESERVE: Ignore such destination files * (recommended).

REMOVE: Delete destination files that aren’t present in * the source.

*/ inline bool PreserveDeletedFilesHasBeenSet() const { return m_preserveDeletedFilesHasBeenSet; } /** *

A value that specifies whether files in the destination that don't exist in * the source file system should be preserved. This option can affect your storage * cost. If your task deletes objects, you might incur minimum storage duration * charges for certain storage classes. For detailed information, see * using-storage-classes in the AWS DataSync User Guide.

*

Default value: PRESERVE.

PRESERVE: Ignore such destination files * (recommended).

REMOVE: Delete destination files that aren’t present in * the source.

*/ inline void SetPreserveDeletedFiles(const PreserveDeletedFiles& value) { m_preserveDeletedFilesHasBeenSet = true; m_preserveDeletedFiles = value; } /** *

A value that specifies whether files in the destination that don't exist in * the source file system should be preserved. This option can affect your storage * cost. If your task deletes objects, you might incur minimum storage duration * charges for certain storage classes. For detailed information, see * using-storage-classes in the AWS DataSync User Guide.

*

Default value: PRESERVE.

PRESERVE: Ignore such destination files * (recommended).

REMOVE: Delete destination files that aren’t present in * the source.

*/ inline void SetPreserveDeletedFiles(PreserveDeletedFiles&& value) { m_preserveDeletedFilesHasBeenSet = true; m_preserveDeletedFiles = std::move(value); } /** *

A value that specifies whether files in the destination that don't exist in * the source file system should be preserved. This option can affect your storage * cost. If your task deletes objects, you might incur minimum storage duration * charges for certain storage classes. For detailed information, see * using-storage-classes in the AWS DataSync User Guide.

*

Default value: PRESERVE.

PRESERVE: Ignore such destination files * (recommended).

REMOVE: Delete destination files that aren’t present in * the source.

*/ inline Options& WithPreserveDeletedFiles(const PreserveDeletedFiles& value) { SetPreserveDeletedFiles(value); return *this;} /** *

A value that specifies whether files in the destination that don't exist in * the source file system should be preserved. This option can affect your storage * cost. If your task deletes objects, you might incur minimum storage duration * charges for certain storage classes. For detailed information, see * using-storage-classes in the AWS DataSync User Guide.

*

Default value: PRESERVE.

PRESERVE: Ignore such destination files * (recommended).

REMOVE: Delete destination files that aren’t present in * the source.

*/ inline Options& WithPreserveDeletedFiles(PreserveDeletedFiles&& value) { SetPreserveDeletedFiles(std::move(value)); return *this;} /** *

A value that determines whether AWS DataSync should preserve the metadata of * block and character devices in the source file system, and recreate the files * with that device name and metadata on the destination.

AWS * DataSync can't sync the actual contents of such devices, because they are * nonterminal and don't return an end-of-file (EOF) marker.

Default * value: NONE.

NONE: Ignore special devices (recommended).

*

PRESERVE: Preserve character and block device metadata. This option isn't * currently supported for Amazon EFS.

*/ inline const PreserveDevices& GetPreserveDevices() const{ return m_preserveDevices; } /** *

A value that determines whether AWS DataSync should preserve the metadata of * block and character devices in the source file system, and recreate the files * with that device name and metadata on the destination.

AWS * DataSync can't sync the actual contents of such devices, because they are * nonterminal and don't return an end-of-file (EOF) marker.

Default * value: NONE.

NONE: Ignore special devices (recommended).

*

PRESERVE: Preserve character and block device metadata. This option isn't * currently supported for Amazon EFS.

*/ inline bool PreserveDevicesHasBeenSet() const { return m_preserveDevicesHasBeenSet; } /** *

A value that determines whether AWS DataSync should preserve the metadata of * block and character devices in the source file system, and recreate the files * with that device name and metadata on the destination.

AWS * DataSync can't sync the actual contents of such devices, because they are * nonterminal and don't return an end-of-file (EOF) marker.

Default * value: NONE.

NONE: Ignore special devices (recommended).

*

PRESERVE: Preserve character and block device metadata. This option isn't * currently supported for Amazon EFS.

*/ inline void SetPreserveDevices(const PreserveDevices& value) { m_preserveDevicesHasBeenSet = true; m_preserveDevices = value; } /** *

A value that determines whether AWS DataSync should preserve the metadata of * block and character devices in the source file system, and recreate the files * with that device name and metadata on the destination.

AWS * DataSync can't sync the actual contents of such devices, because they are * nonterminal and don't return an end-of-file (EOF) marker.

Default * value: NONE.

NONE: Ignore special devices (recommended).

*

PRESERVE: Preserve character and block device metadata. This option isn't * currently supported for Amazon EFS.

*/ inline void SetPreserveDevices(PreserveDevices&& value) { m_preserveDevicesHasBeenSet = true; m_preserveDevices = std::move(value); } /** *

A value that determines whether AWS DataSync should preserve the metadata of * block and character devices in the source file system, and recreate the files * with that device name and metadata on the destination.

AWS * DataSync can't sync the actual contents of such devices, because they are * nonterminal and don't return an end-of-file (EOF) marker.

Default * value: NONE.

NONE: Ignore special devices (recommended).

*

PRESERVE: Preserve character and block device metadata. This option isn't * currently supported for Amazon EFS.

*/ inline Options& WithPreserveDevices(const PreserveDevices& value) { SetPreserveDevices(value); return *this;} /** *

A value that determines whether AWS DataSync should preserve the metadata of * block and character devices in the source file system, and recreate the files * with that device name and metadata on the destination.

AWS * DataSync can't sync the actual contents of such devices, because they are * nonterminal and don't return an end-of-file (EOF) marker.

Default * value: NONE.

NONE: Ignore special devices (recommended).

*

PRESERVE: Preserve character and block device metadata. This option isn't * currently supported for Amazon EFS.

*/ inline Options& WithPreserveDevices(PreserveDevices&& value) { SetPreserveDevices(std::move(value)); return *this;} /** *

A value that determines which users or groups can access a file for a * specific purpose such as reading, writing, or execution of the file.

*

Default value: PRESERVE.

PRESERVE: Preserve POSIX-style permissions * (recommended).

NONE: Ignore permissions.

AWS DataSync can * preserve extant permissions of a source location.

*/ inline const PosixPermissions& GetPosixPermissions() const{ return m_posixPermissions; } /** *

A value that determines which users or groups can access a file for a * specific purpose such as reading, writing, or execution of the file.

*

Default value: PRESERVE.

PRESERVE: Preserve POSIX-style permissions * (recommended).

NONE: Ignore permissions.

AWS DataSync can * preserve extant permissions of a source location.

*/ inline bool PosixPermissionsHasBeenSet() const { return m_posixPermissionsHasBeenSet; } /** *

A value that determines which users or groups can access a file for a * specific purpose such as reading, writing, or execution of the file.

*

Default value: PRESERVE.

PRESERVE: Preserve POSIX-style permissions * (recommended).

NONE: Ignore permissions.

AWS DataSync can * preserve extant permissions of a source location.

*/ inline void SetPosixPermissions(const PosixPermissions& value) { m_posixPermissionsHasBeenSet = true; m_posixPermissions = value; } /** *

A value that determines which users or groups can access a file for a * specific purpose such as reading, writing, or execution of the file.

*

Default value: PRESERVE.

PRESERVE: Preserve POSIX-style permissions * (recommended).

NONE: Ignore permissions.

AWS DataSync can * preserve extant permissions of a source location.

*/ inline void SetPosixPermissions(PosixPermissions&& value) { m_posixPermissionsHasBeenSet = true; m_posixPermissions = std::move(value); } /** *

A value that determines which users or groups can access a file for a * specific purpose such as reading, writing, or execution of the file.

*

Default value: PRESERVE.

PRESERVE: Preserve POSIX-style permissions * (recommended).

NONE: Ignore permissions.

AWS DataSync can * preserve extant permissions of a source location.

*/ inline Options& WithPosixPermissions(const PosixPermissions& value) { SetPosixPermissions(value); return *this;} /** *

A value that determines which users or groups can access a file for a * specific purpose such as reading, writing, or execution of the file.

*

Default value: PRESERVE.

PRESERVE: Preserve POSIX-style permissions * (recommended).

NONE: Ignore permissions.

AWS DataSync can * preserve extant permissions of a source location.

*/ inline Options& WithPosixPermissions(PosixPermissions&& value) { SetPosixPermissions(std::move(value)); return *this;} /** *

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

*/ inline long long GetBytesPerSecond() const{ return m_bytesPerSecond; } /** *

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

*/ inline bool BytesPerSecondHasBeenSet() const { return m_bytesPerSecondHasBeenSet; } /** *

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

*/ inline void SetBytesPerSecond(long long value) { m_bytesPerSecondHasBeenSet = true; m_bytesPerSecond = value; } /** *

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

*/ inline Options& WithBytesPerSecond(long long value) { SetBytesPerSecond(value); return *this;} /** *

A value that determines whether tasks should be queued before executing the * tasks. If set to ENABLED, the tasks will be queued. The default is * ENABLED.

If you use the same agent to run multiple tasks, * you can enable the tasks to run in series. For more information, see * queue-task-execution.

*/ inline const TaskQueueing& GetTaskQueueing() const{ return m_taskQueueing; } /** *

A value that determines whether tasks should be queued before executing the * tasks. If set to ENABLED, the tasks will be queued. The default is * ENABLED.

If you use the same agent to run multiple tasks, * you can enable the tasks to run in series. For more information, see * queue-task-execution.

*/ inline bool TaskQueueingHasBeenSet() const { return m_taskQueueingHasBeenSet; } /** *

A value that determines whether tasks should be queued before executing the * tasks. If set to ENABLED, the tasks will be queued. The default is * ENABLED.

If you use the same agent to run multiple tasks, * you can enable the tasks to run in series. For more information, see * queue-task-execution.

*/ inline void SetTaskQueueing(const TaskQueueing& value) { m_taskQueueingHasBeenSet = true; m_taskQueueing = value; } /** *

A value that determines whether tasks should be queued before executing the * tasks. If set to ENABLED, the tasks will be queued. The default is * ENABLED.

If you use the same agent to run multiple tasks, * you can enable the tasks to run in series. For more information, see * queue-task-execution.

*/ inline void SetTaskQueueing(TaskQueueing&& value) { m_taskQueueingHasBeenSet = true; m_taskQueueing = std::move(value); } /** *

A value that determines whether tasks should be queued before executing the * tasks. If set to ENABLED, the tasks will be queued. The default is * ENABLED.

If you use the same agent to run multiple tasks, * you can enable the tasks to run in series. For more information, see * queue-task-execution.

*/ inline Options& WithTaskQueueing(const TaskQueueing& value) { SetTaskQueueing(value); return *this;} /** *

A value that determines whether tasks should be queued before executing the * tasks. If set to ENABLED, the tasks will be queued. The default is * ENABLED.

If you use the same agent to run multiple tasks, * you can enable the tasks to run in series. For more information, see * queue-task-execution.

*/ inline Options& WithTaskQueueing(TaskQueueing&& value) { SetTaskQueueing(std::move(value)); return *this;} /** *

A value that determines the type of logs that DataSync publishes to a log * stream in the Amazon CloudWatch log group that you provide. For more information * about providing a log group for DataSync, see CloudWatchLogGroupArn. * If set to OFF, no logs are published. BASIC publishes * logs on errors for individual files transferred, and TRANSFER * publishes logs for every file or object that is transferred and integrity * checked.

*/ inline const LogLevel& GetLogLevel() const{ return m_logLevel; } /** *

A value that determines the type of logs that DataSync publishes to a log * stream in the Amazon CloudWatch log group that you provide. For more information * about providing a log group for DataSync, see CloudWatchLogGroupArn. * If set to OFF, no logs are published. BASIC publishes * logs on errors for individual files transferred, and TRANSFER * publishes logs for every file or object that is transferred and integrity * checked.

*/ inline bool LogLevelHasBeenSet() const { return m_logLevelHasBeenSet; } /** *

A value that determines the type of logs that DataSync publishes to a log * stream in the Amazon CloudWatch log group that you provide. For more information * about providing a log group for DataSync, see CloudWatchLogGroupArn. * If set to OFF, no logs are published. BASIC publishes * logs on errors for individual files transferred, and TRANSFER * publishes logs for every file or object that is transferred and integrity * checked.

*/ inline void SetLogLevel(const LogLevel& value) { m_logLevelHasBeenSet = true; m_logLevel = value; } /** *

A value that determines the type of logs that DataSync publishes to a log * stream in the Amazon CloudWatch log group that you provide. For more information * about providing a log group for DataSync, see CloudWatchLogGroupArn. * If set to OFF, no logs are published. BASIC publishes * logs on errors for individual files transferred, and TRANSFER * publishes logs for every file or object that is transferred and integrity * checked.

*/ inline void SetLogLevel(LogLevel&& value) { m_logLevelHasBeenSet = true; m_logLevel = std::move(value); } /** *

A value that determines the type of logs that DataSync publishes to a log * stream in the Amazon CloudWatch log group that you provide. For more information * about providing a log group for DataSync, see CloudWatchLogGroupArn. * If set to OFF, no logs are published. BASIC publishes * logs on errors for individual files transferred, and TRANSFER * publishes logs for every file or object that is transferred and integrity * checked.

*/ inline Options& WithLogLevel(const LogLevel& value) { SetLogLevel(value); return *this;} /** *

A value that determines the type of logs that DataSync publishes to a log * stream in the Amazon CloudWatch log group that you provide. For more information * about providing a log group for DataSync, see CloudWatchLogGroupArn. * If set to OFF, no logs are published. BASIC publishes * logs on errors for individual files transferred, and TRANSFER * publishes logs for every file or object that is transferred and integrity * checked.

*/ inline Options& WithLogLevel(LogLevel&& value) { SetLogLevel(std::move(value)); return *this;} /** *

TransferMode has two values: CHANGED and ALL. CHANGED performs an * "incremental" or "delta sync", it compares file modification time between source * and destination to determine which files need to be transferred. ALL skips * destination inventory and transfers all files discovered on the source.

*/ inline const TransferMode& GetTransferMode() const{ return m_transferMode; } /** *

TransferMode has two values: CHANGED and ALL. CHANGED performs an * "incremental" or "delta sync", it compares file modification time between source * and destination to determine which files need to be transferred. ALL skips * destination inventory and transfers all files discovered on the source.

*/ inline bool TransferModeHasBeenSet() const { return m_transferModeHasBeenSet; } /** *

TransferMode has two values: CHANGED and ALL. CHANGED performs an * "incremental" or "delta sync", it compares file modification time between source * and destination to determine which files need to be transferred. ALL skips * destination inventory and transfers all files discovered on the source.

*/ inline void SetTransferMode(const TransferMode& value) { m_transferModeHasBeenSet = true; m_transferMode = value; } /** *

TransferMode has two values: CHANGED and ALL. CHANGED performs an * "incremental" or "delta sync", it compares file modification time between source * and destination to determine which files need to be transferred. ALL skips * destination inventory and transfers all files discovered on the source.

*/ inline void SetTransferMode(TransferMode&& value) { m_transferModeHasBeenSet = true; m_transferMode = std::move(value); } /** *

TransferMode has two values: CHANGED and ALL. CHANGED performs an * "incremental" or "delta sync", it compares file modification time between source * and destination to determine which files need to be transferred. ALL skips * destination inventory and transfers all files discovered on the source.

*/ inline Options& WithTransferMode(const TransferMode& value) { SetTransferMode(value); return *this;} /** *

TransferMode has two values: CHANGED and ALL. CHANGED performs an * "incremental" or "delta sync", it compares file modification time between source * and destination to determine which files need to be transferred. ALL skips * destination inventory and transfers all files discovered on the source.

*/ inline Options& WithTransferMode(TransferMode&& value) { SetTransferMode(std::move(value)); return *this;} private: VerifyMode m_verifyMode; bool m_verifyModeHasBeenSet; OverwriteMode m_overwriteMode; bool m_overwriteModeHasBeenSet; Atime m_atime; bool m_atimeHasBeenSet; Mtime m_mtime; bool m_mtimeHasBeenSet; Uid m_uid; bool m_uidHasBeenSet; Gid m_gid; bool m_gidHasBeenSet; PreserveDeletedFiles m_preserveDeletedFiles; bool m_preserveDeletedFilesHasBeenSet; PreserveDevices m_preserveDevices; bool m_preserveDevicesHasBeenSet; PosixPermissions m_posixPermissions; bool m_posixPermissionsHasBeenSet; long long m_bytesPerSecond; bool m_bytesPerSecondHasBeenSet; TaskQueueing m_taskQueueing; bool m_taskQueueingHasBeenSet; LogLevel m_logLevel; bool m_logLevelHasBeenSet; TransferMode m_transferMode; bool m_transferModeHasBeenSet; }; } // namespace Model } // namespace DataSync } // namespace Aws