/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the datasync-2018-11-09.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.DataSync.Model
{
///
/// Configures your DataSync task settings. These options include how DataSync handles
/// files, objects, and their associated metadata. You also can specify how DataSync verifies
/// data integrity, set bandwidth limits for your task, among other options.
///
///
///
/// Each task setting has a default value. Unless you need to, you don't have to configure
/// any of these Options
before starting your task.
///
///
public partial class Options
{
private Atime _atime;
private long? _bytesPerSecond;
private Gid _gid;
private LogLevel _logLevel;
private Mtime _mtime;
private ObjectTags _objectTags;
private OverwriteMode _overwriteMode;
private PosixPermissions _posixPermissions;
private PreserveDeletedFiles _preserveDeletedFiles;
private PreserveDevices _preserveDevices;
private SmbSecurityDescriptorCopyFlags _securityDescriptorCopyFlags;
private TaskQueueing _taskQueueing;
private TransferMode _transferMode;
private Uid _uid;
private VerifyMode _verifyMode;
///
/// Gets and sets the property Atime.
///
/// Specifies whether to preserve metadata indicating the last time a 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 of the task execution).
///
///
///
/// The behavior of Atime
isn't fully standard across platforms, so 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
.
///
///
///
public Atime Atime
{
get { return this._atime; }
set { this._atime = value; }
}
// Check to see if Atime property is set
internal bool IsSetAtime()
{
return this._atime != null;
}
///
/// Gets and sets the property BytesPerSecond.
///
/// 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
).
///
///
[AWSProperty(Min=-1)]
public long BytesPerSecond
{
get { return this._bytesPerSecond.GetValueOrDefault(); }
set { this._bytesPerSecond = value; }
}
// Check to see if BytesPerSecond property is set
internal bool IsSetBytesPerSecond()
{
return this._bytesPerSecond.HasValue;
}
///
/// Gets and sets the property Gid.
///
/// Specifies the POSIX group ID (GID) of the file's owners.
///
///
///
/// For more information, see Metadata
/// copied by DataSync.
///
///
///
/// 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.
///
///
public Gid Gid
{
get { return this._gid; }
set { this._gid = value; }
}
// Check to see if Gid property is set
internal bool IsSetGid()
{
return this._gid != null;
}
///
/// Gets and sets the property LogLevel.
///
/// Specifies the type of logs that DataSync publishes to a Amazon CloudWatch Logs log
/// group. To specify the log group, see CloudWatchLogGroupArn.
///
///
///
/// If you set LogLevel
to OFF
, no logs are published. BASIC
/// publishes logs on errors for individual files transferred. TRANSFER
publishes
/// logs for every file or object that is transferred and integrity checked.
///
///
public LogLevel LogLevel
{
get { return this._logLevel; }
set { this._logLevel = value; }
}
// Check to see if LogLevel property is set
internal bool IsSetLogLevel()
{
return this._logLevel != null;
}
///
/// Gets and sets the property Mtime.
///
/// Specifies whether to preserve metadata indicating the last time that a file was written
/// to before the PREPARING
phase of your task execution. This option is
/// required when you need to run the a task more than once.
///
///
///
/// 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
.
///
///
///
public Mtime Mtime
{
get { return this._mtime; }
set { this._mtime = value; }
}
// Check to see if Mtime property is set
internal bool IsSetMtime()
{
return this._mtime != null;
}
///
/// Gets and sets the property ObjectTags.
///
/// Specifies whether object tags are preserved when transferring between object storage
/// systems. If you want your DataSync task to ignore object tags, specify the NONE
/// value.
///
///
///
/// Default Value: PRESERVE
///
///
public ObjectTags ObjectTags
{
get { return this._objectTags; }
set { this._objectTags = value; }
}
// Check to see if ObjectTags property is set
internal bool IsSetObjectTags()
{
return this._objectTags != null;
}
///
/// Gets and sets the property OverwriteMode.
///
/// Specifies whether data at the destination location should be overwritten or preserved.
/// If set to NEVER
, a destination file for example 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 Amazon S3 storage
/// cost. For detailed information, see Considerations
/// when working with Amazon S3 storage classes in DataSync.
///
///
public OverwriteMode OverwriteMode
{
get { return this._overwriteMode; }
set { this._overwriteMode = value; }
}
// Check to see if OverwriteMode property is set
internal bool IsSetOverwriteMode()
{
return this._overwriteMode != null;
}
///
/// Gets and sets the property PosixPermissions.
///
/// 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 Metadata
/// copied by DataSync.
///
///
///
/// Default value: PRESERVE
///
///
///
/// PRESERVE
: Preserve POSIX-style permissions (recommended).
///
///
///
/// NONE
: Ignore permissions.
///
///
///
/// DataSync can preserve extant permissions of a source location.
///
///
///
public PosixPermissions PosixPermissions
{
get { return this._posixPermissions; }
set { this._posixPermissions = value; }
}
// Check to see if PosixPermissions property is set
internal bool IsSetPosixPermissions()
{
return this._posixPermissions != null;
}
///
/// Gets and sets the property PreserveDeletedFiles.
///
/// 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.
///
///
///
/// Default value: PRESERVE
///
///
///
/// PRESERVE
: Ignore such destination files (recommended).
///
///
///
/// REMOVE
: Delete destination files that aren’t present in the source.
///
///
///
/// 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.
///
///
///
public PreserveDeletedFiles PreserveDeletedFiles
{
get { return this._preserveDeletedFiles; }
set { this._preserveDeletedFiles = value; }
}
// Check to see if PreserveDeletedFiles property is set
internal bool IsSetPreserveDeletedFiles()
{
return this._preserveDeletedFiles != null;
}
///
/// Gets and sets the property PreserveDevices.
///
/// 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.
///
///
///
/// DataSync can't copy the actual contents of these devices because they're 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
/// currently isn't supported for Amazon EFS.
///
///
public PreserveDevices PreserveDevices
{
get { return this._preserveDevices; }
set { this._preserveDevices = value; }
}
// Check to see if PreserveDevices property is set
internal bool IsSetPreserveDevices()
{
return this._preserveDevices != null;
}
///
/// Gets and sets the property SecurityDescriptorCopyFlags.
///
/// 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 how
/// DataSync handles metadata.
///
///
///
/// Default value: OWNER_DACL
///
///
///
/// OWNER_DACL
: 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 that ensures
/// sufficient permissions to files, folders, and metadata, see user.
///
///
///
/// 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.
///
///
public SmbSecurityDescriptorCopyFlags SecurityDescriptorCopyFlags
{
get { return this._securityDescriptorCopyFlags; }
set { this._securityDescriptorCopyFlags = value; }
}
// Check to see if SecurityDescriptorCopyFlags property is set
internal bool IsSetSecurityDescriptorCopyFlags()
{
return this._securityDescriptorCopyFlags != null;
}
///
/// Gets and sets the property TaskQueueing.
///
/// Specifies whether your transfer tasks should be put into a queue during certain scenarios
/// when running
/// multiple tasks. This is ENABLED
by default.
///
///
public TaskQueueing TaskQueueing
{
get { return this._taskQueueing; }
set { this._taskQueueing = value; }
}
// Check to see if TaskQueueing property is set
internal bool IsSetTaskQueueing()
{
return this._taskQueueing != null;
}
///
/// Gets and sets the property TransferMode.
///
/// Determines whether DataSync transfers only the data and metadata that differ between
/// the source and the destination location or transfers all the content from the source
/// (without comparing what's in the destination).
///
///
///
/// CHANGED
: DataSync copies only data or metadata that is new or different
/// content from the source location to the destination location.
///
///
///
/// ALL
: DataSync copies all source location content to the destination
/// (without comparing what's in the destination).
///
///
public TransferMode TransferMode
{
get { return this._transferMode; }
set { this._transferMode = value; }
}
// Check to see if TransferMode property is set
internal bool IsSetTransferMode()
{
return this._transferMode != null;
}
///
/// Gets and sets the property Uid.
///
/// Specifies the POSIX user ID (UID) of the file's owner.
///
///
///
/// For more information, see Metadata
/// copied by DataSync.
///
///
///
/// 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.
///
///
public Uid Uid
{
get { return this._uid; }
set { this._uid = value; }
}
// Check to see if Uid property is set
internal bool IsSetUid()
{
return this._uid != null;
}
///
/// Gets and sets the property VerifyMode.
///
/// Specifies how and when DataSync checks the integrity of your data during a transfer.
///
///
///
///
/// Default value: POINT_IN_TIME_CONSISTENT
///
///
///
/// ONLY_FILES_TRANSFERRED
(recommended): DataSync calculates the checksum
/// of transferred files and metadata at the source location. At the end of the transfer,
/// DataSync then compares this checksum to the checksum calculated on those files at
/// the destination.
///
///
///
/// 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 scans
/// the entire source and destination to verify that both locations are fully synchronized.
///
///
///
/// 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 doesn't run additional verification at the end of the
/// transfer. All data transmissions are still integrity-checked with checksum verification
/// during the transfer.
///
///
public VerifyMode VerifyMode
{
get { return this._verifyMode; }
set { this._verifyMode = value; }
}
// Check to see if VerifyMode property is set
internal bool IsSetVerifyMode()
{
return this._verifyMode != null;
}
}
}