1 /**
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  * SPDX-License-Identifier: Apache-2.0.
4  */
5 
6 #pragma once
7 #include <aws/datasync/DataSync_EXPORTS.h>
8 #include <aws/datasync/DataSyncErrors.h>
9 #include <aws/core/client/AWSError.h>
10 #include <aws/core/client/ClientConfiguration.h>
11 #include <aws/core/client/AWSClient.h>
12 #include <aws/core/utils/memory/stl/AWSString.h>
13 #include <aws/core/utils/json/JsonSerializer.h>
14 #include <aws/datasync/model/CancelTaskExecutionResult.h>
15 #include <aws/datasync/model/CreateAgentResult.h>
16 #include <aws/datasync/model/CreateLocationEfsResult.h>
17 #include <aws/datasync/model/CreateLocationFsxWindowsResult.h>
18 #include <aws/datasync/model/CreateLocationNfsResult.h>
19 #include <aws/datasync/model/CreateLocationObjectStorageResult.h>
20 #include <aws/datasync/model/CreateLocationS3Result.h>
21 #include <aws/datasync/model/CreateLocationSmbResult.h>
22 #include <aws/datasync/model/CreateTaskResult.h>
23 #include <aws/datasync/model/DeleteAgentResult.h>
24 #include <aws/datasync/model/DeleteLocationResult.h>
25 #include <aws/datasync/model/DeleteTaskResult.h>
26 #include <aws/datasync/model/DescribeAgentResult.h>
27 #include <aws/datasync/model/DescribeLocationEfsResult.h>
28 #include <aws/datasync/model/DescribeLocationFsxWindowsResult.h>
29 #include <aws/datasync/model/DescribeLocationNfsResult.h>
30 #include <aws/datasync/model/DescribeLocationObjectStorageResult.h>
31 #include <aws/datasync/model/DescribeLocationS3Result.h>
32 #include <aws/datasync/model/DescribeLocationSmbResult.h>
33 #include <aws/datasync/model/DescribeTaskResult.h>
34 #include <aws/datasync/model/DescribeTaskExecutionResult.h>
35 #include <aws/datasync/model/ListAgentsResult.h>
36 #include <aws/datasync/model/ListLocationsResult.h>
37 #include <aws/datasync/model/ListTagsForResourceResult.h>
38 #include <aws/datasync/model/ListTaskExecutionsResult.h>
39 #include <aws/datasync/model/ListTasksResult.h>
40 #include <aws/datasync/model/StartTaskExecutionResult.h>
41 #include <aws/datasync/model/TagResourceResult.h>
42 #include <aws/datasync/model/UntagResourceResult.h>
43 #include <aws/datasync/model/UpdateAgentResult.h>
44 #include <aws/datasync/model/UpdateLocationNfsResult.h>
45 #include <aws/datasync/model/UpdateLocationObjectStorageResult.h>
46 #include <aws/datasync/model/UpdateLocationSmbResult.h>
47 #include <aws/datasync/model/UpdateTaskResult.h>
48 #include <aws/datasync/model/UpdateTaskExecutionResult.h>
49 #include <aws/core/client/AsyncCallerContext.h>
50 #include <aws/core/http/HttpTypes.h>
51 #include <future>
52 #include <functional>
53 
54 namespace Aws
55 {
56 
57 namespace Http
58 {
59   class HttpClient;
60   class HttpClientFactory;
61 } // namespace Http
62 
63 namespace Utils
64 {
65   template< typename R, typename E> class Outcome;
66 namespace Threading
67 {
68   class Executor;
69 } // namespace Threading
70 } // namespace Utils
71 
72 namespace Auth
73 {
74   class AWSCredentials;
75   class AWSCredentialsProvider;
76 } // namespace Auth
77 
78 namespace Client
79 {
80   class RetryStrategy;
81 } // namespace Client
82 
83 namespace DataSync
84 {
85 
86 namespace Model
87 {
88         class CancelTaskExecutionRequest;
89         class CreateAgentRequest;
90         class CreateLocationEfsRequest;
91         class CreateLocationFsxWindowsRequest;
92         class CreateLocationNfsRequest;
93         class CreateLocationObjectStorageRequest;
94         class CreateLocationS3Request;
95         class CreateLocationSmbRequest;
96         class CreateTaskRequest;
97         class DeleteAgentRequest;
98         class DeleteLocationRequest;
99         class DeleteTaskRequest;
100         class DescribeAgentRequest;
101         class DescribeLocationEfsRequest;
102         class DescribeLocationFsxWindowsRequest;
103         class DescribeLocationNfsRequest;
104         class DescribeLocationObjectStorageRequest;
105         class DescribeLocationS3Request;
106         class DescribeLocationSmbRequest;
107         class DescribeTaskRequest;
108         class DescribeTaskExecutionRequest;
109         class ListAgentsRequest;
110         class ListLocationsRequest;
111         class ListTagsForResourceRequest;
112         class ListTaskExecutionsRequest;
113         class ListTasksRequest;
114         class StartTaskExecutionRequest;
115         class TagResourceRequest;
116         class UntagResourceRequest;
117         class UpdateAgentRequest;
118         class UpdateLocationNfsRequest;
119         class UpdateLocationObjectStorageRequest;
120         class UpdateLocationSmbRequest;
121         class UpdateTaskRequest;
122         class UpdateTaskExecutionRequest;
123 
124         typedef Aws::Utils::Outcome<CancelTaskExecutionResult, DataSyncError> CancelTaskExecutionOutcome;
125         typedef Aws::Utils::Outcome<CreateAgentResult, DataSyncError> CreateAgentOutcome;
126         typedef Aws::Utils::Outcome<CreateLocationEfsResult, DataSyncError> CreateLocationEfsOutcome;
127         typedef Aws::Utils::Outcome<CreateLocationFsxWindowsResult, DataSyncError> CreateLocationFsxWindowsOutcome;
128         typedef Aws::Utils::Outcome<CreateLocationNfsResult, DataSyncError> CreateLocationNfsOutcome;
129         typedef Aws::Utils::Outcome<CreateLocationObjectStorageResult, DataSyncError> CreateLocationObjectStorageOutcome;
130         typedef Aws::Utils::Outcome<CreateLocationS3Result, DataSyncError> CreateLocationS3Outcome;
131         typedef Aws::Utils::Outcome<CreateLocationSmbResult, DataSyncError> CreateLocationSmbOutcome;
132         typedef Aws::Utils::Outcome<CreateTaskResult, DataSyncError> CreateTaskOutcome;
133         typedef Aws::Utils::Outcome<DeleteAgentResult, DataSyncError> DeleteAgentOutcome;
134         typedef Aws::Utils::Outcome<DeleteLocationResult, DataSyncError> DeleteLocationOutcome;
135         typedef Aws::Utils::Outcome<DeleteTaskResult, DataSyncError> DeleteTaskOutcome;
136         typedef Aws::Utils::Outcome<DescribeAgentResult, DataSyncError> DescribeAgentOutcome;
137         typedef Aws::Utils::Outcome<DescribeLocationEfsResult, DataSyncError> DescribeLocationEfsOutcome;
138         typedef Aws::Utils::Outcome<DescribeLocationFsxWindowsResult, DataSyncError> DescribeLocationFsxWindowsOutcome;
139         typedef Aws::Utils::Outcome<DescribeLocationNfsResult, DataSyncError> DescribeLocationNfsOutcome;
140         typedef Aws::Utils::Outcome<DescribeLocationObjectStorageResult, DataSyncError> DescribeLocationObjectStorageOutcome;
141         typedef Aws::Utils::Outcome<DescribeLocationS3Result, DataSyncError> DescribeLocationS3Outcome;
142         typedef Aws::Utils::Outcome<DescribeLocationSmbResult, DataSyncError> DescribeLocationSmbOutcome;
143         typedef Aws::Utils::Outcome<DescribeTaskResult, DataSyncError> DescribeTaskOutcome;
144         typedef Aws::Utils::Outcome<DescribeTaskExecutionResult, DataSyncError> DescribeTaskExecutionOutcome;
145         typedef Aws::Utils::Outcome<ListAgentsResult, DataSyncError> ListAgentsOutcome;
146         typedef Aws::Utils::Outcome<ListLocationsResult, DataSyncError> ListLocationsOutcome;
147         typedef Aws::Utils::Outcome<ListTagsForResourceResult, DataSyncError> ListTagsForResourceOutcome;
148         typedef Aws::Utils::Outcome<ListTaskExecutionsResult, DataSyncError> ListTaskExecutionsOutcome;
149         typedef Aws::Utils::Outcome<ListTasksResult, DataSyncError> ListTasksOutcome;
150         typedef Aws::Utils::Outcome<StartTaskExecutionResult, DataSyncError> StartTaskExecutionOutcome;
151         typedef Aws::Utils::Outcome<TagResourceResult, DataSyncError> TagResourceOutcome;
152         typedef Aws::Utils::Outcome<UntagResourceResult, DataSyncError> UntagResourceOutcome;
153         typedef Aws::Utils::Outcome<UpdateAgentResult, DataSyncError> UpdateAgentOutcome;
154         typedef Aws::Utils::Outcome<UpdateLocationNfsResult, DataSyncError> UpdateLocationNfsOutcome;
155         typedef Aws::Utils::Outcome<UpdateLocationObjectStorageResult, DataSyncError> UpdateLocationObjectStorageOutcome;
156         typedef Aws::Utils::Outcome<UpdateLocationSmbResult, DataSyncError> UpdateLocationSmbOutcome;
157         typedef Aws::Utils::Outcome<UpdateTaskResult, DataSyncError> UpdateTaskOutcome;
158         typedef Aws::Utils::Outcome<UpdateTaskExecutionResult, DataSyncError> UpdateTaskExecutionOutcome;
159 
160         typedef std::future<CancelTaskExecutionOutcome> CancelTaskExecutionOutcomeCallable;
161         typedef std::future<CreateAgentOutcome> CreateAgentOutcomeCallable;
162         typedef std::future<CreateLocationEfsOutcome> CreateLocationEfsOutcomeCallable;
163         typedef std::future<CreateLocationFsxWindowsOutcome> CreateLocationFsxWindowsOutcomeCallable;
164         typedef std::future<CreateLocationNfsOutcome> CreateLocationNfsOutcomeCallable;
165         typedef std::future<CreateLocationObjectStorageOutcome> CreateLocationObjectStorageOutcomeCallable;
166         typedef std::future<CreateLocationS3Outcome> CreateLocationS3OutcomeCallable;
167         typedef std::future<CreateLocationSmbOutcome> CreateLocationSmbOutcomeCallable;
168         typedef std::future<CreateTaskOutcome> CreateTaskOutcomeCallable;
169         typedef std::future<DeleteAgentOutcome> DeleteAgentOutcomeCallable;
170         typedef std::future<DeleteLocationOutcome> DeleteLocationOutcomeCallable;
171         typedef std::future<DeleteTaskOutcome> DeleteTaskOutcomeCallable;
172         typedef std::future<DescribeAgentOutcome> DescribeAgentOutcomeCallable;
173         typedef std::future<DescribeLocationEfsOutcome> DescribeLocationEfsOutcomeCallable;
174         typedef std::future<DescribeLocationFsxWindowsOutcome> DescribeLocationFsxWindowsOutcomeCallable;
175         typedef std::future<DescribeLocationNfsOutcome> DescribeLocationNfsOutcomeCallable;
176         typedef std::future<DescribeLocationObjectStorageOutcome> DescribeLocationObjectStorageOutcomeCallable;
177         typedef std::future<DescribeLocationS3Outcome> DescribeLocationS3OutcomeCallable;
178         typedef std::future<DescribeLocationSmbOutcome> DescribeLocationSmbOutcomeCallable;
179         typedef std::future<DescribeTaskOutcome> DescribeTaskOutcomeCallable;
180         typedef std::future<DescribeTaskExecutionOutcome> DescribeTaskExecutionOutcomeCallable;
181         typedef std::future<ListAgentsOutcome> ListAgentsOutcomeCallable;
182         typedef std::future<ListLocationsOutcome> ListLocationsOutcomeCallable;
183         typedef std::future<ListTagsForResourceOutcome> ListTagsForResourceOutcomeCallable;
184         typedef std::future<ListTaskExecutionsOutcome> ListTaskExecutionsOutcomeCallable;
185         typedef std::future<ListTasksOutcome> ListTasksOutcomeCallable;
186         typedef std::future<StartTaskExecutionOutcome> StartTaskExecutionOutcomeCallable;
187         typedef std::future<TagResourceOutcome> TagResourceOutcomeCallable;
188         typedef std::future<UntagResourceOutcome> UntagResourceOutcomeCallable;
189         typedef std::future<UpdateAgentOutcome> UpdateAgentOutcomeCallable;
190         typedef std::future<UpdateLocationNfsOutcome> UpdateLocationNfsOutcomeCallable;
191         typedef std::future<UpdateLocationObjectStorageOutcome> UpdateLocationObjectStorageOutcomeCallable;
192         typedef std::future<UpdateLocationSmbOutcome> UpdateLocationSmbOutcomeCallable;
193         typedef std::future<UpdateTaskOutcome> UpdateTaskOutcomeCallable;
194         typedef std::future<UpdateTaskExecutionOutcome> UpdateTaskExecutionOutcomeCallable;
195 } // namespace Model
196 
197   class DataSyncClient;
198 
199     typedef std::function<void(const DataSyncClient*, const Model::CancelTaskExecutionRequest&, const Model::CancelTaskExecutionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CancelTaskExecutionResponseReceivedHandler;
200     typedef std::function<void(const DataSyncClient*, const Model::CreateAgentRequest&, const Model::CreateAgentOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateAgentResponseReceivedHandler;
201     typedef std::function<void(const DataSyncClient*, const Model::CreateLocationEfsRequest&, const Model::CreateLocationEfsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateLocationEfsResponseReceivedHandler;
202     typedef std::function<void(const DataSyncClient*, const Model::CreateLocationFsxWindowsRequest&, const Model::CreateLocationFsxWindowsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateLocationFsxWindowsResponseReceivedHandler;
203     typedef std::function<void(const DataSyncClient*, const Model::CreateLocationNfsRequest&, const Model::CreateLocationNfsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateLocationNfsResponseReceivedHandler;
204     typedef std::function<void(const DataSyncClient*, const Model::CreateLocationObjectStorageRequest&, const Model::CreateLocationObjectStorageOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateLocationObjectStorageResponseReceivedHandler;
205     typedef std::function<void(const DataSyncClient*, const Model::CreateLocationS3Request&, const Model::CreateLocationS3Outcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateLocationS3ResponseReceivedHandler;
206     typedef std::function<void(const DataSyncClient*, const Model::CreateLocationSmbRequest&, const Model::CreateLocationSmbOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateLocationSmbResponseReceivedHandler;
207     typedef std::function<void(const DataSyncClient*, const Model::CreateTaskRequest&, const Model::CreateTaskOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateTaskResponseReceivedHandler;
208     typedef std::function<void(const DataSyncClient*, const Model::DeleteAgentRequest&, const Model::DeleteAgentOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteAgentResponseReceivedHandler;
209     typedef std::function<void(const DataSyncClient*, const Model::DeleteLocationRequest&, const Model::DeleteLocationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteLocationResponseReceivedHandler;
210     typedef std::function<void(const DataSyncClient*, const Model::DeleteTaskRequest&, const Model::DeleteTaskOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteTaskResponseReceivedHandler;
211     typedef std::function<void(const DataSyncClient*, const Model::DescribeAgentRequest&, const Model::DescribeAgentOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeAgentResponseReceivedHandler;
212     typedef std::function<void(const DataSyncClient*, const Model::DescribeLocationEfsRequest&, const Model::DescribeLocationEfsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeLocationEfsResponseReceivedHandler;
213     typedef std::function<void(const DataSyncClient*, const Model::DescribeLocationFsxWindowsRequest&, const Model::DescribeLocationFsxWindowsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeLocationFsxWindowsResponseReceivedHandler;
214     typedef std::function<void(const DataSyncClient*, const Model::DescribeLocationNfsRequest&, const Model::DescribeLocationNfsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeLocationNfsResponseReceivedHandler;
215     typedef std::function<void(const DataSyncClient*, const Model::DescribeLocationObjectStorageRequest&, const Model::DescribeLocationObjectStorageOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeLocationObjectStorageResponseReceivedHandler;
216     typedef std::function<void(const DataSyncClient*, const Model::DescribeLocationS3Request&, const Model::DescribeLocationS3Outcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeLocationS3ResponseReceivedHandler;
217     typedef std::function<void(const DataSyncClient*, const Model::DescribeLocationSmbRequest&, const Model::DescribeLocationSmbOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeLocationSmbResponseReceivedHandler;
218     typedef std::function<void(const DataSyncClient*, const Model::DescribeTaskRequest&, const Model::DescribeTaskOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeTaskResponseReceivedHandler;
219     typedef std::function<void(const DataSyncClient*, const Model::DescribeTaskExecutionRequest&, const Model::DescribeTaskExecutionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeTaskExecutionResponseReceivedHandler;
220     typedef std::function<void(const DataSyncClient*, const Model::ListAgentsRequest&, const Model::ListAgentsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListAgentsResponseReceivedHandler;
221     typedef std::function<void(const DataSyncClient*, const Model::ListLocationsRequest&, const Model::ListLocationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListLocationsResponseReceivedHandler;
222     typedef std::function<void(const DataSyncClient*, const Model::ListTagsForResourceRequest&, const Model::ListTagsForResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTagsForResourceResponseReceivedHandler;
223     typedef std::function<void(const DataSyncClient*, const Model::ListTaskExecutionsRequest&, const Model::ListTaskExecutionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTaskExecutionsResponseReceivedHandler;
224     typedef std::function<void(const DataSyncClient*, const Model::ListTasksRequest&, const Model::ListTasksOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTasksResponseReceivedHandler;
225     typedef std::function<void(const DataSyncClient*, const Model::StartTaskExecutionRequest&, const Model::StartTaskExecutionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StartTaskExecutionResponseReceivedHandler;
226     typedef std::function<void(const DataSyncClient*, const Model::TagResourceRequest&, const Model::TagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TagResourceResponseReceivedHandler;
227     typedef std::function<void(const DataSyncClient*, const Model::UntagResourceRequest&, const Model::UntagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UntagResourceResponseReceivedHandler;
228     typedef std::function<void(const DataSyncClient*, const Model::UpdateAgentRequest&, const Model::UpdateAgentOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateAgentResponseReceivedHandler;
229     typedef std::function<void(const DataSyncClient*, const Model::UpdateLocationNfsRequest&, const Model::UpdateLocationNfsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateLocationNfsResponseReceivedHandler;
230     typedef std::function<void(const DataSyncClient*, const Model::UpdateLocationObjectStorageRequest&, const Model::UpdateLocationObjectStorageOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateLocationObjectStorageResponseReceivedHandler;
231     typedef std::function<void(const DataSyncClient*, const Model::UpdateLocationSmbRequest&, const Model::UpdateLocationSmbOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateLocationSmbResponseReceivedHandler;
232     typedef std::function<void(const DataSyncClient*, const Model::UpdateTaskRequest&, const Model::UpdateTaskOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateTaskResponseReceivedHandler;
233     typedef std::function<void(const DataSyncClient*, const Model::UpdateTaskExecutionRequest&, const Model::UpdateTaskExecutionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateTaskExecutionResponseReceivedHandler;
234 
235   /**
236    * <fullname>DataSync</fullname> <p>DataSync is a managed data transfer service
237    * that makes it simpler for you to automate moving data between on-premises
238    * storage and Amazon Simple Storage Service (Amazon S3) or Amazon Elastic File
239    * System (Amazon EFS). </p> <p>This API interface reference for DataSync contains
240    * documentation for a programming interface that you can use to manage
241    * DataSync.</p>
242    */
243   class AWS_DATASYNC_API DataSyncClient : public Aws::Client::AWSJsonClient
244   {
245     public:
246       typedef Aws::Client::AWSJsonClient BASECLASS;
247 
248        /**
249         * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
250         * is not specified, it will be initialized to default values.
251         */
252         DataSyncClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
253 
254        /**
255         * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
256         * is not specified, it will be initialized to default values.
257         */
258         DataSyncClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
259 
260        /**
261         * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
262         * the default http client factory will be used
263         */
264         DataSyncClient(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
265             const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
266 
267         virtual ~DataSyncClient();
268 
269 
270         /**
271          * <p>Cancels execution of a task. </p> <p>When you cancel a task execution, the
272          * transfer of some files is abruptly interrupted. The contents of files that are
273          * transferred to the destination might be incomplete or inconsistent with the
274          * source files. However, if you start a new task execution on the same task and
275          * you allow the task execution to complete, file content on the destination is
276          * complete and consistent. This applies to other unexpected failures that
277          * interrupt a task execution. In all of these cases, DataSync successfully
278          * complete the transfer when you start the next task execution.</p><p><h3>See
279          * Also:</h3>   <a
280          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CancelTaskExecution">AWS
281          * API Reference</a></p>
282          */
283         virtual Model::CancelTaskExecutionOutcome CancelTaskExecution(const Model::CancelTaskExecutionRequest& request) const;
284 
285         /**
286          * <p>Cancels execution of a task. </p> <p>When you cancel a task execution, the
287          * transfer of some files is abruptly interrupted. The contents of files that are
288          * transferred to the destination might be incomplete or inconsistent with the
289          * source files. However, if you start a new task execution on the same task and
290          * you allow the task execution to complete, file content on the destination is
291          * complete and consistent. This applies to other unexpected failures that
292          * interrupt a task execution. In all of these cases, DataSync successfully
293          * complete the transfer when you start the next task execution.</p><p><h3>See
294          * Also:</h3>   <a
295          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CancelTaskExecution">AWS
296          * API Reference</a></p>
297          *
298          * returns a future to the operation so that it can be executed in parallel to other requests.
299          */
300         virtual Model::CancelTaskExecutionOutcomeCallable CancelTaskExecutionCallable(const Model::CancelTaskExecutionRequest& request) const;
301 
302         /**
303          * <p>Cancels execution of a task. </p> <p>When you cancel a task execution, the
304          * transfer of some files is abruptly interrupted. The contents of files that are
305          * transferred to the destination might be incomplete or inconsistent with the
306          * source files. However, if you start a new task execution on the same task and
307          * you allow the task execution to complete, file content on the destination is
308          * complete and consistent. This applies to other unexpected failures that
309          * interrupt a task execution. In all of these cases, DataSync successfully
310          * complete the transfer when you start the next task execution.</p><p><h3>See
311          * Also:</h3>   <a
312          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CancelTaskExecution">AWS
313          * API Reference</a></p>
314          *
315          * Queues the request into a thread executor and triggers associated callback when operation has finished.
316          */
317         virtual void CancelTaskExecutionAsync(const Model::CancelTaskExecutionRequest& request, const CancelTaskExecutionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
318 
319         /**
320          * <p>Activates an DataSync agent that you have deployed on your host. The
321          * activation process associates your agent with your account. In the activation
322          * process, you specify information such as the Amazon Web Services Region that you
323          * want to activate the agent in. You activate the agent in the Amazon Web Services
324          * Region where your target locations (in Amazon S3 or Amazon EFS) reside. Your
325          * tasks are created in this Amazon Web Services Region.</p> <p>You can activate
326          * the agent in a VPC (virtual private cloud) or provide the agent access to a VPC
327          * endpoint so you can run tasks without going over the public internet.</p> <p>You
328          * can use an agent for more than one location. If a task uses multiple agents, all
329          * of them need to have status AVAILABLE for the task to run. If you use multiple
330          * agents for a source location, the status of all the agents must be AVAILABLE for
331          * the task to run. </p> <p>Agents are automatically updated by Amazon Web Services
332          * on a regular basis, using a mechanism that ensures minimal interruption to your
333          * tasks.</p> <p/><p><h3>See Also:</h3>   <a
334          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateAgent">AWS
335          * API Reference</a></p>
336          */
337         virtual Model::CreateAgentOutcome CreateAgent(const Model::CreateAgentRequest& request) const;
338 
339         /**
340          * <p>Activates an DataSync agent that you have deployed on your host. The
341          * activation process associates your agent with your account. In the activation
342          * process, you specify information such as the Amazon Web Services Region that you
343          * want to activate the agent in. You activate the agent in the Amazon Web Services
344          * Region where your target locations (in Amazon S3 or Amazon EFS) reside. Your
345          * tasks are created in this Amazon Web Services Region.</p> <p>You can activate
346          * the agent in a VPC (virtual private cloud) or provide the agent access to a VPC
347          * endpoint so you can run tasks without going over the public internet.</p> <p>You
348          * can use an agent for more than one location. If a task uses multiple agents, all
349          * of them need to have status AVAILABLE for the task to run. If you use multiple
350          * agents for a source location, the status of all the agents must be AVAILABLE for
351          * the task to run. </p> <p>Agents are automatically updated by Amazon Web Services
352          * on a regular basis, using a mechanism that ensures minimal interruption to your
353          * tasks.</p> <p/><p><h3>See Also:</h3>   <a
354          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateAgent">AWS
355          * API Reference</a></p>
356          *
357          * returns a future to the operation so that it can be executed in parallel to other requests.
358          */
359         virtual Model::CreateAgentOutcomeCallable CreateAgentCallable(const Model::CreateAgentRequest& request) const;
360 
361         /**
362          * <p>Activates an DataSync agent that you have deployed on your host. The
363          * activation process associates your agent with your account. In the activation
364          * process, you specify information such as the Amazon Web Services Region that you
365          * want to activate the agent in. You activate the agent in the Amazon Web Services
366          * Region where your target locations (in Amazon S3 or Amazon EFS) reside. Your
367          * tasks are created in this Amazon Web Services Region.</p> <p>You can activate
368          * the agent in a VPC (virtual private cloud) or provide the agent access to a VPC
369          * endpoint so you can run tasks without going over the public internet.</p> <p>You
370          * can use an agent for more than one location. If a task uses multiple agents, all
371          * of them need to have status AVAILABLE for the task to run. If you use multiple
372          * agents for a source location, the status of all the agents must be AVAILABLE for
373          * the task to run. </p> <p>Agents are automatically updated by Amazon Web Services
374          * on a regular basis, using a mechanism that ensures minimal interruption to your
375          * tasks.</p> <p/><p><h3>See Also:</h3>   <a
376          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateAgent">AWS
377          * API Reference</a></p>
378          *
379          * Queues the request into a thread executor and triggers associated callback when operation has finished.
380          */
381         virtual void CreateAgentAsync(const Model::CreateAgentRequest& request, const CreateAgentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
382 
383         /**
384          * <p>Creates an endpoint for an Amazon EFS file system.</p><p><h3>See Also:</h3>
385          * <a
386          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationEfs">AWS
387          * API Reference</a></p>
388          */
389         virtual Model::CreateLocationEfsOutcome CreateLocationEfs(const Model::CreateLocationEfsRequest& request) const;
390 
391         /**
392          * <p>Creates an endpoint for an Amazon EFS file system.</p><p><h3>See Also:</h3>
393          * <a
394          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationEfs">AWS
395          * API Reference</a></p>
396          *
397          * returns a future to the operation so that it can be executed in parallel to other requests.
398          */
399         virtual Model::CreateLocationEfsOutcomeCallable CreateLocationEfsCallable(const Model::CreateLocationEfsRequest& request) const;
400 
401         /**
402          * <p>Creates an endpoint for an Amazon EFS file system.</p><p><h3>See Also:</h3>
403          * <a
404          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationEfs">AWS
405          * API Reference</a></p>
406          *
407          * Queues the request into a thread executor and triggers associated callback when operation has finished.
408          */
409         virtual void CreateLocationEfsAsync(const Model::CreateLocationEfsRequest& request, const CreateLocationEfsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
410 
411         /**
412          * <p>Creates an endpoint for an Amazon FSx for Windows File Server file
413          * system.</p><p><h3>See Also:</h3>   <a
414          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationFsxWindows">AWS
415          * API Reference</a></p>
416          */
417         virtual Model::CreateLocationFsxWindowsOutcome CreateLocationFsxWindows(const Model::CreateLocationFsxWindowsRequest& request) const;
418 
419         /**
420          * <p>Creates an endpoint for an Amazon FSx for Windows File Server file
421          * system.</p><p><h3>See Also:</h3>   <a
422          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationFsxWindows">AWS
423          * API Reference</a></p>
424          *
425          * returns a future to the operation so that it can be executed in parallel to other requests.
426          */
427         virtual Model::CreateLocationFsxWindowsOutcomeCallable CreateLocationFsxWindowsCallable(const Model::CreateLocationFsxWindowsRequest& request) const;
428 
429         /**
430          * <p>Creates an endpoint for an Amazon FSx for Windows File Server file
431          * system.</p><p><h3>See Also:</h3>   <a
432          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationFsxWindows">AWS
433          * API Reference</a></p>
434          *
435          * Queues the request into a thread executor and triggers associated callback when operation has finished.
436          */
437         virtual void CreateLocationFsxWindowsAsync(const Model::CreateLocationFsxWindowsRequest& request, const CreateLocationFsxWindowsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
438 
439         /**
440          * <p>Defines a file system on a Network File System (NFS) server that can be read
441          * from or written to.</p><p><h3>See Also:</h3>   <a
442          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationNfs">AWS
443          * API Reference</a></p>
444          */
445         virtual Model::CreateLocationNfsOutcome CreateLocationNfs(const Model::CreateLocationNfsRequest& request) const;
446 
447         /**
448          * <p>Defines a file system on a Network File System (NFS) server that can be read
449          * from or written to.</p><p><h3>See Also:</h3>   <a
450          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationNfs">AWS
451          * API Reference</a></p>
452          *
453          * returns a future to the operation so that it can be executed in parallel to other requests.
454          */
455         virtual Model::CreateLocationNfsOutcomeCallable CreateLocationNfsCallable(const Model::CreateLocationNfsRequest& request) const;
456 
457         /**
458          * <p>Defines a file system on a Network File System (NFS) server that can be read
459          * from or written to.</p><p><h3>See Also:</h3>   <a
460          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationNfs">AWS
461          * API Reference</a></p>
462          *
463          * Queues the request into a thread executor and triggers associated callback when operation has finished.
464          */
465         virtual void CreateLocationNfsAsync(const Model::CreateLocationNfsRequest& request, const CreateLocationNfsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
466 
467         /**
468          * <p>Creates an endpoint for a self-managed object storage bucket. For more
469          * information about self-managed object storage locations, see <a
470          * href="https://docs.aws.amazon.com/datasync/latest/userguide/create-object-location.html">Creating
471          * a location for object storage</a>.</p><p><h3>See Also:</h3>   <a
472          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationObjectStorage">AWS
473          * API Reference</a></p>
474          */
475         virtual Model::CreateLocationObjectStorageOutcome CreateLocationObjectStorage(const Model::CreateLocationObjectStorageRequest& request) const;
476 
477         /**
478          * <p>Creates an endpoint for a self-managed object storage bucket. For more
479          * information about self-managed object storage locations, see <a
480          * href="https://docs.aws.amazon.com/datasync/latest/userguide/create-object-location.html">Creating
481          * a location for object storage</a>.</p><p><h3>See Also:</h3>   <a
482          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationObjectStorage">AWS
483          * API Reference</a></p>
484          *
485          * returns a future to the operation so that it can be executed in parallel to other requests.
486          */
487         virtual Model::CreateLocationObjectStorageOutcomeCallable CreateLocationObjectStorageCallable(const Model::CreateLocationObjectStorageRequest& request) const;
488 
489         /**
490          * <p>Creates an endpoint for a self-managed object storage bucket. For more
491          * information about self-managed object storage locations, see <a
492          * href="https://docs.aws.amazon.com/datasync/latest/userguide/create-object-location.html">Creating
493          * a location for object storage</a>.</p><p><h3>See Also:</h3>   <a
494          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationObjectStorage">AWS
495          * API Reference</a></p>
496          *
497          * Queues the request into a thread executor and triggers associated callback when operation has finished.
498          */
499         virtual void CreateLocationObjectStorageAsync(const Model::CreateLocationObjectStorageRequest& request, const CreateLocationObjectStorageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
500 
501         /**
502          * <p>Creates an endpoint for an Amazon S3 bucket.</p> <p>For more information, see
503          * <a
504          * href="https://docs.aws.amazon.com/datasync/latest/userguide/create-locations-cli.html#create-location-s3-cli">Create
505          * an Amazon S3 location</a> in the <i>DataSync User Guide</i>.</p><p><h3>See
506          * Also:</h3>   <a
507          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationS3">AWS
508          * API Reference</a></p>
509          */
510         virtual Model::CreateLocationS3Outcome CreateLocationS3(const Model::CreateLocationS3Request& request) const;
511 
512         /**
513          * <p>Creates an endpoint for an Amazon S3 bucket.</p> <p>For more information, see
514          * <a
515          * href="https://docs.aws.amazon.com/datasync/latest/userguide/create-locations-cli.html#create-location-s3-cli">Create
516          * an Amazon S3 location</a> in the <i>DataSync User Guide</i>.</p><p><h3>See
517          * Also:</h3>   <a
518          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationS3">AWS
519          * API Reference</a></p>
520          *
521          * returns a future to the operation so that it can be executed in parallel to other requests.
522          */
523         virtual Model::CreateLocationS3OutcomeCallable CreateLocationS3Callable(const Model::CreateLocationS3Request& request) const;
524 
525         /**
526          * <p>Creates an endpoint for an Amazon S3 bucket.</p> <p>For more information, see
527          * <a
528          * href="https://docs.aws.amazon.com/datasync/latest/userguide/create-locations-cli.html#create-location-s3-cli">Create
529          * an Amazon S3 location</a> in the <i>DataSync User Guide</i>.</p><p><h3>See
530          * Also:</h3>   <a
531          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationS3">AWS
532          * API Reference</a></p>
533          *
534          * Queues the request into a thread executor and triggers associated callback when operation has finished.
535          */
536         virtual void CreateLocationS3Async(const Model::CreateLocationS3Request& request, const CreateLocationS3ResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
537 
538         /**
539          * <p>Defines a file system on a Server Message Block (SMB) server that can be read
540          * from or written to.</p><p><h3>See Also:</h3>   <a
541          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationSmb">AWS
542          * API Reference</a></p>
543          */
544         virtual Model::CreateLocationSmbOutcome CreateLocationSmb(const Model::CreateLocationSmbRequest& request) const;
545 
546         /**
547          * <p>Defines a file system on a Server Message Block (SMB) server that can be read
548          * from or written to.</p><p><h3>See Also:</h3>   <a
549          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationSmb">AWS
550          * API Reference</a></p>
551          *
552          * returns a future to the operation so that it can be executed in parallel to other requests.
553          */
554         virtual Model::CreateLocationSmbOutcomeCallable CreateLocationSmbCallable(const Model::CreateLocationSmbRequest& request) const;
555 
556         /**
557          * <p>Defines a file system on a Server Message Block (SMB) server that can be read
558          * from or written to.</p><p><h3>See Also:</h3>   <a
559          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateLocationSmb">AWS
560          * API Reference</a></p>
561          *
562          * Queues the request into a thread executor and triggers associated callback when operation has finished.
563          */
564         virtual void CreateLocationSmbAsync(const Model::CreateLocationSmbRequest& request, const CreateLocationSmbResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
565 
566         /**
567          * <p>Creates a task.</p> <p>A task includes a source location and a destination
568          * location, and a configuration that specifies how data is transferred. A task
569          * always transfers data from the source location to the destination location. The
570          * configuration specifies options such as task scheduling, bandwidth limits, etc.
571          * A task is the complete definition of a data transfer.</p> <p>When you create a
572          * task that transfers data between Amazon Web Services services in different
573          * Amazon Web Services Regions, one of the two locations that you specify must
574          * reside in the Region where DataSync is being used. The other location must be
575          * specified in a different Region.</p> <p>You can transfer data between commercial
576          * Amazon Web Services Regions except for China, or between Amazon Web Services
577          * GovCloud (US) Regions.</p>  <p>When you use DataSync to copy files or
578          * objects between Amazon Web Services Regions, you pay for data transfer between
579          * Regions. This is billed as data transfer OUT from your source Region to your
580          * destination Region. For more information, see <a
581          * href="http://aws.amazon.com/ec2/pricing/on-demand/#Data_Transfer">Data Transfer
582          * pricing</a>. </p> <p><h3>See Also:</h3>   <a
583          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateTask">AWS
584          * API Reference</a></p>
585          */
586         virtual Model::CreateTaskOutcome CreateTask(const Model::CreateTaskRequest& request) const;
587 
588         /**
589          * <p>Creates a task.</p> <p>A task includes a source location and a destination
590          * location, and a configuration that specifies how data is transferred. A task
591          * always transfers data from the source location to the destination location. The
592          * configuration specifies options such as task scheduling, bandwidth limits, etc.
593          * A task is the complete definition of a data transfer.</p> <p>When you create a
594          * task that transfers data between Amazon Web Services services in different
595          * Amazon Web Services Regions, one of the two locations that you specify must
596          * reside in the Region where DataSync is being used. The other location must be
597          * specified in a different Region.</p> <p>You can transfer data between commercial
598          * Amazon Web Services Regions except for China, or between Amazon Web Services
599          * GovCloud (US) Regions.</p>  <p>When you use DataSync to copy files or
600          * objects between Amazon Web Services Regions, you pay for data transfer between
601          * Regions. This is billed as data transfer OUT from your source Region to your
602          * destination Region. For more information, see <a
603          * href="http://aws.amazon.com/ec2/pricing/on-demand/#Data_Transfer">Data Transfer
604          * pricing</a>. </p> <p><h3>See Also:</h3>   <a
605          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateTask">AWS
606          * API Reference</a></p>
607          *
608          * returns a future to the operation so that it can be executed in parallel to other requests.
609          */
610         virtual Model::CreateTaskOutcomeCallable CreateTaskCallable(const Model::CreateTaskRequest& request) const;
611 
612         /**
613          * <p>Creates a task.</p> <p>A task includes a source location and a destination
614          * location, and a configuration that specifies how data is transferred. A task
615          * always transfers data from the source location to the destination location. The
616          * configuration specifies options such as task scheduling, bandwidth limits, etc.
617          * A task is the complete definition of a data transfer.</p> <p>When you create a
618          * task that transfers data between Amazon Web Services services in different
619          * Amazon Web Services Regions, one of the two locations that you specify must
620          * reside in the Region where DataSync is being used. The other location must be
621          * specified in a different Region.</p> <p>You can transfer data between commercial
622          * Amazon Web Services Regions except for China, or between Amazon Web Services
623          * GovCloud (US) Regions.</p>  <p>When you use DataSync to copy files or
624          * objects between Amazon Web Services Regions, you pay for data transfer between
625          * Regions. This is billed as data transfer OUT from your source Region to your
626          * destination Region. For more information, see <a
627          * href="http://aws.amazon.com/ec2/pricing/on-demand/#Data_Transfer">Data Transfer
628          * pricing</a>. </p> <p><h3>See Also:</h3>   <a
629          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/CreateTask">AWS
630          * API Reference</a></p>
631          *
632          * Queues the request into a thread executor and triggers associated callback when operation has finished.
633          */
634         virtual void CreateTaskAsync(const Model::CreateTaskRequest& request, const CreateTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
635 
636         /**
637          * <p>Deletes an agent. To specify which agent to delete, use the Amazon Resource
638          * Name (ARN) of the agent in your request. The operation disassociates the agent
639          * from your Amazon Web Services account. However, it doesn't delete the agent
640          * virtual machine (VM) from your on-premises environment.</p><p><h3>See Also:</h3>
641          * <a
642          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DeleteAgent">AWS
643          * API Reference</a></p>
644          */
645         virtual Model::DeleteAgentOutcome DeleteAgent(const Model::DeleteAgentRequest& request) const;
646 
647         /**
648          * <p>Deletes an agent. To specify which agent to delete, use the Amazon Resource
649          * Name (ARN) of the agent in your request. The operation disassociates the agent
650          * from your Amazon Web Services account. However, it doesn't delete the agent
651          * virtual machine (VM) from your on-premises environment.</p><p><h3>See Also:</h3>
652          * <a
653          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DeleteAgent">AWS
654          * API Reference</a></p>
655          *
656          * returns a future to the operation so that it can be executed in parallel to other requests.
657          */
658         virtual Model::DeleteAgentOutcomeCallable DeleteAgentCallable(const Model::DeleteAgentRequest& request) const;
659 
660         /**
661          * <p>Deletes an agent. To specify which agent to delete, use the Amazon Resource
662          * Name (ARN) of the agent in your request. The operation disassociates the agent
663          * from your Amazon Web Services account. However, it doesn't delete the agent
664          * virtual machine (VM) from your on-premises environment.</p><p><h3>See Also:</h3>
665          * <a
666          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DeleteAgent">AWS
667          * API Reference</a></p>
668          *
669          * Queues the request into a thread executor and triggers associated callback when operation has finished.
670          */
671         virtual void DeleteAgentAsync(const Model::DeleteAgentRequest& request, const DeleteAgentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
672 
673         /**
674          * <p>Deletes the configuration of a location used by DataSync. </p><p><h3>See
675          * Also:</h3>   <a
676          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DeleteLocation">AWS
677          * API Reference</a></p>
678          */
679         virtual Model::DeleteLocationOutcome DeleteLocation(const Model::DeleteLocationRequest& request) const;
680 
681         /**
682          * <p>Deletes the configuration of a location used by DataSync. </p><p><h3>See
683          * Also:</h3>   <a
684          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DeleteLocation">AWS
685          * API Reference</a></p>
686          *
687          * returns a future to the operation so that it can be executed in parallel to other requests.
688          */
689         virtual Model::DeleteLocationOutcomeCallable DeleteLocationCallable(const Model::DeleteLocationRequest& request) const;
690 
691         /**
692          * <p>Deletes the configuration of a location used by DataSync. </p><p><h3>See
693          * Also:</h3>   <a
694          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DeleteLocation">AWS
695          * API Reference</a></p>
696          *
697          * Queues the request into a thread executor and triggers associated callback when operation has finished.
698          */
699         virtual void DeleteLocationAsync(const Model::DeleteLocationRequest& request, const DeleteLocationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
700 
701         /**
702          * <p>Deletes a task.</p><p><h3>See Also:</h3>   <a
703          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DeleteTask">AWS
704          * API Reference</a></p>
705          */
706         virtual Model::DeleteTaskOutcome DeleteTask(const Model::DeleteTaskRequest& request) const;
707 
708         /**
709          * <p>Deletes a task.</p><p><h3>See Also:</h3>   <a
710          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DeleteTask">AWS
711          * API Reference</a></p>
712          *
713          * returns a future to the operation so that it can be executed in parallel to other requests.
714          */
715         virtual Model::DeleteTaskOutcomeCallable DeleteTaskCallable(const Model::DeleteTaskRequest& request) const;
716 
717         /**
718          * <p>Deletes a task.</p><p><h3>See Also:</h3>   <a
719          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DeleteTask">AWS
720          * API Reference</a></p>
721          *
722          * Queues the request into a thread executor and triggers associated callback when operation has finished.
723          */
724         virtual void DeleteTaskAsync(const Model::DeleteTaskRequest& request, const DeleteTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
725 
726         /**
727          * <p>Returns metadata such as the name, the network interfaces, and the status
728          * (that is, whether the agent is running or not) for an agent. To specify which
729          * agent to describe, use the Amazon Resource Name (ARN) of the agent in your
730          * request. </p><p><h3>See Also:</h3>   <a
731          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeAgent">AWS
732          * API Reference</a></p>
733          */
734         virtual Model::DescribeAgentOutcome DescribeAgent(const Model::DescribeAgentRequest& request) const;
735 
736         /**
737          * <p>Returns metadata such as the name, the network interfaces, and the status
738          * (that is, whether the agent is running or not) for an agent. To specify which
739          * agent to describe, use the Amazon Resource Name (ARN) of the agent in your
740          * request. </p><p><h3>See Also:</h3>   <a
741          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeAgent">AWS
742          * API Reference</a></p>
743          *
744          * returns a future to the operation so that it can be executed in parallel to other requests.
745          */
746         virtual Model::DescribeAgentOutcomeCallable DescribeAgentCallable(const Model::DescribeAgentRequest& request) const;
747 
748         /**
749          * <p>Returns metadata such as the name, the network interfaces, and the status
750          * (that is, whether the agent is running or not) for an agent. To specify which
751          * agent to describe, use the Amazon Resource Name (ARN) of the agent in your
752          * request. </p><p><h3>See Also:</h3>   <a
753          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeAgent">AWS
754          * API Reference</a></p>
755          *
756          * Queues the request into a thread executor and triggers associated callback when operation has finished.
757          */
758         virtual void DescribeAgentAsync(const Model::DescribeAgentRequest& request, const DescribeAgentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
759 
760         /**
761          * <p>Returns metadata, such as the path information about an Amazon EFS
762          * location.</p><p><h3>See Also:</h3>   <a
763          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationEfs">AWS
764          * API Reference</a></p>
765          */
766         virtual Model::DescribeLocationEfsOutcome DescribeLocationEfs(const Model::DescribeLocationEfsRequest& request) const;
767 
768         /**
769          * <p>Returns metadata, such as the path information about an Amazon EFS
770          * location.</p><p><h3>See Also:</h3>   <a
771          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationEfs">AWS
772          * API Reference</a></p>
773          *
774          * returns a future to the operation so that it can be executed in parallel to other requests.
775          */
776         virtual Model::DescribeLocationEfsOutcomeCallable DescribeLocationEfsCallable(const Model::DescribeLocationEfsRequest& request) const;
777 
778         /**
779          * <p>Returns metadata, such as the path information about an Amazon EFS
780          * location.</p><p><h3>See Also:</h3>   <a
781          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationEfs">AWS
782          * API Reference</a></p>
783          *
784          * Queues the request into a thread executor and triggers associated callback when operation has finished.
785          */
786         virtual void DescribeLocationEfsAsync(const Model::DescribeLocationEfsRequest& request, const DescribeLocationEfsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
787 
788         /**
789          * <p>Returns metadata, such as the path information about an Amazon FSx for
790          * Windows File Server location.</p><p><h3>See Also:</h3>   <a
791          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationFsxWindows">AWS
792          * API Reference</a></p>
793          */
794         virtual Model::DescribeLocationFsxWindowsOutcome DescribeLocationFsxWindows(const Model::DescribeLocationFsxWindowsRequest& request) const;
795 
796         /**
797          * <p>Returns metadata, such as the path information about an Amazon FSx for
798          * Windows File Server location.</p><p><h3>See Also:</h3>   <a
799          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationFsxWindows">AWS
800          * API Reference</a></p>
801          *
802          * returns a future to the operation so that it can be executed in parallel to other requests.
803          */
804         virtual Model::DescribeLocationFsxWindowsOutcomeCallable DescribeLocationFsxWindowsCallable(const Model::DescribeLocationFsxWindowsRequest& request) const;
805 
806         /**
807          * <p>Returns metadata, such as the path information about an Amazon FSx for
808          * Windows File Server location.</p><p><h3>See Also:</h3>   <a
809          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationFsxWindows">AWS
810          * API Reference</a></p>
811          *
812          * Queues the request into a thread executor and triggers associated callback when operation has finished.
813          */
814         virtual void DescribeLocationFsxWindowsAsync(const Model::DescribeLocationFsxWindowsRequest& request, const DescribeLocationFsxWindowsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
815 
816         /**
817          * <p>Returns metadata, such as the path information, about an NFS
818          * location.</p><p><h3>See Also:</h3>   <a
819          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationNfs">AWS
820          * API Reference</a></p>
821          */
822         virtual Model::DescribeLocationNfsOutcome DescribeLocationNfs(const Model::DescribeLocationNfsRequest& request) const;
823 
824         /**
825          * <p>Returns metadata, such as the path information, about an NFS
826          * location.</p><p><h3>See Also:</h3>   <a
827          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationNfs">AWS
828          * API Reference</a></p>
829          *
830          * returns a future to the operation so that it can be executed in parallel to other requests.
831          */
832         virtual Model::DescribeLocationNfsOutcomeCallable DescribeLocationNfsCallable(const Model::DescribeLocationNfsRequest& request) const;
833 
834         /**
835          * <p>Returns metadata, such as the path information, about an NFS
836          * location.</p><p><h3>See Also:</h3>   <a
837          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationNfs">AWS
838          * API Reference</a></p>
839          *
840          * Queues the request into a thread executor and triggers associated callback when operation has finished.
841          */
842         virtual void DescribeLocationNfsAsync(const Model::DescribeLocationNfsRequest& request, const DescribeLocationNfsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
843 
844         /**
845          * <p>Returns metadata about a self-managed object storage server location. For
846          * more information about self-managed object storage locations, see <a
847          * href="https://docs.aws.amazon.com/datasync/latest/userguide/create-object-location.html">Creating
848          * a location for object storage</a>.</p><p><h3>See Also:</h3>   <a
849          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationObjectStorage">AWS
850          * API Reference</a></p>
851          */
852         virtual Model::DescribeLocationObjectStorageOutcome DescribeLocationObjectStorage(const Model::DescribeLocationObjectStorageRequest& request) const;
853 
854         /**
855          * <p>Returns metadata about a self-managed object storage server location. For
856          * more information about self-managed object storage locations, see <a
857          * href="https://docs.aws.amazon.com/datasync/latest/userguide/create-object-location.html">Creating
858          * a location for object storage</a>.</p><p><h3>See Also:</h3>   <a
859          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationObjectStorage">AWS
860          * API Reference</a></p>
861          *
862          * returns a future to the operation so that it can be executed in parallel to other requests.
863          */
864         virtual Model::DescribeLocationObjectStorageOutcomeCallable DescribeLocationObjectStorageCallable(const Model::DescribeLocationObjectStorageRequest& request) const;
865 
866         /**
867          * <p>Returns metadata about a self-managed object storage server location. For
868          * more information about self-managed object storage locations, see <a
869          * href="https://docs.aws.amazon.com/datasync/latest/userguide/create-object-location.html">Creating
870          * a location for object storage</a>.</p><p><h3>See Also:</h3>   <a
871          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationObjectStorage">AWS
872          * API Reference</a></p>
873          *
874          * Queues the request into a thread executor and triggers associated callback when operation has finished.
875          */
876         virtual void DescribeLocationObjectStorageAsync(const Model::DescribeLocationObjectStorageRequest& request, const DescribeLocationObjectStorageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
877 
878         /**
879          * <p>Returns metadata, such as bucket name, about an Amazon S3 bucket
880          * location.</p><p><h3>See Also:</h3>   <a
881          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationS3">AWS
882          * API Reference</a></p>
883          */
884         virtual Model::DescribeLocationS3Outcome DescribeLocationS3(const Model::DescribeLocationS3Request& request) const;
885 
886         /**
887          * <p>Returns metadata, such as bucket name, about an Amazon S3 bucket
888          * location.</p><p><h3>See Also:</h3>   <a
889          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationS3">AWS
890          * API Reference</a></p>
891          *
892          * returns a future to the operation so that it can be executed in parallel to other requests.
893          */
894         virtual Model::DescribeLocationS3OutcomeCallable DescribeLocationS3Callable(const Model::DescribeLocationS3Request& request) const;
895 
896         /**
897          * <p>Returns metadata, such as bucket name, about an Amazon S3 bucket
898          * location.</p><p><h3>See Also:</h3>   <a
899          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationS3">AWS
900          * API Reference</a></p>
901          *
902          * Queues the request into a thread executor and triggers associated callback when operation has finished.
903          */
904         virtual void DescribeLocationS3Async(const Model::DescribeLocationS3Request& request, const DescribeLocationS3ResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
905 
906         /**
907          * <p>Returns metadata, such as the path and user information about an SMB
908          * location.</p><p><h3>See Also:</h3>   <a
909          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationSmb">AWS
910          * API Reference</a></p>
911          */
912         virtual Model::DescribeLocationSmbOutcome DescribeLocationSmb(const Model::DescribeLocationSmbRequest& request) const;
913 
914         /**
915          * <p>Returns metadata, such as the path and user information about an SMB
916          * location.</p><p><h3>See Also:</h3>   <a
917          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationSmb">AWS
918          * API Reference</a></p>
919          *
920          * returns a future to the operation so that it can be executed in parallel to other requests.
921          */
922         virtual Model::DescribeLocationSmbOutcomeCallable DescribeLocationSmbCallable(const Model::DescribeLocationSmbRequest& request) const;
923 
924         /**
925          * <p>Returns metadata, such as the path and user information about an SMB
926          * location.</p><p><h3>See Also:</h3>   <a
927          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeLocationSmb">AWS
928          * API Reference</a></p>
929          *
930          * Queues the request into a thread executor and triggers associated callback when operation has finished.
931          */
932         virtual void DescribeLocationSmbAsync(const Model::DescribeLocationSmbRequest& request, const DescribeLocationSmbResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
933 
934         /**
935          * <p>Returns metadata about a task.</p><p><h3>See Also:</h3>   <a
936          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeTask">AWS
937          * API Reference</a></p>
938          */
939         virtual Model::DescribeTaskOutcome DescribeTask(const Model::DescribeTaskRequest& request) const;
940 
941         /**
942          * <p>Returns metadata about a task.</p><p><h3>See Also:</h3>   <a
943          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeTask">AWS
944          * API Reference</a></p>
945          *
946          * returns a future to the operation so that it can be executed in parallel to other requests.
947          */
948         virtual Model::DescribeTaskOutcomeCallable DescribeTaskCallable(const Model::DescribeTaskRequest& request) const;
949 
950         /**
951          * <p>Returns metadata about a task.</p><p><h3>See Also:</h3>   <a
952          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeTask">AWS
953          * API Reference</a></p>
954          *
955          * Queues the request into a thread executor and triggers associated callback when operation has finished.
956          */
957         virtual void DescribeTaskAsync(const Model::DescribeTaskRequest& request, const DescribeTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
958 
959         /**
960          * <p>Returns detailed metadata about a task that is being executed.</p><p><h3>See
961          * Also:</h3>   <a
962          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeTaskExecution">AWS
963          * API Reference</a></p>
964          */
965         virtual Model::DescribeTaskExecutionOutcome DescribeTaskExecution(const Model::DescribeTaskExecutionRequest& request) const;
966 
967         /**
968          * <p>Returns detailed metadata about a task that is being executed.</p><p><h3>See
969          * Also:</h3>   <a
970          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeTaskExecution">AWS
971          * API Reference</a></p>
972          *
973          * returns a future to the operation so that it can be executed in parallel to other requests.
974          */
975         virtual Model::DescribeTaskExecutionOutcomeCallable DescribeTaskExecutionCallable(const Model::DescribeTaskExecutionRequest& request) const;
976 
977         /**
978          * <p>Returns detailed metadata about a task that is being executed.</p><p><h3>See
979          * Also:</h3>   <a
980          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/DescribeTaskExecution">AWS
981          * API Reference</a></p>
982          *
983          * Queues the request into a thread executor and triggers associated callback when operation has finished.
984          */
985         virtual void DescribeTaskExecutionAsync(const Model::DescribeTaskExecutionRequest& request, const DescribeTaskExecutionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
986 
987         /**
988          * <p>Returns a list of agents owned by an Amazon Web Services account in the
989          * Amazon Web Services Region specified in the request. The returned list is
990          * ordered by agent Amazon Resource Name (ARN).</p> <p>By default, this operation
991          * returns a maximum of 100 agents. This operation supports pagination that enables
992          * you to optionally reduce the number of agents returned in a response.</p> <p>If
993          * you have more agents than are returned in a response (that is, the response
994          * returns only a truncated list of your agents), the response contains a marker
995          * that you can specify in your next request to fetch the next page of
996          * agents.</p><p><h3>See Also:</h3>   <a
997          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/ListAgents">AWS
998          * API Reference</a></p>
999          */
1000         virtual Model::ListAgentsOutcome ListAgents(const Model::ListAgentsRequest& request) const;
1001 
1002         /**
1003          * <p>Returns a list of agents owned by an Amazon Web Services account in the
1004          * Amazon Web Services Region specified in the request. The returned list is
1005          * ordered by agent Amazon Resource Name (ARN).</p> <p>By default, this operation
1006          * returns a maximum of 100 agents. This operation supports pagination that enables
1007          * you to optionally reduce the number of agents returned in a response.</p> <p>If
1008          * you have more agents than are returned in a response (that is, the response
1009          * returns only a truncated list of your agents), the response contains a marker
1010          * that you can specify in your next request to fetch the next page of
1011          * agents.</p><p><h3>See Also:</h3>   <a
1012          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/ListAgents">AWS
1013          * API Reference</a></p>
1014          *
1015          * returns a future to the operation so that it can be executed in parallel to other requests.
1016          */
1017         virtual Model::ListAgentsOutcomeCallable ListAgentsCallable(const Model::ListAgentsRequest& request) const;
1018 
1019         /**
1020          * <p>Returns a list of agents owned by an Amazon Web Services account in the
1021          * Amazon Web Services Region specified in the request. The returned list is
1022          * ordered by agent Amazon Resource Name (ARN).</p> <p>By default, this operation
1023          * returns a maximum of 100 agents. This operation supports pagination that enables
1024          * you to optionally reduce the number of agents returned in a response.</p> <p>If
1025          * you have more agents than are returned in a response (that is, the response
1026          * returns only a truncated list of your agents), the response contains a marker
1027          * that you can specify in your next request to fetch the next page of
1028          * agents.</p><p><h3>See Also:</h3>   <a
1029          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/ListAgents">AWS
1030          * API Reference</a></p>
1031          *
1032          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1033          */
1034         virtual void ListAgentsAsync(const Model::ListAgentsRequest& request, const ListAgentsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1035 
1036         /**
1037          * <p>Returns a list of source and destination locations.</p> <p>If you have more
1038          * locations than are returned in a response (that is, the response returns only a
1039          * truncated list of your agents), the response contains a token that you can
1040          * specify in your next request to fetch the next page of locations.</p><p><h3>See
1041          * Also:</h3>   <a
1042          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/ListLocations">AWS
1043          * API Reference</a></p>
1044          */
1045         virtual Model::ListLocationsOutcome ListLocations(const Model::ListLocationsRequest& request) const;
1046 
1047         /**
1048          * <p>Returns a list of source and destination locations.</p> <p>If you have more
1049          * locations than are returned in a response (that is, the response returns only a
1050          * truncated list of your agents), the response contains a token that you can
1051          * specify in your next request to fetch the next page of locations.</p><p><h3>See
1052          * Also:</h3>   <a
1053          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/ListLocations">AWS
1054          * API Reference</a></p>
1055          *
1056          * returns a future to the operation so that it can be executed in parallel to other requests.
1057          */
1058         virtual Model::ListLocationsOutcomeCallable ListLocationsCallable(const Model::ListLocationsRequest& request) const;
1059 
1060         /**
1061          * <p>Returns a list of source and destination locations.</p> <p>If you have more
1062          * locations than are returned in a response (that is, the response returns only a
1063          * truncated list of your agents), the response contains a token that you can
1064          * specify in your next request to fetch the next page of locations.</p><p><h3>See
1065          * Also:</h3>   <a
1066          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/ListLocations">AWS
1067          * API Reference</a></p>
1068          *
1069          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1070          */
1071         virtual void ListLocationsAsync(const Model::ListLocationsRequest& request, const ListLocationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1072 
1073         /**
1074          * <p>Returns all the tags associated with a specified resource. </p><p><h3>See
1075          * Also:</h3>   <a
1076          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/ListTagsForResource">AWS
1077          * API Reference</a></p>
1078          */
1079         virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const;
1080 
1081         /**
1082          * <p>Returns all the tags associated with a specified resource. </p><p><h3>See
1083          * Also:</h3>   <a
1084          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/ListTagsForResource">AWS
1085          * API Reference</a></p>
1086          *
1087          * returns a future to the operation so that it can be executed in parallel to other requests.
1088          */
1089         virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const;
1090 
1091         /**
1092          * <p>Returns all the tags associated with a specified resource. </p><p><h3>See
1093          * Also:</h3>   <a
1094          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/ListTagsForResource">AWS
1095          * API Reference</a></p>
1096          *
1097          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1098          */
1099         virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1100 
1101         /**
1102          * <p>Returns a list of executed tasks.</p><p><h3>See Also:</h3>   <a
1103          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/ListTaskExecutions">AWS
1104          * API Reference</a></p>
1105          */
1106         virtual Model::ListTaskExecutionsOutcome ListTaskExecutions(const Model::ListTaskExecutionsRequest& request) const;
1107 
1108         /**
1109          * <p>Returns a list of executed tasks.</p><p><h3>See Also:</h3>   <a
1110          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/ListTaskExecutions">AWS
1111          * API Reference</a></p>
1112          *
1113          * returns a future to the operation so that it can be executed in parallel to other requests.
1114          */
1115         virtual Model::ListTaskExecutionsOutcomeCallable ListTaskExecutionsCallable(const Model::ListTaskExecutionsRequest& request) const;
1116 
1117         /**
1118          * <p>Returns a list of executed tasks.</p><p><h3>See Also:</h3>   <a
1119          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/ListTaskExecutions">AWS
1120          * API Reference</a></p>
1121          *
1122          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1123          */
1124         virtual void ListTaskExecutionsAsync(const Model::ListTaskExecutionsRequest& request, const ListTaskExecutionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1125 
1126         /**
1127          * <p>Returns a list of all the tasks.</p><p><h3>See Also:</h3>   <a
1128          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/ListTasks">AWS
1129          * API Reference</a></p>
1130          */
1131         virtual Model::ListTasksOutcome ListTasks(const Model::ListTasksRequest& request) const;
1132 
1133         /**
1134          * <p>Returns a list of all the tasks.</p><p><h3>See Also:</h3>   <a
1135          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/ListTasks">AWS
1136          * API Reference</a></p>
1137          *
1138          * returns a future to the operation so that it can be executed in parallel to other requests.
1139          */
1140         virtual Model::ListTasksOutcomeCallable ListTasksCallable(const Model::ListTasksRequest& request) const;
1141 
1142         /**
1143          * <p>Returns a list of all the tasks.</p><p><h3>See Also:</h3>   <a
1144          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/ListTasks">AWS
1145          * API Reference</a></p>
1146          *
1147          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1148          */
1149         virtual void ListTasksAsync(const Model::ListTasksRequest& request, const ListTasksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1150 
1151         /**
1152          * <p>Starts a specific invocation of a task. A <code>TaskExecution</code> value
1153          * represents an individual run of a task. Each task can have at most one
1154          * <code>TaskExecution</code> at a time.</p> <p> <code>TaskExecution</code> has the
1155          * following transition phases: INITIALIZING | PREPARING | TRANSFERRING | VERIFYING
1156          * | SUCCESS/FAILURE. </p> <p>For detailed information, see the Task Execution
1157          * section in the Components and Terminology topic in the <i>DataSync User
1158          * Guide</i>.</p><p><h3>See Also:</h3>   <a
1159          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/StartTaskExecution">AWS
1160          * API Reference</a></p>
1161          */
1162         virtual Model::StartTaskExecutionOutcome StartTaskExecution(const Model::StartTaskExecutionRequest& request) const;
1163 
1164         /**
1165          * <p>Starts a specific invocation of a task. A <code>TaskExecution</code> value
1166          * represents an individual run of a task. Each task can have at most one
1167          * <code>TaskExecution</code> at a time.</p> <p> <code>TaskExecution</code> has the
1168          * following transition phases: INITIALIZING | PREPARING | TRANSFERRING | VERIFYING
1169          * | SUCCESS/FAILURE. </p> <p>For detailed information, see the Task Execution
1170          * section in the Components and Terminology topic in the <i>DataSync User
1171          * Guide</i>.</p><p><h3>See Also:</h3>   <a
1172          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/StartTaskExecution">AWS
1173          * API Reference</a></p>
1174          *
1175          * returns a future to the operation so that it can be executed in parallel to other requests.
1176          */
1177         virtual Model::StartTaskExecutionOutcomeCallable StartTaskExecutionCallable(const Model::StartTaskExecutionRequest& request) const;
1178 
1179         /**
1180          * <p>Starts a specific invocation of a task. A <code>TaskExecution</code> value
1181          * represents an individual run of a task. Each task can have at most one
1182          * <code>TaskExecution</code> at a time.</p> <p> <code>TaskExecution</code> has the
1183          * following transition phases: INITIALIZING | PREPARING | TRANSFERRING | VERIFYING
1184          * | SUCCESS/FAILURE. </p> <p>For detailed information, see the Task Execution
1185          * section in the Components and Terminology topic in the <i>DataSync User
1186          * Guide</i>.</p><p><h3>See Also:</h3>   <a
1187          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/StartTaskExecution">AWS
1188          * API Reference</a></p>
1189          *
1190          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1191          */
1192         virtual void StartTaskExecutionAsync(const Model::StartTaskExecutionRequest& request, const StartTaskExecutionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1193 
1194         /**
1195          * <p>Applies a key-value pair to an Amazon Web Services resource.</p><p><h3>See
1196          * Also:</h3>   <a
1197          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/TagResource">AWS
1198          * API Reference</a></p>
1199          */
1200         virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const;
1201 
1202         /**
1203          * <p>Applies a key-value pair to an Amazon Web Services resource.</p><p><h3>See
1204          * Also:</h3>   <a
1205          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/TagResource">AWS
1206          * API Reference</a></p>
1207          *
1208          * returns a future to the operation so that it can be executed in parallel to other requests.
1209          */
1210         virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const;
1211 
1212         /**
1213          * <p>Applies a key-value pair to an Amazon Web Services resource.</p><p><h3>See
1214          * Also:</h3>   <a
1215          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/TagResource">AWS
1216          * API Reference</a></p>
1217          *
1218          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1219          */
1220         virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1221 
1222         /**
1223          * <p>Removes a tag from an Amazon Web Services resource.</p><p><h3>See Also:</h3>
1224          * <a
1225          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UntagResource">AWS
1226          * API Reference</a></p>
1227          */
1228         virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const;
1229 
1230         /**
1231          * <p>Removes a tag from an Amazon Web Services resource.</p><p><h3>See Also:</h3>
1232          * <a
1233          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UntagResource">AWS
1234          * API Reference</a></p>
1235          *
1236          * returns a future to the operation so that it can be executed in parallel to other requests.
1237          */
1238         virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const;
1239 
1240         /**
1241          * <p>Removes a tag from an Amazon Web Services resource.</p><p><h3>See Also:</h3>
1242          * <a
1243          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UntagResource">AWS
1244          * API Reference</a></p>
1245          *
1246          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1247          */
1248         virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1249 
1250         /**
1251          * <p>Updates the name of an agent.</p><p><h3>See Also:</h3>   <a
1252          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateAgent">AWS
1253          * API Reference</a></p>
1254          */
1255         virtual Model::UpdateAgentOutcome UpdateAgent(const Model::UpdateAgentRequest& request) const;
1256 
1257         /**
1258          * <p>Updates the name of an agent.</p><p><h3>See Also:</h3>   <a
1259          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateAgent">AWS
1260          * API Reference</a></p>
1261          *
1262          * returns a future to the operation so that it can be executed in parallel to other requests.
1263          */
1264         virtual Model::UpdateAgentOutcomeCallable UpdateAgentCallable(const Model::UpdateAgentRequest& request) const;
1265 
1266         /**
1267          * <p>Updates the name of an agent.</p><p><h3>See Also:</h3>   <a
1268          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateAgent">AWS
1269          * API Reference</a></p>
1270          *
1271          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1272          */
1273         virtual void UpdateAgentAsync(const Model::UpdateAgentRequest& request, const UpdateAgentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1274 
1275         /**
1276          * <p>Updates some of the parameters of a previously created location for Network
1277          * File System (NFS) access. For information about creating an NFS location, see <a
1278          * href="https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html">Creating
1279          * a location for NFS</a>.</p><p><h3>See Also:</h3>   <a
1280          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateLocationNfs">AWS
1281          * API Reference</a></p>
1282          */
1283         virtual Model::UpdateLocationNfsOutcome UpdateLocationNfs(const Model::UpdateLocationNfsRequest& request) const;
1284 
1285         /**
1286          * <p>Updates some of the parameters of a previously created location for Network
1287          * File System (NFS) access. For information about creating an NFS location, see <a
1288          * href="https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html">Creating
1289          * a location for NFS</a>.</p><p><h3>See Also:</h3>   <a
1290          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateLocationNfs">AWS
1291          * API Reference</a></p>
1292          *
1293          * returns a future to the operation so that it can be executed in parallel to other requests.
1294          */
1295         virtual Model::UpdateLocationNfsOutcomeCallable UpdateLocationNfsCallable(const Model::UpdateLocationNfsRequest& request) const;
1296 
1297         /**
1298          * <p>Updates some of the parameters of a previously created location for Network
1299          * File System (NFS) access. For information about creating an NFS location, see <a
1300          * href="https://docs.aws.amazon.com/datasync/latest/userguide/create-nfs-location.html">Creating
1301          * a location for NFS</a>.</p><p><h3>See Also:</h3>   <a
1302          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateLocationNfs">AWS
1303          * API Reference</a></p>
1304          *
1305          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1306          */
1307         virtual void UpdateLocationNfsAsync(const Model::UpdateLocationNfsRequest& request, const UpdateLocationNfsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1308 
1309         /**
1310          * <p>Updates some of the parameters of a previously created location for
1311          * self-managed object storage server access. For information about creating a
1312          * self-managed object storage location, see <a
1313          * href="https://docs.aws.amazon.com/datasync/latest/userguide/create-object-location.html">Creating
1314          * a location for object storage</a>.</p><p><h3>See Also:</h3>   <a
1315          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateLocationObjectStorage">AWS
1316          * API Reference</a></p>
1317          */
1318         virtual Model::UpdateLocationObjectStorageOutcome UpdateLocationObjectStorage(const Model::UpdateLocationObjectStorageRequest& request) const;
1319 
1320         /**
1321          * <p>Updates some of the parameters of a previously created location for
1322          * self-managed object storage server access. For information about creating a
1323          * self-managed object storage location, see <a
1324          * href="https://docs.aws.amazon.com/datasync/latest/userguide/create-object-location.html">Creating
1325          * a location for object storage</a>.</p><p><h3>See Also:</h3>   <a
1326          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateLocationObjectStorage">AWS
1327          * API Reference</a></p>
1328          *
1329          * returns a future to the operation so that it can be executed in parallel to other requests.
1330          */
1331         virtual Model::UpdateLocationObjectStorageOutcomeCallable UpdateLocationObjectStorageCallable(const Model::UpdateLocationObjectStorageRequest& request) const;
1332 
1333         /**
1334          * <p>Updates some of the parameters of a previously created location for
1335          * self-managed object storage server access. For information about creating a
1336          * self-managed object storage location, see <a
1337          * href="https://docs.aws.amazon.com/datasync/latest/userguide/create-object-location.html">Creating
1338          * a location for object storage</a>.</p><p><h3>See Also:</h3>   <a
1339          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateLocationObjectStorage">AWS
1340          * API Reference</a></p>
1341          *
1342          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1343          */
1344         virtual void UpdateLocationObjectStorageAsync(const Model::UpdateLocationObjectStorageRequest& request, const UpdateLocationObjectStorageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1345 
1346         /**
1347          * <p>Updates some of the parameters of a previously created location for Server
1348          * Message Block (SMB) file system access. For information about creating an SMB
1349          * location, see <a
1350          * href="https://docs.aws.amazon.com/datasync/latest/userguide/create-smb-location.html">Creating
1351          * a location for SMB</a>.</p><p><h3>See Also:</h3>   <a
1352          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateLocationSmb">AWS
1353          * API Reference</a></p>
1354          */
1355         virtual Model::UpdateLocationSmbOutcome UpdateLocationSmb(const Model::UpdateLocationSmbRequest& request) const;
1356 
1357         /**
1358          * <p>Updates some of the parameters of a previously created location for Server
1359          * Message Block (SMB) file system access. For information about creating an SMB
1360          * location, see <a
1361          * href="https://docs.aws.amazon.com/datasync/latest/userguide/create-smb-location.html">Creating
1362          * a location for SMB</a>.</p><p><h3>See Also:</h3>   <a
1363          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateLocationSmb">AWS
1364          * API Reference</a></p>
1365          *
1366          * returns a future to the operation so that it can be executed in parallel to other requests.
1367          */
1368         virtual Model::UpdateLocationSmbOutcomeCallable UpdateLocationSmbCallable(const Model::UpdateLocationSmbRequest& request) const;
1369 
1370         /**
1371          * <p>Updates some of the parameters of a previously created location for Server
1372          * Message Block (SMB) file system access. For information about creating an SMB
1373          * location, see <a
1374          * href="https://docs.aws.amazon.com/datasync/latest/userguide/create-smb-location.html">Creating
1375          * a location for SMB</a>.</p><p><h3>See Also:</h3>   <a
1376          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateLocationSmb">AWS
1377          * API Reference</a></p>
1378          *
1379          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1380          */
1381         virtual void UpdateLocationSmbAsync(const Model::UpdateLocationSmbRequest& request, const UpdateLocationSmbResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1382 
1383         /**
1384          * <p>Updates the metadata associated with a task.</p><p><h3>See Also:</h3>   <a
1385          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateTask">AWS
1386          * API Reference</a></p>
1387          */
1388         virtual Model::UpdateTaskOutcome UpdateTask(const Model::UpdateTaskRequest& request) const;
1389 
1390         /**
1391          * <p>Updates the metadata associated with a task.</p><p><h3>See Also:</h3>   <a
1392          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateTask">AWS
1393          * API Reference</a></p>
1394          *
1395          * returns a future to the operation so that it can be executed in parallel to other requests.
1396          */
1397         virtual Model::UpdateTaskOutcomeCallable UpdateTaskCallable(const Model::UpdateTaskRequest& request) const;
1398 
1399         /**
1400          * <p>Updates the metadata associated with a task.</p><p><h3>See Also:</h3>   <a
1401          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateTask">AWS
1402          * API Reference</a></p>
1403          *
1404          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1405          */
1406         virtual void UpdateTaskAsync(const Model::UpdateTaskRequest& request, const UpdateTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1407 
1408         /**
1409          * <p>Updates execution of a task.</p> <p>You can modify bandwidth throttling for a
1410          * task execution that is running or queued. For more information, see <a
1411          * href="https://docs.aws.amazon.com/datasync/latest/userguide/working-with-task-executions.html#adjust-bandwidth-throttling">Adjusting
1412          * Bandwidth Throttling for a Task Execution</a>.</p>  <p>The only
1413          * <code>Option</code> that can be modified by <code>UpdateTaskExecution</code> is
1414          * <code> <a
1415          * href="https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-BytesPerSecond">BytesPerSecond</a>
1416          * </code>.</p> <p><h3>See Also:</h3>   <a
1417          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateTaskExecution">AWS
1418          * API Reference</a></p>
1419          */
1420         virtual Model::UpdateTaskExecutionOutcome UpdateTaskExecution(const Model::UpdateTaskExecutionRequest& request) const;
1421 
1422         /**
1423          * <p>Updates execution of a task.</p> <p>You can modify bandwidth throttling for a
1424          * task execution that is running or queued. For more information, see <a
1425          * href="https://docs.aws.amazon.com/datasync/latest/userguide/working-with-task-executions.html#adjust-bandwidth-throttling">Adjusting
1426          * Bandwidth Throttling for a Task Execution</a>.</p>  <p>The only
1427          * <code>Option</code> that can be modified by <code>UpdateTaskExecution</code> is
1428          * <code> <a
1429          * href="https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-BytesPerSecond">BytesPerSecond</a>
1430          * </code>.</p> <p><h3>See Also:</h3>   <a
1431          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateTaskExecution">AWS
1432          * API Reference</a></p>
1433          *
1434          * returns a future to the operation so that it can be executed in parallel to other requests.
1435          */
1436         virtual Model::UpdateTaskExecutionOutcomeCallable UpdateTaskExecutionCallable(const Model::UpdateTaskExecutionRequest& request) const;
1437 
1438         /**
1439          * <p>Updates execution of a task.</p> <p>You can modify bandwidth throttling for a
1440          * task execution that is running or queued. For more information, see <a
1441          * href="https://docs.aws.amazon.com/datasync/latest/userguide/working-with-task-executions.html#adjust-bandwidth-throttling">Adjusting
1442          * Bandwidth Throttling for a Task Execution</a>.</p>  <p>The only
1443          * <code>Option</code> that can be modified by <code>UpdateTaskExecution</code> is
1444          * <code> <a
1445          * href="https://docs.aws.amazon.com/datasync/latest/userguide/API_Options.html#DataSync-Type-Options-BytesPerSecond">BytesPerSecond</a>
1446          * </code>.</p> <p><h3>See Also:</h3>   <a
1447          * href="http://docs.aws.amazon.com/goto/WebAPI/datasync-2018-11-09/UpdateTaskExecution">AWS
1448          * API Reference</a></p>
1449          *
1450          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1451          */
1452         virtual void UpdateTaskExecutionAsync(const Model::UpdateTaskExecutionRequest& request, const UpdateTaskExecutionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1453 
1454 
1455       void OverrideEndpoint(const Aws::String& endpoint);
1456     private:
1457       void init(const Aws::Client::ClientConfiguration& clientConfiguration);
1458         void CancelTaskExecutionAsyncHelper(const Model::CancelTaskExecutionRequest& request, const CancelTaskExecutionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1459         void CreateAgentAsyncHelper(const Model::CreateAgentRequest& request, const CreateAgentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1460         void CreateLocationEfsAsyncHelper(const Model::CreateLocationEfsRequest& request, const CreateLocationEfsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1461         void CreateLocationFsxWindowsAsyncHelper(const Model::CreateLocationFsxWindowsRequest& request, const CreateLocationFsxWindowsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1462         void CreateLocationNfsAsyncHelper(const Model::CreateLocationNfsRequest& request, const CreateLocationNfsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1463         void CreateLocationObjectStorageAsyncHelper(const Model::CreateLocationObjectStorageRequest& request, const CreateLocationObjectStorageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1464         void CreateLocationS3AsyncHelper(const Model::CreateLocationS3Request& request, const CreateLocationS3ResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1465         void CreateLocationSmbAsyncHelper(const Model::CreateLocationSmbRequest& request, const CreateLocationSmbResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1466         void CreateTaskAsyncHelper(const Model::CreateTaskRequest& request, const CreateTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1467         void DeleteAgentAsyncHelper(const Model::DeleteAgentRequest& request, const DeleteAgentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1468         void DeleteLocationAsyncHelper(const Model::DeleteLocationRequest& request, const DeleteLocationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1469         void DeleteTaskAsyncHelper(const Model::DeleteTaskRequest& request, const DeleteTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1470         void DescribeAgentAsyncHelper(const Model::DescribeAgentRequest& request, const DescribeAgentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1471         void DescribeLocationEfsAsyncHelper(const Model::DescribeLocationEfsRequest& request, const DescribeLocationEfsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1472         void DescribeLocationFsxWindowsAsyncHelper(const Model::DescribeLocationFsxWindowsRequest& request, const DescribeLocationFsxWindowsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1473         void DescribeLocationNfsAsyncHelper(const Model::DescribeLocationNfsRequest& request, const DescribeLocationNfsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1474         void DescribeLocationObjectStorageAsyncHelper(const Model::DescribeLocationObjectStorageRequest& request, const DescribeLocationObjectStorageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1475         void DescribeLocationS3AsyncHelper(const Model::DescribeLocationS3Request& request, const DescribeLocationS3ResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1476         void DescribeLocationSmbAsyncHelper(const Model::DescribeLocationSmbRequest& request, const DescribeLocationSmbResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1477         void DescribeTaskAsyncHelper(const Model::DescribeTaskRequest& request, const DescribeTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1478         void DescribeTaskExecutionAsyncHelper(const Model::DescribeTaskExecutionRequest& request, const DescribeTaskExecutionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1479         void ListAgentsAsyncHelper(const Model::ListAgentsRequest& request, const ListAgentsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1480         void ListLocationsAsyncHelper(const Model::ListLocationsRequest& request, const ListLocationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1481         void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1482         void ListTaskExecutionsAsyncHelper(const Model::ListTaskExecutionsRequest& request, const ListTaskExecutionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1483         void ListTasksAsyncHelper(const Model::ListTasksRequest& request, const ListTasksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1484         void StartTaskExecutionAsyncHelper(const Model::StartTaskExecutionRequest& request, const StartTaskExecutionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1485         void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1486         void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1487         void UpdateAgentAsyncHelper(const Model::UpdateAgentRequest& request, const UpdateAgentResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1488         void UpdateLocationNfsAsyncHelper(const Model::UpdateLocationNfsRequest& request, const UpdateLocationNfsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1489         void UpdateLocationObjectStorageAsyncHelper(const Model::UpdateLocationObjectStorageRequest& request, const UpdateLocationObjectStorageResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1490         void UpdateLocationSmbAsyncHelper(const Model::UpdateLocationSmbRequest& request, const UpdateLocationSmbResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1491         void UpdateTaskAsyncHelper(const Model::UpdateTaskRequest& request, const UpdateTaskResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1492         void UpdateTaskExecutionAsyncHelper(const Model::UpdateTaskExecutionRequest& request, const UpdateTaskExecutionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1493 
1494       Aws::String m_uri;
1495       Aws::String m_configScheme;
1496       std::shared_ptr<Aws::Utils::Threading::Executor> m_executor;
1497   };
1498 
1499 } // namespace DataSync
1500 } // namespace Aws
1501