export interface TagListEntry {
    /** The key for an Amazon Web Services resource tag. */
    Key: string;
    /** The value for an Amazon Web Services resource tag. */
    Value?: string;
}
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  */
    Token: string;
}
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 th */
    SecretArn?: string;
    /** 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. */
    KmsKeyArn?: string;
}
export interface CustomSecretConfig {
    /** Specifies the ARN for an Secrets Manager secret. */
    SecretArn?: string;
    /** Specifies the ARN for the Identity and Access Management role that DataSync uses to access the secret specified for SecretArn. */
    SecretAccessRoleArn?: string;
}
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: In the same virtual private cloud (VPC) as the Amazon */
    SubnetArn: string;
    /** Specifies the Amazon Resource Names (ARNs) of the security groups associated with an Amazon EFS file system's mount target. */
    SecurityGroupArns: string[];
}
export interface FsxProtocolNfs {
    MountOptions?: any;
}
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 connect */
    Domain?: string;
    MountOptions?: any;
    /** Specifies the password of a user who has permission to access your SVM. */
    Password: string;
    /** 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 proto */
    User: string;
}
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). */
    NFS?: FsxProtocolNfs;
    /** Specifies the Server Message Block (SMB) protocol configuration that DataSync uses to access your FSx for ONTAP file system's SVM. */
    SMB?: FsxProtocolSmb;
}
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 communicat */
    Hostname: string;
    /** The port that the NameNode uses to listen to client requests. */
    Port: number;
}
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. */
    RpcProtection?: 'DISABLED' | 'AUTHENTICATION' | 'INTEGRITY' | 'PRIVACY';
    /** 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. */
    DataTransferProtection?: 'DISABLED' | 'AUTHENTICATION' | 'INTEGRITY' | 'PRIVACY';
}
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. */
    AgentArns: string[];
}
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: AUTOMAT */
    Version?: 'AUTOMATIC' | 'NFS3' | 'NFS4_0' | 'NFS4_1';
}
export interface S3Config {
    /** Specifies the ARN of the IAM role that DataSync uses to access your S3 bucket. */
    BucketAccessRoleArn: string;
}
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 */
    Version?: 'AUTOMATIC' | 'SMB2' | 'SMB3' | 'SMB1' | 'SMB2_0';
}
export interface Options {
    /** Specifies if and how DataSync checks the integrity of your data at the end of your transfer. ONLY_FILES_TRANSFERRED (recommended) - DataSync calculates the checksum of transferred data (including meta */
    VerifyMode?: 'POINT_IN_TIME_CONSISTENT' | 'ONLY_FILES_TRANSFERRED' | 'NONE';
    /** Specifies whether DataSync should modify or preserve data at the destination location. ALWAYS (default) - DataSync modifies data in the destination location when source data (including metadata) has c */
    OverwriteMode?: 'ALWAYS' | 'NEVER';
    /** 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-effor */
    Atime?: 'NONE' | 'BEST_EFFORT';
    /** 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 mor */
    Mtime?: 'NONE' | 'PRESERVE';
    /** Specifies the POSIX user ID (UID) of the file's owner. INT_VALUE (default) - Preserves the integer value of UID and group ID (GID), which is recommended. NONE - Ignores UID and GID. For more informati */
    Uid?: 'NONE' | 'INT_VALUE' | 'NAME' | 'BOTH';
    /** Specifies the POSIX group ID (GID) of the file's owners. INT_VALUE (default) - Preserves the integer value of user ID (UID) and GID, which is recommended. NONE - Ignores UID and GID. For more informat */
    Gid?: 'NONE' | 'INT_VALUE' | 'NAME' | 'BOTH';
    /** 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 incu */
    PreserveDeletedFiles?: 'PRESERVE' | 'REMOVE';
    /** 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 cop */
    PreserveDevices?: 'NONE' | 'PRESERVE';
    /** 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 objec */
    PosixPermissions?: 'NONE' | 'PRESERVE';
    /** 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). */
    BytesPerSecond?: number;
    /** Specifies whether your transfer tasks should be put into a queue during certain scenarios when running multiple tasks. This is ENABLED by default. */
    TaskQueueing?: 'ENABLED' | 'DISABLED';
    /** Specifies the type of logs that DataSync publishes to a Amazon CloudWatch Logs log group. To specify the log group, see CloudWatchLogGroupArn. BASIC - Publishes logs with only basic information (such  */
    LogLevel?: 'OFF' | 'BASIC' | 'TRANSFER';
    /** 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 o */
    TransferMode?: 'CHANGED' | 'ALL';
    /** 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 locati */
    SecurityDescriptorCopyFlags?: 'NONE' | 'OWNER_DACL' | 'OWNER_DACL_SACL';
    /** 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  */
    ObjectTags?: 'PRESERVE' | 'NONE';
}
export interface FilterRule {
    /** The type of filter rule to apply. DataSync only supports the SIMPLE_PATTERN rule type. */
    FilterType?: 'SIMPLE_PATTERN';
    /** 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 */
    Value?: string;
}
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  */
    ScheduleExpression: string;
    /** Specifies whether to enable or disable your task schedule. Your schedule is enabled by default, but there can be situations where you need to disable it. For example, you might need to pause a recurri */
    Status?: 'ENABLED' | 'DISABLED';
}
export interface SourceManifestConfig {
    /** Specifies the S3 bucket where you're hosting your manifest. */
    S3: any;
}
export interface ManifestConfig {
    /** Specifies what DataSync uses the manifest for. */
    Action?: 'TRANSFER';
    /** Specifies the file format of your manifest. For more information, see Creating a manifest. */
    Format?: 'CSV';
    /** 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  */
    Source?: SourceManifestConfig;
}
export interface ReportDestination {
    /** Specifies the Amazon S3 bucket where DataSync uploads your task report. */
    S3?: any;
}
export interface ReportOverrides {
    /** Specifies the level of reporting for the files, objects, and directories that DataSync attempted to transfer. */
    Transferred?: any;
    /** Specifies the level of reporting for the files, objects, and directories that DataSync attempted to verify at the end of your transfer. */
    Verified?: any;
    /** 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  */
    Deleted?: any;
    /** Specifies the level of reporting for the files, objects, and directories that DataSync attempted to skip during your transfer. */
    Skipped?: any;
}
export interface TaskReportConfig {
    /** Specifies the Amazon S3 bucket where DataSync uploads your task report. For more information, see Task reports. */
    Destination?: ReportDestination;
    /** Specifies the type of task report that you want: SUMMARY_ONLY: Provides necessary details about your task, including the number of files, objects, and directories transferred and transfer duration. ST */
    OutputType?: 'SUMMARY_ONLY' | 'STANDARD';
    /** Specifies whether you want your task report to include only what went wrong with your transfer or a list of what succeeded and didn't. ERRORS_ONLY: A report shows what DataSync was unable to transfer, */
    ReportLevel?: 'ERRORS_ONLY' | 'SUCCESSES_AND_ERRORS';
    /** 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 I */
    ObjectVersionIds?: 'INCLUDE' | 'NONE';
    /** 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 fo */
    Overrides?: ReportOverrides;
}
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). */
    Name: 'LocationUri' | 'LocationType' | 'CreationTime';
    /** The values that you want to filter for. For example, you might want to display only Amazon S3 locations. */
    Values: any[];
    /** The operator that is used to compare filter values (for example, Equals or Contains). */
    Operator: 'Equals' | 'NotEquals' | 'In' | 'LessThanOrEqual' | 'LessThan' | 'GreaterThanOrEqual' | 'GreaterThan' | 'Contains' | 'NotContains' | 'BeginsWith';
}
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. */
    Name: 'LocationId' | 'CreationTime';
    /** The values that you want to filter for. For example, you might want to display only tasks for a specific destination location. */
    Values: any[];
    /** The operator that is used to compare filter values (for example, Equals or Contains). */
    Operator: 'Equals' | 'NotEquals' | 'In' | 'LessThanOrEqual' | 'LessThan' | 'GreaterThanOrEqual' | 'GreaterThan' | 'Contains' | 'NotContains' | 'BeginsWith';
}
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 th */
    Domain?: string;
    MountOptions?: any;
    /** Specifies the password of a user who has permission to access your SVM. */
    Password?: string;
    /** 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 proto */
    User?: string;
}
export interface FsxUpdateProtocol {
    NFS?: FsxProtocolNfs;
    /** Specifies the Server Message Block (SMB) protocol configuration that DataSync uses to access your FSx for ONTAP file system's storage virtual machine (SVM). */
    SMB?: FsxUpdateProtocolSmb;
}
/** CancelTaskExecutionRequest */
export interface CancelTaskExecutionInput {
    /** The Amazon Resource Name (ARN) of the task execution to stop. */
    TaskExecutionArn: string;
}
/** CreateAgentRequest */
export interface CreateAgentInput {
    /** Specifies your DataSync agent's activation key. If you don't have an activation key, see Activating your agent. */
    ActivationKey: string;
    /** Specifies a name for your agent. We recommend specifying a name that you can remember. */
    AgentName?: string;
    /** 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. */
    SecurityGroupArns?: string[];
    /** Specifies the ARN of the subnet where your VPC service endpoint is located. You can only specify one ARN. */
    SubnetArns?: string[];
    /** 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. */
    Tags?: TagListEntry[];
    /** 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 nam */
    VpcEndpointId?: string;
}
export interface CreateLocationAzureBlobInput {
    /** Specifies the authentication method DataSync uses to access your Azure Blob Storage. DataSync can access blob storage using a shared access signature (SAS). */
    AuthenticationType: 'SAS' | 'NONE';
    /** Specifies the URL of the Azure Blob Storage container involved in your transfer. */
    ContainerUrl: string;
    /** 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. */
    AccessTier?: 'HOT' | 'COOL' | 'ARCHIVE';
    /** (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 n */
    AgentArns?: string[];
    /** 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 blob */
    BlobType?: 'BLOCK';
    /** 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 K */
    CmkSecretConfig?: CmkSecretConfig;
    /** 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 con */
    CustomSecretConfig?: CustomSecretConfig;
    /** 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 u */
    SasConfiguration?: AzureBlobSasConfiguration;
    /** Specifies path segments if you want to limit your transfer to a virtual directory in your container (for example, /my/images). */
    Subdirectory?: string;
    /** 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. */
    Tags?: TagListEntry[];
}
/** CreateLocationEfsRequest */
export interface CreateLocationEfsInput {
    /** Specifies the subnet and security groups DataSync uses to connect to one of your Amazon EFS file system's mount targets. */
    Ec2Config: Ec2Config;
    /** Specifies the ARN for your Amazon EFS file system. */
    EfsFilesystemArn: string;
    /** 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. */
    AccessPointArn?: string;
    /** 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 syst */
    FileSystemAccessRoleArn?: string;
    /** 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 AccessPoint */
    InTransitEncryption?: 'NONE' | 'TLS1_2';
    /** 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 */
    Subdirectory?: string;
    /** 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 recomm */
    Tags?: TagListEntry[];
}
export interface CreateLocationFsxLustreInput {
    /** Specifies the Amazon Resource Name (ARN) of the FSx for Lustre file system. */
    FsxFilesystemArn: string;
    /** 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 */
    SecurityGroupArns: string[];
    /** 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 us */
    Subdirectory?: string;
    /** 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. */
    Tags?: TagListEntry[];
}
export interface CreateLocationFsxOntapInput {
    Protocol: FsxProtocol;
    /** 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 y */
    SecurityGroupArns: string[];
    /** Specifies the ARN of the storage virtual machine (SVM) in your file system where you want to copy data to or from. */
    StorageVirtualMachineArn: string;
    /** 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 */
    Subdirectory?: string;
    /** 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. */
    Tags?: TagListEntry[];
}
export interface CreateLocationFsxOpenZfsInput {
    /** The Amazon Resource Name (ARN) of the FSx for OpenZFS file system. */
    FsxFilesystemArn: string;
    /** The type of protocol that DataSync uses to access your file system. */
    Protocol: FsxProtocol;
    /** The ARNs of the security groups that are used to configure the FSx for OpenZFS file system. */
    SecurityGroupArns: string[];
    /** 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). */
    Subdirectory?: string;
    /** 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 y */
    Tags?: TagListEntry[];
}
export interface CreateLocationFsxWindowsInput {
    /** Specifies the Amazon Resource Name (ARN) for the FSx for Windows File Server file system. */
    FsxFilesystemArn: string;
    /** 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. */
    Password: string;
    /** 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' */
    SecurityGroupArns: string[];
    /** 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  */
    User: string;
    /** 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 make */
    Domain?: string;
    /** 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). */
    Subdirectory?: string;
    /** 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. */
    Tags?: TagListEntry[];
}
export interface CreateLocationHdfsInput {
    /** The Amazon Resource Names (ARNs) of the DataSync agents that can connect to your HDFS cluster. */
    AgentArns: string[];
    /** The type of authentication used to determine the identity of the user. */
    AuthenticationType: 'SIMPLE' | 'KERBEROS';
    /** 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 */
    NameNodes: HdfsNameNode[];
    /** 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). */
    BlockSize?: number;
    /** 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 i */
    KerberosKeytab?: string;
    /** 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 y */
    KerberosKrb5Conf?: string;
    /** The Kerberos principal with access to the files and folders on the HDFS cluster. If KERBEROS is specified for AuthenticationType, this parameter is required. */
    KerberosPrincipal?: string;
    /** The URI of the HDFS cluster's Key Management Server (KMS). */
    KmsKeyProviderUri?: string;
    /** 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 QopCon */
    QopConfiguration?: QopConfiguration;
    /** The number of DataNodes to replicate the data to when writing to the HDFS cluster. By default, data is replicated to three DataNodes. */
    ReplicationFactor?: number;
    /** The user name used to identify the client on the host operating system. If SIMPLE is specified for AuthenticationType, this parameter is required. */
    SimpleUser?: string;
    /** 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 /. */
    Subdirectory?: string;
    /** 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. */
    Tags?: TagListEntry[];
}
/** CreateLocationNfsRequest */
export interface CreateLocationNfsInput {
    /** 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. */
    OnPremConfig: OnPremConfig;
    /** Specifies the DNS name or IP address (IPv4 or IPv6) of the NFS file server that your DataSync agent connects to. */
    ServerHostname: string;
    /** 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 */
    Subdirectory: string;
    /** Specifies the options that DataSync can use to mount your NFS file server. */
    MountOptions?: NfsMountOptions;
    /** 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. */
    Tags?: TagListEntry[];
}
/** CreateLocationObjectStorageRequest */
export interface CreateLocationObjectStorageInput {
    /** Specifies the name of the object storage bucket involved in the transfer. */
    BucketName: string;
    /** Specifies the domain name or IP address (IPv4 or IPv6) of the object storage server that your DataSync agent connects to. */
    ServerHostname: string;
    /** Specifies the access key (for example, a user name) if credentials are required to authenticate with the object storage server. */
    AccessKey?: string;
    /** (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  */
    AgentArns?: string[];
    /** 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 y */
    CmkSecretConfig?: CmkSecretConfig;
    /** 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 configur */
    CustomSecretConfig?: CustomSecretConfig;
    /** 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 config */
    SecretKey?: string;
    /** 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 w */
    ServerCertificate?: string;
    /** Specifies the port that your object storage server accepts inbound network traffic on (for example, port 443). */
    ServerPort?: number;
    /** Specifies the protocol that your object storage server uses to communicate. If not specified, the default value is HTTPS. */
    ServerProtocol?: 'HTTPS' | 'HTTP';
    /** 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  */
    Subdirectory?: string;
    /** 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 loca */
    Tags?: TagListEntry[];
}
/** CreateLocationS3Request */
export interface CreateLocationS3Input {
    /** 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 bucke */
    S3BucketArn: string;
    S3Config: S3Config;
    /** (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. */
    AgentArns?: string[];
    /** 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  */
    S3StorageClass?: 'STANDARD' | 'STANDARD_IA' | 'ONEZONE_IA' | 'INTELLIGENT_TIERING' | 'GLACIER' | 'DEEP_ARCHIVE' | 'OUTPOSTS' | 'GLACIER_INSTANT_RETRIEVAL';
    /** 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 begi */
    Subdirectory?: string;
    /** 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. */
    Tags?: TagListEntry[];
}
/** CreateLocationSmbRequest */
export interface CreateLocationSmbInput {
    /** 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). */
    AgentArns: string[];
    /** 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. */
    ServerHostname: string;
    /** 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 sur */
    Subdirectory: string;
    /** 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  */
    AuthenticationType?: 'NTLM' | 'KERBEROS';
    /** 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 */
    CmkSecretConfig?: CmkSecretConfig;
    /** 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 Ke */
    CustomSecretConfig?: CustomSecretConfig;
    /** 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 you */
    DnsIpAddresses?: string[];
    /** 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  */
    Domain?: string;
    /** 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 */
    KerberosKeytab?: string;
    /** 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. */
    KerberosKrb5Conf?: string;
    /** 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 */
    KerberosPrincipal?: string;
    /** Specifies the version of the SMB protocol that DataSync uses to access your SMB file server. */
    MountOptions?: SmbMountOptions;
    /** 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 */
    Password?: string;
    /** 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. */
    Tags?: TagListEntry[];
    /** 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 choo */
    User?: string;
}
/** CreateTaskRequest */
export interface CreateTaskInput {
    /** Specifies the ARN of your transfer's destination location. */
    DestinationLocationArn: string;
    /** Specifies the ARN of your transfer's source location. */
    SourceLocationArn: string;
    /** 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 */
    CloudWatchLogGroupArn?: string;
    /** 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  */
    Excludes?: FilterRule[];
    /** 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 transf */
    Includes?: FilterRule[];
    /** 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 manife */
    ManifestConfig?: ManifestConfig;
    /** Specifies the name of your task. */
    Name?: string;
    /** Specifies your task's settings, such as preserving file metadata, verifying data integrity, among other options. */
    Options?: Options;
    /** Specifies a schedule for when you want your task to run. For more information, see Scheduling your task. */
    Schedule?: TaskSchedule;
    /** 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. */
    Tags?: TagListEntry[];
    /** Specifies one of the following task modes for your data transfer: ENHANCED - Transfer virtually unlimited numbers of objects with higher performance than Basic mode. Enhanced mode tasks optimize the d */
    TaskMode?: 'BASIC' | 'ENHANCED';
    /** 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. Whe */
    TaskReportConfig?: TaskReportConfig;
}
/** DeleteAgentRequest */
export interface DeleteAgentInput {
    /** 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. */
    AgentArn: string;
}
/** DeleteLocation */
export interface DeleteLocationInput {
    /** The Amazon Resource Name (ARN) of the location to delete. */
    LocationArn: string;
}
/** DeleteTask */
export interface DeleteTaskInput {
    /** Specifies the Amazon Resource Name (ARN) of the task that you want to delete. */
    TaskArn: string;
}
/** DescribeAgent */
export interface DescribeAgentInput {
    /** Specifies the Amazon Resource Name (ARN) of the DataSync agent that you want information about. */
    AgentArn: string;
}
export interface DescribeLocationAzureBlobInput {
    /** Specifies the Amazon Resource Name (ARN) of your Azure Blob Storage transfer location. */
    LocationArn: string;
}
/** DescribeLocationEfsRequest */
export interface DescribeLocationEfsInput {
    /** The Amazon Resource Name (ARN) of the Amazon EFS file system location that you want information about. */
    LocationArn: string;
}
export interface DescribeLocationFsxLustreInput {
    /** The Amazon Resource Name (ARN) of the FSx for Lustre location to describe. */
    LocationArn: string;
}
export interface DescribeLocationFsxOntapInput {
    /** Specifies the Amazon Resource Name (ARN) of the FSx for ONTAP file system location that you want information about. */
    LocationArn: string;
}
export interface DescribeLocationFsxOpenZfsInput {
    /** The Amazon Resource Name (ARN) of the FSx for OpenZFS location to describe. */
    LocationArn: string;
}
export interface DescribeLocationFsxWindowsInput {
    /** Specifies the Amazon Resource Name (ARN) of the FSx for Windows File Server location. */
    LocationArn: string;
}
export interface DescribeLocationHdfsInput {
    /** Specifies the Amazon Resource Name (ARN) of the HDFS location. */
    LocationArn: string;
}
/** DescribeLocationNfsRequest */
export interface DescribeLocationNfsInput {
    /** Specifies the Amazon Resource Name (ARN) of the NFS location that you want information about. */
    LocationArn: string;
}
/** DescribeLocationObjectStorageRequest */
export interface DescribeLocationObjectStorageInput {
    /** Specifies the Amazon Resource Name (ARN) of the object storage system location. */
    LocationArn: string;
}
/** DescribeLocationS3Request */
export interface DescribeLocationS3Input {
    /** Specifies the Amazon Resource Name (ARN) of the Amazon S3 location. */
    LocationArn: string;
}
/** DescribeLocationSmbRequest */
export interface DescribeLocationSmbInput {
    /** Specifies the Amazon Resource Name (ARN) of the SMB location that you want information about. */
    LocationArn: string;
}
/** DescribeTaskRequest */
export interface DescribeTaskInput {
    /** Specifies the Amazon Resource Name (ARN) of the transfer task that you want information about. */
    TaskArn: string;
}
/** DescribeTaskExecutionRequest */
export interface DescribeTaskExecutionInput {
    /** Specifies the Amazon Resource Name (ARN) of the task execution that you want information about. */
    TaskExecutionArn: string;
}
/** ListAgentsRequest */
export interface ListAgentsInput {
    /** Specifies the maximum number of DataSync agents to list in a response. By default, a response shows a maximum of 100 agents. */
    MaxResults?: number;
    /** Specifies an opaque string that indicates the position to begin the next list of results in the response. */
    NextToken?: string;
}
/** ListLocationsRequest */
export interface ListLocationsInput {
    /** 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 Loc */
    Filters?: LocationFilter[];
    /** The maximum number of locations to return. */
    MaxResults?: number;
    /** An opaque string that indicates the position at which to begin the next list of locations. */
    NextToken?: string;
}
/** ListTagsForResourceRequest */
export interface ListTagsForResourceInput {
    /** Specifies the Amazon Resource Name (ARN) of the resource that you want tag information on. */
    ResourceArn: string;
    /** Specifies how many results that you want in the response. */
    MaxResults?: number;
    /** Specifies an opaque string that indicates the position to begin the next list of results in the response. */
    NextToken?: string;
}
/** ListTaskExecutions */
export interface ListTaskExecutionsInput {
    /** Specifies how many results you want in the response. */
    MaxResults?: number;
    /** Specifies an opaque string that indicates the position at which to begin the next list of results in the response. */
    NextToken?: string;
    /** Specifies the Amazon Resource Name (ARN) of the task that you want execution information about. */
    TaskArn?: string;
}
/** ListTasksRequest */
export interface ListTasksInput {
    /** 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  */
    Filters?: TaskFilter[];
    /** The maximum number of tasks to return. */
    MaxResults?: number;
    /** An opaque string that indicates the position at which to begin the next list of tasks. */
    NextToken?: string;
}
/** StartTaskExecutionRequest */
export interface StartTaskExecutionInput {
    /** Specifies the Amazon Resource Name (ARN) of the task that you want to start. */
    TaskArn: string;
    /** 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 "| */
    Excludes?: FilterRule[];
    /** 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 ar */
    Includes?: FilterRule[];
    /** 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 manife */
    ManifestConfig?: ManifestConfig;
    OverrideOptions?: Options;
    /** 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 resourc */
    Tags?: TagListEntry[];
    /** 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. Whe */
    TaskReportConfig?: TaskReportConfig;
}
/** TagResourceRequest */
export interface TagResourceInput {
    /** Specifies the Amazon Resource Name (ARN) of the resource to apply the tag to. */
    ResourceArn: string;
    /** Specifies the tags that you want to apply to the resource. */
    Tags: TagListEntry[];
}
/** UntagResourceRequest */
export interface UntagResourceInput {
    /** Specifies the keys in the tags that you want to remove. */
    Keys: string[];
    /** Specifies the Amazon Resource Name (ARN) of the resource to remove the tags from. */
    ResourceArn: string;
}
/** UpdateAgentRequest */
export interface UpdateAgentInput {
    /** The Amazon Resource Name (ARN) of the agent to update. */
    AgentArn: string;
    /** The name that you want to use to configure the agent. */
    Name?: string;
}
export interface UpdateLocationAzureBlobInput {
    /** Specifies the ARN of the Azure Blob Storage transfer location that you're updating. */
    LocationArn: string;
    /** 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. */
    AccessTier?: 'HOT' | 'COOL' | 'ARCHIVE';
    /** (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 n */
    AgentArns?: string[];
    /** Specifies the authentication method DataSync uses to access your Azure Blob Storage. DataSync can access blob storage using a shared access signature (SAS). */
    AuthenticationType?: 'SAS' | 'NONE';
    /** 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 blob */
    BlobType?: 'BLOCK';
    /** 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-manag */
    CmkSecretConfig?: CmkSecretConfig;
    /** 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-manag */
    CustomSecretConfig?: CustomSecretConfig;
    /** Specifies the SAS configuration that allows DataSync to access your Azure Blob Storage. */
    SasConfiguration?: AzureBlobSasConfiguration;
    /** Specifies path segments if you want to limit your transfer to a virtual directory in your container (for example, /my/images). */
    Subdirectory?: string;
}
export interface UpdateLocationEfsInput {
    /** Specifies the Amazon Resource Name (ARN) of the Amazon EFS transfer location that you're updating. */
    LocationArn: string;
    /** 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. */
    AccessPointArn?: string;
    /** 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 EF */
    FileSystemAccessRoleArn?: string;
    /** 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 AccessPoint */
    InTransitEncryption?: 'NONE' | 'TLS1_2';
    /** 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 */
    Subdirectory?: string;
}
export interface UpdateLocationFsxLustreInput {
    /** Specifies the Amazon Resource Name (ARN) of the FSx for Lustre transfer location that you're updating. */
    LocationArn: string;
    /** 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 us */
    Subdirectory?: string;
}
export interface UpdateLocationFsxOntapInput {
    /** Specifies the Amazon Resource Name (ARN) of the FSx for ONTAP transfer location that you're updating. */
    LocationArn: string;
    /** Specifies the data transfer protocol that DataSync uses to access your Amazon FSx file system. */
    Protocol?: FsxUpdateProtocol;
    /** 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 f */
    Subdirectory?: string;
}
export interface UpdateLocationFsxOpenZfsInput {
    /** Specifies the Amazon Resource Name (ARN) of the FSx for OpenZFS transfer location that you're updating. */
    LocationArn: string;
    Protocol?: FsxProtocol;
    /** 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 locati */
    Subdirectory?: string;
}
export interface UpdateLocationFsxWindowsInput {
    /** Specifies the ARN of the FSx for Windows File Server transfer location that you're updating. */
    LocationArn: string;
    /** 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 mak */
    Domain?: string;
    /** 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. */
    Password?: string;
    /** 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). */
    Subdirectory?: string;
    /** 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  */
    User?: string;
}
export interface UpdateLocationHdfsInput {
    /** The Amazon Resource Name (ARN) of the source HDFS cluster location. */
    LocationArn: string;
    /** The Amazon Resource Names (ARNs) of the DataSync agents that can connect to your HDFS cluster. */
    AgentArns?: string[];
    /** The type of authentication used to determine the identity of the user. */
    AuthenticationType?: 'SIMPLE' | 'KERBEROS';
    /** The size of the data blocks to write into the HDFS cluster. */
    BlockSize?: number;
    /** 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. */
    KerberosKeytab?: string;
    /** 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 y */
    KerberosKrb5Conf?: string;
    /** The Kerberos principal with access to the files and folders on the HDFS cluster. */
    KerberosPrincipal?: string;
    /** The URI of the HDFS cluster's Key Management Server (KMS). */
    KmsKeyProviderUri?: string;
    /** 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 */
    NameNodes?: HdfsNameNode[];
    /** 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. */
    QopConfiguration?: QopConfiguration;
    /** The number of DataNodes to replicate the data to when writing to the HDFS cluster. */
    ReplicationFactor?: number;
    /** The user name used to identify the client on the host operating system. */
    SimpleUser?: string;
    /** A subdirectory in the HDFS cluster. This subdirectory is used to read data from or write data to the HDFS cluster. */
    Subdirectory?: string;
}
export interface UpdateLocationNfsInput {
    /** Specifies the Amazon Resource Name (ARN) of the NFS transfer location that you want to update. */
    LocationArn: string;
    MountOptions?: NfsMountOptions;
    OnPremConfig?: OnPremConfig;
    /** Specifies the DNS name or IP address (IPv4 or IPv6) of the NFS file server that your DataSync agent connects to. */
    ServerHostname?: string;
    /** 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 */
    Subdirectory?: string;
}
export interface UpdateLocationObjectStorageInput {
    /** Specifies the ARN of the object storage system location that you're updating. */
    LocationArn: string;
    /** Specifies the access key (for example, a user name) if credentials are required to authenticate with the object storage server. */
    AccessKey?: string;
    /** (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  */
    AgentArns?: string[];
    /** 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-manag */
    CmkSecretConfig?: CmkSecretConfig;
    /** 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-manag */
    CustomSecretConfig?: CustomSecretConfig;
    /** 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 config */
    SecretKey?: string;
    /** 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 w */
    ServerCertificate?: string;
    /** Specifies the domain name or IP address (IPv4 or IPv6) of the object storage server that your DataSync agent connects to. */
    ServerHostname?: string;
    /** Specifies the port that your object storage server accepts inbound network traffic on (for example, port 443). */
    ServerPort?: number;
    /** Specifies the protocol that your object storage server uses to communicate. */
    ServerProtocol?: 'HTTPS' | 'HTTP';
    /** 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  */
    Subdirectory?: string;
}
export interface UpdateLocationS3Input {
    /** Specifies the Amazon Resource Name (ARN) of the Amazon S3 transfer location that you're updating. */
    LocationArn: string;
    S3Config?: S3Config;
    /** 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  */
    S3StorageClass?: 'STANDARD' | 'STANDARD_IA' | 'ONEZONE_IA' | 'INTELLIGENT_TIERING' | 'GLACIER' | 'DEEP_ARCHIVE' | 'OUTPOSTS' | 'GLACIER_INSTANT_RETRIEVAL';
    /** 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 begi */
    Subdirectory?: string;
}
export interface UpdateLocationSmbInput {
    /** Specifies the ARN of the SMB location that you want to update. */
    LocationArn: string;
    /** 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). */
    AgentArns?: string[];
    /** 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  */
    AuthenticationType?: 'NTLM' | 'KERBEROS';
    /** 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- */
    CmkSecretConfig?: CmkSecretConfig;
    /** 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- */
    CustomSecretConfig?: CustomSecretConfig;
    /** 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 i */
    DnsIpAddresses?: string[];
    /** 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  */
    Domain?: string;
    /** 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 */
    KerberosKeytab?: string;
    /** 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. */
    KerberosKrb5Conf?: string;
    /** 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 */
    KerberosPrincipal?: string;
    MountOptions?: SmbMountOptions;
    /** 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 */
    Password?: string;
    /** 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. */
    ServerHostname?: string;
    /** 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 sur */
    Subdirectory?: string;
    /** 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 NT */
    User?: string;
}
/** UpdateTaskResponse */
export interface UpdateTaskInput {
    /** Specifies the ARN of the task that you want to update. */
    TaskArn: string;
    /** 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:lo */
    CloudWatchLogGroupArn?: string;
    /** 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  */
    Excludes?: FilterRule[];
    /** 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 b */
    Includes?: FilterRule[];
    /** 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 manife */
    ManifestConfig?: ManifestConfig;
    /** Specifies the name of your task. */
    Name?: string;
    Options?: Options;
    /** Specifies a schedule for when you want your task to run. For more information, see Scheduling your task. */
    Schedule?: TaskSchedule;
    /** 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. Whe */
    TaskReportConfig?: TaskReportConfig;
}
export interface UpdateTaskExecutionInput {
    Options: Options;
    /** Specifies the Amazon Resource Name (ARN) of the task execution that you're updating. */
    TaskExecutionArn: string;
}
/** DataSync service binding for Step Functions SDK integrations. */
export declare class DataSync {
    constructor();
    cancelTaskExecution<T>(params: CancelTaskExecutionInput): Promise<T>;
    createAgent<T>(params: CreateAgentInput): Promise<T>;
    createLocationAzureBlob<T>(params: CreateLocationAzureBlobInput): Promise<T>;
    createLocationEfs<T>(params: CreateLocationEfsInput): Promise<T>;
    createLocationFsxLustre<T>(params: CreateLocationFsxLustreInput): Promise<T>;
    createLocationFsxOntap<T>(params: CreateLocationFsxOntapInput): Promise<T>;
    createLocationFsxOpenZfs<T>(params: CreateLocationFsxOpenZfsInput): Promise<T>;
    createLocationFsxWindows<T>(params: CreateLocationFsxWindowsInput): Promise<T>;
    createLocationHdfs<T>(params: CreateLocationHdfsInput): Promise<T>;
    createLocationNfs<T>(params: CreateLocationNfsInput): Promise<T>;
    createLocationObjectStorage<T>(params: CreateLocationObjectStorageInput): Promise<T>;
    createLocationS3<T>(params: CreateLocationS3Input): Promise<T>;
    createLocationSmb<T>(params: CreateLocationSmbInput): Promise<T>;
    createTask<T>(params: CreateTaskInput): Promise<T>;
    deleteAgent<T>(params: DeleteAgentInput): Promise<T>;
    deleteLocation<T>(params: DeleteLocationInput): Promise<T>;
    deleteTask<T>(params: DeleteTaskInput): Promise<T>;
    describeAgent<T>(params: DescribeAgentInput): Promise<T>;
    describeLocationAzureBlob<T>(params: DescribeLocationAzureBlobInput): Promise<T>;
    describeLocationEfs<T>(params: DescribeLocationEfsInput): Promise<T>;
    describeLocationFsxLustre<T>(params: DescribeLocationFsxLustreInput): Promise<T>;
    describeLocationFsxOntap<T>(params: DescribeLocationFsxOntapInput): Promise<T>;
    describeLocationFsxOpenZfs<T>(params: DescribeLocationFsxOpenZfsInput): Promise<T>;
    describeLocationFsxWindows<T>(params: DescribeLocationFsxWindowsInput): Promise<T>;
    describeLocationHdfs<T>(params: DescribeLocationHdfsInput): Promise<T>;
    describeLocationNfs<T>(params: DescribeLocationNfsInput): Promise<T>;
    describeLocationObjectStorage<T>(params: DescribeLocationObjectStorageInput): Promise<T>;
    describeLocationS3<T>(params: DescribeLocationS3Input): Promise<T>;
    describeLocationSmb<T>(params: DescribeLocationSmbInput): Promise<T>;
    describeTask<T>(params: DescribeTaskInput): Promise<T>;
    describeTaskExecution<T>(params: DescribeTaskExecutionInput): Promise<T>;
    listAgents<T>(params: ListAgentsInput): Promise<T>;
    listLocations<T>(params: ListLocationsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    listTaskExecutions<T>(params: ListTaskExecutionsInput): Promise<T>;
    listTasks<T>(params: ListTasksInput): Promise<T>;
    startTaskExecution<T>(params: StartTaskExecutionInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateAgent<T>(params: UpdateAgentInput): Promise<T>;
    updateLocationAzureBlob<T>(params: UpdateLocationAzureBlobInput): Promise<T>;
    updateLocationEfs<T>(params: UpdateLocationEfsInput): Promise<T>;
    updateLocationFsxLustre<T>(params: UpdateLocationFsxLustreInput): Promise<T>;
    updateLocationFsxOntap<T>(params: UpdateLocationFsxOntapInput): Promise<T>;
    updateLocationFsxOpenZfs<T>(params: UpdateLocationFsxOpenZfsInput): Promise<T>;
    updateLocationFsxWindows<T>(params: UpdateLocationFsxWindowsInput): Promise<T>;
    updateLocationHdfs<T>(params: UpdateLocationHdfsInput): Promise<T>;
    updateLocationNfs<T>(params: UpdateLocationNfsInput): Promise<T>;
    updateLocationObjectStorage<T>(params: UpdateLocationObjectStorageInput): Promise<T>;
    updateLocationS3<T>(params: UpdateLocationS3Input): Promise<T>;
    updateLocationSmb<T>(params: UpdateLocationSmbInput): Promise<T>;
    updateTask<T>(params: UpdateTaskInput): Promise<T>;
    updateTaskExecution<T>(params: UpdateTaskExecutionInput): Promise<T>;
}
//# sourceMappingURL=DataSync.d.ts.map