import type { AgentStatus, Atime, AzureAccessTier, AzureBlobAuthenticationType, AzureBlobType, EfsInTransitEncryption, EndpointType, FilterType, Gid, HdfsAuthenticationType, HdfsDataTransferProtection, HdfsRpcProtection, LocationFilterName, LogLevel, ManifestAction, ManifestFormat, Mtime, NfsVersion, ObjectStorageServerProtocol, ObjectTags, ObjectVersionIds, Operator, OverwriteMode, PhaseStatus, PosixPermissions, PreserveDeletedFiles, PreserveDevices, ReportLevel, ReportOutputType, S3StorageClass, ScheduleDisabledBy, ScheduleStatus, SmbAuthenticationType, SmbSecurityDescriptorCopyFlags, SmbVersion, TaskExecutionStatus, TaskFilterName, TaskMode, TaskQueueing, TaskStatus, TransferMode, Uid, VerifyMode } from "./enums"; /** *

The platform-related details about the DataSync agent, such as the version * number.

* @public */ export interface Platform { /** *

The version of the DataSync agent.

* @public */ Version?: string | undefined; } /** *

Represents a single entry in a list (or array) of DataSync agents when * you call the ListAgents operation.

* @public */ export interface AgentListEntry { /** *

The Amazon Resource Name (ARN) of a DataSync agent.

* @public */ AgentArn?: string | undefined; /** *

The name of an agent.

* @public */ Name?: string | undefined; /** *

The status of an agent.

* * @public */ Status?: AgentStatus | undefined; /** *

The platform-related details about the agent, such as the version number.

* @public */ Platform?: Platform | undefined; } /** *

The shared access signature (SAS) configuration that allows DataSync to * access your Microsoft Azure Blob Storage.

*

For more information, see SAS * tokens for accessing your Azure Blob Storage.

* @public */ export interface AzureBlobSasConfiguration { /** *

Specifies a SAS token that provides permissions to access your Azure Blob Storage.

*

The token is part of the SAS URI string that comes after the storage resource URI and a * question mark. A token looks something like this:

*

* sp=r&st=2023-12-20T14:54:52Z&se=2023-12-20T22:54:52Z&spr=https&sv=2021-06-08&sr=c&sig=aBBKDWQvyuVcTPH9EBp%2FXTI9E%2F%2Fmq171%2BZU178wcwqU%3D *

* @public */ Token: string | undefined; } /** *

CancelTaskExecutionRequest

* @public */ export interface CancelTaskExecutionRequest { /** *

The Amazon Resource Name (ARN) of the task execution to stop.

* @public */ TaskExecutionArn: string | undefined; } /** * @public */ export interface CancelTaskExecutionResponse { } /** *

Specifies configuration information for a DataSync-managed secret, such as an * authentication token, secret key, password, or Kerberos keytab that DataSync uses * to access a specific storage location, with a customer-managed KMS key.

* *

You can use either CmkSecretConfig or CustomSecretConfig to * provide credentials for a CreateLocation request. Do not provide both * parameters for the same request.

*
* @public */ export interface CmkSecretConfig { /** *

Specifies the ARN for the DataSync-managed Secrets Manager secret that * that is used to access a specific storage location. This property is generated by DataSync and is read-only. DataSync encrypts this secret with the KMS key that you specify for KmsKeyArn.

* @public */ SecretArn?: string | undefined; /** *

Specifies the ARN for the customer-managed KMS key that DataSync uses to encrypt the DataSync-managed secret stored for * SecretArn. DataSync provides this key to Secrets Manager.

* @public */ KmsKeyArn?: string | undefined; } /** *

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

* @public */ export interface TagListEntry { /** *

The key for an Amazon Web Services resource tag.

* @public */ Key: string | undefined; /** *

The value for an Amazon Web Services resource tag.

* @public */ Value?: string | undefined; } /** *

CreateAgentRequest

* @public */ export interface CreateAgentRequest { /** *

Specifies your DataSync agent's activation key. If you don't have an * activation key, see Activating your agent.

* @public */ ActivationKey: string | undefined; /** *

Specifies a name for your agent. We recommend specifying a name that you can * remember.

* @public */ AgentName?: string | undefined; /** *

Specifies labels that help you categorize, filter, and search for your Amazon Web Services resources. We recommend creating at least one tag for your agent.

* @public */ Tags?: TagListEntry[] | undefined; /** *

Specifies the ID of the VPC service * endpoint that you're using. For example, a VPC endpoint ID looks like * vpce-01234d5aff67890e1.

* *

The VPC service endpoint you use must include the DataSync service name (for * example, com.amazonaws.us-east-2.datasync).

*
* @public */ VpcEndpointId?: string | undefined; /** *

Specifies the ARN of the subnet where your VPC service endpoint is located. You can only * specify one ARN.

* @public */ SubnetArns?: string[] | undefined; /** *

Specifies the Amazon Resource Name (ARN) of the security group that allows traffic between * your agent and VPC service endpoint. You can only specify one ARN.

* @public */ SecurityGroupArns?: string[] | undefined; } /** *

CreateAgentResponse

* @public */ export interface CreateAgentResponse { /** *

The ARN of the agent that you just activated. Use the ListAgents operation to return a * list of agents in your Amazon Web Services account and Amazon Web Services Region.

* @public */ AgentArn?: string | undefined; } /** *

Specifies configuration information for a customer-managed Secrets Manager secret where * a storage location credentials is stored in Secrets Manager as plain text (for authentication * token, secret key, or password) or as binary (for Kerberos keytab). This configuration includes * the secret ARN, and the ARN for an IAM role that provides access to the secret.

* *

You can use either CmkSecretConfig or CustomSecretConfig to * provide credentials for a CreateLocation request. Do not provide both * parameters for the same request.

*
* @public */ export interface CustomSecretConfig { /** *

Specifies the ARN for an Secrets Manager secret.

* @public */ SecretArn?: string | undefined; /** *

Specifies the ARN for the Identity and Access Management role that DataSync uses to * access the secret specified for SecretArn.

* @public */ SecretAccessRoleArn?: string | undefined; } /** * @public */ export interface CreateLocationAzureBlobRequest { /** *

Specifies the URL of the Azure Blob Storage container involved in your transfer.

* @public */ ContainerUrl: string | undefined; /** *

Specifies the authentication method DataSync uses to access your Azure Blob * Storage. DataSync can access blob storage using a shared access signature * (SAS).

* @public */ AuthenticationType: AzureBlobAuthenticationType | undefined; /** *

Specifies the SAS configuration that allows DataSync to access your Azure Blob * Storage.

* *

If you provide an authentication token using SasConfiguration, but do not * provide secret configuration details using CmkSecretConfig or * CustomSecretConfig, then DataSync stores the token using your * Amazon Web Services account's secrets manager secret.

*
* @public */ SasConfiguration?: AzureBlobSasConfiguration | undefined; /** *

Specifies the type of blob that you want your objects or files to be when transferring * them into Azure Blob Storage. Currently, DataSync only supports moving data into * Azure Blob Storage as block blobs. For more information on blob types, see the Azure Blob Storage documentation.

* @public */ BlobType?: AzureBlobType | undefined; /** *

Specifies the access tier that you want your objects or files transferred into. This only * applies when using the location as a transfer destination. For more information, see Access tiers.

* @public */ AccessTier?: AzureAccessTier | undefined; /** *

Specifies path segments if you want to limit your transfer to a virtual directory in your * container (for example, /my/images).

* @public */ Subdirectory?: string | undefined; /** *

(Optional) Specifies the Amazon Resource Name (ARN) of the DataSync agent that * can connect with your Azure Blob Storage container. If you are setting up an agentless * cross-cloud transfer, you do not need to specify a value for this parameter.

*

You can specify more than one agent. For more information, see Using multiple * agents for your transfer.

* *

Make sure you configure this parameter correctly when you first create your storage * location. You cannot add or remove agents from a storage location after you create * it.

*
* @public */ AgentArns?: string[] | undefined; /** *

Specifies labels that help you categorize, filter, and search for your Amazon Web Services * resources. We recommend creating at least a name tag for your transfer location.

* @public */ Tags?: TagListEntry[] | undefined; /** *

Specifies configuration information for a DataSync-managed secret, which * includes the authentication token that DataSync uses to access a specific AzureBlob * storage location, with a customer-managed KMS key.

*

When you include this parameter as part of a CreateLocationAzureBlob request, * you provide only the KMS key ARN. DataSync uses this KMS key together with the authentication token you specify for * SasConfiguration to create a DataSync-managed secret to store the * location access credentials.

*

Make sure that DataSync has permission to access the KMS key that * you specify. For more information, see * Using a service-managed secret encrypted with a custom KMS key.

* *

You can use either CmkSecretConfig (with SasConfiguration) or * CustomSecretConfig (without SasConfiguration) to provide * credentials for a CreateLocationAzureBlob request. Do not provide both * parameters for the same request.

*
* @public */ CmkSecretConfig?: CmkSecretConfig | undefined; /** *

Specifies configuration information for a customer-managed Secrets Manager secret where * the authentication token for an AzureBlob storage location is stored in plain text, in Secrets * Manager. This configuration includes the secret ARN, and the ARN for an IAM role * that provides access to the secret. For more information, see * Using a secret that you manage.

* *

You can use either CmkSecretConfig (with SasConfiguration) or * CustomSecretConfig (without SasConfiguration) to provide * credentials for a CreateLocationAzureBlob request. Do not provide both * parameters for the same request.

*
* @public */ CustomSecretConfig?: CustomSecretConfig | undefined; } /** * @public */ export interface CreateLocationAzureBlobResponse { /** *

The ARN of the Azure Blob Storage transfer location that you created.

* @public */ LocationArn?: string | undefined; } /** *

The subnet and security groups that DataSync uses to connect to one of your * Amazon EFS file system's mount targets.

* @public */ export interface Ec2Config { /** *

Specifies the ARN of a subnet where DataSync creates the network interfaces for managing traffic during your transfer.

*

The subnet must be located:

* * *

You don't need to specify a subnet that includes a file system mount target.

*
* @public */ SubnetArn: string | undefined; /** *

Specifies the Amazon Resource Names (ARNs) of the security groups associated with an * Amazon EFS file system's mount target.

* @public */ SecurityGroupArns: string[] | undefined; } /** *

CreateLocationEfsRequest

* @public */ export interface CreateLocationEfsRequest { /** *

Specifies a mount path for your Amazon EFS file system. This is where DataSync reads or writes data on your file system (depending on if this is a source or * destination location).

*

By default, DataSync uses the root directory (or access point if you provide one by using * AccessPointArn). You can also include subdirectories using forward slashes (for * example, /path/to/folder).

* @public */ Subdirectory?: string | undefined; /** *

Specifies the ARN for your Amazon EFS file system.

* @public */ EfsFilesystemArn: string | undefined; /** *

Specifies the subnet and security groups DataSync uses to connect to one of * your Amazon EFS file system's mount targets.

* @public */ Ec2Config: Ec2Config | undefined; /** *

Specifies the key-value pair that represents a tag that you want to add to the * resource. The value can be an empty string. This value helps you manage, filter, and search * for your resources. We recommend that you create a name tag for your location.

* @public */ Tags?: TagListEntry[] | undefined; /** *

Specifies the Amazon Resource Name (ARN) of the access point that DataSync uses * to mount your Amazon EFS file system.

*

For more information, see Accessing * restricted file systems.

* @public */ AccessPointArn?: string | undefined; /** *

Specifies an Identity and Access Management (IAM) role that allows DataSync to access your Amazon EFS file system.

*

For information on creating this role, see Creating a DataSync * IAM role for file system access.

* @public */ FileSystemAccessRoleArn?: string | undefined; /** *

Specifies whether you want DataSync to use Transport Layer Security (TLS) 1.2 * encryption when it transfers data to or from your Amazon EFS file system.

*

If you specify an access point using AccessPointArn or an IAM * role using FileSystemAccessRoleArn, you must set this parameter to * TLS1_2.

* @public */ InTransitEncryption?: EfsInTransitEncryption | undefined; } /** *

CreateLocationEfs

* @public */ export interface CreateLocationEfsResponse { /** *

The Amazon Resource Name (ARN) of the Amazon EFS file system location that you * create.

* @public */ LocationArn?: string | undefined; } /** * @public */ export interface CreateLocationFsxLustreRequest { /** *

Specifies the Amazon Resource Name (ARN) of the FSx for Lustre file * system.

* @public */ FsxFilesystemArn: string | undefined; /** *

Specifies the Amazon Resource Names (ARNs) of up to five security groups that provide * access to your FSx for Lustre file system.

*

The security groups must be able to access the file system's ports. The file system must * also allow access from the security groups. For information about file system access, see the * * Amazon FSx for Lustre User Guide * .

* @public */ SecurityGroupArns: string[] | undefined; /** *

Specifies a mount path for your FSx for Lustre file system. The path can include * subdirectories.

*

When the location is used as a source, DataSync reads data from the mount path. * When the location is used as a destination, DataSync writes data to the mount path. * If you don't include this parameter, DataSync uses the file system's root directory * (/).

* @public */ Subdirectory?: string | undefined; /** *

Specifies labels that help you categorize, filter, and search for your Amazon Web Services * resources. We recommend creating at least a name tag for your location.

* @public */ Tags?: TagListEntry[] | undefined; } /** * @public */ export interface CreateLocationFsxLustreResponse { /** *

The Amazon Resource Name (ARN) of the FSx for Lustre file system location that * you created.

* @public */ LocationArn?: string | undefined; } /** *

Specifies how DataSync can access a location using the NFS protocol.

* @public */ export interface NfsMountOptions { /** *

Specifies the NFS version that you want DataSync to use when mounting your NFS * share. If the server refuses to use the version specified, the task fails.

*

You can specify the following options:

* * *

DataSync currently only supports NFS version 3 with Amazon FSx for NetApp ONTAP locations.

*
* @public */ Version?: NfsVersion | undefined; } /** *

Specifies the Network File System (NFS) protocol configuration that DataSync * uses to access your FSx for OpenZFS file system or FSx for ONTAP file * system's storage virtual machine (SVM).

* @public */ export interface FsxProtocolNfs { /** *

Specifies how DataSync can access a location using the NFS protocol.

* @public */ MountOptions?: NfsMountOptions | undefined; } /** *

Specifies configuration information for a DataSync-managed secret, such as an * authentication token or set of credentials that DataSync uses to access a specific * transfer location. DataSync uses the default Amazon Web Services-managed KMS key to encrypt this secret in Secrets Manager.

* @public */ export interface ManagedSecretConfig { /** *

Specifies the ARN for an Secrets Manager secret.

* @public */ SecretArn?: string | undefined; } /** *

Specifies the version of the Server Message Block (SMB) protocol that DataSync uses to access an SMB file server.

* @public */ export interface SmbMountOptions { /** *

By default, DataSync automatically chooses an SMB protocol version based on * negotiation with your SMB file server. You also can configure DataSync to use a * specific SMB version, but we recommend doing this only if DataSync has trouble * negotiating with the SMB file server automatically.

*

These are the following options for configuring the SMB version:

* * @public */ Version?: SmbVersion | undefined; } /** *

Specifies the Server Message Block (SMB) protocol configuration that DataSync uses to access your Amazon FSx for NetApp ONTAP file system's storage virtual machine * (SVM). For more information, see Providing DataSync access to FSx for ONTAP file systems.

* @public */ export interface FsxProtocolSmb { /** *

Specifies the name of the Windows domain that your storage virtual machine (SVM) belongs * to.

*

If you have multiple domains in your environment, configuring this setting makes sure that * DataSync connects to the right SVM.

*

If you have multiple Active Directory domains in your environment, configuring this * parameter makes sure that DataSync connects to the right SVM.

* @public */ Domain?: string | undefined; /** *

Specifies the version of the Server Message Block (SMB) protocol that DataSync uses to access an SMB file server.

* @public */ MountOptions?: SmbMountOptions | undefined; /** *

Specifies the password of a user who has permission to access your SVM.

* @public */ Password?: string | undefined; /** *

Specifies a user that can mount and access the files, folders, and metadata in your * SVM.

*

For information about choosing a user with the right level of access for your transfer, * see Using * the SMB protocol.

* @public */ User: string | undefined; /** *

Describes configuration information for a DataSync-managed secret, such as a * Password that DataSync uses to access * a specific storage location. DataSync uses the default Amazon Web Services-managed * KMS key to encrypt this secret in Secrets Manager.

* *

Do not provide this for a CreateLocation request. ManagedSecretConfig * is a ReadOnly property and is only be populated in the DescribeLocation * response.

*
* @public */ ManagedSecretConfig?: ManagedSecretConfig | undefined; /** *

Specifies configuration information for a DataSync-managed secret, which * includes the password that DataSync uses to access a specific FSx for ONTAP * storage location (using SMB), with a customer-managed KMS key.

*

When you include this parameter as part of a CreateLocationFsxOntap request, * you provide only the KMS key ARN. DataSync uses this KMS key together with the Password you specify for * to create a DataSync-managed secret to store the location access credentials.

*

Make sure that DataSync has permission to access the KMS key that * you specify. For more information, see * Using a service-managed secret encrypted with a custom KMS key.

* *

You can use either CmkSecretConfig (with Password) or * CustomSecretConfig (without Password) to provide * credentials for a CreateLocationFsxOntap request. Do not provide both * parameters for the same request.

*
* @public */ CmkSecretConfig?: CmkSecretConfig | undefined; /** *

Specifies configuration information for a customer-managed Secrets Manager secret where * the password for an FSx for ONTAP storage location (using SMB) is stored in plain text, * in Secrets Manager. This configuration includes the secret ARN, and the ARN for * an IAM role that provides access to the secret. For more information, see * Using a secret that you manage.

* *

You can use either CmkSecretConfig (with Password) or * CustomSecretConfig (without Password) to provide * credentials for a CreateLocationFsxOntap request. Do not provide both * parameters for the same request.

*
* @public */ CustomSecretConfig?: CustomSecretConfig | undefined; } /** *

Specifies the data transfer protocol that DataSync uses to access your * Amazon FSx file system.

* @public */ export interface FsxProtocol { /** *

Specifies the Network File System (NFS) protocol configuration that DataSync * uses to access your FSx for OpenZFS file system or FSx for ONTAP file * system's storage virtual machine (SVM).

* @public */ NFS?: FsxProtocolNfs | undefined; /** *

Specifies the Server Message Block (SMB) protocol configuration that DataSync * uses to access your FSx for ONTAP file system's SVM.

* @public */ SMB?: FsxProtocolSmb | undefined; } /** * @public */ export interface CreateLocationFsxOntapRequest { /** *

Specifies the data transfer protocol that DataSync uses to access your * Amazon FSx file system.

* @public */ Protocol: FsxProtocol | undefined; /** *

Specifies the Amazon EC2 security groups that provide access to your file system's * preferred subnet.

*

The security groups must allow outbound traffic on the following ports (depending on the * protocol you use):

* *

Your file system's security groups must also allow inbound traffic on the same * ports.

* @public */ SecurityGroupArns: string[] | undefined; /** *

Specifies the ARN of the storage virtual machine (SVM) in your file system where you want * to copy data to or from.

* @public */ StorageVirtualMachineArn: string | undefined; /** *

Specifies a path to the file share in the SVM where you want to transfer data to or * from.

*

You can specify a junction path (also known as a mount point), qtree path (for NFS file * shares), or share name (for SMB file shares). For example, your mount path might be * /vol1, /vol1/tree1, or /share1.

* *

Don't specify a junction path in the SVM's root volume. For more information, see Managing FSx for ONTAP storage virtual machines in the Amazon FSx for NetApp ONTAP User Guide.

*
* @public */ Subdirectory?: string | undefined; /** *

Specifies labels that help you categorize, filter, and search for your Amazon Web Services * resources. We recommend creating at least a name tag for your location.

* @public */ Tags?: TagListEntry[] | undefined; } /** * @public */ export interface CreateLocationFsxOntapResponse { /** *

Specifies the ARN of the FSx for ONTAP file system location that you * create.

* @public */ LocationArn?: string | undefined; } /** * @public */ export interface CreateLocationFsxOpenZfsRequest { /** *

The Amazon Resource Name (ARN) of the FSx for OpenZFS file system.

* @public */ FsxFilesystemArn: string | undefined; /** *

The type of protocol that DataSync uses to access your file system.

* @public */ Protocol: FsxProtocol | undefined; /** *

The ARNs of the security groups that are used to configure the FSx for OpenZFS file * system.

* @public */ SecurityGroupArns: string[] | undefined; /** *

A subdirectory in the location's path that must begin with /fsx. DataSync uses this subdirectory to read or write data (depending on whether the file * system is a source or destination location).

* @public */ Subdirectory?: string | undefined; /** *

The key-value pair that represents a tag that you want to add to the resource. The value * can be an empty string. This value helps you manage, filter, and search for your resources. We * recommend that you create a name tag for your location.

* @public */ Tags?: TagListEntry[] | undefined; } /** * @public */ export interface CreateLocationFsxOpenZfsResponse { /** *

The ARN of the FSx for OpenZFS file system location that you created.

* @public */ LocationArn?: string | undefined; } /** * @public */ export interface CreateLocationFsxWindowsRequest { /** *

Specifies a mount path for your file system using forward slashes. This is where DataSync reads or writes data (depending on if this is a source or destination * location).

* @public */ Subdirectory?: string | undefined; /** *

Specifies the Amazon Resource Name (ARN) for the FSx for Windows File Server file * system.

* @public */ FsxFilesystemArn: string | undefined; /** *

Specifies the ARNs of the Amazon EC2 security groups that provide access to your * file system's preferred subnet.

*

The security groups that you specify must be able to communicate with your file system's * security groups. For information about configuring security groups for file system access, see * the * Amazon FSx for Windows File Server User Guide * .

* *

If you choose a security group that doesn't allow connections from within itself, do one * of the following:

* *
* @public */ SecurityGroupArns: string[] | undefined; /** *

Specifies labels that help you categorize, filter, and search for your Amazon Web Services * resources. We recommend creating at least a name tag for your location.

* @public */ Tags?: TagListEntry[] | undefined; /** *

Specifies the user with the permissions to mount and access the files, folders, and file * metadata in your FSx for Windows File Server file system.

*

For information about choosing a user with the right level of access for your transfer, * see required permissions for FSx for Windows File Server locations.

* @public */ User: string | undefined; /** *

Specifies the name of the Windows domain that the FSx for Windows File Server file system * belongs to.

*

If you have multiple Active Directory domains in your environment, configuring this * parameter makes sure that DataSync connects to the right file system.

* @public */ Domain?: string | undefined; /** *

Specifies the password of the user with the permissions to mount and access the files, * folders, and file metadata in your FSx for Windows File Server file system.

* @public */ Password?: string | undefined; /** *

Specifies configuration information for a DataSync-managed secret, which * includes the password that DataSync uses to access a specific FSx Windows * storage location, with a customer-managed KMS key.

*

When you include this parameter as part of a CreateLocationFsxWindows request, * you provide only the KMS key ARN. DataSync uses this KMS key together with the Password you specify for * to create a DataSync-managed secret to store the location access credentials.

*

Make sure that DataSync has permission to access the KMS key that * you specify. For more information, see * Using a service-managed secret encrypted with a custom KMS key.

* *

You can use either CmkSecretConfig (with Password) or * CustomSecretConfig (without Password) to provide * credentials for a CreateLocationFsxWindows request. Do not provide both * parameters for the same request.

*
* @public */ CmkSecretConfig?: CmkSecretConfig | undefined; /** *

Specifies configuration information for a customer-managed Secrets Manager secret where * the password for an FSx for Windows File Server storage location is stored in plain text, in Secrets * Manager. This configuration includes the secret ARN, and the ARN for an IAM role * that provides access to the secret. For more information, see * Using a secret that you manage.

* *

You can use either CmkSecretConfig (with Password) or * CustomSecretConfig (without Password) to provide * credentials for a CreateLocationFsxWindows request. Do not provide both * parameters for the same request.

*
* @public */ CustomSecretConfig?: CustomSecretConfig | undefined; } /** * @public */ export interface CreateLocationFsxWindowsResponse { /** *

The ARN of the FSx for Windows File Server file system location you created.

* @public */ LocationArn?: string | undefined; } /** *

The NameNode of the Hadoop Distributed File System (HDFS). The NameNode manages the file * system's namespace. The NameNode performs operations such as opening, closing, and renaming * files and directories. The NameNode contains the information to map blocks of data to the * DataNodes.

* @public */ export interface HdfsNameNode { /** *

The hostname of the NameNode in the HDFS cluster. This value is the IP address or Domain * Name Service (DNS) name of the NameNode. An agent that's installed on-premises uses this * hostname to communicate with the NameNode in the network.

* @public */ Hostname: string | undefined; /** *

The port that the NameNode uses to listen to client requests.

* @public */ Port: number | undefined; } /** *

The Quality of Protection (QOP) configuration specifies the Remote Procedure Call (RPC) * and data transfer privacy settings configured on the Hadoop Distributed File System (HDFS) * cluster.

* @public */ export interface QopConfiguration { /** *

The RPC protection setting configured on the HDFS cluster. This setting corresponds to * your hadoop.rpc.protection setting in your core-site.xml file on * your Hadoop cluster.

* @public */ RpcProtection?: HdfsRpcProtection | undefined; /** *

The data transfer protection setting configured on the HDFS cluster. This setting * corresponds to your dfs.data.transfer.protection setting in the * hdfs-site.xml file on your Hadoop cluster.

* @public */ DataTransferProtection?: HdfsDataTransferProtection | undefined; } /** * @public */ export interface CreateLocationHdfsRequest { /** *

A subdirectory in the HDFS cluster. This subdirectory is used to read data from or write * data to the HDFS cluster. If the subdirectory isn't specified, it will default to * /.

* @public */ Subdirectory?: string | undefined; /** *

The NameNode that manages the HDFS namespace. The NameNode performs operations such as * opening, closing, and renaming files and directories. The NameNode contains the information to * map blocks of data to the DataNodes.

*

The number of NameNodes you can specify depends on the task mode:

* * @public */ NameNodes: HdfsNameNode[] | undefined; /** *

The size of data blocks to write into the HDFS cluster. The block size must be a multiple * of 512 bytes. The default block size is 128 mebibytes (MiB).

* @public */ BlockSize?: number | undefined; /** *

The number of DataNodes to replicate the data to when writing to the HDFS cluster. By * default, data is replicated to three DataNodes.

* @public */ ReplicationFactor?: number | undefined; /** *

The URI of the HDFS cluster's Key Management Server (KMS).

* @public */ KmsKeyProviderUri?: string | undefined; /** *

The Quality of Protection (QOP) configuration specifies the Remote Procedure Call (RPC) * and data transfer protection settings configured on the Hadoop Distributed File System (HDFS) * cluster. If QopConfiguration isn't specified, RpcProtection and * DataTransferProtection default to PRIVACY. If you set * RpcProtection or DataTransferProtection, the other parameter * assumes the same value.

* @public */ QopConfiguration?: QopConfiguration | undefined; /** *

The type of authentication used to determine the identity of the user.

* @public */ AuthenticationType: HdfsAuthenticationType | undefined; /** *

The user name used to identify the client on the host operating system.

* *

If SIMPLE is specified for AuthenticationType, this parameter * is required.

*
* @public */ SimpleUser?: string | undefined; /** *

The Kerberos principal with access to the files and folders on the HDFS cluster.

* *

If KERBEROS is specified for AuthenticationType, this * parameter is required.

*
* @public */ KerberosPrincipal?: string | undefined; /** *

The Kerberos key table (keytab) that contains mappings between the defined Kerberos * principal and the encrypted keys. You can load the keytab from a file by providing the file's * address.

* *

If KERBEROS is specified for AuthenticationType, this * parameter is required.

*
* @public */ KerberosKeytab?: Uint8Array | undefined; /** *

The krb5.conf file that contains the Kerberos configuration information. You * can load the krb5.conf file by providing the file's address. If you're using the * CLI, it performs the base64 encoding for you. Otherwise, provide the * base64-encoded text.

* *

If KERBEROS is specified for AuthenticationType, this * parameter is required.

*
* @public */ KerberosKrb5Conf?: Uint8Array | undefined; /** *

The Amazon Resource Names (ARNs) of the DataSync agents that can connect to your * HDFS cluster.

* @public */ AgentArns: string[] | undefined; /** *

The key-value pair that represents the tag that you want to add to the location. The value * can be an empty string. We recommend using tags to name your resources.

* @public */ Tags?: TagListEntry[] | undefined; /** *

Specifies configuration information for a DataSync-managed secret, which * includes the Kerberos keytab that DataSync uses to access a specific Hadoop * Distributed File System (HDFS) storage location, with a * customer-managed KMS key.

*

When you include this parameter as part of a CreateLocationHdfs request, * you provide only the KMS key ARN. DataSync uses this KMS key together with the KerberosKeytab you specify for * to create a DataSync-managed secret to store the location access credentials.

*

Make sure that DataSync has permission to access the KMS key that * you specify. For more information, see * Using a service-managed secret encrypted with a custom KMS key.

* *

You can use either CmkSecretConfig (with KerberosKeytab) or * CustomSecretConfig (without KerberosKeytab) to provide * credentials for a CreateLocationHdfs request. Do not provide both * parameters for the same request.

*
* @public */ CmkSecretConfig?: CmkSecretConfig | undefined; /** *

Specifies configuration information for a customer-managed Secrets Manager secret where * the Kerberos keytab for the HDFS storage location is stored in binary, in Secrets * Manager. This configuration includes the secret ARN, and the ARN for an IAM role * that provides access to the secret. For more information, see * Using a secret that you manage.

* *

You can use either CmkSecretConfig (with KerberosKeytab) or * CustomSecretConfig (without KerberosKeytab) to provide * credentials for a CreateLocationHdfs request. Do not provide both * parameters for the same request.

*
* @public */ CustomSecretConfig?: CustomSecretConfig | undefined; } /** * @public */ export interface CreateLocationHdfsResponse { /** *

The ARN of the source HDFS cluster location that you create.

* @public */ LocationArn?: string | undefined; } /** *

The DataSync agents that can connect to your Network File System (NFS) * file server.

* @public */ export interface OnPremConfig { /** *

The Amazon Resource Names (ARNs) of the DataSync agents that can connect to * your NFS file server.

*

You can specify more than one agent. For more information, see Using multiple DataSync agents.

* @public */ AgentArns: string[] | undefined; } /** *

CreateLocationNfsRequest

* @public */ export interface CreateLocationNfsRequest { /** *

Specifies the export path in your NFS file server that you want DataSync to * mount.

*

This path (or a subdirectory of the path) is where DataSync transfers data to * or from. For information on configuring an export for DataSync, see Accessing NFS file servers.

* @public */ Subdirectory: string | undefined; /** *

Specifies the DNS name or IP address (IPv4 or IPv6) of the NFS file server that your DataSync agent connects to.

* @public */ ServerHostname: string | undefined; /** *

Specifies the Amazon Resource Name (ARN) of the DataSync agent that can * connect to your NFS file server.

*

You can specify more than one agent. For more information, see Using multiple DataSync agents.

* @public */ OnPremConfig: OnPremConfig | undefined; /** *

Specifies the options that DataSync can use to mount your NFS file * server.

* @public */ MountOptions?: NfsMountOptions | undefined; /** *

Specifies labels that help you categorize, filter, and search for your Amazon Web Services resources. We recommend creating at least a name tag for your location.

* @public */ Tags?: TagListEntry[] | undefined; } /** *

CreateLocationNfsResponse

* @public */ export interface CreateLocationNfsResponse { /** *

The ARN of the transfer location that you created for your NFS file server.

* @public */ LocationArn?: string | undefined; } /** *

CreateLocationObjectStorageRequest

* @public */ export interface CreateLocationObjectStorageRequest { /** *

Specifies the domain name or IP address (IPv4 or IPv6) of the object storage server that * your DataSync agent connects to.

* @public */ ServerHostname: string | undefined; /** *

Specifies the port that your object storage server accepts inbound network traffic on (for * example, port 443).

* @public */ ServerPort?: number | undefined; /** *

Specifies the protocol that your object storage server uses to communicate. If not specified, the default * value is HTTPS.

* @public */ ServerProtocol?: ObjectStorageServerProtocol | undefined; /** *

Specifies the object prefix for your object storage server. If this is a source location, * DataSync only copies objects with this prefix. If this is a destination location, * DataSync writes all objects with this prefix.

* @public */ Subdirectory?: string | undefined; /** *

Specifies the name of the object storage bucket involved in the transfer.

* @public */ BucketName: string | undefined; /** *

Specifies the access key (for example, a user name) if credentials are required to * authenticate with the object storage server.

* @public */ AccessKey?: string | undefined; /** *

Specifies the secret key (for example, a password) if credentials are required to * authenticate with the object storage server.

* *

If you provide a secret using SecretKey, but do not provide secret * configuration details using CmkSecretConfig or CustomSecretConfig, * then DataSync stores the token using your Amazon Web Services account's Secrets Manager secret.

*
* @public */ SecretKey?: string | undefined; /** *

(Optional) Specifies the Amazon Resource Names (ARNs) of the DataSync agents * that can connect with your object storage system. If you are setting up an agentless * cross-cloud transfer, you do not need to specify a value for this parameter.

* *

Make sure you configure this parameter correctly when you first create your storage * location. You cannot add or remove agents from a storage location after you create * it.

*
* @public */ AgentArns?: string[] | undefined; /** *

Specifies the key-value pair that represents a tag that you want to add to the resource. * Tags can help you manage, filter, and search for your resources. We recommend creating a name * tag for your location.

* @public */ Tags?: TagListEntry[] | undefined; /** *

Specifies a certificate chain for DataSync to authenticate with your object * storage system if the system uses a private or self-signed certificate authority (CA). You * must specify a single .pem file with a full certificate chain (for example, * file:///home/user/.ssh/object_storage_certificates.pem).

*

The certificate chain might include:

* *

You can concatenate your certificates into a .pem file (which can be up to * 32768 bytes before base64 encoding). The following example cat command creates an * object_storage_certificates.pem file that includes three certificates:

*

* cat object_server_certificate.pem intermediate_certificate.pem * ca_root_certificate.pem > object_storage_certificates.pem *

*

To use this parameter, configure ServerProtocol to HTTPS.

* @public */ ServerCertificate?: Uint8Array | undefined; /** *

Specifies configuration information for a DataSync-managed secret, which * includes the SecretKey that DataSync uses to access a specific object * storage location, with a customer-managed KMS key.

*

When you include this parameter as part of a CreateLocationObjectStorage * request, you provide only the KMS key ARN. DataSync uses this KMS key together with the value you specify for the SecretKey parameter * to create a DataSync-managed secret to store the location access credentials.

*

Make sure that DataSync has permission to access the KMS key that * you specify. For more information, see * Using a service-managed secret encrypted with a custom KMS key.

* *

You can use either CmkSecretConfig (with SecretKey) or * CustomSecretConfig (without SecretKey) to provide credentials * for a CreateLocationObjectStorage request. Do not provide both parameters for * the same request.

*
* @public */ CmkSecretConfig?: CmkSecretConfig | undefined; /** *

Specifies configuration information for a customer-managed Secrets Manager secret where * the secret key for a specific object storage location is stored in plain text, in Secrets Manager. * This configuration includes the secret ARN, and the ARN for an IAM role that * provides access to the secret. For more information, see * Using a secret that you manage.

* *

You can use either CmkSecretConfig (with SecretKey) or * CustomSecretConfig (without SecretKey) to provide credentials * for a CreateLocationObjectStorage request. Do not provide both parameters for * the same request.

*
* @public */ CustomSecretConfig?: CustomSecretConfig | undefined; } /** *

CreateLocationObjectStorageResponse

* @public */ export interface CreateLocationObjectStorageResponse { /** *

Specifies the ARN of the object storage system location that you create.

* @public */ LocationArn?: string | undefined; } /** *

Specifies the Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that DataSync uses to access your S3 bucket.

*

For more information, see Providing * DataSync access to S3 buckets.

* @public */ export interface S3Config { /** *

Specifies the ARN of the IAM role that DataSync uses to access * your S3 bucket.

* @public */ BucketAccessRoleArn: string | undefined; } /** *

CreateLocationS3Request

* @public */ export interface CreateLocationS3Request { /** *

Specifies a prefix in the S3 bucket that DataSync reads from or writes to * (depending on whether the bucket is a source or destination location).

* *

DataSync can't transfer objects with a prefix that begins with a slash (/) * or includes //, /./, or /../ patterns. For * example:

* *
* @public */ Subdirectory?: string | undefined; /** *

Specifies the ARN of the S3 bucket that you want to use as a location. (When creating * your DataSync task later, you specify whether this location is a transfer source or * destination.)

*

If your S3 bucket is located on an Outposts resource, you must specify an * Amazon S3 access point. For more information, see Managing data access * with Amazon S3 access points in the Amazon S3 User * Guide.

* @public */ S3BucketArn: string | undefined; /** *

Specifies the storage class that you want your objects to use when Amazon S3 is a * transfer destination.

*

For buckets in Amazon Web Services Regions, the storage class defaults to * STANDARD. For buckets on Outposts, the storage class defaults to * OUTPOSTS.

*

For more information, see Storage class * considerations with Amazon S3 transfers.

* @public */ S3StorageClass?: S3StorageClass | undefined; /** *

Specifies the Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that DataSync uses to access your S3 bucket.

*

For more information, see Providing * DataSync access to S3 buckets.

* @public */ S3Config: S3Config | undefined; /** *

(Amazon S3 on Outposts only) Specifies the Amazon Resource Name (ARN) of the * DataSync agent on your Outpost.

*

For more information, see Deploy your DataSync agent on Outposts.

* @public */ AgentArns?: string[] | undefined; /** *

Specifies labels that help you categorize, filter, and search for your Amazon Web Services resources. We recommend creating at least a name tag for your transfer location.

* @public */ Tags?: TagListEntry[] | undefined; } /** *

CreateLocationS3Response

* @public */ export interface CreateLocationS3Response { /** *

The ARN of the S3 location that you created.

* @public */ LocationArn?: string | undefined; } /** *

CreateLocationSmbRequest

* @public */ export interface CreateLocationSmbRequest { /** *

Specifies the name of the share exported by your SMB file server where DataSync * will read or write data. You can include a subdirectory in the share path (for example, * /path/to/subdirectory). Make sure that other SMB clients in your network can * also mount this path.

*

To copy all data in the subdirectory, DataSync must be able to mount the SMB * share and access all of its data. For more information, see Providing DataSync access to SMB file servers.

* @public */ Subdirectory: string | undefined; /** *

Specifies the domain name or IP address (IPv4 or IPv6) of the SMB file server that your DataSync agent connects to.

* *

If you're using Kerberos authentication, you must specify a domain name.

*
* @public */ ServerHostname: string | undefined; /** *

Specifies the user that can mount and access the files, folders, and file metadata in your * SMB file server. This parameter applies only if AuthenticationType is set to * NTLM.

*

For information about choosing a user with the right level of access for your transfer, * see Providing DataSync access to SMB file servers.

* @public */ User?: string | undefined; /** *

Specifies the Windows domain name that your SMB file server belongs to. This parameter * applies only if AuthenticationType is set to NTLM.

*

If you have multiple domains in your environment, configuring this parameter makes sure * that DataSync connects to the right file server.

* @public */ Domain?: string | undefined; /** *

Specifies the password of the user who can mount your SMB file server and has permission * to access the files and folders involved in your transfer. This parameter applies only if * AuthenticationType is set to NTLM.

* @public */ Password?: string | undefined; /** *

Specifies configuration information for a DataSync-managed secret, either a * Password or KerberosKeytab (for NTLM (default) and * KERBEROS authentication types, respectively) that DataSync uses to * access a specific SMB storage location, with a customer-managed KMS key.

*

When you include this parameter as part of a CreateLocationSmbRequest request, * you provide only the KMS key ARN. DataSync uses this KMS key together with either the Password or KerberosKeytab * you specify to create a DataSync-managed secret to store the location access * credentials.

*

Make sure that DataSync has permission to access the KMS key that * you specify. For more information, see * Using a service-managed secret encrypted with a custom KMS key.

* *

You can use either CmkSecretConfig (with either Password or * KerberosKeytab) or CustomSecretConfig (without any Password * and KerberosKeytab) to provide credentials for a CreateLocationSmbRequest * request. Do not provide both CmkSecretConfig and CustomSecretConfig * parameters for the same request.

*
* @public */ CmkSecretConfig?: CmkSecretConfig | undefined; /** *

Specifies configuration information for a customer-managed Secrets Manager secret where * the SMB storage location credentials is stored in Secrets Manager as plain text (for * Password) or binary (for KerberosKeytab). This configuration includes * the secret ARN, and the ARN for an IAM role that provides access to the secret. For * more information, see * Using a secret that you manage.

* *

You can use either CmkSecretConfig (with SasConfiguration) or * CustomSecretConfig (without SasConfiguration) to provide * credentials for a CreateLocationSmbRequest request. Do not provide both * parameters for the same request.

*
* @public */ CustomSecretConfig?: CustomSecretConfig | undefined; /** *

Specifies the DataSync agent (or agents) that can connect to your SMB file * server. You specify an agent by using its Amazon Resource Name (ARN).

* @public */ AgentArns: string[] | undefined; /** *

Specifies the version of the SMB protocol that DataSync uses to access your SMB * file server.

* @public */ MountOptions?: SmbMountOptions | undefined; /** *

Specifies labels that help you categorize, filter, and search for your Amazon Web Services * resources. We recommend creating at least a name tag for your location.

* @public */ Tags?: TagListEntry[] | undefined; /** *

Specifies the authentication protocol that DataSync uses to connect to your SMB * file server. DataSync supports NTLM (default) and KERBEROS * authentication.

*

For more information, see Providing DataSync access to SMB file servers.

* @public */ AuthenticationType?: SmbAuthenticationType | undefined; /** *

Specifies the IPv4 or IPv6 addresses for the DNS servers that your SMB file server belongs to. * This parameter applies only if AuthenticationType is set to * KERBEROS.

*

If you have multiple domains in your environment, configuring this parameter makes sure * that DataSync connects to the right SMB file server.

* @public */ DnsIpAddresses?: string[] | undefined; /** *

Specifies a Kerberos principal, which is an identity in your Kerberos realm that has * permission to access the files, folders, and file metadata in your SMB file server.

*

A Kerberos principal might look like HOST/kerberosuser@MYDOMAIN.ORG.

*

Principal names are case sensitive. Your DataSync task execution will fail if * the principal that you specify for this parameter doesn’t exactly match the principal that you * use to create the keytab file.

* @public */ KerberosPrincipal?: string | undefined; /** *

Specifies your Kerberos key table (keytab) file, which includes mappings between your * Kerberos principal and encryption keys.

*

To avoid task execution errors, make sure that the Kerberos principal that you use to * create the keytab file matches exactly what you specify for KerberosPrincipal. *

* @public */ KerberosKeytab?: Uint8Array | undefined; /** *

Specifies a Kerberos configuration file (krb5.conf) that defines your * Kerberos realm configuration.

*

The file must be base64 encoded. If you're using the CLI, the encoding is * done for you.

* @public */ KerberosKrb5Conf?: Uint8Array | undefined; } /** *

CreateLocationSmbResponse

* @public */ export interface CreateLocationSmbResponse { /** *

The ARN of the SMB location that you created.

* @public */ LocationArn?: string | undefined; } /** *

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

* @public */ export interface FilterRule { /** *

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

* @public */ FilterType?: FilterType | undefined; /** *

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 *

*

* @public */ Value?: string | undefined; } /** *

Specifies the S3 bucket where you're hosting the manifest that you want DataSync to use. For more information and configuration examples, see Specifying what DataSync transfers by using a manifest.

* @public */ export interface S3ManifestConfig { /** *

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

* @public */ ManifestObjectPath: string | undefined; /** *

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.

* @public */ BucketAccessRoleArn: string | undefined; /** *

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

* @public */ S3BucketArn: string | undefined; /** *

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.

* @public */ ManifestObjectVersionId?: string | undefined; } /** *

Specifies the manifest that you want DataSync to use and where it's hosted. * For more information and configuration examples, see Specifying what DataSync transfers by using a manifest.

* @public */ export interface SourceManifestConfig { /** *

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

* @public */ S3: S3ManifestConfig | undefined; } /** *

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.

* @public */ export interface ManifestConfig { /** *

Specifies what DataSync uses the manifest for.

* @public */ Action?: ManifestAction | undefined; /** *

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

* @public */ Format?: ManifestFormat | undefined; /** *

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

* *

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.

*
* @public */ Source?: SourceManifestConfig | undefined; } /** *

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.

* @public */ export interface Options { /** *

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

* * @public */ VerifyMode?: VerifyMode | undefined; /** *

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

* * @public */ OverwriteMode?: OverwriteMode | undefined; /** *

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

* *

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

*
* * *

The following applies only to Basic mode tasks:

*

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

*

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

*

Enhanced mode tasks support configuring Atime independently of Mtime.

*
* @public */ Atime?: Atime | undefined; /** *

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.

* * *

The following applies only to Basic mode tasks:

*

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.

*

Enhanced mode tasks don't support Mtime set to NONE.

*
* @public */ Mtime?: Mtime | undefined; /** *

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

* *

For more information, see Metadata copied by DataSync.

* @public */ Uid?: Uid | undefined; /** *

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

* *

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

* @public */ Gid?: Gid | undefined; /** *

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.

* * *

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 | undefined; /** *

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.

*
* * @public */ PreserveDevices?: PreserveDevices | undefined; /** *

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.

* * *

DataSync can preserve extant permissions of a source location.

*
* @public */ PosixPermissions?: PosixPermissions | undefined; /** *

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

* @public */ BytesPerSecond?: number | undefined; /** *

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 | undefined; /** *

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

* * @public */ LogLevel?: LogLevel | undefined; /** *

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.

* * @public */ TransferMode?: TransferMode | undefined; /** *

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.

* * @public */ SecurityDescriptorCopyFlags?: SmbSecurityDescriptorCopyFlags | undefined; /** *

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.

* @public */ ObjectTags?: ObjectTags | undefined; } /** *

Configures your DataSync task to run on a schedule * (at a minimum interval of 1 hour).

* @public */ export interface TaskSchedule { /** *

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

* @public */ ScheduleExpression: string | undefined; /** *

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.

* @public */ Status?: ScheduleStatus | undefined; } /** *

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

* @public */ export interface ReportDestinationS3 { /** *

Specifies a bucket prefix for your report.

* @public */ Subdirectory?: string | undefined; /** *

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

* @public */ S3BucketArn: string | undefined; /** *

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.

* @public */ BucketAccessRoleArn: string | undefined; } /** *

Specifies where DataSync uploads your task report.

* @public */ export interface ReportDestination { /** *

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

* @public */ S3?: ReportDestinationS3 | undefined; } /** *

Specifies the level of detail for a particular aspect of your DataSync * task * report.

* @public */ export interface ReportOverride { /** *

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

* @public */ ReportLevel?: ReportLevel | undefined; } /** *

The level of detail included in each aspect of your DataSync * task * report.

* @public */ export interface ReportOverrides { /** *

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

* @public */ Transferred?: ReportOverride | undefined; /** *

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

* @public */ Verified?: ReportOverride | undefined; /** *

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.

* @public */ Deleted?: ReportOverride | undefined; /** *

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

* @public */ Skipped?: ReportOverride | undefined; } /** *

Specifies how you want to configure a task report, which provides detailed information * about for your DataSync transfer.

*

For more information, see Task reports.

* @public */ export interface TaskReportConfig { /** *

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

* @public */ Destination?: ReportDestination | undefined; /** *

Specifies the type of task report that you want:

* * @public */ OutputType?: ReportOutputType | undefined; /** *

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.

* * @public */ ReportLevel?: ReportLevel | undefined; /** *

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.

* @public */ ObjectVersionIds?: ObjectVersionIds | undefined; /** *

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.

* @public */ Overrides?: ReportOverrides | undefined; } /** *

CreateTaskRequest

* @public */ export interface CreateTaskRequest { /** *

Specifies the ARN of your transfer's source location.

* @public */ SourceLocationArn: string | undefined; /** *

Specifies the ARN of your transfer's destination location.

* @public */ DestinationLocationArn: string | undefined; /** *

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.

* @public */ CloudWatchLogGroupArn?: string | undefined; /** *

Specifies the name of your task.

* @public */ Name?: string | undefined; /** *

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

* @public */ Options?: Options | undefined; /** *

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.

* @public */ Excludes?: FilterRule[] | undefined; /** *

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

* @public */ Schedule?: TaskSchedule | undefined; /** *

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.

* @public */ Tags?: TagListEntry[] | undefined; /** *

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.

* @public */ Includes?: FilterRule[] | undefined; /** *

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.

* @public */ ManifestConfig?: ManifestConfig | undefined; /** *

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.

* @public */ TaskReportConfig?: TaskReportConfig | undefined; /** *

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

* *

For more information, see Understanding * task mode differences.

* @public */ TaskMode?: TaskMode | undefined; } /** *

CreateTaskResponse

* @public */ export interface CreateTaskResponse { /** *

The Amazon Resource Name (ARN) of the task.

* @public */ TaskArn?: string | undefined; } /** *

DeleteAgentRequest

* @public */ export interface DeleteAgentRequest { /** *

The Amazon Resource Name (ARN) of the agent to delete. Use the ListAgents * operation to return a list of agents for your account and Amazon Web Services Region.

* @public */ AgentArn: string | undefined; } /** * @public */ export interface DeleteAgentResponse { } /** *

DeleteLocation

* @public */ export interface DeleteLocationRequest { /** *

The Amazon Resource Name (ARN) of the location to delete.

* @public */ LocationArn: string | undefined; } /** * @public */ export interface DeleteLocationResponse { } /** *

DeleteTask

* @public */ export interface DeleteTaskRequest { /** *

Specifies the Amazon Resource Name (ARN) of the task that you want to delete.

* @public */ TaskArn: string | undefined; } /** * @public */ export interface DeleteTaskResponse { } /** *

DescribeAgent

* @public */ export interface DescribeAgentRequest { /** *

Specifies the Amazon Resource Name (ARN) of the DataSync agent that you want * information about.

* @public */ AgentArn: string | undefined; } /** *

Specifies how your DataSync agent connects to Amazon Web Services using a * virtual private cloud (VPC) service endpoint. An agent that uses a VPC endpoint * isn't accessible over the public internet.

* @public */ export interface PrivateLinkConfig { /** *

Specifies the ID of the VPC endpoint that your agent connects to.

* @public */ VpcEndpointId?: string | undefined; /** *

Specifies the VPC endpoint provided by Amazon Web Services PrivateLink that your agent connects to.

* @public */ PrivateLinkEndpoint?: string | undefined; /** *

Specifies the ARN of the subnet where your VPC endpoint is located. You can only specify * one ARN.

* @public */ SubnetArns?: string[] | undefined; /** *

Specifies the Amazon Resource Names (ARN) of the security group that provides DataSync access to your VPC endpoint. You can only specify one ARN.

* @public */ SecurityGroupArns?: string[] | undefined; } /** *

DescribeAgentResponse

* @public */ export interface DescribeAgentResponse { /** *

The ARN of the agent.

* @public */ AgentArn?: string | undefined; /** *

The name of the agent.

* @public */ Name?: string | undefined; /** *

The status of the agent.

* * @public */ Status?: AgentStatus | undefined; /** *

The last time that the agent was communicating with the DataSync * service.

* @public */ LastConnectionTime?: Date | undefined; /** *

The time that the agent was activated.

* @public */ CreationTime?: Date | undefined; /** *

The type of service endpoint that your agent is connected to.

* @public */ EndpointType?: EndpointType | undefined; /** *

The network configuration that the agent uses when connecting to a VPC * service endpoint.

* @public */ PrivateLinkConfig?: PrivateLinkConfig | undefined; /** *

The platform-related details about the agent, such as the version number.

* @public */ Platform?: Platform | undefined; } /** * @public */ export interface DescribeLocationAzureBlobRequest { /** *

Specifies the Amazon Resource Name (ARN) of your Azure Blob Storage transfer * location.

* @public */ LocationArn: string | undefined; } /** * @public */ export interface DescribeLocationAzureBlobResponse { /** *

The ARN of your Azure Blob Storage transfer location.

* @public */ LocationArn?: string | undefined; /** *

The URL of the Azure Blob Storage container involved in your transfer.

* @public */ LocationUri?: string | undefined; /** *

The authentication method DataSync uses to access your Azure Blob Storage. * DataSync can access blob storage using a shared access signature (SAS).

* @public */ AuthenticationType?: AzureBlobAuthenticationType | undefined; /** *

The type of blob that you want your objects or files to be when transferring them into * Azure Blob Storage. Currently, DataSync only supports moving data into Azure Blob * Storage as block blobs. For more information on blob types, see the Azure Blob Storage documentation.

* @public */ BlobType?: AzureBlobType | undefined; /** *

The access tier that you want your objects or files transferred into. This only applies * when using the location as a transfer destination. For more information, see Access tiers.

* @public */ AccessTier?: AzureAccessTier | undefined; /** *

The ARNs of the DataSync agents that can connect with your Azure Blob Storage * container.

* @public */ AgentArns?: string[] | undefined; /** *

The time that your Azure Blob Storage transfer location was created.

* @public */ CreationTime?: Date | undefined; /** *

Describes configuration information for a DataSync-managed secret, such as an * authentication token that DataSync uses to access a specific storage location. * DataSync uses the default Amazon Web Services-managed KMS key to * encrypt this secret in Secrets Manager.

* @public */ ManagedSecretConfig?: ManagedSecretConfig | undefined; /** *

Describes configuration information for a DataSync-managed secret, such as an * authentication token that DataSync uses to access a specific storage location, with * a customer-managed KMS key.

* @public */ CmkSecretConfig?: CmkSecretConfig | undefined; /** *

Describes configuration information for a customer-managed secret, such as an * authentication token that DataSync uses to access a specific storage location, with * a customer-managed Identity and Access Management (IAM) role that provides access to * the secret.

* @public */ CustomSecretConfig?: CustomSecretConfig | undefined; } /** *

DescribeLocationEfsRequest

* @public */ export interface DescribeLocationEfsRequest { /** *

The Amazon Resource Name (ARN) of the Amazon EFS file system location that you * want information about.

* @public */ LocationArn: string | undefined; } /** *

DescribeLocationEfsResponse

* @public */ export interface DescribeLocationEfsResponse { /** *

The ARN of the Amazon EFS file system location.

* @public */ LocationArn?: string | undefined; /** *

The URL of the Amazon EFS file system location.

* @public */ LocationUri?: string | undefined; /** *

The subnet and security groups that DataSync uses to connect to one of your * Amazon EFS file system's mount targets.

* @public */ Ec2Config?: Ec2Config | undefined; /** *

The time that the location was created.

* @public */ CreationTime?: Date | undefined; /** *

The ARN of the access point that DataSync uses to access the Amazon EFS * file system.

*

For more information, see Accessing * restricted file systems.

* @public */ AccessPointArn?: string | undefined; /** *

The Identity and Access Management (IAM) role that allows DataSync to * access your Amazon EFS file system.

*

For more information, see Creating a DataSync * IAM role for file system access.

* @public */ FileSystemAccessRoleArn?: string | undefined; /** *

Indicates whether DataSync uses Transport Layer Security (TLS) encryption when * transferring data to or from the Amazon EFS file system.

* @public */ InTransitEncryption?: EfsInTransitEncryption | undefined; } /** * @public */ export interface DescribeLocationFsxLustreRequest { /** *

The Amazon Resource Name (ARN) of the FSx for Lustre location to describe. *

* @public */ LocationArn: string | undefined; } /** * @public */ export interface DescribeLocationFsxLustreResponse { /** *

The Amazon Resource Name (ARN) of the FSx for Lustre location that was * described.

* @public */ LocationArn?: string | undefined; /** *

The URI of the FSx for Lustre location that was described.

* @public */ LocationUri?: string | undefined; /** *

The Amazon Resource Names (ARNs) of the security groups that are configured for the * FSx for Lustre file system.

* @public */ SecurityGroupArns?: string[] | undefined; /** *

The time that the FSx for Lustre location was created.

* @public */ CreationTime?: Date | undefined; } /** * @public */ export interface DescribeLocationFsxOntapRequest { /** *

Specifies the Amazon Resource Name (ARN) of the FSx for ONTAP file system * location that you want information about.

* @public */ LocationArn: string | undefined; } /** * @public */ export interface DescribeLocationFsxOntapResponse { /** *

The time that the location was created.

* @public */ CreationTime?: Date | undefined; /** *

The ARN of the FSx for ONTAP file system location.

* @public */ LocationArn?: string | undefined; /** *

The uniform resource identifier (URI) of the FSx for ONTAP file system * location.

* @public */ LocationUri?: string | undefined; /** *

Specifies the data transfer protocol that DataSync uses to access your * Amazon FSx file system.

* @public */ Protocol?: FsxProtocol | undefined; /** *

The security groups that DataSync uses to access your FSx for ONTAP * file system.

* @public */ SecurityGroupArns?: string[] | undefined; /** *

The ARN of the storage virtual machine (SVM) on your FSx for ONTAP file system * where you're copying data to or from.

* @public */ StorageVirtualMachineArn?: string | undefined; /** *

The ARN of the FSx for ONTAP file system.

* @public */ FsxFilesystemArn?: string | undefined; } /** * @public */ export interface DescribeLocationFsxOpenZfsRequest { /** *

The Amazon Resource Name (ARN) of the FSx for OpenZFS location to describe.

* @public */ LocationArn: string | undefined; } /** * @public */ export interface DescribeLocationFsxOpenZfsResponse { /** *

The ARN of the FSx for OpenZFS location that was described.

* @public */ LocationArn?: string | undefined; /** *

The uniform resource identifier (URI) of the FSx for OpenZFS location that was * described.

*

Example: fsxz://us-west-2.fs-1234567890abcdef02/fsx/folderA/folder *

* @public */ LocationUri?: string | undefined; /** *

The ARNs of the security groups that are configured for the FSx for OpenZFS file * system.

* @public */ SecurityGroupArns?: string[] | undefined; /** *

The type of protocol that DataSync uses to access your file system.

* @public */ Protocol?: FsxProtocol | undefined; /** *

The time that the FSx for OpenZFS location was created.

* @public */ CreationTime?: Date | undefined; } /** * @public */ export interface DescribeLocationFsxWindowsRequest { /** *

Specifies the Amazon Resource Name (ARN) of the FSx for Windows File Server location.

* @public */ LocationArn: string | undefined; } /** * @public */ export interface DescribeLocationFsxWindowsResponse { /** *

The ARN of the FSx for Windows File Server location.

* @public */ LocationArn?: string | undefined; /** *

The uniform resource identifier (URI) of the FSx for Windows File Server location.

* @public */ LocationUri?: string | undefined; /** *

The ARNs of the Amazon EC2 security groups that provide access to your file * system's preferred subnet.

*

For information about configuring security groups for file system access, see the * Amazon FSx for Windows File Server User Guide * .

* @public */ SecurityGroupArns?: string[] | undefined; /** *

The time that the FSx for Windows File Server location was created.

* @public */ CreationTime?: Date | undefined; /** *

The user with the permissions to mount and access the FSx for Windows File Server file * system.

* @public */ User?: string | undefined; /** *

The name of the Microsoft Active Directory domain that the FSx for Windows File Server file * system belongs to.

* @public */ Domain?: string | undefined; /** *

Describes configuration information for a DataSync-managed secret, such as a * Password that DataSync uses to access * a specific storage location. DataSync uses the default Amazon Web Services-managed * KMS key to encrypt this secret in Secrets Manager.

* @public */ ManagedSecretConfig?: ManagedSecretConfig | undefined; /** *

Describes configuration information for a DataSync-managed secret, such as a * Password that DataSync uses to access * a specific storage location, with a customer-managed KMS key.

* @public */ CmkSecretConfig?: CmkSecretConfig | undefined; /** *

Describes configuration information for a customer-managed secret, such as a * Password that DataSync uses to access * a specific storage location, with a customer-managed Identity and Access Management * (IAM) role that provides access to the secret.

* @public */ CustomSecretConfig?: CustomSecretConfig | undefined; } /** * @public */ export interface DescribeLocationHdfsRequest { /** *

Specifies the Amazon Resource Name (ARN) of the HDFS location.

* @public */ LocationArn: string | undefined; } /** * @public */ export interface DescribeLocationHdfsResponse { /** *

The ARN of the HDFS location.

* @public */ LocationArn?: string | undefined; /** *

The URI of the HDFS location.

* @public */ LocationUri?: string | undefined; /** *

The NameNode that manages the HDFS namespace.

* @public */ NameNodes?: HdfsNameNode[] | undefined; /** *

The size of the data blocks to write into the HDFS cluster.

* @public */ BlockSize?: number | undefined; /** *

The number of DataNodes to replicate the data to when writing to the HDFS cluster.

* @public */ ReplicationFactor?: number | undefined; /** *

The URI of the HDFS cluster's Key Management Server (KMS).

* @public */ KmsKeyProviderUri?: string | undefined; /** *

The Quality of Protection (QOP) configuration, which specifies the Remote Procedure Call * (RPC) and data transfer protection settings configured on the HDFS cluster.

* @public */ QopConfiguration?: QopConfiguration | undefined; /** *

The type of authentication used to determine the identity of the user.

* @public */ AuthenticationType?: HdfsAuthenticationType | undefined; /** *

The user name to identify the client on the host operating system. This parameter is used * if the AuthenticationType is defined as SIMPLE.

* @public */ SimpleUser?: string | undefined; /** *

The Kerberos principal with access to the files and folders on the HDFS cluster. This * parameter is used if the AuthenticationType is defined as * KERBEROS.

* @public */ KerberosPrincipal?: string | undefined; /** *

The ARNs of the DataSync agents that can connect with your HDFS cluster.

* @public */ AgentArns?: string[] | undefined; /** *

The time that the HDFS location was created.

* @public */ CreationTime?: Date | undefined; /** *

Describes configuration information for a DataSync-managed secret, such as a * KerberosKeytab that DataSync uses to access * a specific storage location. DataSync uses the default Amazon Web Services-managed * KMS key to encrypt this secret in Secrets Manager.

* @public */ ManagedSecretConfig?: ManagedSecretConfig | undefined; /** *

Describes configuration information for a DataSync-managed secret, such as a * KerberosKeytab that DataSync uses to access * a specific storage location, with a customer-managed KMS key.

* @public */ CmkSecretConfig?: CmkSecretConfig | undefined; /** *

Describes configuration information for a customer-managed secret, such as a * KerberosKeytab that DataSync uses to access * a specific storage location, with a customer-managed Identity and Access Management * (IAM) role that provides access to the secret.

* @public */ CustomSecretConfig?: CustomSecretConfig | undefined; } /** *

DescribeLocationNfsRequest

* @public */ export interface DescribeLocationNfsRequest { /** *

Specifies the Amazon Resource Name (ARN) of the NFS location that you want information * about.

* @public */ LocationArn: string | undefined; } /** *

DescribeLocationNfsResponse

* @public */ export interface DescribeLocationNfsResponse { /** *

The ARN of the NFS location.

* @public */ LocationArn?: string | undefined; /** *

The URI of the NFS location.

* @public */ LocationUri?: string | undefined; /** *

The DataSync agents that can connect to your Network File System (NFS) * file server.

* @public */ OnPremConfig?: OnPremConfig | undefined; /** *

The mount options that DataSync uses to mount your NFS file server.

* @public */ MountOptions?: NfsMountOptions | undefined; /** *

The time when the NFS location was created.

* @public */ CreationTime?: Date | undefined; } /** *

DescribeLocationObjectStorageRequest

* @public */ export interface DescribeLocationObjectStorageRequest { /** *

Specifies the Amazon Resource Name (ARN) of the object storage system location.

* @public */ LocationArn: string | undefined; } /** *

DescribeLocationObjectStorageResponse

* @public */ export interface DescribeLocationObjectStorageResponse { /** *

The ARN of the object storage system location.

* @public */ LocationArn?: string | undefined; /** *

The URI of the object storage system location.

* @public */ LocationUri?: string | undefined; /** *

The access key (for example, a user name) required to authenticate with the object storage * system.

* @public */ AccessKey?: string | undefined; /** *

The port that your object storage server accepts inbound network traffic on (for example, * port 443).

* @public */ ServerPort?: number | undefined; /** *

The protocol that your object storage system uses to communicate.

* @public */ ServerProtocol?: ObjectStorageServerProtocol | undefined; /** *

The ARNs of the DataSync agents that can connect with your object storage * system.

* @public */ AgentArns?: string[] | undefined; /** *

The time that the location was created.

* @public */ CreationTime?: Date | undefined; /** *

The certificate chain for DataSync to authenticate with your object storage * system if the system uses a private or self-signed certificate authority (CA).

* @public */ ServerCertificate?: Uint8Array | undefined; /** *

Describes configuration information for a DataSync-managed secret, such as an * authentication token or set of credentials that DataSync uses to access a specific * transfer location. DataSync uses the default Amazon Web Services-managed KMS key to encrypt this secret in Secrets Manager.

* @public */ ManagedSecretConfig?: ManagedSecretConfig | undefined; /** *

Describes configuration information for a DataSync-managed secret, such as an * authentication token or set of credentials that DataSync uses to access a specific * transfer location, and a customer-managed KMS key.

* @public */ CmkSecretConfig?: CmkSecretConfig | undefined; /** *

Describes configuration information for a customer-managed secret, such as an * authentication token or set of credentials that DataSync uses to access a specific * transfer location, and a customer-managed Identity and Access Management (IAM) role * that provides access to the secret.

* @public */ CustomSecretConfig?: CustomSecretConfig | undefined; } /** *

DescribeLocationS3Request

* @public */ export interface DescribeLocationS3Request { /** *

Specifies the Amazon Resource Name (ARN) of the Amazon S3 location.

* @public */ LocationArn: string | undefined; } /** *

DescribeLocationS3Response

* @public */ export interface DescribeLocationS3Response { /** *

The ARN of the Amazon S3 location.

* @public */ LocationArn?: string | undefined; /** *

The URL of the Amazon S3 location that was described.

* @public */ LocationUri?: string | undefined; /** *

When Amazon S3 is a destination location, this is the storage class that you chose * for your objects.

*

Some storage classes have behaviors that can affect your Amazon S3 storage costs. * For more information, see Storage class * considerations with Amazon S3 transfers.

* @public */ S3StorageClass?: S3StorageClass | undefined; /** *

Specifies the Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that DataSync uses to access your S3 bucket.

*

For more information, see Providing * DataSync access to S3 buckets.

* @public */ S3Config?: S3Config | undefined; /** *

The ARNs of the DataSync agents deployed on your Outpost when using working with * Amazon S3 on Outposts.

*

For more information, see Deploy your DataSync agent * on Outposts.

* @public */ AgentArns?: string[] | undefined; /** *

The time that the Amazon S3 location was created.

* @public */ CreationTime?: Date | undefined; } /** *

DescribeLocationSmbRequest

* @public */ export interface DescribeLocationSmbRequest { /** *

Specifies the Amazon Resource Name (ARN) of the SMB location that you want information * about.

* @public */ LocationArn: string | undefined; } /** *

DescribeLocationSmbResponse

* @public */ export interface DescribeLocationSmbResponse { /** *

The ARN of the SMB location.

* @public */ LocationArn?: string | undefined; /** *

The URI of the SMB location.

* @public */ LocationUri?: string | undefined; /** *

The ARNs of the DataSync agents that can connect with your SMB file * server.

* @public */ AgentArns?: string[] | undefined; /** *

The user that can mount and access the files, folders, and file metadata in your SMB file * server. This element applies only if AuthenticationType is set to * NTLM.

* @public */ User?: string | undefined; /** *

The name of the Windows domain that the SMB file server belongs to. This element applies * only if AuthenticationType is set to NTLM.

* @public */ Domain?: string | undefined; /** *

The SMB protocol version that DataSync uses to access your SMB file * server.

* @public */ MountOptions?: SmbMountOptions | undefined; /** *

The time that the SMB location was created.

* @public */ CreationTime?: Date | undefined; /** *

The IPv4 or IPv6 addresses for the DNS servers that your SMB file server belongs to. This element * applies only if AuthenticationType is set to KERBEROS.

* @public */ DnsIpAddresses?: string[] | undefined; /** *

The Kerberos principal that has permission to access the files, folders, and file metadata * in your SMB file server.

* @public */ KerberosPrincipal?: string | undefined; /** *

The authentication protocol that DataSync uses to connect to your SMB file * server.

* @public */ AuthenticationType?: SmbAuthenticationType | undefined; /** *

Describes configuration information for a DataSync-managed secret, such as a * Password or KerberosKeytab that DataSync uses to access * a specific storage location. DataSync uses the default Amazon Web Services-managed * KMS key to encrypt this secret in Secrets Manager.

* @public */ ManagedSecretConfig?: ManagedSecretConfig | undefined; /** *

Describes configuration information for a DataSync-managed secret, such as a * Password or KerberosKeytab that DataSync uses to access * a specific storage location, with a customer-managed KMS key.

* @public */ CmkSecretConfig?: CmkSecretConfig | undefined; /** *

Describes configuration information for a customer-managed secret, such as a * Password or KerberosKeytab that DataSync uses to access * a specific storage location, with a customer-managed Identity and Access Management (IAM) * role that provides access to the secret.

* @public */ CustomSecretConfig?: CustomSecretConfig | undefined; } /** *

DescribeTaskRequest

* @public */ export interface DescribeTaskRequest { /** *

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

* @public */ TaskArn: string | undefined; } /** *

Provides information about your DataSync * task * schedule.

* @public */ export interface TaskScheduleDetails { /** *

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.

* @public */ StatusUpdateTime?: Date | undefined; /** *

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.

* @public */ DisabledReason?: string | undefined; /** *

Indicates how your task schedule was disabled.

* * @public */ DisabledBy?: ScheduleDisabledBy | undefined; } /** *

DescribeTaskResponse

* @public */ export interface DescribeTaskResponse { /** *

The ARN of your task.

* @public */ TaskArn?: string | undefined; /** *

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

* @public */ Status?: TaskStatus | undefined; /** *

The name of your task.

* @public */ Name?: string | undefined; /** *

The ARN of the most recent task execution.

* @public */ CurrentTaskExecutionArn?: string | undefined; /** *

The ARN of your transfer's source location.

* @public */ SourceLocationArn?: string | undefined; /** *

The ARN of your transfer's destination location.

* @public */ DestinationLocationArn?: string | undefined; /** *

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.

* @public */ CloudWatchLogGroupArn?: string | undefined; /** *

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

* @public */ SourceNetworkInterfaceArns?: string[] | undefined; /** *

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

* @public */ DestinationNetworkInterfaceArns?: string[] | undefined; /** *

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.

* @public */ Options?: Options | undefined; /** *

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.

* @public */ Excludes?: FilterRule[] | undefined; /** *

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

* @public */ Schedule?: TaskSchedule | undefined; /** *

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.

* @public */ ErrorCode?: string | undefined; /** *

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.

* @public */ ErrorDetail?: string | undefined; /** *

The time that the task was created.

* @public */ CreationTime?: Date | undefined; /** *

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.

* @public */ Includes?: FilterRule[] | undefined; /** *

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.

* @public */ ManifestConfig?: ManifestConfig | undefined; /** *

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.

* @public */ TaskReportConfig?: TaskReportConfig | undefined; /** *

The details about your task schedule.

* @public */ ScheduleDetails?: TaskScheduleDetails | undefined; /** *

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

* @public */ TaskMode?: TaskMode | undefined; } /** *

DescribeTaskExecutionRequest

* @public */ export interface DescribeTaskExecutionRequest { /** *

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

* @public */ TaskExecutionArn: string | undefined; } /** *

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

* *

Applies only to Enhanced mode * tasks.

*
* @public */ export interface TaskExecutionFilesFailedDetail { /** *

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

* @public */ Prepare?: number | undefined; /** *

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

* @public */ Transfer?: number | undefined; /** *

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

* @public */ Verify?: number | undefined; /** *

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

* @public */ Delete?: number | undefined; } /** *

The number of files or objects that DataSync finds at your locations.

* *

Applies only to Enhanced mode * tasks.

*
* @public */ export interface TaskExecutionFilesListedDetail { /** *

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

* * @public */ AtSource?: number | undefined; /** *

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

* @public */ AtDestinationForDelete?: number | undefined; } /** *

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

* *

Applies only to Enhanced mode * tasks.

*
* @public */ export interface TaskExecutionFoldersFailedDetail { /** *

The number of directories that DataSync fails to list during your task * execution.

* @public */ List?: number | undefined; /** *

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

* @public */ Prepare?: number | undefined; /** *

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

* @public */ Transfer?: number | undefined; /** *

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

* @public */ Verify?: number | undefined; /** *

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

* @public */ Delete?: number | undefined; } /** *

The number of directories that DataSync finds at your locations.

* *

Applies only to Enhanced mode * tasks.

*
* @public */ export interface TaskExecutionFoldersListedDetail { /** *

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

* * @public */ AtSource?: number | undefined; /** *

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

* @public */ AtDestinationForDelete?: number | undefined; } /** *

Indicates whether DataSync created a complete task report for your * transfer.

* @public */ export interface ReportResult { /** *

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

* @public */ Status?: PhaseStatus | undefined; /** *

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

* @public */ ErrorCode?: string | undefined; /** *

Provides details about issues creating a report.

* @public */ ErrorDetail?: string | undefined; } /** *

Provides detailed information about the result of your DataSync task * execution.

* @public */ export interface TaskExecutionResultDetail { /** *

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.

* @public */ PrepareDuration?: number | undefined; /** *

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

* @public */ PrepareStatus?: PhaseStatus | undefined; /** *

The time in milliseconds that your task execution ran.

* @public */ TotalDuration?: number | undefined; /** *

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.

* @public */ TransferDuration?: number | undefined; /** *

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

* @public */ TransferStatus?: PhaseStatus | undefined; /** *

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.

* @public */ VerifyDuration?: number | undefined; /** *

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

* @public */ VerifyStatus?: PhaseStatus | undefined; /** *

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

* @public */ ErrorCode?: string | undefined; /** *

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

* @public */ ErrorDetail?: string | undefined; } /** *

DescribeTaskExecutionResponse

* @public */ export interface DescribeTaskExecutionResponse { /** *

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.

* @public */ TaskExecutionArn?: string | undefined; /** *

The status of the task execution.

* @public */ Status?: TaskExecutionStatus | undefined; /** *

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.

* @public */ Options?: Options | undefined; /** *

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

* @public */ Excludes?: FilterRule[] | undefined; /** *

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

* @public */ Includes?: FilterRule[] | undefined; /** *

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.

* @public */ ManifestConfig?: ManifestConfig | undefined; /** *

The time that DataSync sends the request to start the task execution. For * non-queued tasks, LaunchTime and StartTime are typically the same. * For queued tasks, LaunchTime is typically later than StartTime * because previously queued tasks must finish running before newer tasks can begin.

* @public */ StartTime?: Date | undefined; /** *

The number of files, objects, and directories that DataSync expects to * transfer over the network. This value is calculated while DataSync * prepares the transfer.

*

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

* * *

For Enhanced mode * tasks, this counter only includes files or objects. Directories are counted in * EstimatedFoldersToTransfer. *

*
* @public */ EstimatedFilesToTransfer?: number | undefined; /** *

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

* @public */ EstimatedBytesToTransfer?: number | undefined; /** *

The number of files, objects, and directories that DataSync actually * transfers over the network. This value is updated periodically during your task execution 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.

* *

For Enhanced mode * tasks, this counter only includes files or objects. Directories are counted in * FoldersTransferred. *

*
* @public */ FilesTransferred?: number | undefined; /** *

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

* @public */ BytesWritten?: number | undefined; /** *

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.

* @public */ BytesTransferred?: number | undefined; /** *

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.

* @public */ BytesCompressed?: number | undefined; /** *

The result of the task execution.

* @public */ Result?: TaskExecutionResultDetail | undefined; /** *

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

* @public */ TaskReportConfig?: TaskReportConfig | undefined; /** *

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.

* *

For Enhanced mode * tasks, this counter only includes files or objects. Directories are counted in * FoldersDeleted. *

*
* @public */ FilesDeleted?: number | undefined; /** *

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

* *

For Enhanced mode * tasks, this counter only includes files or objects. Directories are counted in * FoldersSkipped. *

*
* @public */ FilesSkipped?: number | undefined; /** *

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

* *

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.

*

For Enhanced mode * tasks, this counter only includes files or objects. Directories are counted in * FoldersVerified. *

*
* @public */ FilesVerified?: number | undefined; /** *

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

* @public */ ReportResult?: ReportResult | undefined; /** *

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.

* *

For Enhanced mode * tasks, this counter only includes files or objects. Directories are counted in * EstimatedFoldersToDelete. *

*
* @public */ EstimatedFilesToDelete?: number | undefined; /** *

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

* @public */ TaskMode?: TaskMode | undefined; /** *

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

* *

Applies only to Enhanced mode * tasks.

*
*

This counter 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.

* @public */ FilesPrepared?: number | undefined; /** *

The number of files or objects that DataSync finds at your locations.

* *

Applies only to Enhanced mode * tasks.

*
* @public */ FilesListed?: TaskExecutionFilesListedDetail | undefined; /** *

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

* *

Applies only to Enhanced mode * tasks.

*
* @public */ FilesFailed?: TaskExecutionFilesFailedDetail | undefined; /** *

The number of 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.

* *

Applies only to Enhanced mode * tasks.

*
* @public */ EstimatedFoldersToDelete?: number | undefined; /** *

The number of directories that DataSync expects to * transfer over the network. This value is calculated as DataSync * prepares directories to transfer.

*

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

* * *

Applies only to Enhanced mode * tasks.

*
* @public */ EstimatedFoldersToTransfer?: number | undefined; /** *

The number of directories that DataSync skips during your * transfer.

* *

Applies only to Enhanced mode * tasks.

*
* @public */ FoldersSkipped?: number | undefined; /** *

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

* *

Applies only to Enhanced mode * tasks.

*
*

This counter 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.

* @public */ FoldersPrepared?: number | undefined; /** *

The number of directories that DataSync actually * transfers over the network. This value is updated periodically during your task execution when * something is read from the source and sent over the network.

*

If DataSync fails to transfer something, this value can be less than * EstimatedFoldersToTransfer. In some cases, this value can also be greater than * EstimatedFoldersToTransfer. *

* *

Applies only to Enhanced mode * tasks.

*
* @public */ FoldersTransferred?: number | undefined; /** *

The number of directories that DataSync verifies during your transfer.

* *

Applies only to Enhanced mode * tasks.

*
* @public */ FoldersVerified?: number | undefined; /** *

The number of 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.

* *

Applies only to Enhanced mode * tasks.

*
* @public */ FoldersDeleted?: number | undefined; /** *

The number of directories that DataSync finds at your locations.

* *

Applies only to Enhanced mode * tasks.

*
* @public */ FoldersListed?: TaskExecutionFoldersListedDetail | undefined; /** *

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

* *

Applies only to Enhanced mode * tasks.

*
* @public */ FoldersFailed?: TaskExecutionFoldersFailedDetail | undefined; /** *

The time that the task execution actually begins. For non-queued tasks, * LaunchTime and StartTime are typically the same. For queued tasks, * LaunchTime is typically later than StartTime because previously * queued tasks must finish running before newer tasks can begin.

* @public */ LaunchTime?: Date | undefined; /** *

The time that the transfer task ends.

* @public */ EndTime?: Date | undefined; } /** *

ListAgentsRequest

* @public */ export interface ListAgentsRequest { /** *

Specifies the maximum number of DataSync agents to list in a response. By * default, a response shows a maximum of 100 agents.

* @public */ MaxResults?: number | undefined; /** *

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

* @public */ NextToken?: string | undefined; } /** *

ListAgentsResponse

* @public */ export interface ListAgentsResponse { /** *

A list of DataSync agents in your Amazon Web Services account in the Amazon Web Services Region specified in the request. The list is ordered by the agents' Amazon * Resource Names (ARNs).

* @public */ Agents?: AgentListEntry[] | undefined; /** *

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

* @public */ NextToken?: string | undefined; } /** *

Narrow down the list of resources returned by ListLocations. For example, to * see all your Amazon S3 locations, create a filter using "Name": * "LocationType", "Operator": "Equals", and "Values": * "S3".

*

For more information, see filtering resources.

* @public */ export interface LocationFilter { /** *

The name of the filter being used. Each API call supports a list of filters that are * available for it (for example, LocationType for * ListLocations).

* @public */ Name: LocationFilterName | undefined; /** *

The values that you want to filter for. For example, you might want to display only Amazon * S3 locations.

* @public */ Values: string[] | undefined; /** *

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

* @public */ Operator: Operator | undefined; } /** *

ListLocationsRequest

* @public */ export interface ListLocationsRequest { /** *

The maximum number of locations to return.

* @public */ MaxResults?: number | undefined; /** *

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

* @public */ NextToken?: string | undefined; /** *

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

* @public */ Filters?: LocationFilter[] | undefined; } /** *

Represents a single entry in a list of locations. LocationListEntry * returns an array that contains a list of locations when the ListLocations operation is * called.

* @public */ export interface LocationListEntry { /** *

The Amazon Resource Name (ARN) of the location. For Network File System (NFS) or Amazon EFS, * the location is the export path. For Amazon S3, the location is the prefix path that you * want to mount and use as the root of the location.

* @public */ LocationArn?: string | undefined; /** *

Represents a list of URIs of a location. LocationUri returns an array that * contains a list of locations when the ListLocations operation is * called.

*

Format: TYPE://GLOBAL_ID/SUBDIR.

*

TYPE designates the type of location (for example, nfs or * s3).

*

GLOBAL_ID is the globally unique identifier of the resource that backs the location. An * example for EFS is us-east-2.fs-abcd1234. An example for Amazon S3 is the bucket * name, such as myBucket. An example for NFS is a valid IPv4 or IPv6 address or a hostname * that is compliant with DNS.

*

SUBDIR is a valid file system path, delimited by forward slashes as is the *nix * convention. For NFS and Amazon EFS, it's the export path to mount the location. For * Amazon S3, it's the prefix path that you mount to and treat as the root of the * location.

*

* @public */ LocationUri?: string | undefined; } /** *

ListLocationsResponse

* @public */ export interface ListLocationsResponse { /** *

An array that contains a list of locations.

* @public */ Locations?: LocationListEntry[] | undefined; /** *

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

* @public */ NextToken?: string | undefined; } /** *

ListTagsForResourceRequest

* @public */ export interface ListTagsForResourceRequest { /** *

Specifies the Amazon Resource Name (ARN) of the resource that you want tag information * on.

* @public */ ResourceArn: string | undefined; /** *

Specifies how many results that you want in the response.

* @public */ MaxResults?: number | undefined; /** *

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

* @public */ NextToken?: string | undefined; } /** *

ListTagsForResourceResponse

* @public */ export interface ListTagsForResourceResponse { /** *

An array of tags applied to the specified resource.

* @public */ Tags?: TagListEntry[] | undefined; /** *

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

* @public */ NextToken?: string | undefined; } /** *

ListTaskExecutions

* @public */ export interface ListTaskExecutionsRequest { /** *

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

* @public */ TaskArn?: string | undefined; /** *

Specifies how many results you want in the response.

* @public */ MaxResults?: number | undefined; /** *

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

* @public */ NextToken?: string | undefined; } /** *

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

* @public */ export interface TaskExecutionListEntry { /** *

The Amazon Resource Name (ARN) of a task execution.

* @public */ TaskExecutionArn?: string | undefined; /** *

The status of a task execution. For more information, see Task execution statuses.

* @public */ Status?: TaskExecutionStatus | undefined; /** *

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

* @public */ TaskMode?: TaskMode | undefined; } /** *

ListTaskExecutionsResponse

* @public */ export interface ListTaskExecutionsResponse { /** *

A list of the task's executions.

* @public */ TaskExecutions?: TaskExecutionListEntry[] | undefined; /** *

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

* @public */ NextToken?: string | undefined; } /** *

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.

* @public */ export interface TaskFilter { /** *

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.

* @public */ Name: TaskFilterName | undefined; /** *

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

* @public */ Values: string[] | undefined; /** *

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

* @public */ Operator: Operator | undefined; } /** *

ListTasksRequest

* @public */ export interface ListTasksRequest { /** *

The maximum number of tasks to return.

* @public */ MaxResults?: number | undefined; /** *

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

* @public */ NextToken?: string | undefined; /** *

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.

* @public */ Filters?: TaskFilter[] | undefined; } /** *

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.

* @public */ export interface TaskListEntry { /** *

The Amazon Resource Name (ARN) of the task.

* @public */ TaskArn?: string | undefined; /** *

The status of the task.

* @public */ Status?: TaskStatus | undefined; /** *

The name of the task.

* @public */ Name?: string | undefined; /** *

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

* @public */ TaskMode?: TaskMode | undefined; } /** *

ListTasksResponse

* @public */ export interface ListTasksResponse { /** *

A list of all the tasks that are returned.

* @public */ Tasks?: TaskListEntry[] | undefined; /** *

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

* @public */ NextToken?: string | undefined; } /** *

StartTaskExecutionRequest

* @public */ export interface StartTaskExecutionRequest { /** *

Specifies the Amazon Resource Name (ARN) of the task that you want to start.

* @public */ TaskArn: string | undefined; /** *

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.

* @public */ OverrideOptions?: Options | undefined; /** *

Specifies a list of filter rules that determines which files to include when running a * task. The pattern should contain a single filter string that consists of the patterns to * include. The patterns are delimited by "|" (that is, a pipe), for example, * "/folder1|/folder2".

* @public */ Includes?: FilterRule[] | undefined; /** *

Specifies a list of filter rules that determines which files to exclude from a task. The * list contains a single filter string that consists of the patterns to exclude. The patterns * are delimited by "|" (that is, a pipe), for example, "/folder1|/folder2".

* @public */ Excludes?: FilterRule[] | undefined; /** *

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.

*

To remove a manifest configuration, specify this parameter with an empty value.

* @public */ ManifestConfig?: ManifestConfig | undefined; /** *

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.

*

To remove a task report configuration, specify this parameter as empty.

* @public */ TaskReportConfig?: TaskReportConfig | undefined; /** *

Specifies the tags that you want to apply to the Amazon Resource Name (ARN) representing * the task execution.

*

* Tags are key-value pairs that help you manage, filter, and search for * your DataSync resources.

* @public */ Tags?: TagListEntry[] | undefined; } /** *

StartTaskExecutionResponse

* @public */ export interface StartTaskExecutionResponse { /** *

The ARN of the running task execution.

* @public */ TaskExecutionArn?: string | undefined; } /** *

TagResourceRequest

* @public */ export interface TagResourceRequest { /** *

Specifies the Amazon Resource Name (ARN) of the resource to apply the tag to.

* @public */ ResourceArn: string | undefined; /** *

Specifies the tags that you want to apply to the resource.

* @public */ Tags: TagListEntry[] | undefined; } /** * @public */ export interface TagResourceResponse { } /** *

UntagResourceRequest

* @public */ export interface UntagResourceRequest { /** *

Specifies the Amazon Resource Name (ARN) of the resource to remove the tags * from.

* @public */ ResourceArn: string | undefined; /** *

Specifies the keys in the tags that you want to remove.

* @public */ Keys: string[] | undefined; } /** * @public */ export interface UntagResourceResponse { } /** *

UpdateAgentRequest

* @public */ export interface UpdateAgentRequest { /** *

The Amazon Resource Name (ARN) of the agent to update.

* @public */ AgentArn: string | undefined; /** *

The name that you want to use to configure the agent.

* @public */ Name?: string | undefined; } /** * @public */ export interface UpdateAgentResponse { } /** * @public */ export interface UpdateLocationAzureBlobRequest { /** *

Specifies the ARN of the Azure Blob Storage transfer location that you're updating.

* @public */ LocationArn: string | undefined; /** *

Specifies path segments if you want to limit your transfer to a virtual directory in your * container (for example, /my/images).

* @public */ Subdirectory?: string | undefined; /** *

Specifies the authentication method DataSync uses to access your Azure Blob * Storage. DataSync can access blob storage using a shared access signature * (SAS).

* @public */ AuthenticationType?: AzureBlobAuthenticationType | undefined; /** *

Specifies the SAS configuration that allows DataSync to access your Azure Blob * Storage.

* @public */ SasConfiguration?: AzureBlobSasConfiguration | undefined; /** *

Specifies the type of blob that you want your objects or files to be when transferring * them into Azure Blob Storage. Currently, DataSync only supports moving data into * Azure Blob Storage as block blobs. For more information on blob types, see the Azure Blob Storage documentation.

* @public */ BlobType?: AzureBlobType | undefined; /** *

Specifies the access tier that you want your objects or files transferred into. This only * applies when using the location as a transfer destination. For more information, see Access tiers.

* @public */ AccessTier?: AzureAccessTier | undefined; /** *

(Optional) Specifies the Amazon Resource Name (ARN) of the DataSync agent that * can connect with your Azure Blob Storage container. If you are setting up an agentless * cross-cloud transfer, you do not need to specify a value for this parameter.

*

You can specify more than one agent. For more information, see Using multiple * agents for your transfer.

* *

You cannot add or remove agents from a storage location after you initially create * it.

*
* @public */ AgentArns?: string[] | undefined; /** *

Specifies configuration information for a DataSync-managed secret, such as an * authentication token or set of credentials that DataSync uses to access a specific * transfer location, and a customer-managed KMS key.

* @public */ CmkSecretConfig?: CmkSecretConfig | undefined; /** *

Specifies configuration information for a customer-managed secret, such as an * authentication token or set of credentials that DataSync uses to access a specific * transfer location, and a customer-managed Identity and Access Management (IAM) role that * provides access to the secret.

* @public */ CustomSecretConfig?: CustomSecretConfig | undefined; } /** * @public */ export interface UpdateLocationAzureBlobResponse { } /** * @public */ export interface UpdateLocationEfsRequest { /** *

Specifies the Amazon Resource Name (ARN) of the Amazon EFS transfer location that * you're updating.

* @public */ LocationArn: string | undefined; /** *

Specifies a mount path for your Amazon EFS file system. This is where DataSync reads or writes data on your file system (depending on if this is a source or * destination location).

*

By default, DataSync uses the root directory (or access point if you provide one by using * AccessPointArn). You can also include subdirectories using forward slashes (for * example, /path/to/folder).

* @public */ Subdirectory?: string | undefined; /** *

Specifies the Amazon Resource Name (ARN) of the access point that DataSync uses * to mount your Amazon EFS file system.

*

For more information, see Accessing * restricted Amazon EFS file systems.

* @public */ AccessPointArn?: string | undefined; /** *

Specifies an Identity and Access Management (IAM) role that allows DataSync to access your Amazon EFS file system.

*

For information on creating this role, see Creating a DataSync * IAM role for Amazon EFS file system access.

* @public */ FileSystemAccessRoleArn?: string | undefined; /** *

Specifies whether you want DataSync to use Transport Layer Security (TLS) 1.2 * encryption when it transfers data to or from your Amazon EFS file system.

*

If you specify an access point using AccessPointArn or an IAM * role using FileSystemAccessRoleArn, you must set this parameter to * TLS1_2.

* @public */ InTransitEncryption?: EfsInTransitEncryption | undefined; } /** * @public */ export interface UpdateLocationEfsResponse { } /** * @public */ export interface UpdateLocationFsxLustreRequest { /** *

Specifies the Amazon Resource Name (ARN) of the FSx for Lustre transfer location * that you're updating.

* @public */ LocationArn: string | undefined; /** *

Specifies a mount path for your FSx for Lustre file system. The path can include * subdirectories.

*

When the location is used as a source, DataSync reads data from the mount path. * When the location is used as a destination, DataSync writes data to the mount path. * If you don't include this parameter, DataSync uses the file system's root directory * (/).

* @public */ Subdirectory?: string | undefined; } /** * @public */ export interface UpdateLocationFsxLustreResponse { } /** *

Specifies the Server Message Block (SMB) protocol configuration that DataSync uses to access your Amazon FSx for NetApp ONTAP file system's storage virtual machine * (SVM). For more information, see Providing DataSync access to FSx for ONTAP file systems.

* @public */ export interface FsxUpdateProtocolSmb { /** *

Specifies the name of the Windows domain that your storage virtual machine (SVM) belongs * to.

*

If you have multiple Active Directory domains in your environment, configuring this * parameter makes sure that DataSync connects to the right SVM.

* @public */ Domain?: string | undefined; /** *

Specifies the version of the Server Message Block (SMB) protocol that DataSync uses to access an SMB file server.

* @public */ MountOptions?: SmbMountOptions | undefined; /** *

Specifies the password of a user who has permission to access your SVM.

* @public */ Password?: string | undefined; /** *

Specifies a user that can mount and access the files, folders, and metadata in your * SVM.

*

For information about choosing a user with the right level of access for your transfer, * see Using * the SMB protocol.

* @public */ User?: string | undefined; /** *

Specifies configuration information for a DataSync-managed secret, such as a * Password or set of credentials that DataSync uses to access a * specific transfer location, and a customer-managed KMS key.

* @public */ CmkSecretConfig?: CmkSecretConfig | undefined; /** *

Specifies configuration information for a customer-managed secret, such as a * Password or set of credentials that DataSync uses to access a * specific transfer location. This configuration includes the secret ARN, and the ARN * for an IAM role that provides access to the secret.

* @public */ CustomSecretConfig?: CustomSecretConfig | undefined; } /** *

Specifies the data transfer protocol that DataSync uses to access your * Amazon FSx file system.

* *

You can't update the Network File System (NFS) protocol configuration for FSx for ONTAP locations. DataSync currently only supports NFS version 3 with * this location type.

*
* @public */ export interface FsxUpdateProtocol { /** *

Specifies the Network File System (NFS) protocol configuration that DataSync * uses to access your FSx for OpenZFS file system or FSx for ONTAP file * system's storage virtual machine (SVM).

* @public */ NFS?: FsxProtocolNfs | undefined; /** *

Specifies the Server Message Block (SMB) protocol configuration that DataSync * uses to access your FSx for ONTAP file system's storage virtual machine * (SVM).

* @public */ SMB?: FsxUpdateProtocolSmb | undefined; } /** * @public */ export interface UpdateLocationFsxOntapRequest { /** *

Specifies the Amazon Resource Name (ARN) of the FSx for ONTAP transfer location * that you're updating.

* @public */ LocationArn: string | undefined; /** *

Specifies the data transfer protocol that DataSync uses to access your Amazon FSx file system.

* @public */ Protocol?: FsxUpdateProtocol | undefined; /** *

Specifies a path to the file share in the storage virtual machine (SVM) where you want to * transfer data to or from.

*

You can specify a junction path (also known as a mount point), qtree path (for NFS file * shares), or share name (for SMB file shares). For example, your mount path might be * /vol1, /vol1/tree1, or /share1.

* *

Don't specify a junction path in the SVM's root volume. For more information, see Managing FSx for ONTAP storage virtual machines in the Amazon FSx for NetApp ONTAP User Guide.

*
* @public */ Subdirectory?: string | undefined; } /** * @public */ export interface UpdateLocationFsxOntapResponse { } /** * @public */ export interface UpdateLocationFsxOpenZfsRequest { /** *

Specifies the Amazon Resource Name (ARN) of the FSx for OpenZFS transfer * location that you're updating.

* @public */ LocationArn: string | undefined; /** *

Specifies the data transfer protocol that DataSync uses to access your * Amazon FSx file system.

* @public */ Protocol?: FsxProtocol | undefined; /** *

Specifies a subdirectory in the location's path that must begin with /fsx. * DataSync uses this subdirectory to read or write data (depending on whether the * file system is a source or destination location).

* @public */ Subdirectory?: string | undefined; } /** * @public */ export interface UpdateLocationFsxOpenZfsResponse { } /** * @public */ export interface UpdateLocationFsxWindowsRequest { /** *

Specifies the ARN of the FSx for Windows File Server transfer location that you're * updating.

* @public */ LocationArn: string | undefined; /** *

Specifies a mount path for your file system using forward slashes. DataSync uses * this subdirectory to read or write data (depending on whether the file system is a source or * destination location).

* @public */ Subdirectory?: string | undefined; /** *

Specifies the name of the Windows domain that your FSx for Windows File Server file system * belongs to.

*

If you have multiple Active Directory domains in your environment, configuring this * parameter makes sure that DataSync connects to the right file system.

* @public */ Domain?: string | undefined; /** *

Specifies the user with the permissions to mount and access the files, folders, and file * metadata in your FSx for Windows File Server file system.

*

For information about choosing a user with the right level of access for your transfer, * see required permissions for FSx for Windows File Server locations.

* @public */ User?: string | undefined; /** *

Specifies the password of the user with the permissions to mount and access the files, * folders, and file metadata in your FSx for Windows File Server file system.

* @public */ Password?: string | undefined; /** *

Specifies configuration information for a DataSync-managed secret, such as a * Password or set of credentials that DataSync uses to access a specific * transfer location, and a customer-managed KMS key.

* @public */ CmkSecretConfig?: CmkSecretConfig | undefined; /** *

Specifies configuration information for a customer-managed secret, such as a * Password or set of credentials that DataSync uses to access a specific * transfer location, and a customer-managed Identity and Access Management (IAM) role * that provides access to the secret.

* @public */ CustomSecretConfig?: CustomSecretConfig | undefined; } /** * @public */ export interface UpdateLocationFsxWindowsResponse { } /** * @public */ export interface UpdateLocationHdfsRequest { /** *

The Amazon Resource Name (ARN) of the source HDFS cluster location.

* @public */ LocationArn: string | undefined; /** *

A subdirectory in the HDFS cluster. This subdirectory is used to read data from or write * data to the HDFS cluster.

* @public */ Subdirectory?: string | undefined; /** *

The NameNode that manages the HDFS namespace. The NameNode performs operations such as * opening, closing, and renaming files and directories. The NameNode contains the information to * map blocks of data to the DataNodes.

*

The number of NameNodes you can specify depends on the task mode:

* * @public */ NameNodes?: HdfsNameNode[] | undefined; /** *

The size of the data blocks to write into the HDFS cluster.

* @public */ BlockSize?: number | undefined; /** *

The number of DataNodes to replicate the data to when writing to the HDFS cluster.

* @public */ ReplicationFactor?: number | undefined; /** *

The URI of the HDFS cluster's Key Management Server (KMS).

* @public */ KmsKeyProviderUri?: string | undefined; /** *

The Quality of Protection (QOP) configuration specifies the Remote Procedure Call (RPC) * and data transfer privacy settings configured on the Hadoop Distributed File System (HDFS) * cluster.

* @public */ QopConfiguration?: QopConfiguration | undefined; /** *

The type of authentication used to determine the identity of the user.

* @public */ AuthenticationType?: HdfsAuthenticationType | undefined; /** *

The user name used to identify the client on the host operating system.

* @public */ SimpleUser?: string | undefined; /** *

The Kerberos principal with access to the files and folders on the HDFS cluster.

* @public */ KerberosPrincipal?: string | undefined; /** *

The Kerberos key table (keytab) that contains mappings between the defined Kerberos * principal and the encrypted keys. You can load the keytab from a file by providing the file's * address.

* @public */ KerberosKeytab?: Uint8Array | undefined; /** *

The krb5.conf file that contains the Kerberos configuration information. You * can load the krb5.conf file by providing the file's address. If you're using the * CLI, it performs the base64 encoding for you. Otherwise, provide the * base64-encoded text.

* @public */ KerberosKrb5Conf?: Uint8Array | undefined; /** *

The Amazon Resource Names (ARNs) of the DataSync agents that can connect to your * HDFS cluster.

* @public */ AgentArns?: string[] | undefined; /** *

Specifies configuration information for a DataSync-managed secret, such as a * KerberosKeytab or set of credentials that DataSync uses to access a * specific transfer location, and a customer-managed KMS key.

* @public */ CmkSecretConfig?: CmkSecretConfig | undefined; /** *

Specifies configuration information for a customer-managed secret, such as a * KerberosKeytab or set of credentials that DataSync uses to * access a specific transfer location, and a customer-managed * Identity and Access Management (IAM) role that provides access to the secret.

* @public */ CustomSecretConfig?: CustomSecretConfig | undefined; } /** * @public */ export interface UpdateLocationHdfsResponse { } /** * @public */ export interface UpdateLocationNfsRequest { /** *

Specifies the Amazon Resource Name (ARN) of the NFS transfer location that you want to * update.

* @public */ LocationArn: string | undefined; /** *

Specifies the export path in your NFS file server that you want DataSync to * mount.

*

This path (or a subdirectory of the path) is where DataSync transfers data to or * from. For information on configuring an export for DataSync, see Accessing NFS file servers.

* @public */ Subdirectory?: string | undefined; /** *

Specifies the DNS name or IP address (IPv4 or IPv6) of the NFS file server that your * DataSync agent connects to.

* @public */ ServerHostname?: string | undefined; /** *

The DataSync agents that can connect to your Network File System (NFS) * file server.

* @public */ OnPremConfig?: OnPremConfig | undefined; /** *

Specifies how DataSync can access a location using the NFS protocol.

* @public */ MountOptions?: NfsMountOptions | undefined; } /** * @public */ export interface UpdateLocationNfsResponse { } /** * @public */ export interface UpdateLocationObjectStorageRequest { /** *

Specifies the ARN of the object storage system location that you're updating.

* @public */ LocationArn: string | undefined; /** *

Specifies the port that your object storage server accepts inbound network traffic on (for * example, port 443).

* @public */ ServerPort?: number | undefined; /** *

Specifies the protocol that your object storage server uses to communicate.

* @public */ ServerProtocol?: ObjectStorageServerProtocol | undefined; /** *

Specifies the object prefix for your object storage server. If this is a source location, * DataSync only copies objects with this prefix. If this is a destination location, DataSync * writes all objects with this prefix.

* @public */ Subdirectory?: string | undefined; /** *

Specifies the domain name or IP address (IPv4 or IPv6) of the object storage server that * your DataSync agent connects to.

* @public */ ServerHostname?: string | undefined; /** *

Specifies the access key (for example, a user name) if credentials are required to * authenticate with the object storage server.

* @public */ AccessKey?: string | undefined; /** *

Specifies the secret key (for example, a password) if credentials are required to * authenticate with the object storage server.

* *

If you provide a secret using SecretKey, but do not provide secret * configuration details using CmkSecretConfig or CustomSecretConfig, * then DataSync stores the token using your Amazon Web Services account's Secrets Manager secret.

*
* @public */ SecretKey?: string | undefined; /** *

(Optional) Specifies the Amazon Resource Names (ARNs) of the DataSync agents * that can connect with your object storage system. If you are setting up an agentless * cross-cloud transfer, you do not need to specify a value for this parameter.

* *

You cannot add or remove agents from a storage location after you initially create * it.

*
* @public */ AgentArns?: string[] | undefined; /** *

Specifies a certificate chain for DataSync to authenticate with your object * storage system if the system uses a private or self-signed certificate authority (CA). You * must specify a single .pem file with a full certificate chain (for example, * file:///home/user/.ssh/object_storage_certificates.pem).

*

The certificate chain might include:

* *

You can concatenate your certificates into a .pem file (which can be up to * 32768 bytes before base64 encoding). The following example cat command creates an * object_storage_certificates.pem file that includes three certificates:

*

* cat object_server_certificate.pem intermediate_certificate.pem * ca_root_certificate.pem > object_storage_certificates.pem *

*

To use this parameter, configure ServerProtocol to HTTPS.

*

Updating this parameter doesn't interfere with tasks that you have in progress.

* @public */ ServerCertificate?: Uint8Array | undefined; /** *

Specifies configuration information for a DataSync-managed secret, such as an * authentication token or set of credentials that DataSync uses to access a specific * transfer location, and a customer-managed KMS key.

* @public */ CmkSecretConfig?: CmkSecretConfig | undefined; /** *

Specifies configuration information for a customer-managed secret, such as an * authentication token or set of credentials that DataSync uses to access a specific * transfer location, and a customer-managed Identity and Access Management (IAM) role * that provides access to the secret.

* @public */ CustomSecretConfig?: CustomSecretConfig | undefined; } /** * @public */ export interface UpdateLocationObjectStorageResponse { } /** * @public */ export interface UpdateLocationS3Request { /** *

Specifies the Amazon Resource Name (ARN) of the Amazon S3 transfer location that * you're updating.

* @public */ LocationArn: string | undefined; /** *

Specifies a prefix in the S3 bucket that DataSync reads from or writes to * (depending on whether the bucket is a source or destination location).

* *

DataSync can't transfer objects with a prefix that begins with a slash (/) * or includes //, /./, or /../ patterns. For * example:

* *
* @public */ Subdirectory?: string | undefined; /** *

Specifies the storage class that you want your objects to use when Amazon S3 is a * transfer destination.

*

For buckets in Amazon Web Services Regions, the storage class defaults to * STANDARD. For buckets on Outposts, the storage class defaults to * OUTPOSTS.

*

For more information, see Storage class * considerations with Amazon S3 transfers.

* @public */ S3StorageClass?: S3StorageClass | undefined; /** *

Specifies the Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that DataSync uses to access your S3 bucket.

*

For more information, see Providing * DataSync access to S3 buckets.

* @public */ S3Config?: S3Config | undefined; } /** * @public */ export interface UpdateLocationS3Response { } /** * @public */ export interface UpdateLocationSmbRequest { /** *

Specifies the ARN of the SMB location that you want to update.

* @public */ LocationArn: string | undefined; /** *

Specifies the name of the share exported by your SMB file server where DataSync * will read or write data. You can include a subdirectory in the share path (for example, * /path/to/subdirectory). Make sure that other SMB clients in your network can * also mount this path.

*

To copy all data in the specified subdirectory, DataSync must be able to mount * the SMB share and access all of its data. For more information, see Providing DataSync access to SMB file servers.

* @public */ Subdirectory?: string | undefined; /** *

Specifies the domain name or IP address (IPv4 or IPv6) of the SMB file server that your DataSync agent connects to.

* *

If you're using Kerberos authentication, you must specify a domain name.

*
* @public */ ServerHostname?: string | undefined; /** *

Specifies the user name that can mount your SMB file server and has permission to access * the files and folders involved in your transfer. This parameter applies only if * AuthenticationType is set to NTLM.

*

For information about choosing a user with the right level of access for your transfer, * see Providing DataSync access to SMB file servers.

* @public */ User?: string | undefined; /** *

Specifies the Windows domain name that your SMB file server belongs to. This parameter * applies only if AuthenticationType is set to NTLM.

*

If you have multiple domains in your environment, configuring this parameter makes sure * that DataSync connects to the right file server.

* @public */ Domain?: string | undefined; /** *

Specifies the password of the user who can mount your SMB file server and has permission * to access the files and folders involved in your transfer. This parameter applies only if * AuthenticationType is set to NTLM.

* @public */ Password?: string | undefined; /** *

Specifies configuration information for a DataSync-managed secret, such as a * Password or KerberosKeytab or set of credentials that DataSync uses to access a specific transfer location, and a * customer-managed KMS key.

* @public */ CmkSecretConfig?: CmkSecretConfig | undefined; /** *

Specifies configuration information for a customer-managed secret, such as a * Password or KerberosKeytab or set of credentials that DataSync uses to access a specific transfer location, and a * customer-managed Identity and Access Management (IAM) role that provides access to * the secret.

* @public */ CustomSecretConfig?: CustomSecretConfig | undefined; /** *

Specifies the DataSync agent (or agents) that can connect to your SMB file * server. You specify an agent by using its Amazon Resource Name (ARN).

* @public */ AgentArns?: string[] | undefined; /** *

Specifies the version of the Server Message Block (SMB) protocol that DataSync uses to access an SMB file server.

* @public */ MountOptions?: SmbMountOptions | undefined; /** *

Specifies the authentication protocol that DataSync uses to connect to your SMB * file server. DataSync supports NTLM (default) and KERBEROS * authentication.

*

For more information, see Providing DataSync access to SMB file servers.

* @public */ AuthenticationType?: SmbAuthenticationType | undefined; /** *

Specifies the IP addresses (IPv4 or IPv6) for the DNS servers that your SMB file server belongs to. * This parameter applies only if AuthenticationType is set to * KERBEROS.

*

If you have multiple domains in your environment, configuring this parameter makes sure * that DataSync connects to the right SMB file server.

* @public */ DnsIpAddresses?: string[] | undefined; /** *

Specifies a Kerberos prinicpal, which is an identity in your Kerberos realm that has * permission to access the files, folders, and file metadata in your SMB file server.

*

A Kerberos principal might look like HOST/kerberosuser@MYDOMAIN.ORG.

*

Principal names are case sensitive. Your DataSync task execution will fail if * the principal that you specify for this parameter doesn’t exactly match the principal that you * use to create the keytab file.

* @public */ KerberosPrincipal?: string | undefined; /** *

Specifies your Kerberos key table (keytab) file, which includes mappings between your * Kerberos principal and encryption keys.

*

To avoid task execution errors, make sure that the Kerberos principal that you use to * create the keytab file matches exactly what you specify for * KerberosPrincipal.

* @public */ KerberosKeytab?: Uint8Array | undefined; /** *

Specifies a Kerberos configuration file (krb5.conf) that defines your * Kerberos realm configuration.

*

The file must be base64 encoded. If you're using the CLI, the encoding is * done for you.

* @public */ KerberosKrb5Conf?: Uint8Array | undefined; } /** * @public */ export interface UpdateLocationSmbResponse { } /** *

UpdateTaskResponse

* @public */ export interface UpdateTaskRequest { /** *

Specifies the ARN of the task that you want to update.

* @public */ TaskArn: string | undefined; /** *

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.

* @public */ Options?: Options | undefined; /** *

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.

* @public */ Excludes?: FilterRule[] | undefined; /** *

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

* @public */ Schedule?: TaskSchedule | undefined; /** *

Specifies the name of your task.

* @public */ Name?: string | undefined; /** *

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

*

For Enhanced mode tasks, you must use /aws/datasync as your log group * name. For example:

*

* arn:aws:logs:us-east-1:111222333444:log-group:/aws/datasync:* *

*

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

* @public */ CloudWatchLogGroupArn?: string | undefined; /** *

Specifies include filters 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.

* @public */ Includes?: FilterRule[] | undefined; /** *

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 IAM role that you're * using DataSync with) must have the iam:PassRole permission. The AWSDataSyncFullAccess policy includes this permission.

*

To remove a manifest configuration, specify this parameter as empty.

* @public */ ManifestConfig?: ManifestConfig | undefined; /** *

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 IAM role that you're * using DataSync with) must have the iam:PassRole permission. The AWSDataSyncFullAccess policy includes this permission.

*

To remove a task report configuration, specify this parameter as empty.

* @public */ TaskReportConfig?: TaskReportConfig | undefined; } /** * @public */ export interface UpdateTaskResponse { } /** * @public */ export interface UpdateTaskExecutionRequest { /** *

Specifies the Amazon Resource Name (ARN) of the task execution that you're * updating.

* @public */ TaskExecutionArn: string | undefined; /** *

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.

* @public */ Options: Options | undefined; } /** * @public */ export interface UpdateTaskExecutionResponse { }