datasync.d.ts
   1  import {Request} from '../lib/request';
   2  import {Response} from '../lib/response';
   3  import {AWSError} from '../lib/error';
   4  import {Service} from '../lib/service';
   5  import {ServiceConfigurationOptions} from '../lib/service';
   6  import {ConfigBase as Config} from '../lib/config-base';
   7  interface Blob {}
   8  declare class DataSync extends Service {
   9    /**
  10     * Constructs a service object. This object has one method for each API operation.
  11     */
  12    constructor(options?: DataSync.Types.ClientConfiguration)
  13    config: Config & DataSync.Types.ClientConfiguration;
  14    /**
  15     * Cancels execution of a task.  When you cancel a task execution, the transfer of some files is abruptly interrupted. The contents of files that are transferred to the destination might be incomplete or inconsistent with the source files. However, if you start a new task execution on the same task and you allow the task execution to complete, file content on the destination is complete and consistent. This applies to other unexpected failures that interrupt a task execution. In all of these cases, DataSync successfully complete the transfer when you start the next task execution.
  16     */
  17    cancelTaskExecution(params: DataSync.Types.CancelTaskExecutionRequest, callback?: (err: AWSError, data: DataSync.Types.CancelTaskExecutionResponse) => void): Request<DataSync.Types.CancelTaskExecutionResponse, AWSError>;
  18    /**
  19     * Cancels execution of a task.  When you cancel a task execution, the transfer of some files is abruptly interrupted. The contents of files that are transferred to the destination might be incomplete or inconsistent with the source files. However, if you start a new task execution on the same task and you allow the task execution to complete, file content on the destination is complete and consistent. This applies to other unexpected failures that interrupt a task execution. In all of these cases, DataSync successfully complete the transfer when you start the next task execution.
  20     */
  21    cancelTaskExecution(callback?: (err: AWSError, data: DataSync.Types.CancelTaskExecutionResponse) => void): Request<DataSync.Types.CancelTaskExecutionResponse, AWSError>;
  22    /**
  23     * Activates an DataSync agent that you have deployed on your host. The activation process associates your agent with your account. In the activation process, you specify information such as the Amazon Web Services Region that you want to activate the agent in. You activate the agent in the Amazon Web Services Region where your target locations (in Amazon S3 or Amazon EFS) reside. Your tasks are created in this Amazon Web Services Region. You can activate the agent in a VPC (virtual private cloud) or provide the agent access to a VPC endpoint so you can run tasks without going over the public internet. You can use an agent for more than one location. If a task uses multiple agents, all of them need to have status AVAILABLE for the task to run. If you use multiple agents for a source location, the status of all the agents must be AVAILABLE for the task to run.  Agents are automatically updated by Amazon Web Services on a regular basis, using a mechanism that ensures minimal interruption to your tasks. 
  24     */
  25    createAgent(params: DataSync.Types.CreateAgentRequest, callback?: (err: AWSError, data: DataSync.Types.CreateAgentResponse) => void): Request<DataSync.Types.CreateAgentResponse, AWSError>;
  26    /**
  27     * Activates an DataSync agent that you have deployed on your host. The activation process associates your agent with your account. In the activation process, you specify information such as the Amazon Web Services Region that you want to activate the agent in. You activate the agent in the Amazon Web Services Region where your target locations (in Amazon S3 or Amazon EFS) reside. Your tasks are created in this Amazon Web Services Region. You can activate the agent in a VPC (virtual private cloud) or provide the agent access to a VPC endpoint so you can run tasks without going over the public internet. You can use an agent for more than one location. If a task uses multiple agents, all of them need to have status AVAILABLE for the task to run. If you use multiple agents for a source location, the status of all the agents must be AVAILABLE for the task to run.  Agents are automatically updated by Amazon Web Services on a regular basis, using a mechanism that ensures minimal interruption to your tasks. 
  28     */
  29    createAgent(callback?: (err: AWSError, data: DataSync.Types.CreateAgentResponse) => void): Request<DataSync.Types.CreateAgentResponse, AWSError>;
  30    /**
  31     * Creates an endpoint for an Amazon EFS file system.
  32     */
  33    createLocationEfs(params: DataSync.Types.CreateLocationEfsRequest, callback?: (err: AWSError, data: DataSync.Types.CreateLocationEfsResponse) => void): Request<DataSync.Types.CreateLocationEfsResponse, AWSError>;
  34    /**
  35     * Creates an endpoint for an Amazon EFS file system.
  36     */
  37    createLocationEfs(callback?: (err: AWSError, data: DataSync.Types.CreateLocationEfsResponse) => void): Request<DataSync.Types.CreateLocationEfsResponse, AWSError>;
  38    /**
  39     * Creates an endpoint for an Amazon FSx for Windows File Server file system.
  40     */
  41    createLocationFsxWindows(params: DataSync.Types.CreateLocationFsxWindowsRequest, callback?: (err: AWSError, data: DataSync.Types.CreateLocationFsxWindowsResponse) => void): Request<DataSync.Types.CreateLocationFsxWindowsResponse, AWSError>;
  42    /**
  43     * Creates an endpoint for an Amazon FSx for Windows File Server file system.
  44     */
  45    createLocationFsxWindows(callback?: (err: AWSError, data: DataSync.Types.CreateLocationFsxWindowsResponse) => void): Request<DataSync.Types.CreateLocationFsxWindowsResponse, AWSError>;
  46    /**
  47     * Defines a file system on a Network File System (NFS) server that can be read from or written to.
  48     */
  49    createLocationNfs(params: DataSync.Types.CreateLocationNfsRequest, callback?: (err: AWSError, data: DataSync.Types.CreateLocationNfsResponse) => void): Request<DataSync.Types.CreateLocationNfsResponse, AWSError>;
  50    /**
  51     * Defines a file system on a Network File System (NFS) server that can be read from or written to.
  52     */
  53    createLocationNfs(callback?: (err: AWSError, data: DataSync.Types.CreateLocationNfsResponse) => void): Request<DataSync.Types.CreateLocationNfsResponse, AWSError>;
  54    /**
  55     * Creates an endpoint for a self-managed object storage bucket. For more information about self-managed object storage locations, see Creating a location for object storage.
  56     */
  57    createLocationObjectStorage(params: DataSync.Types.CreateLocationObjectStorageRequest, callback?: (err: AWSError, data: DataSync.Types.CreateLocationObjectStorageResponse) => void): Request<DataSync.Types.CreateLocationObjectStorageResponse, AWSError>;
  58    /**
  59     * Creates an endpoint for a self-managed object storage bucket. For more information about self-managed object storage locations, see Creating a location for object storage.
  60     */
  61    createLocationObjectStorage(callback?: (err: AWSError, data: DataSync.Types.CreateLocationObjectStorageResponse) => void): Request<DataSync.Types.CreateLocationObjectStorageResponse, AWSError>;
  62    /**
  63     * Creates an endpoint for an Amazon S3 bucket. For more information, see Create an Amazon S3 location in the DataSync User Guide.
  64     */
  65    createLocationS3(params: DataSync.Types.CreateLocationS3Request, callback?: (err: AWSError, data: DataSync.Types.CreateLocationS3Response) => void): Request<DataSync.Types.CreateLocationS3Response, AWSError>;
  66    /**
  67     * Creates an endpoint for an Amazon S3 bucket. For more information, see Create an Amazon S3 location in the DataSync User Guide.
  68     */
  69    createLocationS3(callback?: (err: AWSError, data: DataSync.Types.CreateLocationS3Response) => void): Request<DataSync.Types.CreateLocationS3Response, AWSError>;
  70    /**
  71     * Defines a file system on a Server Message Block (SMB) server that can be read from or written to.
  72     */
  73    createLocationSmb(params: DataSync.Types.CreateLocationSmbRequest, callback?: (err: AWSError, data: DataSync.Types.CreateLocationSmbResponse) => void): Request<DataSync.Types.CreateLocationSmbResponse, AWSError>;
  74    /**
  75     * Defines a file system on a Server Message Block (SMB) server that can be read from or written to.
  76     */
  77    createLocationSmb(callback?: (err: AWSError, data: DataSync.Types.CreateLocationSmbResponse) => void): Request<DataSync.Types.CreateLocationSmbResponse, AWSError>;
  78    /**
  79     * Creates a task. A task includes a source location and a destination location, and a configuration that specifies how data is transferred. A task always transfers data from the source location to the destination location. The configuration specifies options such as task scheduling, bandwidth limits, etc. A task is the complete definition of a data transfer. When you create a task that transfers data between Amazon Web Services services in different Amazon Web Services Regions, one of the two locations that you specify must reside in the Region where DataSync is being used. The other location must be specified in a different Region. You can transfer data between commercial Amazon Web Services Regions except for China, or between Amazon Web Services GovCloud (US) Regions.  When you use DataSync to copy files or objects between Amazon Web Services Regions, you pay for data transfer between Regions. This is billed as data transfer OUT from your source Region to your destination Region. For more information, see Data Transfer pricing.  
  80     */
  81    createTask(params: DataSync.Types.CreateTaskRequest, callback?: (err: AWSError, data: DataSync.Types.CreateTaskResponse) => void): Request<DataSync.Types.CreateTaskResponse, AWSError>;
  82    /**
  83     * Creates a task. A task includes a source location and a destination location, and a configuration that specifies how data is transferred. A task always transfers data from the source location to the destination location. The configuration specifies options such as task scheduling, bandwidth limits, etc. A task is the complete definition of a data transfer. When you create a task that transfers data between Amazon Web Services services in different Amazon Web Services Regions, one of the two locations that you specify must reside in the Region where DataSync is being used. The other location must be specified in a different Region. You can transfer data between commercial Amazon Web Services Regions except for China, or between Amazon Web Services GovCloud (US) Regions.  When you use DataSync to copy files or objects between Amazon Web Services Regions, you pay for data transfer between Regions. This is billed as data transfer OUT from your source Region to your destination Region. For more information, see Data Transfer pricing.  
  84     */
  85    createTask(callback?: (err: AWSError, data: DataSync.Types.CreateTaskResponse) => void): Request<DataSync.Types.CreateTaskResponse, AWSError>;
  86    /**
  87     * Deletes an agent. To specify which agent to delete, use the Amazon Resource Name (ARN) of the agent in your request. The operation disassociates the agent from your Amazon Web Services account. However, it doesn't delete the agent virtual machine (VM) from your on-premises environment.
  88     */
  89    deleteAgent(params: DataSync.Types.DeleteAgentRequest, callback?: (err: AWSError, data: DataSync.Types.DeleteAgentResponse) => void): Request<DataSync.Types.DeleteAgentResponse, AWSError>;
  90    /**
  91     * Deletes an agent. To specify which agent to delete, use the Amazon Resource Name (ARN) of the agent in your request. The operation disassociates the agent from your Amazon Web Services account. However, it doesn't delete the agent virtual machine (VM) from your on-premises environment.
  92     */
  93    deleteAgent(callback?: (err: AWSError, data: DataSync.Types.DeleteAgentResponse) => void): Request<DataSync.Types.DeleteAgentResponse, AWSError>;
  94    /**
  95     * Deletes the configuration of a location used by DataSync. 
  96     */
  97    deleteLocation(params: DataSync.Types.DeleteLocationRequest, callback?: (err: AWSError, data: DataSync.Types.DeleteLocationResponse) => void): Request<DataSync.Types.DeleteLocationResponse, AWSError>;
  98    /**
  99     * Deletes the configuration of a location used by DataSync. 
 100     */
 101    deleteLocation(callback?: (err: AWSError, data: DataSync.Types.DeleteLocationResponse) => void): Request<DataSync.Types.DeleteLocationResponse, AWSError>;
 102    /**
 103     * Deletes a task.
 104     */
 105    deleteTask(params: DataSync.Types.DeleteTaskRequest, callback?: (err: AWSError, data: DataSync.Types.DeleteTaskResponse) => void): Request<DataSync.Types.DeleteTaskResponse, AWSError>;
 106    /**
 107     * Deletes a task.
 108     */
 109    deleteTask(callback?: (err: AWSError, data: DataSync.Types.DeleteTaskResponse) => void): Request<DataSync.Types.DeleteTaskResponse, AWSError>;
 110    /**
 111     * Returns metadata such as the name, the network interfaces, and the status (that is, whether the agent is running or not) for an agent. To specify which agent to describe, use the Amazon Resource Name (ARN) of the agent in your request. 
 112     */
 113    describeAgent(params: DataSync.Types.DescribeAgentRequest, callback?: (err: AWSError, data: DataSync.Types.DescribeAgentResponse) => void): Request<DataSync.Types.DescribeAgentResponse, AWSError>;
 114    /**
 115     * Returns metadata such as the name, the network interfaces, and the status (that is, whether the agent is running or not) for an agent. To specify which agent to describe, use the Amazon Resource Name (ARN) of the agent in your request. 
 116     */
 117    describeAgent(callback?: (err: AWSError, data: DataSync.Types.DescribeAgentResponse) => void): Request<DataSync.Types.DescribeAgentResponse, AWSError>;
 118    /**
 119     * Returns metadata, such as the path information about an Amazon EFS location.
 120     */
 121    describeLocationEfs(params: DataSync.Types.DescribeLocationEfsRequest, callback?: (err: AWSError, data: DataSync.Types.DescribeLocationEfsResponse) => void): Request<DataSync.Types.DescribeLocationEfsResponse, AWSError>;
 122    /**
 123     * Returns metadata, such as the path information about an Amazon EFS location.
 124     */
 125    describeLocationEfs(callback?: (err: AWSError, data: DataSync.Types.DescribeLocationEfsResponse) => void): Request<DataSync.Types.DescribeLocationEfsResponse, AWSError>;
 126    /**
 127     * Returns metadata, such as the path information about an Amazon FSx for Windows File Server location.
 128     */
 129    describeLocationFsxWindows(params: DataSync.Types.DescribeLocationFsxWindowsRequest, callback?: (err: AWSError, data: DataSync.Types.DescribeLocationFsxWindowsResponse) => void): Request<DataSync.Types.DescribeLocationFsxWindowsResponse, AWSError>;
 130    /**
 131     * Returns metadata, such as the path information about an Amazon FSx for Windows File Server location.
 132     */
 133    describeLocationFsxWindows(callback?: (err: AWSError, data: DataSync.Types.DescribeLocationFsxWindowsResponse) => void): Request<DataSync.Types.DescribeLocationFsxWindowsResponse, AWSError>;
 134    /**
 135     * Returns metadata, such as the path information, about an NFS location.
 136     */
 137    describeLocationNfs(params: DataSync.Types.DescribeLocationNfsRequest, callback?: (err: AWSError, data: DataSync.Types.DescribeLocationNfsResponse) => void): Request<DataSync.Types.DescribeLocationNfsResponse, AWSError>;
 138    /**
 139     * Returns metadata, such as the path information, about an NFS location.
 140     */
 141    describeLocationNfs(callback?: (err: AWSError, data: DataSync.Types.DescribeLocationNfsResponse) => void): Request<DataSync.Types.DescribeLocationNfsResponse, AWSError>;
 142    /**
 143     * Returns metadata about a self-managed object storage server location. For more information about self-managed object storage locations, see Creating a location for object storage.
 144     */
 145    describeLocationObjectStorage(params: DataSync.Types.DescribeLocationObjectStorageRequest, callback?: (err: AWSError, data: DataSync.Types.DescribeLocationObjectStorageResponse) => void): Request<DataSync.Types.DescribeLocationObjectStorageResponse, AWSError>;
 146    /**
 147     * Returns metadata about a self-managed object storage server location. For more information about self-managed object storage locations, see Creating a location for object storage.
 148     */
 149    describeLocationObjectStorage(callback?: (err: AWSError, data: DataSync.Types.DescribeLocationObjectStorageResponse) => void): Request<DataSync.Types.DescribeLocationObjectStorageResponse, AWSError>;
 150    /**
 151     * Returns metadata, such as bucket name, about an Amazon S3 bucket location.
 152     */
 153    describeLocationS3(params: DataSync.Types.DescribeLocationS3Request, callback?: (err: AWSError, data: DataSync.Types.DescribeLocationS3Response) => void): Request<DataSync.Types.DescribeLocationS3Response, AWSError>;
 154    /**
 155     * Returns metadata, such as bucket name, about an Amazon S3 bucket location.
 156     */
 157    describeLocationS3(callback?: (err: AWSError, data: DataSync.Types.DescribeLocationS3Response) => void): Request<DataSync.Types.DescribeLocationS3Response, AWSError>;
 158    /**
 159     * Returns metadata, such as the path and user information about an SMB location.
 160     */
 161    describeLocationSmb(params: DataSync.Types.DescribeLocationSmbRequest, callback?: (err: AWSError, data: DataSync.Types.DescribeLocationSmbResponse) => void): Request<DataSync.Types.DescribeLocationSmbResponse, AWSError>;
 162    /**
 163     * Returns metadata, such as the path and user information about an SMB location.
 164     */
 165    describeLocationSmb(callback?: (err: AWSError, data: DataSync.Types.DescribeLocationSmbResponse) => void): Request<DataSync.Types.DescribeLocationSmbResponse, AWSError>;
 166    /**
 167     * Returns metadata about a task.
 168     */
 169    describeTask(params: DataSync.Types.DescribeTaskRequest, callback?: (err: AWSError, data: DataSync.Types.DescribeTaskResponse) => void): Request<DataSync.Types.DescribeTaskResponse, AWSError>;
 170    /**
 171     * Returns metadata about a task.
 172     */
 173    describeTask(callback?: (err: AWSError, data: DataSync.Types.DescribeTaskResponse) => void): Request<DataSync.Types.DescribeTaskResponse, AWSError>;
 174    /**
 175     * Returns detailed metadata about a task that is being executed.
 176     */
 177    describeTaskExecution(params: DataSync.Types.DescribeTaskExecutionRequest, callback?: (err: AWSError, data: DataSync.Types.DescribeTaskExecutionResponse) => void): Request<DataSync.Types.DescribeTaskExecutionResponse, AWSError>;
 178    /**
 179     * Returns detailed metadata about a task that is being executed.
 180     */
 181    describeTaskExecution(callback?: (err: AWSError, data: DataSync.Types.DescribeTaskExecutionResponse) => void): Request<DataSync.Types.DescribeTaskExecutionResponse, AWSError>;
 182    /**
 183     * Returns a list of agents owned by an Amazon Web Services account in the Amazon Web Services Region specified in the request. The returned list is ordered by agent Amazon Resource Name (ARN). By default, this operation returns a maximum of 100 agents. This operation supports pagination that enables you to optionally reduce the number of agents returned in a response. If you have more agents than are returned in a response (that is, the response returns only a truncated list of your agents), the response contains a marker that you can specify in your next request to fetch the next page of agents.
 184     */
 185    listAgents(params: DataSync.Types.ListAgentsRequest, callback?: (err: AWSError, data: DataSync.Types.ListAgentsResponse) => void): Request<DataSync.Types.ListAgentsResponse, AWSError>;
 186    /**
 187     * Returns a list of agents owned by an Amazon Web Services account in the Amazon Web Services Region specified in the request. The returned list is ordered by agent Amazon Resource Name (ARN). By default, this operation returns a maximum of 100 agents. This operation supports pagination that enables you to optionally reduce the number of agents returned in a response. If you have more agents than are returned in a response (that is, the response returns only a truncated list of your agents), the response contains a marker that you can specify in your next request to fetch the next page of agents.
 188     */
 189    listAgents(callback?: (err: AWSError, data: DataSync.Types.ListAgentsResponse) => void): Request<DataSync.Types.ListAgentsResponse, AWSError>;
 190    /**
 191     * Returns a list of source and destination locations. If you have more locations than are returned in a response (that is, the response returns only a truncated list of your agents), the response contains a token that you can specify in your next request to fetch the next page of locations.
 192     */
 193    listLocations(params: DataSync.Types.ListLocationsRequest, callback?: (err: AWSError, data: DataSync.Types.ListLocationsResponse) => void): Request<DataSync.Types.ListLocationsResponse, AWSError>;
 194    /**
 195     * Returns a list of source and destination locations. If you have more locations than are returned in a response (that is, the response returns only a truncated list of your agents), the response contains a token that you can specify in your next request to fetch the next page of locations.
 196     */
 197    listLocations(callback?: (err: AWSError, data: DataSync.Types.ListLocationsResponse) => void): Request<DataSync.Types.ListLocationsResponse, AWSError>;
 198    /**
 199     * Returns all the tags associated with a specified resource. 
 200     */
 201    listTagsForResource(params: DataSync.Types.ListTagsForResourceRequest, callback?: (err: AWSError, data: DataSync.Types.ListTagsForResourceResponse) => void): Request<DataSync.Types.ListTagsForResourceResponse, AWSError>;
 202    /**
 203     * Returns all the tags associated with a specified resource. 
 204     */
 205    listTagsForResource(callback?: (err: AWSError, data: DataSync.Types.ListTagsForResourceResponse) => void): Request<DataSync.Types.ListTagsForResourceResponse, AWSError>;
 206    /**
 207     * Returns a list of executed tasks.
 208     */
 209    listTaskExecutions(params: DataSync.Types.ListTaskExecutionsRequest, callback?: (err: AWSError, data: DataSync.Types.ListTaskExecutionsResponse) => void): Request<DataSync.Types.ListTaskExecutionsResponse, AWSError>;
 210    /**
 211     * Returns a list of executed tasks.
 212     */
 213    listTaskExecutions(callback?: (err: AWSError, data: DataSync.Types.ListTaskExecutionsResponse) => void): Request<DataSync.Types.ListTaskExecutionsResponse, AWSError>;
 214    /**
 215     * Returns a list of all the tasks.
 216     */
 217    listTasks(params: DataSync.Types.ListTasksRequest, callback?: (err: AWSError, data: DataSync.Types.ListTasksResponse) => void): Request<DataSync.Types.ListTasksResponse, AWSError>;
 218    /**
 219     * Returns a list of all the tasks.
 220     */
 221    listTasks(callback?: (err: AWSError, data: DataSync.Types.ListTasksResponse) => void): Request<DataSync.Types.ListTasksResponse, AWSError>;
 222    /**
 223     * Starts a specific invocation of a task. A TaskExecution value represents an individual run of a task. Each task can have at most one TaskExecution at a time.  TaskExecution has the following transition phases: INITIALIZING | PREPARING | TRANSFERRING | VERIFYING | SUCCESS/FAILURE.  For detailed information, see the Task Execution section in the Components and Terminology topic in the DataSync User Guide.
 224     */
 225    startTaskExecution(params: DataSync.Types.StartTaskExecutionRequest, callback?: (err: AWSError, data: DataSync.Types.StartTaskExecutionResponse) => void): Request<DataSync.Types.StartTaskExecutionResponse, AWSError>;
 226    /**
 227     * Starts a specific invocation of a task. A TaskExecution value represents an individual run of a task. Each task can have at most one TaskExecution at a time.  TaskExecution has the following transition phases: INITIALIZING | PREPARING | TRANSFERRING | VERIFYING | SUCCESS/FAILURE.  For detailed information, see the Task Execution section in the Components and Terminology topic in the DataSync User Guide.
 228     */
 229    startTaskExecution(callback?: (err: AWSError, data: DataSync.Types.StartTaskExecutionResponse) => void): Request<DataSync.Types.StartTaskExecutionResponse, AWSError>;
 230    /**
 231     * Applies a key-value pair to an Amazon Web Services resource.
 232     */
 233    tagResource(params: DataSync.Types.TagResourceRequest, callback?: (err: AWSError, data: DataSync.Types.TagResourceResponse) => void): Request<DataSync.Types.TagResourceResponse, AWSError>;
 234    /**
 235     * Applies a key-value pair to an Amazon Web Services resource.
 236     */
 237    tagResource(callback?: (err: AWSError, data: DataSync.Types.TagResourceResponse) => void): Request<DataSync.Types.TagResourceResponse, AWSError>;
 238    /**
 239     * Removes a tag from an Amazon Web Services resource.
 240     */
 241    untagResource(params: DataSync.Types.UntagResourceRequest, callback?: (err: AWSError, data: DataSync.Types.UntagResourceResponse) => void): Request<DataSync.Types.UntagResourceResponse, AWSError>;
 242    /**
 243     * Removes a tag from an Amazon Web Services resource.
 244     */
 245    untagResource(callback?: (err: AWSError, data: DataSync.Types.UntagResourceResponse) => void): Request<DataSync.Types.UntagResourceResponse, AWSError>;
 246    /**
 247     * Updates the name of an agent.
 248     */
 249    updateAgent(params: DataSync.Types.UpdateAgentRequest, callback?: (err: AWSError, data: DataSync.Types.UpdateAgentResponse) => void): Request<DataSync.Types.UpdateAgentResponse, AWSError>;
 250    /**
 251     * Updates the name of an agent.
 252     */
 253    updateAgent(callback?: (err: AWSError, data: DataSync.Types.UpdateAgentResponse) => void): Request<DataSync.Types.UpdateAgentResponse, AWSError>;
 254    /**
 255     * Updates some of the parameters of a previously created location for Network File System (NFS) access. For information about creating an NFS location, see Creating a location for NFS.
 256     */
 257    updateLocationNfs(params: DataSync.Types.UpdateLocationNfsRequest, callback?: (err: AWSError, data: DataSync.Types.UpdateLocationNfsResponse) => void): Request<DataSync.Types.UpdateLocationNfsResponse, AWSError>;
 258    /**
 259     * Updates some of the parameters of a previously created location for Network File System (NFS) access. For information about creating an NFS location, see Creating a location for NFS.
 260     */
 261    updateLocationNfs(callback?: (err: AWSError, data: DataSync.Types.UpdateLocationNfsResponse) => void): Request<DataSync.Types.UpdateLocationNfsResponse, AWSError>;
 262    /**
 263     * Updates some of the parameters of a previously created location for self-managed object storage server access. For information about creating a self-managed object storage location, see Creating a location for object storage.
 264     */
 265    updateLocationObjectStorage(params: DataSync.Types.UpdateLocationObjectStorageRequest, callback?: (err: AWSError, data: DataSync.Types.UpdateLocationObjectStorageResponse) => void): Request<DataSync.Types.UpdateLocationObjectStorageResponse, AWSError>;
 266    /**
 267     * Updates some of the parameters of a previously created location for self-managed object storage server access. For information about creating a self-managed object storage location, see Creating a location for object storage.
 268     */
 269    updateLocationObjectStorage(callback?: (err: AWSError, data: DataSync.Types.UpdateLocationObjectStorageResponse) => void): Request<DataSync.Types.UpdateLocationObjectStorageResponse, AWSError>;
 270    /**
 271     * Updates some of the parameters of a previously created location for Server Message Block (SMB) file system access. For information about creating an SMB location, see Creating a location for SMB.
 272     */
 273    updateLocationSmb(params: DataSync.Types.UpdateLocationSmbRequest, callback?: (err: AWSError, data: DataSync.Types.UpdateLocationSmbResponse) => void): Request<DataSync.Types.UpdateLocationSmbResponse, AWSError>;
 274    /**
 275     * Updates some of the parameters of a previously created location for Server Message Block (SMB) file system access. For information about creating an SMB location, see Creating a location for SMB.
 276     */
 277    updateLocationSmb(callback?: (err: AWSError, data: DataSync.Types.UpdateLocationSmbResponse) => void): Request<DataSync.Types.UpdateLocationSmbResponse, AWSError>;
 278    /**
 279     * Updates the metadata associated with a task.
 280     */
 281    updateTask(params: DataSync.Types.UpdateTaskRequest, callback?: (err: AWSError, data: DataSync.Types.UpdateTaskResponse) => void): Request<DataSync.Types.UpdateTaskResponse, AWSError>;
 282    /**
 283     * Updates the metadata associated with a task.
 284     */
 285    updateTask(callback?: (err: AWSError, data: DataSync.Types.UpdateTaskResponse) => void): Request<DataSync.Types.UpdateTaskResponse, AWSError>;
 286    /**
 287     * Updates execution of a task. You can modify bandwidth throttling for a task execution that is running or queued. For more information, see Adjusting Bandwidth Throttling for a Task Execution.  The only Option that can be modified by UpdateTaskExecution is  BytesPerSecond . 
 288     */
 289    updateTaskExecution(params: DataSync.Types.UpdateTaskExecutionRequest, callback?: (err: AWSError, data: DataSync.Types.UpdateTaskExecutionResponse) => void): Request<DataSync.Types.UpdateTaskExecutionResponse, AWSError>;
 290    /**
 291     * Updates execution of a task. You can modify bandwidth throttling for a task execution that is running or queued. For more information, see Adjusting Bandwidth Throttling for a Task Execution.  The only Option that can be modified by UpdateTaskExecution is  BytesPerSecond . 
 292     */
 293    updateTaskExecution(callback?: (err: AWSError, data: DataSync.Types.UpdateTaskExecutionResponse) => void): Request<DataSync.Types.UpdateTaskExecutionResponse, AWSError>;
 294  }
 295  declare namespace DataSync {
 296    export type ActivationKey = string;
 297    export type AgentArn = string;
 298    export type AgentArnList = AgentArn[];
 299    export type AgentList = AgentListEntry[];
 300    export interface AgentListEntry {
 301      /**
 302       * The Amazon Resource Name (ARN) of the agent.
 303       */
 304      AgentArn?: AgentArn;
 305      /**
 306       * The name of the agent.
 307       */
 308      Name?: TagValue;
 309      /**
 310       * The status of the agent.
 311       */
 312      Status?: AgentStatus;
 313    }
 314    export type AgentStatus = "ONLINE"|"OFFLINE"|string;
 315    export type Atime = "NONE"|"BEST_EFFORT"|string;
 316    export type BytesPerSecond = number;
 317    export interface CancelTaskExecutionRequest {
 318      /**
 319       * The Amazon Resource Name (ARN) of the task execution to cancel.
 320       */
 321      TaskExecutionArn: TaskExecutionArn;
 322    }
 323    export interface CancelTaskExecutionResponse {
 324    }
 325    export interface CreateAgentRequest {
 326      /**
 327       * Your agent activation key. You can get the activation key either by sending an HTTP GET request with redirects that enable you to get the agent IP address (port 80). Alternatively, you can get it from the DataSync console. The redirect URL returned in the response provides you the activation key for your agent in the query string parameter activationKey. It might also include other activation-related parameters; however, these are merely defaults. The arguments you pass to this API call determine the actual configuration of your agent. For more information, see Activating an Agent in the DataSync User Guide. 
 328       */
 329      ActivationKey: ActivationKey;
 330      /**
 331       * The name you configured for your agent. This value is a text reference that is used to identify the agent in the console.
 332       */
 333      AgentName?: TagValue;
 334      /**
 335       * The key-value pair that represents the tag that you want to associate with the agent. The value can be an empty string. This value helps you manage, filter, and search for your agents.  Valid characters for key and value are letters, spaces, and numbers representable in UTF-8 format, and the following special characters: + - = . _ : / @.  
 336       */
 337      Tags?: InputTagList;
 338      /**
 339       * The ID of the VPC (virtual private cloud) endpoint that the agent has access to. This is the client-side VPC endpoint, also called a PrivateLink. If you don't have a PrivateLink VPC endpoint, see Creating a VPC Endpoint Service Configuration in the Amazon VPC User Guide. VPC endpoint ID looks like this: vpce-01234d5aff67890e1.
 340       */
 341      VpcEndpointId?: VpcEndpointId;
 342      /**
 343       * The Amazon Resource Names (ARNs) of the subnets in which DataSync will create elastic network interfaces for each data transfer task. The agent that runs a task must be private. When you start a task that is associated with an agent created in a VPC, or one that has access to an IP address in a VPC, then the task is also private. In this case, DataSync creates four network interfaces for each task in your subnet. For a data transfer to work, the agent must be able to route to all these four network interfaces.
 344       */
 345      SubnetArns?: PLSubnetArnList;
 346      /**
 347       * The ARNs of the security groups used to protect your data transfer task subnets. See SecurityGroupArns.
 348       */
 349      SecurityGroupArns?: PLSecurityGroupArnList;
 350    }
 351    export interface CreateAgentResponse {
 352      /**
 353       * The Amazon Resource Name (ARN) of the agent. Use the ListAgents operation to return a list of agents for your account and Amazon Web Services Region.
 354       */
 355      AgentArn?: AgentArn;
 356    }
 357    export interface CreateLocationEfsRequest {
 358      /**
 359       * A subdirectory in the location’s path. This subdirectory in the EFS file system is used to read data from the EFS source location or write data to the EFS destination. By default, DataSync uses the root directory.   Subdirectory must be specified with forward slashes. For example, /path/to/folder. 
 360       */
 361      Subdirectory?: EfsSubdirectory;
 362      /**
 363       * The Amazon Resource Name (ARN) for the Amazon EFS file system.
 364       */
 365      EfsFilesystemArn: EfsFilesystemArn;
 366      /**
 367       * The subnet and security group that the Amazon EFS file system uses. The security group that you provide needs to be able to communicate with the security group on the mount target in the subnet specified. The exact relationship between security group M (of the mount target) and security group S (which you provide for DataSync to use at this stage) is as follows:     Security group M (which you associate with the mount target) must allow inbound access for the Transmission Control Protocol (TCP) on the NFS port (2049) from security group S. You can enable inbound connections either by IP address (CIDR range) or security group.    Security group S (provided to DataSync to access EFS) should have a rule that enables outbound connections to the NFS port on one of the file system’s mount targets. You can enable outbound connections either by IP address (CIDR range) or security group. For information about security groups and mount targets, see Security Groups for Amazon EC2 Instances and Mount Targets in the Amazon EFS User Guide.   
 368       */
 369      Ec2Config: Ec2Config;
 370      /**
 371       * 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.
 372       */
 373      Tags?: InputTagList;
 374    }
 375    export interface CreateLocationEfsResponse {
 376      /**
 377       * The Amazon Resource Name (ARN) of the Amazon EFS file system location that is created.
 378       */
 379      LocationArn?: LocationArn;
 380    }
 381    export interface CreateLocationFsxWindowsRequest {
 382      /**
 383       * A subdirectory in the location’s path. This subdirectory in the Amazon FSx for Windows File Server file system is used to read data from the Amazon FSx for Windows File Server source location or write data to the FSx for Windows File Server destination.
 384       */
 385      Subdirectory?: FsxWindowsSubdirectory;
 386      /**
 387       * The Amazon Resource Name (ARN) for the FSx for Windows File Server file system.
 388       */
 389      FsxFilesystemArn: FsxFilesystemArn;
 390      /**
 391       * The Amazon Resource Names (ARNs) of the security groups that are to use to configure the FSx for Windows File Server file system.
 392       */
 393      SecurityGroupArns: Ec2SecurityGroupArnList;
 394      /**
 395       * 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.
 396       */
 397      Tags?: InputTagList;
 398      /**
 399       * The user who has the permissions to access files and folders in the FSx for Windows File Server file system. For information about choosing a user name that ensures sufficient permissions to files, folders, and metadata, see user.
 400       */
 401      User: SmbUser;
 402      /**
 403       * The name of the Windows domain that the FSx for Windows File Server belongs to.
 404       */
 405      Domain?: SmbDomain;
 406      /**
 407       * The password of the user who has the permissions to access files and folders in the FSx for Windows File Server file system.
 408       */
 409      Password: SmbPassword;
 410    }
 411    export interface CreateLocationFsxWindowsResponse {
 412      /**
 413       * The Amazon Resource Name (ARN) of the FSx for Windows File Server file system location that is created.
 414       */
 415      LocationArn?: LocationArn;
 416    }
 417    export interface CreateLocationNfsRequest {
 418      /**
 419       * The subdirectory in the NFS file system that is used to read data from the NFS source location or write data to the NFS destination. The NFS path should be a path that's exported by the NFS server, or a subdirectory of that path. The path should be such that it can be mounted by other NFS clients in your network.  To see all the paths exported by your NFS server, run "showmount -e nfs-server-name" from an NFS client that has access to your server. You can specify any directory that appears in the results, and any subdirectory of that directory. Ensure that the NFS export is accessible without Kerberos authentication.  To transfer all the data in the folder you specified, DataSync needs to have permissions to read all the data. To ensure this, either configure the NFS export with no_root_squash, or ensure that the permissions for all of the files that you want DataSync allow read access for all users. Doing either enables the agent to read the files. For the agent to access directories, you must additionally enable all execute access. If you are copying data to or from your Snowcone device, see NFS Server on Snowcone for more information. For information about NFS export configuration, see 18.7. The /etc/exports Configuration File in the Red Hat Enterprise Linux documentation.
 420       */
 421      Subdirectory: NfsSubdirectory;
 422      /**
 423       * The name of the NFS server. This value is the IP address or Domain Name Service (DNS) name of the NFS server. An agent that is installed on-premises uses this host name to mount the NFS server in a network.  If you are copying data to or from your Snowcone device, see NFS Server on Snowcone for more information.  This name must either be DNS-compliant or must be an IP version 4 (IPv4) address. 
 424       */
 425      ServerHostname: ServerHostname;
 426      /**
 427       * Contains a list of Amazon Resource Names (ARNs) of agents that are used to connect to an NFS server.  If you are copying data to or from your Snowcone device, see NFS Server on Snowcone for more information.
 428       */
 429      OnPremConfig: OnPremConfig;
 430      /**
 431       * The NFS mount options that DataSync can use to mount your NFS share.
 432       */
 433      MountOptions?: NfsMountOptions;
 434      /**
 435       * 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.
 436       */
 437      Tags?: InputTagList;
 438    }
 439    export interface CreateLocationNfsResponse {
 440      /**
 441       * The Amazon Resource Name (ARN) of the source NFS file system location that is created.
 442       */
 443      LocationArn?: LocationArn;
 444    }
 445    export interface CreateLocationObjectStorageRequest {
 446      /**
 447       * The name of the self-managed object storage server. This value is the IP address or Domain Name Service (DNS) name of the object storage server. An agent uses this host name to mount the object storage server in a network. 
 448       */
 449      ServerHostname: ServerHostname;
 450      /**
 451       * The port that your self-managed object storage server accepts inbound network traffic on. The server port is set by default to TCP 80 (HTTP) or TCP 443 (HTTPS). You can specify a custom port if your self-managed object storage server requires one.
 452       */
 453      ServerPort?: ObjectStorageServerPort;
 454      /**
 455       * The protocol that the object storage server uses to communicate. Valid values are HTTP or HTTPS.
 456       */
 457      ServerProtocol?: ObjectStorageServerProtocol;
 458      /**
 459       * The subdirectory in the self-managed object storage server that is used to read data from.
 460       */
 461      Subdirectory?: S3Subdirectory;
 462      /**
 463       * The bucket on the self-managed object storage server that is used to read data from.
 464       */
 465      BucketName: ObjectStorageBucketName;
 466      /**
 467       * Optional. The access key is used if credentials are required to access the self-managed object storage server. If your object storage requires a user name and password to authenticate, use AccessKey and SecretKey to provide the user name and password, respectively.
 468       */
 469      AccessKey?: ObjectStorageAccessKey;
 470      /**
 471       * Optional. The secret key is used if credentials are required to access the self-managed object storage server. If your object storage requires a user name and password to authenticate, use AccessKey and SecretKey to provide the user name and password, respectively.
 472       */
 473      SecretKey?: ObjectStorageSecretKey;
 474      /**
 475       * The Amazon Resource Name (ARN) of the agents associated with the self-managed object storage server location.
 476       */
 477      AgentArns: AgentArnList;
 478      /**
 479       * 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.
 480       */
 481      Tags?: InputTagList;
 482    }
 483    export interface CreateLocationObjectStorageResponse {
 484      /**
 485       * The Amazon Resource Name (ARN) of the agents associated with the self-managed object storage server location.
 486       */
 487      LocationArn?: LocationArn;
 488    }
 489    export interface CreateLocationS3Request {
 490      /**
 491       * A subdirectory in the Amazon S3 bucket. This subdirectory in Amazon S3 is used to read data from the S3 source location or write data to the S3 destination.
 492       */
 493      Subdirectory?: S3Subdirectory;
 494      /**
 495       * The ARN of the Amazon S3 bucket. If the bucket is on an Amazon Web Services Outpost, this must be an access point ARN.
 496       */
 497      S3BucketArn: S3BucketArn;
 498      /**
 499       * The Amazon S3 storage class that you want to store your files in when this location is used as a task destination. For buckets in Amazon Web Services Regions, the storage class defaults to Standard. For buckets on Outposts, the storage class defaults to Amazon Web Services S3 Outposts. For more information about S3 storage classes, see Amazon S3 Storage Classes. Some storage classes have behaviors that can affect your S3 storage cost. For detailed information, see Considerations when working with S3 storage classes in DataSync.
 500       */
 501      S3StorageClass?: S3StorageClass;
 502      S3Config: S3Config;
 503      /**
 504       * If you are using DataSync on an Amazon Web Services Outpost, specify the Amazon Resource Names (ARNs) of the DataSync agents deployed on your Outpost. For more information about launching a DataSync agent on an Amazon Web Services Outpost, see Deploy your DataSync agent on Outposts.
 505       */
 506      AgentArns?: AgentArnList;
 507      /**
 508       * 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.
 509       */
 510      Tags?: InputTagList;
 511    }
 512    export interface CreateLocationS3Response {
 513      /**
 514       * The Amazon Resource Name (ARN) of the source Amazon S3 bucket location that is created.
 515       */
 516      LocationArn?: LocationArn;
 517    }
 518    export interface CreateLocationSmbRequest {
 519      /**
 520       * The subdirectory in the SMB file system that is used to read data from the SMB source location or write data to the SMB destination. The SMB path should be a path that's exported by the SMB server, or a subdirectory of that path. The path should be such that it can be mounted by other SMB clients in your network.   Subdirectory must be specified with forward slashes. For example, /path/to/folder.  To transfer all the data in the folder you specified, DataSync needs to have permissions to mount the SMB share, as well as to access all the data in that share. To ensure this, either ensure that the user/password specified belongs to the user who can mount the share, and who has the appropriate permissions for all of the files and directories that you want DataSync to access, or use credentials of a member of the Backup Operators group to mount the share. Doing either enables the agent to access the data. For the agent to access directories, you must additionally enable all execute access.
 521       */
 522      Subdirectory: SmbSubdirectory;
 523      /**
 524       * The name of the SMB server. This value is the IP address or Domain Name Service (DNS) name of the SMB server. An agent that is installed on-premises uses this hostname to mount the SMB server in a network.  This name must either be DNS-compliant or must be an IP version 4 (IPv4) address. 
 525       */
 526      ServerHostname: ServerHostname;
 527      /**
 528       * The user who can mount the share, has the permissions to access files and folders in the SMB share. For information about choosing a user name that ensures sufficient permissions to files, folders, and metadata, see user.
 529       */
 530      User: SmbUser;
 531      /**
 532       * The name of the Windows domain that the SMB server belongs to.
 533       */
 534      Domain?: SmbDomain;
 535      /**
 536       * The password of the user who can mount the share, has the permissions to access files and folders in the SMB share.
 537       */
 538      Password: SmbPassword;
 539      /**
 540       * The Amazon Resource Names (ARNs) of agents to use for a Simple Message Block (SMB) location. 
 541       */
 542      AgentArns: AgentArnList;
 543      /**
 544       * The mount options used by DataSync to access the SMB server.
 545       */
 546      MountOptions?: SmbMountOptions;
 547      /**
 548       * 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.
 549       */
 550      Tags?: InputTagList;
 551    }
 552    export interface CreateLocationSmbResponse {
 553      /**
 554       * The Amazon Resource Name (ARN) of the source SMB file system location that is created.
 555       */
 556      LocationArn?: LocationArn;
 557    }
 558    export interface CreateTaskRequest {
 559      /**
 560       * The Amazon Resource Name (ARN) of the source location for the task.
 561       */
 562      SourceLocationArn: LocationArn;
 563      /**
 564       * The Amazon Resource Name (ARN) of an Amazon Web Services storage resource's location. 
 565       */
 566      DestinationLocationArn: LocationArn;
 567      /**
 568       * The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that is used to monitor and log events in the task. 
 569       */
 570      CloudWatchLogGroupArn?: LogGroupArn;
 571      /**
 572       * The name of a task. This value is a text reference that is used to identify the task in the console. 
 573       */
 574      Name?: TagValue;
 575      /**
 576       * The set of configuration options that control the behavior of a single execution of the task that occurs when you call StartTaskExecution. You can configure these options to preserve metadata such as user ID (UID) and group ID (GID), file permissions, data integrity verification, and so on. For each individual task execution, you can override these options by specifying the OverrideOptions before starting the task execution. For more information, see the StartTaskExecution operation. 
 577       */
 578      Options?: Options;
 579      /**
 580       * A list of filter rules that determines which files to exclude from a task. The list should contain a single filter string that consists of the patterns to exclude. The patterns are delimited by "|" (that is, a pipe), for example, "/folder1|/folder2".   
 581       */
 582      Excludes?: FilterList;
 583      /**
 584       * Specifies a schedule used to periodically transfer files from a source to a destination location. The schedule should be specified in UTC time. For more information, see Scheduling your task.
 585       */
 586      Schedule?: TaskSchedule;
 587      /**
 588       * The key-value pair that represents the tag that you want to add to the resource. The value can be an empty string. 
 589       */
 590      Tags?: InputTagList;
 591      /**
 592       * 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"
 593       */
 594      Includes?: FilterList;
 595    }
 596    export interface CreateTaskResponse {
 597      /**
 598       * The Amazon Resource Name (ARN) of the task.
 599       */
 600      TaskArn?: TaskArn;
 601    }
 602    export interface DeleteAgentRequest {
 603      /**
 604       * 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.
 605       */
 606      AgentArn: AgentArn;
 607    }
 608    export interface DeleteAgentResponse {
 609    }
 610    export interface DeleteLocationRequest {
 611      /**
 612       * The Amazon Resource Name (ARN) of the location to delete.
 613       */
 614      LocationArn: LocationArn;
 615    }
 616    export interface DeleteLocationResponse {
 617    }
 618    export interface DeleteTaskRequest {
 619      /**
 620       * The Amazon Resource Name (ARN) of the task to delete.
 621       */
 622      TaskArn: TaskArn;
 623    }
 624    export interface DeleteTaskResponse {
 625    }
 626    export interface DescribeAgentRequest {
 627      /**
 628       * The Amazon Resource Name (ARN) of the agent to describe.
 629       */
 630      AgentArn: AgentArn;
 631    }
 632    export interface DescribeAgentResponse {
 633      /**
 634       * The Amazon Resource Name (ARN) of the agent.
 635       */
 636      AgentArn?: AgentArn;
 637      /**
 638       * The name of the agent.
 639       */
 640      Name?: TagValue;
 641      /**
 642       * The status of the agent. If the status is ONLINE, then the agent is configured properly and is available to use. The Running status is the normal running status for an agent. If the status is OFFLINE, the agent's VM is turned off or the agent is in an unhealthy state. When the issue that caused the unhealthy state is resolved, the agent returns to ONLINE status.
 643       */
 644      Status?: AgentStatus;
 645      /**
 646       * The time that the agent last connected to DataSync.
 647       */
 648      LastConnectionTime?: Time;
 649      /**
 650       * The time that the agent was activated (that is, created in your account).
 651       */
 652      CreationTime?: Time;
 653      /**
 654       * The type of endpoint that your agent is connected to. If the endpoint is a VPC endpoint, the agent is not accessible over the public internet. 
 655       */
 656      EndpointType?: EndpointType;
 657      /**
 658       * The subnet and the security group that DataSync used to access a VPC endpoint.
 659       */
 660      PrivateLinkConfig?: PrivateLinkConfig;
 661    }
 662    export interface DescribeLocationEfsRequest {
 663      /**
 664       * The Amazon Resource Name (ARN) of the EFS location to describe.
 665       */
 666      LocationArn: LocationArn;
 667    }
 668    export interface DescribeLocationEfsResponse {
 669      /**
 670       * The Amazon Resource Name (ARN) of the EFS location that was described.
 671       */
 672      LocationArn?: LocationArn;
 673      /**
 674       * The URL of the EFS location that was described.
 675       */
 676      LocationUri?: LocationUri;
 677      Ec2Config?: Ec2Config;
 678      /**
 679       * The time that the EFS location was created.
 680       */
 681      CreationTime?: Time;
 682    }
 683    export interface DescribeLocationFsxWindowsRequest {
 684      /**
 685       * The Amazon Resource Name (ARN) of the FSx for Windows File Server location to describe.
 686       */
 687      LocationArn: LocationArn;
 688    }
 689    export interface DescribeLocationFsxWindowsResponse {
 690      /**
 691       * The Amazon Resource Name (ARN) of the FSx for Windows File Server location that was described.
 692       */
 693      LocationArn?: LocationArn;
 694      /**
 695       * The URL of the FSx for Windows File Server location that was described.
 696       */
 697      LocationUri?: LocationUri;
 698      /**
 699       * The Amazon Resource Names (ARNs) of the security groups that are configured for the FSx for Windows File Server file system.
 700       */
 701      SecurityGroupArns?: Ec2SecurityGroupArnList;
 702      /**
 703       * The time that the FSx for Windows File Server location was created.
 704       */
 705      CreationTime?: Time;
 706      /**
 707       * The user who has the permissions to access files and folders in the FSx for Windows File Server file system.
 708       */
 709      User?: SmbUser;
 710      /**
 711       * The name of the Windows domain that the FSx for Windows File Server belongs to.
 712       */
 713      Domain?: SmbDomain;
 714    }
 715    export interface DescribeLocationNfsRequest {
 716      /**
 717       * The Amazon Resource Name (ARN) of the NFS location to describe.
 718       */
 719      LocationArn: LocationArn;
 720    }
 721    export interface DescribeLocationNfsResponse {
 722      /**
 723       * The Amazon Resource Name (ARN) of the NFS location that was described.
 724       */
 725      LocationArn?: LocationArn;
 726      /**
 727       * The URL of the source NFS location that was described.
 728       */
 729      LocationUri?: LocationUri;
 730      OnPremConfig?: OnPremConfig;
 731      /**
 732       * The NFS mount options that DataSync used to mount your NFS share.
 733       */
 734      MountOptions?: NfsMountOptions;
 735      /**
 736       * The time that the NFS location was created.
 737       */
 738      CreationTime?: Time;
 739    }
 740    export interface DescribeLocationObjectStorageRequest {
 741      /**
 742       * The Amazon Resource Name (ARN) of the self-managed object storage server location that was described.
 743       */
 744      LocationArn: LocationArn;
 745    }
 746    export interface DescribeLocationObjectStorageResponse {
 747      /**
 748       * The Amazon Resource Name (ARN) of the self-managed object storage server location to describe.
 749       */
 750      LocationArn?: LocationArn;
 751      /**
 752       * The URL of the source self-managed object storage server location that was described.
 753       */
 754      LocationUri?: LocationUri;
 755      /**
 756       * Optional. The access key is used if credentials are required to access the self-managed object storage server. If your object storage requires a user name and password to authenticate, use AccessKey and SecretKey to provide the user name and password, respectively.
 757       */
 758      AccessKey?: ObjectStorageAccessKey;
 759      /**
 760       * The port that your self-managed object storage server accepts inbound network traffic on. The server port is set by default to TCP 80 (HTTP) or TCP 443 (HTTPS).
 761       */
 762      ServerPort?: ObjectStorageServerPort;
 763      /**
 764       * The protocol that the object storage server uses to communicate. Valid values are HTTP or HTTPS.
 765       */
 766      ServerProtocol?: ObjectStorageServerProtocol;
 767      /**
 768       * The Amazon Resource Name (ARN) of the agents associated with the self-managed object storage server location.
 769       */
 770      AgentArns?: AgentArnList;
 771      /**
 772       * The time that the self-managed object storage server agent was created.
 773       */
 774      CreationTime?: Time;
 775    }
 776    export interface DescribeLocationS3Request {
 777      /**
 778       * The Amazon Resource Name (ARN) of the Amazon S3 bucket location to describe.
 779       */
 780      LocationArn: LocationArn;
 781    }
 782    export interface DescribeLocationS3Response {
 783      /**
 784       * The Amazon Resource Name (ARN) of the Amazon S3 bucket or access point.
 785       */
 786      LocationArn?: LocationArn;
 787      /**
 788       * The URL of the Amazon S3 location that was described.
 789       */
 790      LocationUri?: LocationUri;
 791      /**
 792       * The Amazon S3 storage class that you chose to store your files in when this location is used as a task destination. For more information about S3 storage classes, see Amazon S3 Storage Classes. Some storage classes have behaviors that can affect your S3 storage cost. For detailed information, see Considerations when working with S3 storage classes in DataSync.
 793       */
 794      S3StorageClass?: S3StorageClass;
 795      S3Config?: S3Config;
 796      /**
 797       * If you are using DataSync on an Amazon Web Services Outpost, the Amazon Resource Name (ARNs) of the EC2 agents deployed on your Outpost. For more information about launching a DataSync agent on an Amazon Web Services Outpost, see Deploy your DataSync agent on Outposts.
 798       */
 799      AgentArns?: AgentArnList;
 800      /**
 801       * The time that the Amazon S3 bucket location was created.
 802       */
 803      CreationTime?: Time;
 804    }
 805    export interface DescribeLocationSmbRequest {
 806      /**
 807       * The Amazon Resource Name (ARN) of the SMB location to describe.
 808       */
 809      LocationArn: LocationArn;
 810    }
 811    export interface DescribeLocationSmbResponse {
 812      /**
 813       * The Amazon Resource Name (ARN) of the SMB location that was described.
 814       */
 815      LocationArn?: LocationArn;
 816      /**
 817       * The URL of the source SMB location that was described.
 818       */
 819      LocationUri?: LocationUri;
 820      /**
 821       * The Amazon Resource Name (ARN) of the source SMB file system location that is created.
 822       */
 823      AgentArns?: AgentArnList;
 824      /**
 825       * The user who can mount the share, has the permissions to access files and folders in the SMB share.
 826       */
 827      User?: SmbUser;
 828      /**
 829       * The name of the Windows domain that the SMB server belongs to.
 830       */
 831      Domain?: SmbDomain;
 832      /**
 833       * The mount options that are available for DataSync to use to access an SMB location.
 834       */
 835      MountOptions?: SmbMountOptions;
 836      /**
 837       * The time that the SMB location was created.
 838       */
 839      CreationTime?: Time;
 840    }
 841    export interface DescribeTaskExecutionRequest {
 842      /**
 843       * The Amazon Resource Name (ARN) of the task that is being executed.
 844       */
 845      TaskExecutionArn: TaskExecutionArn;
 846    }
 847    export interface DescribeTaskExecutionResponse {
 848      /**
 849       * The Amazon Resource Name (ARN) of the task execution that was described. 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. 
 850       */
 851      TaskExecutionArn?: TaskExecutionArn;
 852      /**
 853       * The status of the task execution.  For detailed information about task execution statuses, see Understanding Task Statuses in the DataSync User Guide. 
 854       */
 855      Status?: TaskExecutionStatus;
 856      Options?: Options;
 857      /**
 858       * A list of filter rules that determines which files to exclude from a task. The list should contain a single filter string that consists of the patterns to exclude. The patterns are delimited by "|" (that is, a pipe), for example: "/folder1|/folder2"   
 859       */
 860      Excludes?: FilterList;
 861      /**
 862       * A list of filter rules that determines which files to include when running a task. The list 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"   
 863       */
 864      Includes?: FilterList;
 865      /**
 866       * The time that the task execution was started.
 867       */
 868      StartTime?: Time;
 869      /**
 870       * The expected number of files that is to be transferred over the network. This value is calculated during the PREPARING phase, before the TRANSFERRING phase. This value is the expected number of files to be transferred. It's calculated based on comparing the content of the source and destination locations and finding the delta that needs to be transferred. 
 871       */
 872      EstimatedFilesToTransfer?: long;
 873      /**
 874       * The estimated physical number of bytes that is to be transferred over the network.
 875       */
 876      EstimatedBytesToTransfer?: long;
 877      /**
 878       * The actual number of files that was transferred over the network. This value is calculated and updated on an ongoing basis during the TRANSFERRING phase. It's updated periodically when each file is read from the source and sent over the network.  If failures occur during a transfer, this value can be less than EstimatedFilesToTransfer. This value can also be greater than EstimatedFilesTransferred in some cases. This element is implementation-specific for some location types, so don't use it as an indicator for a correct file number or to monitor your task execution.
 879       */
 880      FilesTransferred?: long;
 881      /**
 882       * The number of logical bytes written to the destination Amazon Web Services storage resource.
 883       */
 884      BytesWritten?: long;
 885      /**
 886       * The physical number of bytes transferred over the network.
 887       */
 888      BytesTransferred?: long;
 889      /**
 890       * The result of the task execution.
 891       */
 892      Result?: TaskExecutionResultDetail;
 893    }
 894    export interface DescribeTaskRequest {
 895      /**
 896       * The Amazon Resource Name (ARN) of the task to describe.
 897       */
 898      TaskArn: TaskArn;
 899    }
 900    export interface DescribeTaskResponse {
 901      /**
 902       * The Amazon Resource Name (ARN) of the task that was described.
 903       */
 904      TaskArn?: TaskArn;
 905      /**
 906       * The status of the task that was described. For detailed information about task execution statuses, see Understanding Task Statuses in the DataSync User Guide.
 907       */
 908      Status?: TaskStatus;
 909      /**
 910       * The name of the task that was described.
 911       */
 912      Name?: TagValue;
 913      /**
 914       * The Amazon Resource Name (ARN) of the task execution that is syncing files.
 915       */
 916      CurrentTaskExecutionArn?: TaskExecutionArn;
 917      /**
 918       * The Amazon Resource Name (ARN) of the source file system's location.
 919       */
 920      SourceLocationArn?: LocationArn;
 921      /**
 922       * The Amazon Resource Name (ARN) of the Amazon Web Services storage resource's location.
 923       */
 924      DestinationLocationArn?: LocationArn;
 925      /**
 926       * The Amazon Resource Name (ARN) of the Amazon CloudWatch log group that was used to monitor and log events in the task. For more information on these groups, see Working with Log Groups and Log Streams in the Amazon CloudWatch User Guide.
 927       */
 928      CloudWatchLogGroupArn?: LogGroupArn;
 929      /**
 930       * The Amazon Resource Name (ARN) of the source ENIs (Elastic Network Interface) that was created for your subnet.
 931       */
 932      SourceNetworkInterfaceArns?: SourceNetworkInterfaceArns;
 933      /**
 934       * The Amazon Resource Name (ARN) of the destination ENIs (Elastic Network Interface) that was created for your subnet.
 935       */
 936      DestinationNetworkInterfaceArns?: DestinationNetworkInterfaceArns;
 937      /**
 938       * The set of configuration options that control the behavior of a single execution of the task that occurs when you call StartTaskExecution. You can configure these options to preserve metadata such as user ID (UID) and group (GID), file permissions, data integrity verification, and so on. For each individual task execution, you can override these options by specifying the overriding OverrideOptions value to StartTaskExecution operation. 
 939       */
 940      Options?: Options;
 941      /**
 942       * A list of filter rules that determines which files to exclude from a task. The list should contain a single filter string that consists of the patterns to exclude. The patterns are delimited by "|" (that is, a pipe), for example: "/folder1|/folder2"   
 943       */
 944      Excludes?: FilterList;
 945      /**
 946       * The schedule used to periodically transfer files from a source to a destination location.
 947       */
 948      Schedule?: TaskSchedule;
 949      /**
 950       * Errors that DataSync encountered during execution of the task. You can use this error code to help troubleshoot issues.
 951       */
 952      ErrorCode?: string;
 953      /**
 954       * Detailed description of an error that was encountered during the task execution. You can use this information to help troubleshoot issues. 
 955       */
 956      ErrorDetail?: string;
 957      /**
 958       * The time that the task was created.
 959       */
 960      CreationTime?: Time;
 961      /**
 962       * 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"
 963       */
 964      Includes?: FilterList;
 965    }
 966    export type DestinationNetworkInterfaceArns = NetworkInterfaceArn[];
 967    export type Duration = number;
 968    export interface Ec2Config {
 969      /**
 970       * The ARN of the subnet and the security group that DataSync uses to access the target EFS file system.
 971       */
 972      SubnetArn: Ec2SubnetArn;
 973      /**
 974       * The Amazon Resource Names (ARNs) of the security groups that are configured for the Amazon EC2 resource.
 975       */
 976      SecurityGroupArns: Ec2SecurityGroupArnList;
 977    }
 978    export type Ec2SecurityGroupArn = string;
 979    export type Ec2SecurityGroupArnList = Ec2SecurityGroupArn[];
 980    export type Ec2SubnetArn = string;
 981    export type EfsFilesystemArn = string;
 982    export type EfsSubdirectory = string;
 983    export type Endpoint = string;
 984    export type EndpointType = "PUBLIC"|"PRIVATE_LINK"|"FIPS"|string;
 985    export type FilterAttributeValue = string;
 986    export type FilterList = FilterRule[];
 987    export interface FilterRule {
 988      /**
 989       * The type of filter rule to apply. DataSync only supports the SIMPLE_PATTERN rule type.
 990       */
 991      FilterType?: FilterType;
 992      /**
 993       * 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   
 994       */
 995      Value?: FilterValue;
 996    }
 997    export type FilterType = "SIMPLE_PATTERN"|string;
 998    export type FilterValue = string;
 999    export type FilterValues = FilterAttributeValue[];
1000    export type FsxFilesystemArn = string;
1001    export type FsxWindowsSubdirectory = string;
1002    export type Gid = "NONE"|"INT_VALUE"|"NAME"|"BOTH"|string;
1003    export type IamRoleArn = string;
1004    export type InputTagList = TagListEntry[];
1005    export interface ListAgentsRequest {
1006      /**
1007       * The maximum number of agents to list.
1008       */
1009      MaxResults?: MaxResults;
1010      /**
1011       * An opaque string that indicates the position at which to begin the next list of agents.
1012       */
1013      NextToken?: NextToken;
1014    }
1015    export interface ListAgentsResponse {
1016      /**
1017       * A list of agents in your account.
1018       */
1019      Agents?: AgentList;
1020      /**
1021       * An opaque string that indicates the position at which to begin returning the next list of agents.
1022       */
1023      NextToken?: NextToken;
1024    }
1025    export interface ListLocationsRequest {
1026      /**
1027       * The maximum number of locations to return.
1028       */
1029      MaxResults?: MaxResults;
1030      /**
1031       * An opaque string that indicates the position at which to begin the next list of locations.
1032       */
1033      NextToken?: NextToken;
1034      /**
1035       * 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.
1036       */
1037      Filters?: LocationFilters;
1038    }
1039    export interface ListLocationsResponse {
1040      /**
1041       * An array that contains a list of locations.
1042       */
1043      Locations?: LocationList;
1044      /**
1045       * An opaque string that indicates the position at which to begin returning the next list of locations.
1046       */
1047      NextToken?: NextToken;
1048    }
1049    export interface ListTagsForResourceRequest {
1050      /**
1051       * The Amazon Resource Name (ARN) of the resource whose tags to list.
1052       */
1053      ResourceArn: TaggableResourceArn;
1054      /**
1055       * The maximum number of locations to return.
1056       */
1057      MaxResults?: MaxResults;
1058      /**
1059       * An opaque string that indicates the position at which to begin the next list of locations.
1060       */
1061      NextToken?: NextToken;
1062    }
1063    export interface ListTagsForResourceResponse {
1064      /**
1065       * Array of resource tags.
1066       */
1067      Tags?: OutputTagList;
1068      /**
1069       * An opaque string that indicates the position at which to begin returning the next list of resource tags.
1070       */
1071      NextToken?: NextToken;
1072    }
1073    export interface ListTaskExecutionsRequest {
1074      /**
1075       * The Amazon Resource Name (ARN) of the task whose tasks you want to list.
1076       */
1077      TaskArn?: TaskArn;
1078      /**
1079       * The maximum number of executed tasks to list.
1080       */
1081      MaxResults?: MaxResults;
1082      /**
1083       * An opaque string that indicates the position at which to begin the next list of the executed tasks.
1084       */
1085      NextToken?: NextToken;
1086    }
1087    export interface ListTaskExecutionsResponse {
1088      /**
1089       * A list of executed tasks.
1090       */
1091      TaskExecutions?: TaskExecutionList;
1092      /**
1093       * An opaque string that indicates the position at which to begin returning the next list of executed tasks.
1094       */
1095      NextToken?: NextToken;
1096    }
1097    export interface ListTasksRequest {
1098      /**
1099       * The maximum number of tasks to return.
1100       */
1101      MaxResults?: MaxResults;
1102      /**
1103       * An opaque string that indicates the position at which to begin the next list of tasks.
1104       */
1105      NextToken?: NextToken;
1106      /**
1107       * 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.
1108       */
1109      Filters?: TaskFilters;
1110    }
1111    export interface ListTasksResponse {
1112      /**
1113       * A list of all the tasks that are returned.
1114       */
1115      Tasks?: TaskList;
1116      /**
1117       * An opaque string that indicates the position at which to begin returning the next list of tasks.
1118       */
1119      NextToken?: NextToken;
1120    }
1121    export type LocationArn = string;
1122    export interface LocationFilter {
1123      /**
1124       * 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).
1125       */
1126      Name: LocationFilterName;
1127      /**
1128       * The values that you want to filter for. For example, you might want to display only Amazon S3 locations.
1129       */
1130      Values: FilterValues;
1131      /**
1132       * The operator that is used to compare filter values (for example, Equals or Contains). For more about API filtering operators, see API filters for ListTasks and ListLocations.
1133       */
1134      Operator: Operator;
1135    }
1136    export type LocationFilterName = "LocationUri"|"LocationType"|"CreationTime"|string;
1137    export type LocationFilters = LocationFilter[];
1138    export type LocationList = LocationListEntry[];
1139    export interface LocationListEntry {
1140      /**
1141       * 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.
1142       */
1143      LocationArn?: LocationArn;
1144      /**
1145       * Represents a list of URLs 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. Valid values: NFS | EFS | 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 address or a host name compliant with Domain Name Service (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. 
1146       */
1147      LocationUri?: LocationUri;
1148    }
1149    export type LocationUri = string;
1150    export type LogGroupArn = string;
1151    export type LogLevel = "OFF"|"BASIC"|"TRANSFER"|string;
1152    export type MaxResults = number;
1153    export type Mtime = "NONE"|"PRESERVE"|string;
1154    export type NetworkInterfaceArn = string;
1155    export type NextToken = string;
1156    export interface NfsMountOptions {
1157      /**
1158       * The specific NFS version that you want DataSync to use to mount your NFS share. If the server refuses to use the version specified, the sync will fail. If you don't specify a version, DataSync defaults to AUTOMATIC. That is, DataSync automatically selects a version based on negotiation with the NFS server. You can specify the following NFS versions:     NFSv3  - stateless protocol version that allows for asynchronous writes on the server.     NFSv4.0  - stateful, firewall-friendly protocol version that supports delegations and pseudo filesystems.     NFSv4.1  - stateful protocol version that supports sessions, directory delegations, and parallel data processing. Version 4.1 also includes all features available in version 4.0.  
1159       */
1160      Version?: NfsVersion;
1161    }
1162    export type NfsSubdirectory = string;
1163    export type NfsVersion = "AUTOMATIC"|"NFS3"|"NFS4_0"|"NFS4_1"|string;
1164    export type ObjectStorageAccessKey = string;
1165    export type ObjectStorageBucketName = string;
1166    export type ObjectStorageSecretKey = string;
1167    export type ObjectStorageServerPort = number;
1168    export type ObjectStorageServerProtocol = "HTTPS"|"HTTP"|string;
1169    export interface OnPremConfig {
1170      /**
1171       * ARNs of the agents to use for an NFS location.
1172       */
1173      AgentArns: AgentArnList;
1174    }
1175    export type Operator = "Equals"|"NotEquals"|"In"|"LessThanOrEqual"|"LessThan"|"GreaterThanOrEqual"|"GreaterThan"|"Contains"|"NotContains"|"BeginsWith"|string;
1176    export interface Options {
1177      /**
1178       * A value that determines whether a data integrity verification should be performed at the end of a task execution after all data and metadata have been transferred. For more information, see Configure task settings.  Default value: POINT_IN_TIME_CONSISTENT. ONLY_FILES_TRANSFERRED (recommended): Perform verification only on files that were transferred.  POINT_IN_TIME_CONSISTENT: Scan the entire source and entire destination at the end of the transfer to verify that source and destination are fully synchronized. This option isn't supported when transferring to S3 Glacier or S3 Glacier Deep Archive storage classes. NONE: No additional verification is done at the end of the transfer, but all data transmissions are integrity-checked with checksum verification during the transfer.
1179       */
1180      VerifyMode?: VerifyMode;
1181      /**
1182       * A value that determines whether files at the destination should be overwritten or preserved when copying files. If set to NEVER a destination file will not be replaced by a source file, even if the destination file differs from the source file. If you modify files in the destination and you sync the files, you can use this value to protect against overwriting those changes.  Some storage classes have specific behaviors that can affect your S3 storage cost. For detailed information, see Considerations when working with Amazon S3 storage classes in DataSync  in the DataSync User Guide.
1183       */
1184      OverwriteMode?: OverwriteMode;
1185      /**
1186       * A file metadata value that shows the last time a file was accessed (that is, when the file was read or written to). If you set Atime to BEST_EFFORT, DataSync attempts to preserve the original Atime attribute on all source files (that is, the version before the PREPARING phase). However, Atime's behavior is not fully standard across platforms, so DataSync can only do this on a best-effort basis.  Default value: BEST_EFFORT. BEST_EFFORT: Attempt to preserve the per-file Atime value (recommended). NONE: Ignore Atime.  If Atime is set to BEST_EFFORT, Mtime must be set to PRESERVE.  If Atime is set to NONE, Mtime must also be NONE.  
1187       */
1188      Atime?: Atime;
1189      /**
1190       * A value that indicates the last time that a file was modified (that is, a file was written to) before the PREPARING phase. This option is required for cases when you need to run the same task more than one time.  Default value: PRESERVE.  PRESERVE: Preserve original Mtime (recommended)  NONE: Ignore Mtime.   If Mtime is set to PRESERVE, Atime must be set to BEST_EFFORT. If Mtime is set to NONE, Atime must also be set to NONE.  
1191       */
1192      Mtime?: Mtime;
1193      /**
1194       * The POSIX user ID (UID) of the file's owner. This option should only be set for NFS, EFS, and S3 locations. To learn more about what metadata is copied by DataSync, see Metadata Copied by DataSync. Default value: INT_VALUE. This preserves the integer value of the ID. INT_VALUE: Preserve the integer value of UID and group ID (GID) (recommended). NONE: Ignore UID and GID. 
1195       */
1196      Uid?: Uid;
1197      /**
1198       * The POSIX group ID (GID) of the file's owners. This option should only be set for NFS, EFS, and S3 locations. For more information about what metadata is copied by DataSync, see Metadata Copied by DataSync.  Default value: INT_VALUE. This preserves the integer value of the ID. INT_VALUE: Preserve the integer value of user ID (UID) and GID (recommended). NONE: Ignore UID and GID. 
1199       */
1200      Gid?: Gid;
1201      /**
1202       * A value that specifies whether files in the destination that don't exist in the source file system should be preserved. This option can affect your storage cost. If your task deletes objects, you might incur minimum storage duration charges for certain storage classes. For detailed information, see Considerations when working with Amazon S3 storage classes in DataSync  in the DataSync User Guide. Default value: PRESERVE. PRESERVE: Ignore such destination files (recommended).  REMOVE: Delete destination files that aren’t present in the source.
1203       */
1204      PreserveDeletedFiles?: PreserveDeletedFiles;
1205      /**
1206       * A value that determines whether DataSync should preserve the metadata of block and character devices in the source file system, and re-create the files with that device name and metadata on the destination. DataSync does not copy the contents of such devices, only the name and metadata.   DataSync can't sync the actual contents of such devices, because they are nonterminal and don't return an end-of-file (EOF) marker.  Default value: NONE. NONE: Ignore special devices (recommended).  PRESERVE: Preserve character and block device metadata. This option isn't currently supported for Amazon EFS. 
1207       */
1208      PreserveDevices?: PreserveDevices;
1209      /**
1210       * A value that determines which users or groups can access a file for a specific purpose such as reading, writing, or execution of the file. This option should only be set for NFS, EFS, and S3 locations. For more information about what metadata is copied by DataSync, see Metadata Copied by DataSync.  Default value: PRESERVE. PRESERVE: Preserve POSIX-style permissions (recommended). NONE: Ignore permissions.   DataSync can preserve extant permissions of a source location. 
1211       */
1212      PosixPermissions?: PosixPermissions;
1213      /**
1214       * A value that limits the bandwidth used by DataSync. For example, if you want DataSync to use a maximum of 1 MB, set this value to 1048576 (=1024*1024).
1215       */
1216      BytesPerSecond?: BytesPerSecond;
1217      /**
1218       * A value that determines whether tasks should be queued before executing the tasks. If set to ENABLED, the tasks will be queued. The default is ENABLED. If you use the same agent to run multiple tasks, you can enable the tasks to run in series. For more information, see Queueing task executions.
1219       */
1220      TaskQueueing?: TaskQueueing;
1221      /**
1222       * A value that determines the type of logs that DataSync publishes to a log stream in the Amazon CloudWatch log group that you provide. For more information about providing a log group for DataSync, see CloudWatchLogGroupArn. If set to OFF, no logs are published. BASIC publishes logs on errors for individual files transferred, and TRANSFER publishes logs for every file or object that is transferred and integrity checked.
1223       */
1224      LogLevel?: LogLevel;
1225      /**
1226       * A value that determines whether DataSync transfers only the data and metadata that differ between the source and the destination location, or whether DataSync transfers all the content from the source, without comparing to the destination location.  CHANGED: DataSync copies only data or metadata that is new or different content from the source location to the destination location. ALL: DataSync copies all source location content to the destination, without comparing to existing content on the destination.
1227       */
1228      TransferMode?: TransferMode;
1229      /**
1230       * A value that determines 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 Amazon FSx for Windows File Server locations. For more information about how DataSync handles metadata, see How DataSync Handles Metadata and Special Files.  Default value: OWNER_DACL.  OWNER_DACL: For each copied object, DataSync copies the following metadata:   Object owner.   NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object.   When choosing this option, DataSync does NOT copy the NTFS system access control lists (SACLs), which are used by administrators to log attempts to access a secured object.  OWNER_DACL_SACL: For each copied object, DataSync copies the following metadata:   Object owner.   NTFS discretionary access control lists (DACLs), which determine whether to grant access to an object.   NTFS system access control lists (SACLs), which are used by administrators to log attempts to access a secured object.   Copying SACLs requires granting additional permissions to the Windows user that DataSync uses to access your SMB location. For information about choosing a user that ensures sufficient permissions to files, folders, and metadata, see user.  NONE: None of the SMB security descriptor components are copied. Destination objects are owned by the user that was provided for accessing the destination location. DACLs and SACLs are set based on the destination server’s configuration. 
1231       */
1232      SecurityDescriptorCopyFlags?: SmbSecurityDescriptorCopyFlags;
1233    }
1234    export type OutputTagList = TagListEntry[];
1235    export type OverwriteMode = "ALWAYS"|"NEVER"|string;
1236    export type PLSecurityGroupArnList = Ec2SecurityGroupArn[];
1237    export type PLSubnetArnList = Ec2SubnetArn[];
1238    export type PhaseStatus = "PENDING"|"SUCCESS"|"ERROR"|string;
1239    export type PosixPermissions = "NONE"|"PRESERVE"|string;
1240    export type PreserveDeletedFiles = "PRESERVE"|"REMOVE"|string;
1241    export type PreserveDevices = "NONE"|"PRESERVE"|string;
1242    export interface PrivateLinkConfig {
1243      /**
1244       * The ID of the VPC endpoint that is configured for an agent. An agent that is configured with a VPC endpoint will not be accessible over the public internet.
1245       */
1246      VpcEndpointId?: VpcEndpointId;
1247      /**
1248       * The private endpoint that is configured for an agent that has access to IP addresses in a PrivateLink. An agent that is configured with this endpoint will not be accessible over the public internet.
1249       */
1250      PrivateLinkEndpoint?: Endpoint;
1251      /**
1252       * The Amazon Resource Names (ARNs) of the subnets that are configured for an agent activated in a VPC or an agent that has access to a VPC endpoint.
1253       */
1254      SubnetArns?: PLSubnetArnList;
1255      /**
1256       * The Amazon Resource Names (ARNs) of the security groups that are configured for the EC2 resource that hosts an agent activated in a VPC or an agent that has access to a VPC endpoint.
1257       */
1258      SecurityGroupArns?: PLSecurityGroupArnList;
1259    }
1260    export type S3BucketArn = string;
1261    export interface S3Config {
1262      /**
1263       * The Amazon S3 bucket to access. This bucket is used as a parameter in the CreateLocationS3 operation. 
1264       */
1265      BucketAccessRoleArn: IamRoleArn;
1266    }
1267    export type S3StorageClass = "STANDARD"|"STANDARD_IA"|"ONEZONE_IA"|"INTELLIGENT_TIERING"|"GLACIER"|"DEEP_ARCHIVE"|"OUTPOSTS"|string;
1268    export type S3Subdirectory = string;
1269    export type ScheduleExpressionCron = string;
1270    export type ServerHostname = string;
1271    export type SmbDomain = string;
1272    export interface SmbMountOptions {
1273      /**
1274       * The specific SMB version that you want DataSync to use to mount your SMB share. If you don't specify a version, DataSync defaults to AUTOMATIC. That is, DataSync automatically selects a version based on negotiation with the SMB server.
1275       */
1276      Version?: SmbVersion;
1277    }
1278    export type SmbPassword = string;
1279    export type SmbSecurityDescriptorCopyFlags = "NONE"|"OWNER_DACL"|"OWNER_DACL_SACL"|string;
1280    export type SmbSubdirectory = string;
1281    export type SmbUser = string;
1282    export type SmbVersion = "AUTOMATIC"|"SMB2"|"SMB3"|string;
1283    export type SourceNetworkInterfaceArns = NetworkInterfaceArn[];
1284    export interface StartTaskExecutionRequest {
1285      /**
1286       * The Amazon Resource Name (ARN) of the task to start.
1287       */
1288      TaskArn: TaskArn;
1289      OverrideOptions?: Options;
1290      /**
1291       * 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"   
1292       */
1293      Includes?: FilterList;
1294      /**
1295       * A list of filter rules that determines which files to exclude from a task. The list should contain a single filter string that consists of the patterns to exclude. The patterns are delimited by "|" (that is, a pipe), for example, "/folder1|/folder2". 
1296       */
1297      Excludes?: FilterList;
1298    }
1299    export interface StartTaskExecutionResponse {
1300      /**
1301       * The Amazon Resource Name (ARN) of the specific task execution that was started.
1302       */
1303      TaskExecutionArn?: TaskExecutionArn;
1304    }
1305    export type TagKey = string;
1306    export type TagKeyList = TagKey[];
1307    export interface TagListEntry {
1308      /**
1309       * The key for an Amazon Web Services resource tag.
1310       */
1311      Key: TagKey;
1312      /**
1313       * The value for an Amazon Web Services resource tag.
1314       */
1315      Value?: TagValue;
1316    }
1317    export interface TagResourceRequest {
1318      /**
1319       * The Amazon Resource Name (ARN) of the resource to apply the tag to.
1320       */
1321      ResourceArn: TaggableResourceArn;
1322      /**
1323       * The tags to apply.
1324       */
1325      Tags: InputTagList;
1326    }
1327    export interface TagResourceResponse {
1328    }
1329    export type TagValue = string;
1330    export type TaggableResourceArn = string;
1331    export type TaskArn = string;
1332    export type TaskExecutionArn = string;
1333    export type TaskExecutionList = TaskExecutionListEntry[];
1334    export interface TaskExecutionListEntry {
1335      /**
1336       * The Amazon Resource Name (ARN) of the task that was executed.
1337       */
1338      TaskExecutionArn?: TaskExecutionArn;
1339      /**
1340       * The status of a task execution.
1341       */
1342      Status?: TaskExecutionStatus;
1343    }
1344    export interface TaskExecutionResultDetail {
1345      /**
1346       * The total time in milliseconds that DataSync spent in the PREPARING phase. 
1347       */
1348      PrepareDuration?: Duration;
1349      /**
1350       * The status of the PREPARING phase.
1351       */
1352      PrepareStatus?: PhaseStatus;
1353      /**
1354       * The total time in milliseconds that DataSync took to transfer the file from the source to the destination location.
1355       */
1356      TotalDuration?: Duration;
1357      /**
1358       * The total time in milliseconds that DataSync spent in the TRANSFERRING phase.
1359       */
1360      TransferDuration?: Duration;
1361      /**
1362       * The status of the TRANSFERRING phase.
1363       */
1364      TransferStatus?: PhaseStatus;
1365      /**
1366       * The total time in milliseconds that DataSync spent in the VERIFYING phase.
1367       */
1368      VerifyDuration?: Duration;
1369      /**
1370       * The status of the VERIFYING phase.
1371       */
1372      VerifyStatus?: PhaseStatus;
1373      /**
1374       * Errors that DataSync encountered during execution of the task. You can use this error code to help troubleshoot issues.
1375       */
1376      ErrorCode?: string;
1377      /**
1378       * Detailed description of an error that was encountered during the task execution. You can use this information to help troubleshoot issues. 
1379       */
1380      ErrorDetail?: string;
1381    }
1382    export type TaskExecutionStatus = "QUEUED"|"LAUNCHING"|"PREPARING"|"TRANSFERRING"|"VERIFYING"|"SUCCESS"|"ERROR"|string;
1383    export interface TaskFilter {
1384      /**
1385       * 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.
1386       */
1387      Name: TaskFilterName;
1388      /**
1389       * The values that you want to filter for. For example, you might want to display only tasks for a specific destination location.
1390       */
1391      Values: FilterValues;
1392      /**
1393       * The operator that is used to compare filter values (for example, Equals or Contains). For more about API filtering operators, see API filters for ListTasks and ListLocations.
1394       */
1395      Operator: Operator;
1396    }
1397    export type TaskFilterName = "LocationId"|"CreationTime"|string;
1398    export type TaskFilters = TaskFilter[];
1399    export type TaskList = TaskListEntry[];
1400    export interface TaskListEntry {
1401      /**
1402       * The Amazon Resource Name (ARN) of the task.
1403       */
1404      TaskArn?: TaskArn;
1405      /**
1406       * The status of the task.
1407       */
1408      Status?: TaskStatus;
1409      /**
1410       * The name of the task.
1411       */
1412      Name?: TagValue;
1413    }
1414    export type TaskQueueing = "ENABLED"|"DISABLED"|string;
1415    export interface TaskSchedule {
1416      /**
1417       * A cron expression that specifies when DataSync initiates a scheduled transfer from a source to a destination location. 
1418       */
1419      ScheduleExpression: ScheduleExpressionCron;
1420    }
1421    export type TaskStatus = "AVAILABLE"|"CREATING"|"QUEUED"|"RUNNING"|"UNAVAILABLE"|string;
1422    export type Time = Date;
1423    export type TransferMode = "CHANGED"|"ALL"|string;
1424    export type Uid = "NONE"|"INT_VALUE"|"NAME"|"BOTH"|string;
1425    export interface UntagResourceRequest {
1426      /**
1427       * The Amazon Resource Name (ARN) of the resource to remove the tag from.
1428       */
1429      ResourceArn: TaggableResourceArn;
1430      /**
1431       * The keys in the key-value pair in the tag to remove.
1432       */
1433      Keys: TagKeyList;
1434    }
1435    export interface UntagResourceResponse {
1436    }
1437    export interface UpdateAgentRequest {
1438      /**
1439       * The Amazon Resource Name (ARN) of the agent to update.
1440       */
1441      AgentArn: AgentArn;
1442      /**
1443       * The name that you want to use to configure the agent.
1444       */
1445      Name?: TagValue;
1446    }
1447    export interface UpdateAgentResponse {
1448    }
1449    export interface UpdateLocationNfsRequest {
1450      /**
1451       * The Amazon Resource Name (ARN) of the NFS location to update.
1452       */
1453      LocationArn: LocationArn;
1454      /**
1455       * The subdirectory in the NFS file system that is used to read data from the NFS source location or write data to the NFS destination. The NFS path should be a path that's exported by the NFS server, or a subdirectory of that path. The path should be such that it can be mounted by other NFS clients in your network. To see all the paths exported by your NFS server, run "showmount -e nfs-server-name" from an NFS client that has access to your server. You can specify any directory that appears in the results, and any subdirectory of that directory. Ensure that the NFS export is accessible without Kerberos authentication.  To transfer all the data in the folder that you specified, DataSync must have permissions to read all the data. To ensure this, either configure the NFS export with no_root_squash, or ensure that the files you want DataSync to access have permissions that allow read access for all users. Doing either option enables the agent to read the files. For the agent to access directories, you must additionally enable all execute access. If you are copying data to or from your Snowcone device, see NFS Server on Snowcone for more information. For information about NFS export configuration, see 18.7. The /etc/exports Configuration File in the Red Hat Enterprise Linux documentation.
1456       */
1457      Subdirectory?: NfsSubdirectory;
1458      OnPremConfig?: OnPremConfig;
1459      MountOptions?: NfsMountOptions;
1460    }
1461    export interface UpdateLocationNfsResponse {
1462    }
1463    export interface UpdateLocationObjectStorageRequest {
1464      /**
1465       * The Amazon Resource Name (ARN) of the self-managed object storage server location to be updated.
1466       */
1467      LocationArn: LocationArn;
1468      /**
1469       * The port that your self-managed object storage server accepts inbound network traffic on. The server port is set by default to TCP 80 (HTTP) or TCP 443 (HTTPS). You can specify a custom port if your self-managed object storage server requires one.
1470       */
1471      ServerPort?: ObjectStorageServerPort;
1472      /**
1473       * The protocol that the object storage server uses to communicate. Valid values are HTTP or HTTPS.
1474       */
1475      ServerProtocol?: ObjectStorageServerProtocol;
1476      /**
1477       * The subdirectory in the self-managed object storage server that is used to read data from.
1478       */
1479      Subdirectory?: S3Subdirectory;
1480      /**
1481       * Optional. The access key is used if credentials are required to access the self-managed object storage server. If your object storage requires a user name and password to authenticate, use AccessKey and SecretKey to provide the user name and password, respectively.
1482       */
1483      AccessKey?: ObjectStorageAccessKey;
1484      /**
1485       * Optional. The secret key is used if credentials are required to access the self-managed object storage server. If your object storage requires a user name and password to authenticate, use AccessKey and SecretKey to provide the user name and password, respectively.
1486       */
1487      SecretKey?: ObjectStorageSecretKey;
1488      /**
1489       * The Amazon Resource Name (ARN) of the agents associated with the self-managed object storage server location.
1490       */
1491      AgentArns?: AgentArnList;
1492    }
1493    export interface UpdateLocationObjectStorageResponse {
1494    }
1495    export interface UpdateLocationSmbRequest {
1496      /**
1497       * The Amazon Resource Name (ARN) of the SMB location to update.
1498       */
1499      LocationArn: LocationArn;
1500      /**
1501       * The subdirectory in the SMB file system that is used to read data from the SMB source location or write data to the SMB destination. The SMB path should be a path that's exported by the SMB server, or a subdirectory of that path. The path should be such that it can be mounted by other SMB clients in your network.   Subdirectory must be specified with forward slashes. For example, /path/to/folder.  To transfer all the data in the folder that you specified, DataSync must have permissions to mount the SMB share and to access all the data in that share. To ensure this, do either of the following:   Ensure that the user/password specified belongs to the user who can mount the share and who has the appropriate permissions for all of the files and directories that you want DataSync to access.   Use credentials of a member of the Backup Operators group to mount the share.    Doing either of these options enables the agent to access the data. For the agent to access directories, you must also enable all execute access.
1502       */
1503      Subdirectory?: SmbSubdirectory;
1504      /**
1505       * The user who can mount the share has the permissions to access files and folders in the SMB share.
1506       */
1507      User?: SmbUser;
1508      /**
1509       * The name of the Windows domain that the SMB server belongs to.
1510       */
1511      Domain?: SmbDomain;
1512      /**
1513       * The password of the user who can mount the share has the permissions to access files and folders in the SMB share.
1514       */
1515      Password?: SmbPassword;
1516      /**
1517       * The Amazon Resource Names (ARNs) of agents to use for a Simple Message Block (SMB) location.
1518       */
1519      AgentArns?: AgentArnList;
1520      MountOptions?: SmbMountOptions;
1521    }
1522    export interface UpdateLocationSmbResponse {
1523    }
1524    export interface UpdateTaskExecutionRequest {
1525      /**
1526       * The Amazon Resource Name (ARN) of the specific task execution that is being updated. 
1527       */
1528      TaskExecutionArn: TaskExecutionArn;
1529      Options: Options;
1530    }
1531    export interface UpdateTaskExecutionResponse {
1532    }
1533    export interface UpdateTaskRequest {
1534      /**
1535       * The Amazon Resource Name (ARN) of the resource name of the task to update.
1536       */
1537      TaskArn: TaskArn;
1538      Options?: Options;
1539      /**
1540       * A list of filter rules that determines which files to exclude from a task. The list should contain a single filter string that consists of the patterns to exclude. The patterns are delimited by "|" (that is, a pipe), for example: "/folder1|/folder2"   
1541       */
1542      Excludes?: FilterList;
1543      /**
1544       * Specifies a schedule used to periodically transfer files from a source to a destination location. You can configure your task to execute hourly, daily, weekly or on specific days of the week. You control when in the day or hour you want the task to execute. The time you specify is UTC time. For more information, see Scheduling your task.
1545       */
1546      Schedule?: TaskSchedule;
1547      /**
1548       * The name of the task to update.
1549       */
1550      Name?: TagValue;
1551      /**
1552       * The Amazon Resource Name (ARN) of the resource name of the CloudWatch LogGroup.
1553       */
1554      CloudWatchLogGroupArn?: LogGroupArn;
1555      /**
1556       * 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"
1557       */
1558      Includes?: FilterList;
1559    }
1560    export interface UpdateTaskResponse {
1561    }
1562    export type VerifyMode = "POINT_IN_TIME_CONSISTENT"|"ONLY_FILES_TRANSFERRED"|"NONE"|string;
1563    export type VpcEndpointId = string;
1564    export type long = number;
1565    /**
1566     * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version.
1567     */
1568    export type apiVersion = "2018-11-09"|"latest"|string;
1569    export interface ClientApiVersions {
1570      /**
1571       * A string in YYYY-MM-DD format that represents the latest possible API version that can be used in this service. Specify 'latest' to use the latest possible version.
1572       */
1573      apiVersion?: apiVersion;
1574    }
1575    export type ClientConfiguration = ServiceConfigurationOptions & ClientApiVersions;
1576    /**
1577     * Contains interfaces for use with the DataSync client.
1578     */
1579    export import Types = DataSync;
1580  }
1581  export = DataSync;