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/dataexchange/DataExchange_EXPORTS.h>
8 #include <aws/dataexchange/DataExchangeErrors.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/dataexchange/model/CreateDataSetResult.h>
15 #include <aws/dataexchange/model/CreateEventActionResult.h>
16 #include <aws/dataexchange/model/CreateJobResult.h>
17 #include <aws/dataexchange/model/CreateRevisionResult.h>
18 #include <aws/dataexchange/model/GetAssetResult.h>
19 #include <aws/dataexchange/model/GetDataSetResult.h>
20 #include <aws/dataexchange/model/GetEventActionResult.h>
21 #include <aws/dataexchange/model/GetJobResult.h>
22 #include <aws/dataexchange/model/GetRevisionResult.h>
23 #include <aws/dataexchange/model/ListDataSetRevisionsResult.h>
24 #include <aws/dataexchange/model/ListDataSetsResult.h>
25 #include <aws/dataexchange/model/ListEventActionsResult.h>
26 #include <aws/dataexchange/model/ListJobsResult.h>
27 #include <aws/dataexchange/model/ListRevisionAssetsResult.h>
28 #include <aws/dataexchange/model/ListTagsForResourceResult.h>
29 #include <aws/dataexchange/model/StartJobResult.h>
30 #include <aws/dataexchange/model/UpdateAssetResult.h>
31 #include <aws/dataexchange/model/UpdateDataSetResult.h>
32 #include <aws/dataexchange/model/UpdateEventActionResult.h>
33 #include <aws/dataexchange/model/UpdateRevisionResult.h>
34 #include <aws/core/NoResult.h>
35 #include <aws/core/client/AsyncCallerContext.h>
36 #include <aws/core/http/HttpTypes.h>
37 #include <future>
38 #include <functional>
39 
40 namespace Aws
41 {
42 
43 namespace Http
44 {
45   class HttpClient;
46   class HttpClientFactory;
47 } // namespace Http
48 
49 namespace Utils
50 {
51   template< typename R, typename E> class Outcome;
52 namespace Threading
53 {
54   class Executor;
55 } // namespace Threading
56 } // namespace Utils
57 
58 namespace Auth
59 {
60   class AWSCredentials;
61   class AWSCredentialsProvider;
62 } // namespace Auth
63 
64 namespace Client
65 {
66   class RetryStrategy;
67 } // namespace Client
68 
69 namespace DataExchange
70 {
71 
72 namespace Model
73 {
74         class CancelJobRequest;
75         class CreateDataSetRequest;
76         class CreateEventActionRequest;
77         class CreateJobRequest;
78         class CreateRevisionRequest;
79         class DeleteAssetRequest;
80         class DeleteDataSetRequest;
81         class DeleteEventActionRequest;
82         class DeleteRevisionRequest;
83         class GetAssetRequest;
84         class GetDataSetRequest;
85         class GetEventActionRequest;
86         class GetJobRequest;
87         class GetRevisionRequest;
88         class ListDataSetRevisionsRequest;
89         class ListDataSetsRequest;
90         class ListEventActionsRequest;
91         class ListJobsRequest;
92         class ListRevisionAssetsRequest;
93         class ListTagsForResourceRequest;
94         class StartJobRequest;
95         class TagResourceRequest;
96         class UntagResourceRequest;
97         class UpdateAssetRequest;
98         class UpdateDataSetRequest;
99         class UpdateEventActionRequest;
100         class UpdateRevisionRequest;
101 
102         typedef Aws::Utils::Outcome<Aws::NoResult, DataExchangeError> CancelJobOutcome;
103         typedef Aws::Utils::Outcome<CreateDataSetResult, DataExchangeError> CreateDataSetOutcome;
104         typedef Aws::Utils::Outcome<CreateEventActionResult, DataExchangeError> CreateEventActionOutcome;
105         typedef Aws::Utils::Outcome<CreateJobResult, DataExchangeError> CreateJobOutcome;
106         typedef Aws::Utils::Outcome<CreateRevisionResult, DataExchangeError> CreateRevisionOutcome;
107         typedef Aws::Utils::Outcome<Aws::NoResult, DataExchangeError> DeleteAssetOutcome;
108         typedef Aws::Utils::Outcome<Aws::NoResult, DataExchangeError> DeleteDataSetOutcome;
109         typedef Aws::Utils::Outcome<Aws::NoResult, DataExchangeError> DeleteEventActionOutcome;
110         typedef Aws::Utils::Outcome<Aws::NoResult, DataExchangeError> DeleteRevisionOutcome;
111         typedef Aws::Utils::Outcome<GetAssetResult, DataExchangeError> GetAssetOutcome;
112         typedef Aws::Utils::Outcome<GetDataSetResult, DataExchangeError> GetDataSetOutcome;
113         typedef Aws::Utils::Outcome<GetEventActionResult, DataExchangeError> GetEventActionOutcome;
114         typedef Aws::Utils::Outcome<GetJobResult, DataExchangeError> GetJobOutcome;
115         typedef Aws::Utils::Outcome<GetRevisionResult, DataExchangeError> GetRevisionOutcome;
116         typedef Aws::Utils::Outcome<ListDataSetRevisionsResult, DataExchangeError> ListDataSetRevisionsOutcome;
117         typedef Aws::Utils::Outcome<ListDataSetsResult, DataExchangeError> ListDataSetsOutcome;
118         typedef Aws::Utils::Outcome<ListEventActionsResult, DataExchangeError> ListEventActionsOutcome;
119         typedef Aws::Utils::Outcome<ListJobsResult, DataExchangeError> ListJobsOutcome;
120         typedef Aws::Utils::Outcome<ListRevisionAssetsResult, DataExchangeError> ListRevisionAssetsOutcome;
121         typedef Aws::Utils::Outcome<ListTagsForResourceResult, DataExchangeError> ListTagsForResourceOutcome;
122         typedef Aws::Utils::Outcome<StartJobResult, DataExchangeError> StartJobOutcome;
123         typedef Aws::Utils::Outcome<Aws::NoResult, DataExchangeError> TagResourceOutcome;
124         typedef Aws::Utils::Outcome<Aws::NoResult, DataExchangeError> UntagResourceOutcome;
125         typedef Aws::Utils::Outcome<UpdateAssetResult, DataExchangeError> UpdateAssetOutcome;
126         typedef Aws::Utils::Outcome<UpdateDataSetResult, DataExchangeError> UpdateDataSetOutcome;
127         typedef Aws::Utils::Outcome<UpdateEventActionResult, DataExchangeError> UpdateEventActionOutcome;
128         typedef Aws::Utils::Outcome<UpdateRevisionResult, DataExchangeError> UpdateRevisionOutcome;
129 
130         typedef std::future<CancelJobOutcome> CancelJobOutcomeCallable;
131         typedef std::future<CreateDataSetOutcome> CreateDataSetOutcomeCallable;
132         typedef std::future<CreateEventActionOutcome> CreateEventActionOutcomeCallable;
133         typedef std::future<CreateJobOutcome> CreateJobOutcomeCallable;
134         typedef std::future<CreateRevisionOutcome> CreateRevisionOutcomeCallable;
135         typedef std::future<DeleteAssetOutcome> DeleteAssetOutcomeCallable;
136         typedef std::future<DeleteDataSetOutcome> DeleteDataSetOutcomeCallable;
137         typedef std::future<DeleteEventActionOutcome> DeleteEventActionOutcomeCallable;
138         typedef std::future<DeleteRevisionOutcome> DeleteRevisionOutcomeCallable;
139         typedef std::future<GetAssetOutcome> GetAssetOutcomeCallable;
140         typedef std::future<GetDataSetOutcome> GetDataSetOutcomeCallable;
141         typedef std::future<GetEventActionOutcome> GetEventActionOutcomeCallable;
142         typedef std::future<GetJobOutcome> GetJobOutcomeCallable;
143         typedef std::future<GetRevisionOutcome> GetRevisionOutcomeCallable;
144         typedef std::future<ListDataSetRevisionsOutcome> ListDataSetRevisionsOutcomeCallable;
145         typedef std::future<ListDataSetsOutcome> ListDataSetsOutcomeCallable;
146         typedef std::future<ListEventActionsOutcome> ListEventActionsOutcomeCallable;
147         typedef std::future<ListJobsOutcome> ListJobsOutcomeCallable;
148         typedef std::future<ListRevisionAssetsOutcome> ListRevisionAssetsOutcomeCallable;
149         typedef std::future<ListTagsForResourceOutcome> ListTagsForResourceOutcomeCallable;
150         typedef std::future<StartJobOutcome> StartJobOutcomeCallable;
151         typedef std::future<TagResourceOutcome> TagResourceOutcomeCallable;
152         typedef std::future<UntagResourceOutcome> UntagResourceOutcomeCallable;
153         typedef std::future<UpdateAssetOutcome> UpdateAssetOutcomeCallable;
154         typedef std::future<UpdateDataSetOutcome> UpdateDataSetOutcomeCallable;
155         typedef std::future<UpdateEventActionOutcome> UpdateEventActionOutcomeCallable;
156         typedef std::future<UpdateRevisionOutcome> UpdateRevisionOutcomeCallable;
157 } // namespace Model
158 
159   class DataExchangeClient;
160 
161     typedef std::function<void(const DataExchangeClient*, const Model::CancelJobRequest&, const Model::CancelJobOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CancelJobResponseReceivedHandler;
162     typedef std::function<void(const DataExchangeClient*, const Model::CreateDataSetRequest&, const Model::CreateDataSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateDataSetResponseReceivedHandler;
163     typedef std::function<void(const DataExchangeClient*, const Model::CreateEventActionRequest&, const Model::CreateEventActionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateEventActionResponseReceivedHandler;
164     typedef std::function<void(const DataExchangeClient*, const Model::CreateJobRequest&, const Model::CreateJobOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateJobResponseReceivedHandler;
165     typedef std::function<void(const DataExchangeClient*, const Model::CreateRevisionRequest&, const Model::CreateRevisionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateRevisionResponseReceivedHandler;
166     typedef std::function<void(const DataExchangeClient*, const Model::DeleteAssetRequest&, const Model::DeleteAssetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteAssetResponseReceivedHandler;
167     typedef std::function<void(const DataExchangeClient*, const Model::DeleteDataSetRequest&, const Model::DeleteDataSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteDataSetResponseReceivedHandler;
168     typedef std::function<void(const DataExchangeClient*, const Model::DeleteEventActionRequest&, const Model::DeleteEventActionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteEventActionResponseReceivedHandler;
169     typedef std::function<void(const DataExchangeClient*, const Model::DeleteRevisionRequest&, const Model::DeleteRevisionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteRevisionResponseReceivedHandler;
170     typedef std::function<void(const DataExchangeClient*, const Model::GetAssetRequest&, const Model::GetAssetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetAssetResponseReceivedHandler;
171     typedef std::function<void(const DataExchangeClient*, const Model::GetDataSetRequest&, const Model::GetDataSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetDataSetResponseReceivedHandler;
172     typedef std::function<void(const DataExchangeClient*, const Model::GetEventActionRequest&, const Model::GetEventActionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetEventActionResponseReceivedHandler;
173     typedef std::function<void(const DataExchangeClient*, const Model::GetJobRequest&, const Model::GetJobOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetJobResponseReceivedHandler;
174     typedef std::function<void(const DataExchangeClient*, const Model::GetRevisionRequest&, const Model::GetRevisionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetRevisionResponseReceivedHandler;
175     typedef std::function<void(const DataExchangeClient*, const Model::ListDataSetRevisionsRequest&, const Model::ListDataSetRevisionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListDataSetRevisionsResponseReceivedHandler;
176     typedef std::function<void(const DataExchangeClient*, const Model::ListDataSetsRequest&, const Model::ListDataSetsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListDataSetsResponseReceivedHandler;
177     typedef std::function<void(const DataExchangeClient*, const Model::ListEventActionsRequest&, const Model::ListEventActionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListEventActionsResponseReceivedHandler;
178     typedef std::function<void(const DataExchangeClient*, const Model::ListJobsRequest&, const Model::ListJobsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListJobsResponseReceivedHandler;
179     typedef std::function<void(const DataExchangeClient*, const Model::ListRevisionAssetsRequest&, const Model::ListRevisionAssetsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListRevisionAssetsResponseReceivedHandler;
180     typedef std::function<void(const DataExchangeClient*, const Model::ListTagsForResourceRequest&, const Model::ListTagsForResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTagsForResourceResponseReceivedHandler;
181     typedef std::function<void(const DataExchangeClient*, const Model::StartJobRequest&, const Model::StartJobOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StartJobResponseReceivedHandler;
182     typedef std::function<void(const DataExchangeClient*, const Model::TagResourceRequest&, const Model::TagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TagResourceResponseReceivedHandler;
183     typedef std::function<void(const DataExchangeClient*, const Model::UntagResourceRequest&, const Model::UntagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UntagResourceResponseReceivedHandler;
184     typedef std::function<void(const DataExchangeClient*, const Model::UpdateAssetRequest&, const Model::UpdateAssetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateAssetResponseReceivedHandler;
185     typedef std::function<void(const DataExchangeClient*, const Model::UpdateDataSetRequest&, const Model::UpdateDataSetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateDataSetResponseReceivedHandler;
186     typedef std::function<void(const DataExchangeClient*, const Model::UpdateEventActionRequest&, const Model::UpdateEventActionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateEventActionResponseReceivedHandler;
187     typedef std::function<void(const DataExchangeClient*, const Model::UpdateRevisionRequest&, const Model::UpdateRevisionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateRevisionResponseReceivedHandler;
188 
189   /**
190    * <p>AWS Data Exchange is a service that makes it easy for AWS customers to
191    * exchange data in the cloud. You can use the AWS Data Exchange APIs to create,
192    * update, manage, and access file-based data set in the AWS Cloud.</p><p>As a
193    * subscriber, you can view and access the data sets that you have an entitlement
194    * to through a subscription. You can use the APIS to download or copy your
195    * entitled data sets to Amazon S3 for use across a variety of AWS analytics and
196    * machine learning services.</p><p>As a provider, you can create and manage your
197    * data sets that you would like to publish to a product. Being able to package and
198    * provide your data sets into products requires a few steps to determine
199    * eligibility. For more information, visit the AWS Data Exchange User
200    * Guide.</p><p>A data set is a collection of data that can be changed or updated
201    * over time. Data sets can be updated using revisions, which represent a new
202    * version or incremental change to a data set.  A revision contains one or more
203    * assets. An asset in AWS Data Exchange is a piece of data that can be stored as
204    * an Amazon S3 object. The asset can be a structured data file, an image file, or
205    * some other data file. Jobs are asynchronous import or export operations used to
206    * create or copy assets.</p>
207    */
208   class AWS_DATAEXCHANGE_API DataExchangeClient : public Aws::Client::AWSJsonClient
209   {
210     public:
211       typedef Aws::Client::AWSJsonClient BASECLASS;
212 
213        /**
214         * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
215         * is not specified, it will be initialized to default values.
216         */
217         DataExchangeClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
218 
219        /**
220         * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
221         * is not specified, it will be initialized to default values.
222         */
223         DataExchangeClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
224 
225        /**
226         * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
227         * the default http client factory will be used
228         */
229         DataExchangeClient(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
230             const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
231 
232         virtual ~DataExchangeClient();
233 
234 
235         /**
236          * <p>This operation cancels a job. Jobs can be cancelled only when they are in the
237          * WAITING state.</p><p><h3>See Also:</h3>   <a
238          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/CancelJob">AWS
239          * API Reference</a></p>
240          */
241         virtual Model::CancelJobOutcome CancelJob(const Model::CancelJobRequest& request) const;
242 
243         /**
244          * <p>This operation cancels a job. Jobs can be cancelled only when they are in the
245          * WAITING state.</p><p><h3>See Also:</h3>   <a
246          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/CancelJob">AWS
247          * API Reference</a></p>
248          *
249          * returns a future to the operation so that it can be executed in parallel to other requests.
250          */
251         virtual Model::CancelJobOutcomeCallable CancelJobCallable(const Model::CancelJobRequest& request) const;
252 
253         /**
254          * <p>This operation cancels a job. Jobs can be cancelled only when they are in the
255          * WAITING state.</p><p><h3>See Also:</h3>   <a
256          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/CancelJob">AWS
257          * API Reference</a></p>
258          *
259          * Queues the request into a thread executor and triggers associated callback when operation has finished.
260          */
261         virtual void CancelJobAsync(const Model::CancelJobRequest& request, const CancelJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
262 
263         /**
264          * <p>This operation creates a data set.</p><p><h3>See Also:</h3>   <a
265          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/CreateDataSet">AWS
266          * API Reference</a></p>
267          */
268         virtual Model::CreateDataSetOutcome CreateDataSet(const Model::CreateDataSetRequest& request) const;
269 
270         /**
271          * <p>This operation creates a data set.</p><p><h3>See Also:</h3>   <a
272          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/CreateDataSet">AWS
273          * API Reference</a></p>
274          *
275          * returns a future to the operation so that it can be executed in parallel to other requests.
276          */
277         virtual Model::CreateDataSetOutcomeCallable CreateDataSetCallable(const Model::CreateDataSetRequest& request) const;
278 
279         /**
280          * <p>This operation creates a data set.</p><p><h3>See Also:</h3>   <a
281          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/CreateDataSet">AWS
282          * API Reference</a></p>
283          *
284          * Queues the request into a thread executor and triggers associated callback when operation has finished.
285          */
286         virtual void CreateDataSetAsync(const Model::CreateDataSetRequest& request, const CreateDataSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
287 
288         /**
289          * <p>This operation creates an event action.</p><p><h3>See Also:</h3>   <a
290          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/CreateEventAction">AWS
291          * API Reference</a></p>
292          */
293         virtual Model::CreateEventActionOutcome CreateEventAction(const Model::CreateEventActionRequest& request) const;
294 
295         /**
296          * <p>This operation creates an event action.</p><p><h3>See Also:</h3>   <a
297          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/CreateEventAction">AWS
298          * API Reference</a></p>
299          *
300          * returns a future to the operation so that it can be executed in parallel to other requests.
301          */
302         virtual Model::CreateEventActionOutcomeCallable CreateEventActionCallable(const Model::CreateEventActionRequest& request) const;
303 
304         /**
305          * <p>This operation creates an event action.</p><p><h3>See Also:</h3>   <a
306          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/CreateEventAction">AWS
307          * API Reference</a></p>
308          *
309          * Queues the request into a thread executor and triggers associated callback when operation has finished.
310          */
311         virtual void CreateEventActionAsync(const Model::CreateEventActionRequest& request, const CreateEventActionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
312 
313         /**
314          * <p>This operation creates a job.</p><p><h3>See Also:</h3>   <a
315          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/CreateJob">AWS
316          * API Reference</a></p>
317          */
318         virtual Model::CreateJobOutcome CreateJob(const Model::CreateJobRequest& request) const;
319 
320         /**
321          * <p>This operation creates a job.</p><p><h3>See Also:</h3>   <a
322          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/CreateJob">AWS
323          * API Reference</a></p>
324          *
325          * returns a future to the operation so that it can be executed in parallel to other requests.
326          */
327         virtual Model::CreateJobOutcomeCallable CreateJobCallable(const Model::CreateJobRequest& request) const;
328 
329         /**
330          * <p>This operation creates a job.</p><p><h3>See Also:</h3>   <a
331          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/CreateJob">AWS
332          * API Reference</a></p>
333          *
334          * Queues the request into a thread executor and triggers associated callback when operation has finished.
335          */
336         virtual void CreateJobAsync(const Model::CreateJobRequest& request, const CreateJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
337 
338         /**
339          * <p>This operation creates a revision for a data set.</p><p><h3>See Also:</h3>
340          * <a
341          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/CreateRevision">AWS
342          * API Reference</a></p>
343          */
344         virtual Model::CreateRevisionOutcome CreateRevision(const Model::CreateRevisionRequest& request) const;
345 
346         /**
347          * <p>This operation creates a revision for a data set.</p><p><h3>See Also:</h3>
348          * <a
349          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/CreateRevision">AWS
350          * API Reference</a></p>
351          *
352          * returns a future to the operation so that it can be executed in parallel to other requests.
353          */
354         virtual Model::CreateRevisionOutcomeCallable CreateRevisionCallable(const Model::CreateRevisionRequest& request) const;
355 
356         /**
357          * <p>This operation creates a revision for a data set.</p><p><h3>See Also:</h3>
358          * <a
359          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/CreateRevision">AWS
360          * API Reference</a></p>
361          *
362          * Queues the request into a thread executor and triggers associated callback when operation has finished.
363          */
364         virtual void CreateRevisionAsync(const Model::CreateRevisionRequest& request, const CreateRevisionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
365 
366         /**
367          * <p>This operation deletes an asset.</p><p><h3>See Also:</h3>   <a
368          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/DeleteAsset">AWS
369          * API Reference</a></p>
370          */
371         virtual Model::DeleteAssetOutcome DeleteAsset(const Model::DeleteAssetRequest& request) const;
372 
373         /**
374          * <p>This operation deletes an asset.</p><p><h3>See Also:</h3>   <a
375          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/DeleteAsset">AWS
376          * API Reference</a></p>
377          *
378          * returns a future to the operation so that it can be executed in parallel to other requests.
379          */
380         virtual Model::DeleteAssetOutcomeCallable DeleteAssetCallable(const Model::DeleteAssetRequest& request) const;
381 
382         /**
383          * <p>This operation deletes an asset.</p><p><h3>See Also:</h3>   <a
384          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/DeleteAsset">AWS
385          * API Reference</a></p>
386          *
387          * Queues the request into a thread executor and triggers associated callback when operation has finished.
388          */
389         virtual void DeleteAssetAsync(const Model::DeleteAssetRequest& request, const DeleteAssetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
390 
391         /**
392          * <p>This operation deletes a data set.</p><p><h3>See Also:</h3>   <a
393          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/DeleteDataSet">AWS
394          * API Reference</a></p>
395          */
396         virtual Model::DeleteDataSetOutcome DeleteDataSet(const Model::DeleteDataSetRequest& request) const;
397 
398         /**
399          * <p>This operation deletes a data set.</p><p><h3>See Also:</h3>   <a
400          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/DeleteDataSet">AWS
401          * API Reference</a></p>
402          *
403          * returns a future to the operation so that it can be executed in parallel to other requests.
404          */
405         virtual Model::DeleteDataSetOutcomeCallable DeleteDataSetCallable(const Model::DeleteDataSetRequest& request) const;
406 
407         /**
408          * <p>This operation deletes a data set.</p><p><h3>See Also:</h3>   <a
409          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/DeleteDataSet">AWS
410          * API Reference</a></p>
411          *
412          * Queues the request into a thread executor and triggers associated callback when operation has finished.
413          */
414         virtual void DeleteDataSetAsync(const Model::DeleteDataSetRequest& request, const DeleteDataSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
415 
416         /**
417          * <p>This operation deletes the event action.</p><p><h3>See Also:</h3>   <a
418          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/DeleteEventAction">AWS
419          * API Reference</a></p>
420          */
421         virtual Model::DeleteEventActionOutcome DeleteEventAction(const Model::DeleteEventActionRequest& request) const;
422 
423         /**
424          * <p>This operation deletes the event action.</p><p><h3>See Also:</h3>   <a
425          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/DeleteEventAction">AWS
426          * API Reference</a></p>
427          *
428          * returns a future to the operation so that it can be executed in parallel to other requests.
429          */
430         virtual Model::DeleteEventActionOutcomeCallable DeleteEventActionCallable(const Model::DeleteEventActionRequest& request) const;
431 
432         /**
433          * <p>This operation deletes the event action.</p><p><h3>See Also:</h3>   <a
434          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/DeleteEventAction">AWS
435          * API Reference</a></p>
436          *
437          * Queues the request into a thread executor and triggers associated callback when operation has finished.
438          */
439         virtual void DeleteEventActionAsync(const Model::DeleteEventActionRequest& request, const DeleteEventActionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
440 
441         /**
442          * <p>This operation deletes a revision.</p><p><h3>See Also:</h3>   <a
443          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/DeleteRevision">AWS
444          * API Reference</a></p>
445          */
446         virtual Model::DeleteRevisionOutcome DeleteRevision(const Model::DeleteRevisionRequest& request) const;
447 
448         /**
449          * <p>This operation deletes a revision.</p><p><h3>See Also:</h3>   <a
450          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/DeleteRevision">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::DeleteRevisionOutcomeCallable DeleteRevisionCallable(const Model::DeleteRevisionRequest& request) const;
456 
457         /**
458          * <p>This operation deletes a revision.</p><p><h3>See Also:</h3>   <a
459          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/DeleteRevision">AWS
460          * API Reference</a></p>
461          *
462          * Queues the request into a thread executor and triggers associated callback when operation has finished.
463          */
464         virtual void DeleteRevisionAsync(const Model::DeleteRevisionRequest& request, const DeleteRevisionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
465 
466         /**
467          * <p>This operation returns information about an asset.</p><p><h3>See Also:</h3>
468          * <a
469          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/GetAsset">AWS
470          * API Reference</a></p>
471          */
472         virtual Model::GetAssetOutcome GetAsset(const Model::GetAssetRequest& request) const;
473 
474         /**
475          * <p>This operation returns information about an asset.</p><p><h3>See Also:</h3>
476          * <a
477          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/GetAsset">AWS
478          * API Reference</a></p>
479          *
480          * returns a future to the operation so that it can be executed in parallel to other requests.
481          */
482         virtual Model::GetAssetOutcomeCallable GetAssetCallable(const Model::GetAssetRequest& request) const;
483 
484         /**
485          * <p>This operation returns information about an asset.</p><p><h3>See Also:</h3>
486          * <a
487          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/GetAsset">AWS
488          * API Reference</a></p>
489          *
490          * Queues the request into a thread executor and triggers associated callback when operation has finished.
491          */
492         virtual void GetAssetAsync(const Model::GetAssetRequest& request, const GetAssetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
493 
494         /**
495          * <p>This operation returns information about a data set.</p><p><h3>See Also:</h3>
496          * <a
497          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/GetDataSet">AWS
498          * API Reference</a></p>
499          */
500         virtual Model::GetDataSetOutcome GetDataSet(const Model::GetDataSetRequest& request) const;
501 
502         /**
503          * <p>This operation returns information about a data set.</p><p><h3>See Also:</h3>
504          * <a
505          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/GetDataSet">AWS
506          * API Reference</a></p>
507          *
508          * returns a future to the operation so that it can be executed in parallel to other requests.
509          */
510         virtual Model::GetDataSetOutcomeCallable GetDataSetCallable(const Model::GetDataSetRequest& request) const;
511 
512         /**
513          * <p>This operation returns information about a data set.</p><p><h3>See Also:</h3>
514          * <a
515          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/GetDataSet">AWS
516          * API Reference</a></p>
517          *
518          * Queues the request into a thread executor and triggers associated callback when operation has finished.
519          */
520         virtual void GetDataSetAsync(const Model::GetDataSetRequest& request, const GetDataSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
521 
522         /**
523          * <p>This operation retrieves information about an event action.</p><p><h3>See
524          * Also:</h3>   <a
525          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/GetEventAction">AWS
526          * API Reference</a></p>
527          */
528         virtual Model::GetEventActionOutcome GetEventAction(const Model::GetEventActionRequest& request) const;
529 
530         /**
531          * <p>This operation retrieves information about an event action.</p><p><h3>See
532          * Also:</h3>   <a
533          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/GetEventAction">AWS
534          * API Reference</a></p>
535          *
536          * returns a future to the operation so that it can be executed in parallel to other requests.
537          */
538         virtual Model::GetEventActionOutcomeCallable GetEventActionCallable(const Model::GetEventActionRequest& request) const;
539 
540         /**
541          * <p>This operation retrieves information about an event action.</p><p><h3>See
542          * Also:</h3>   <a
543          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/GetEventAction">AWS
544          * API Reference</a></p>
545          *
546          * Queues the request into a thread executor and triggers associated callback when operation has finished.
547          */
548         virtual void GetEventActionAsync(const Model::GetEventActionRequest& request, const GetEventActionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
549 
550         /**
551          * <p>This operation returns information about a job.</p><p><h3>See Also:</h3>   <a
552          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/GetJob">AWS
553          * API Reference</a></p>
554          */
555         virtual Model::GetJobOutcome GetJob(const Model::GetJobRequest& request) const;
556 
557         /**
558          * <p>This operation returns information about a job.</p><p><h3>See Also:</h3>   <a
559          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/GetJob">AWS
560          * API Reference</a></p>
561          *
562          * returns a future to the operation so that it can be executed in parallel to other requests.
563          */
564         virtual Model::GetJobOutcomeCallable GetJobCallable(const Model::GetJobRequest& request) const;
565 
566         /**
567          * <p>This operation returns information about a job.</p><p><h3>See Also:</h3>   <a
568          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/GetJob">AWS
569          * API Reference</a></p>
570          *
571          * Queues the request into a thread executor and triggers associated callback when operation has finished.
572          */
573         virtual void GetJobAsync(const Model::GetJobRequest& request, const GetJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
574 
575         /**
576          * <p>This operation returns information about a revision.</p><p><h3>See Also:</h3>
577          * <a
578          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/GetRevision">AWS
579          * API Reference</a></p>
580          */
581         virtual Model::GetRevisionOutcome GetRevision(const Model::GetRevisionRequest& request) const;
582 
583         /**
584          * <p>This operation returns information about a revision.</p><p><h3>See Also:</h3>
585          * <a
586          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/GetRevision">AWS
587          * API Reference</a></p>
588          *
589          * returns a future to the operation so that it can be executed in parallel to other requests.
590          */
591         virtual Model::GetRevisionOutcomeCallable GetRevisionCallable(const Model::GetRevisionRequest& request) const;
592 
593         /**
594          * <p>This operation returns information about a revision.</p><p><h3>See Also:</h3>
595          * <a
596          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/GetRevision">AWS
597          * API Reference</a></p>
598          *
599          * Queues the request into a thread executor and triggers associated callback when operation has finished.
600          */
601         virtual void GetRevisionAsync(const Model::GetRevisionRequest& request, const GetRevisionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
602 
603         /**
604          * <p>This operation lists a data set's revisions sorted by CreatedAt in descending
605          * order.</p><p><h3>See Also:</h3>   <a
606          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/ListDataSetRevisions">AWS
607          * API Reference</a></p>
608          */
609         virtual Model::ListDataSetRevisionsOutcome ListDataSetRevisions(const Model::ListDataSetRevisionsRequest& request) const;
610 
611         /**
612          * <p>This operation lists a data set's revisions sorted by CreatedAt in descending
613          * order.</p><p><h3>See Also:</h3>   <a
614          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/ListDataSetRevisions">AWS
615          * API Reference</a></p>
616          *
617          * returns a future to the operation so that it can be executed in parallel to other requests.
618          */
619         virtual Model::ListDataSetRevisionsOutcomeCallable ListDataSetRevisionsCallable(const Model::ListDataSetRevisionsRequest& request) const;
620 
621         /**
622          * <p>This operation lists a data set's revisions sorted by CreatedAt in descending
623          * order.</p><p><h3>See Also:</h3>   <a
624          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/ListDataSetRevisions">AWS
625          * API Reference</a></p>
626          *
627          * Queues the request into a thread executor and triggers associated callback when operation has finished.
628          */
629         virtual void ListDataSetRevisionsAsync(const Model::ListDataSetRevisionsRequest& request, const ListDataSetRevisionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
630 
631         /**
632          * <p>This operation lists your data sets. When listing by origin OWNED, results
633          * are sorted by CreatedAt in descending order. When listing by origin ENTITLED,
634          * there is no order and the maxResults parameter is ignored.</p><p><h3>See
635          * Also:</h3>   <a
636          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/ListDataSets">AWS
637          * API Reference</a></p>
638          */
639         virtual Model::ListDataSetsOutcome ListDataSets(const Model::ListDataSetsRequest& request) const;
640 
641         /**
642          * <p>This operation lists your data sets. When listing by origin OWNED, results
643          * are sorted by CreatedAt in descending order. When listing by origin ENTITLED,
644          * there is no order and the maxResults parameter is ignored.</p><p><h3>See
645          * Also:</h3>   <a
646          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/ListDataSets">AWS
647          * API Reference</a></p>
648          *
649          * returns a future to the operation so that it can be executed in parallel to other requests.
650          */
651         virtual Model::ListDataSetsOutcomeCallable ListDataSetsCallable(const Model::ListDataSetsRequest& request) const;
652 
653         /**
654          * <p>This operation lists your data sets. When listing by origin OWNED, results
655          * are sorted by CreatedAt in descending order. When listing by origin ENTITLED,
656          * there is no order and the maxResults parameter is ignored.</p><p><h3>See
657          * Also:</h3>   <a
658          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/ListDataSets">AWS
659          * API Reference</a></p>
660          *
661          * Queues the request into a thread executor and triggers associated callback when operation has finished.
662          */
663         virtual void ListDataSetsAsync(const Model::ListDataSetsRequest& request, const ListDataSetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
664 
665         /**
666          * <p>This operation lists your event actions.</p><p><h3>See Also:</h3>   <a
667          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/ListEventActions">AWS
668          * API Reference</a></p>
669          */
670         virtual Model::ListEventActionsOutcome ListEventActions(const Model::ListEventActionsRequest& request) const;
671 
672         /**
673          * <p>This operation lists your event actions.</p><p><h3>See Also:</h3>   <a
674          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/ListEventActions">AWS
675          * API Reference</a></p>
676          *
677          * returns a future to the operation so that it can be executed in parallel to other requests.
678          */
679         virtual Model::ListEventActionsOutcomeCallable ListEventActionsCallable(const Model::ListEventActionsRequest& request) const;
680 
681         /**
682          * <p>This operation lists your event actions.</p><p><h3>See Also:</h3>   <a
683          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/ListEventActions">AWS
684          * API Reference</a></p>
685          *
686          * Queues the request into a thread executor and triggers associated callback when operation has finished.
687          */
688         virtual void ListEventActionsAsync(const Model::ListEventActionsRequest& request, const ListEventActionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
689 
690         /**
691          * <p>This operation lists your jobs sorted by CreatedAt in descending
692          * order.</p><p><h3>See Also:</h3>   <a
693          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/ListJobs">AWS
694          * API Reference</a></p>
695          */
696         virtual Model::ListJobsOutcome ListJobs(const Model::ListJobsRequest& request) const;
697 
698         /**
699          * <p>This operation lists your jobs sorted by CreatedAt in descending
700          * order.</p><p><h3>See Also:</h3>   <a
701          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/ListJobs">AWS
702          * API Reference</a></p>
703          *
704          * returns a future to the operation so that it can be executed in parallel to other requests.
705          */
706         virtual Model::ListJobsOutcomeCallable ListJobsCallable(const Model::ListJobsRequest& request) const;
707 
708         /**
709          * <p>This operation lists your jobs sorted by CreatedAt in descending
710          * order.</p><p><h3>See Also:</h3>   <a
711          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/ListJobs">AWS
712          * API Reference</a></p>
713          *
714          * Queues the request into a thread executor and triggers associated callback when operation has finished.
715          */
716         virtual void ListJobsAsync(const Model::ListJobsRequest& request, const ListJobsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
717 
718         /**
719          * <p>This operation lists a revision's assets sorted alphabetically in descending
720          * order.</p><p><h3>See Also:</h3>   <a
721          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/ListRevisionAssets">AWS
722          * API Reference</a></p>
723          */
724         virtual Model::ListRevisionAssetsOutcome ListRevisionAssets(const Model::ListRevisionAssetsRequest& request) const;
725 
726         /**
727          * <p>This operation lists a revision's assets sorted alphabetically in descending
728          * order.</p><p><h3>See Also:</h3>   <a
729          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/ListRevisionAssets">AWS
730          * API Reference</a></p>
731          *
732          * returns a future to the operation so that it can be executed in parallel to other requests.
733          */
734         virtual Model::ListRevisionAssetsOutcomeCallable ListRevisionAssetsCallable(const Model::ListRevisionAssetsRequest& request) const;
735 
736         /**
737          * <p>This operation lists a revision's assets sorted alphabetically in descending
738          * order.</p><p><h3>See Also:</h3>   <a
739          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/ListRevisionAssets">AWS
740          * API Reference</a></p>
741          *
742          * Queues the request into a thread executor and triggers associated callback when operation has finished.
743          */
744         virtual void ListRevisionAssetsAsync(const Model::ListRevisionAssetsRequest& request, const ListRevisionAssetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
745 
746         /**
747          * <p>This operation lists the tags on the resource.</p><p><h3>See Also:</h3>   <a
748          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/ListTagsForResource">AWS
749          * API Reference</a></p>
750          */
751         virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const;
752 
753         /**
754          * <p>This operation lists the tags on the resource.</p><p><h3>See Also:</h3>   <a
755          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/ListTagsForResource">AWS
756          * API Reference</a></p>
757          *
758          * returns a future to the operation so that it can be executed in parallel to other requests.
759          */
760         virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const;
761 
762         /**
763          * <p>This operation lists the tags on the resource.</p><p><h3>See Also:</h3>   <a
764          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/ListTagsForResource">AWS
765          * API Reference</a></p>
766          *
767          * Queues the request into a thread executor and triggers associated callback when operation has finished.
768          */
769         virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
770 
771         /**
772          * <p>This operation starts a job.</p><p><h3>See Also:</h3>   <a
773          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/StartJob">AWS
774          * API Reference</a></p>
775          */
776         virtual Model::StartJobOutcome StartJob(const Model::StartJobRequest& request) const;
777 
778         /**
779          * <p>This operation starts a job.</p><p><h3>See Also:</h3>   <a
780          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/StartJob">AWS
781          * API Reference</a></p>
782          *
783          * returns a future to the operation so that it can be executed in parallel to other requests.
784          */
785         virtual Model::StartJobOutcomeCallable StartJobCallable(const Model::StartJobRequest& request) const;
786 
787         /**
788          * <p>This operation starts a job.</p><p><h3>See Also:</h3>   <a
789          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/StartJob">AWS
790          * API Reference</a></p>
791          *
792          * Queues the request into a thread executor and triggers associated callback when operation has finished.
793          */
794         virtual void StartJobAsync(const Model::StartJobRequest& request, const StartJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
795 
796         /**
797          * <p>This operation tags a resource.</p><p><h3>See Also:</h3>   <a
798          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/TagResource">AWS
799          * API Reference</a></p>
800          */
801         virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const;
802 
803         /**
804          * <p>This operation tags a resource.</p><p><h3>See Also:</h3>   <a
805          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/TagResource">AWS
806          * API Reference</a></p>
807          *
808          * returns a future to the operation so that it can be executed in parallel to other requests.
809          */
810         virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const;
811 
812         /**
813          * <p>This operation tags a resource.</p><p><h3>See Also:</h3>   <a
814          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/TagResource">AWS
815          * API Reference</a></p>
816          *
817          * Queues the request into a thread executor and triggers associated callback when operation has finished.
818          */
819         virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
820 
821         /**
822          * <p>This operation removes one or more tags from a resource.</p><p><h3>See
823          * Also:</h3>   <a
824          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/UntagResource">AWS
825          * API Reference</a></p>
826          */
827         virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const;
828 
829         /**
830          * <p>This operation removes one or more tags from a resource.</p><p><h3>See
831          * Also:</h3>   <a
832          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/UntagResource">AWS
833          * API Reference</a></p>
834          *
835          * returns a future to the operation so that it can be executed in parallel to other requests.
836          */
837         virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const;
838 
839         /**
840          * <p>This operation removes one or more tags from a resource.</p><p><h3>See
841          * Also:</h3>   <a
842          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/UntagResource">AWS
843          * API Reference</a></p>
844          *
845          * Queues the request into a thread executor and triggers associated callback when operation has finished.
846          */
847         virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
848 
849         /**
850          * <p>This operation updates an asset.</p><p><h3>See Also:</h3>   <a
851          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/UpdateAsset">AWS
852          * API Reference</a></p>
853          */
854         virtual Model::UpdateAssetOutcome UpdateAsset(const Model::UpdateAssetRequest& request) const;
855 
856         /**
857          * <p>This operation updates an asset.</p><p><h3>See Also:</h3>   <a
858          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/UpdateAsset">AWS
859          * API Reference</a></p>
860          *
861          * returns a future to the operation so that it can be executed in parallel to other requests.
862          */
863         virtual Model::UpdateAssetOutcomeCallable UpdateAssetCallable(const Model::UpdateAssetRequest& request) const;
864 
865         /**
866          * <p>This operation updates an asset.</p><p><h3>See Also:</h3>   <a
867          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/UpdateAsset">AWS
868          * API Reference</a></p>
869          *
870          * Queues the request into a thread executor and triggers associated callback when operation has finished.
871          */
872         virtual void UpdateAssetAsync(const Model::UpdateAssetRequest& request, const UpdateAssetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
873 
874         /**
875          * <p>This operation updates a data set.</p><p><h3>See Also:</h3>   <a
876          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/UpdateDataSet">AWS
877          * API Reference</a></p>
878          */
879         virtual Model::UpdateDataSetOutcome UpdateDataSet(const Model::UpdateDataSetRequest& request) const;
880 
881         /**
882          * <p>This operation updates a data set.</p><p><h3>See Also:</h3>   <a
883          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/UpdateDataSet">AWS
884          * API Reference</a></p>
885          *
886          * returns a future to the operation so that it can be executed in parallel to other requests.
887          */
888         virtual Model::UpdateDataSetOutcomeCallable UpdateDataSetCallable(const Model::UpdateDataSetRequest& request) const;
889 
890         /**
891          * <p>This operation updates a data set.</p><p><h3>See Also:</h3>   <a
892          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/UpdateDataSet">AWS
893          * API Reference</a></p>
894          *
895          * Queues the request into a thread executor and triggers associated callback when operation has finished.
896          */
897         virtual void UpdateDataSetAsync(const Model::UpdateDataSetRequest& request, const UpdateDataSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
898 
899         /**
900          * <p>This operation updates the event action.</p><p><h3>See Also:</h3>   <a
901          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/UpdateEventAction">AWS
902          * API Reference</a></p>
903          */
904         virtual Model::UpdateEventActionOutcome UpdateEventAction(const Model::UpdateEventActionRequest& request) const;
905 
906         /**
907          * <p>This operation updates the event action.</p><p><h3>See Also:</h3>   <a
908          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/UpdateEventAction">AWS
909          * API Reference</a></p>
910          *
911          * returns a future to the operation so that it can be executed in parallel to other requests.
912          */
913         virtual Model::UpdateEventActionOutcomeCallable UpdateEventActionCallable(const Model::UpdateEventActionRequest& request) const;
914 
915         /**
916          * <p>This operation updates the event action.</p><p><h3>See Also:</h3>   <a
917          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/UpdateEventAction">AWS
918          * API Reference</a></p>
919          *
920          * Queues the request into a thread executor and triggers associated callback when operation has finished.
921          */
922         virtual void UpdateEventActionAsync(const Model::UpdateEventActionRequest& request, const UpdateEventActionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
923 
924         /**
925          * <p>This operation updates a revision.</p><p><h3>See Also:</h3>   <a
926          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/UpdateRevision">AWS
927          * API Reference</a></p>
928          */
929         virtual Model::UpdateRevisionOutcome UpdateRevision(const Model::UpdateRevisionRequest& request) const;
930 
931         /**
932          * <p>This operation updates a revision.</p><p><h3>See Also:</h3>   <a
933          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/UpdateRevision">AWS
934          * API Reference</a></p>
935          *
936          * returns a future to the operation so that it can be executed in parallel to other requests.
937          */
938         virtual Model::UpdateRevisionOutcomeCallable UpdateRevisionCallable(const Model::UpdateRevisionRequest& request) const;
939 
940         /**
941          * <p>This operation updates a revision.</p><p><h3>See Also:</h3>   <a
942          * href="http://docs.aws.amazon.com/goto/WebAPI/dataexchange-2017-07-25/UpdateRevision">AWS
943          * API Reference</a></p>
944          *
945          * Queues the request into a thread executor and triggers associated callback when operation has finished.
946          */
947         virtual void UpdateRevisionAsync(const Model::UpdateRevisionRequest& request, const UpdateRevisionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
948 
949 
950       void OverrideEndpoint(const Aws::String& endpoint);
951     private:
952       void init(const Aws::Client::ClientConfiguration& clientConfiguration);
953         void CancelJobAsyncHelper(const Model::CancelJobRequest& request, const CancelJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
954         void CreateDataSetAsyncHelper(const Model::CreateDataSetRequest& request, const CreateDataSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
955         void CreateEventActionAsyncHelper(const Model::CreateEventActionRequest& request, const CreateEventActionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
956         void CreateJobAsyncHelper(const Model::CreateJobRequest& request, const CreateJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
957         void CreateRevisionAsyncHelper(const Model::CreateRevisionRequest& request, const CreateRevisionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
958         void DeleteAssetAsyncHelper(const Model::DeleteAssetRequest& request, const DeleteAssetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
959         void DeleteDataSetAsyncHelper(const Model::DeleteDataSetRequest& request, const DeleteDataSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
960         void DeleteEventActionAsyncHelper(const Model::DeleteEventActionRequest& request, const DeleteEventActionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
961         void DeleteRevisionAsyncHelper(const Model::DeleteRevisionRequest& request, const DeleteRevisionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
962         void GetAssetAsyncHelper(const Model::GetAssetRequest& request, const GetAssetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
963         void GetDataSetAsyncHelper(const Model::GetDataSetRequest& request, const GetDataSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
964         void GetEventActionAsyncHelper(const Model::GetEventActionRequest& request, const GetEventActionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
965         void GetJobAsyncHelper(const Model::GetJobRequest& request, const GetJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
966         void GetRevisionAsyncHelper(const Model::GetRevisionRequest& request, const GetRevisionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
967         void ListDataSetRevisionsAsyncHelper(const Model::ListDataSetRevisionsRequest& request, const ListDataSetRevisionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
968         void ListDataSetsAsyncHelper(const Model::ListDataSetsRequest& request, const ListDataSetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
969         void ListEventActionsAsyncHelper(const Model::ListEventActionsRequest& request, const ListEventActionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
970         void ListJobsAsyncHelper(const Model::ListJobsRequest& request, const ListJobsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
971         void ListRevisionAssetsAsyncHelper(const Model::ListRevisionAssetsRequest& request, const ListRevisionAssetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
972         void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
973         void StartJobAsyncHelper(const Model::StartJobRequest& request, const StartJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
974         void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
975         void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
976         void UpdateAssetAsyncHelper(const Model::UpdateAssetRequest& request, const UpdateAssetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
977         void UpdateDataSetAsyncHelper(const Model::UpdateDataSetRequest& request, const UpdateDataSetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
978         void UpdateEventActionAsyncHelper(const Model::UpdateEventActionRequest& request, const UpdateEventActionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
979         void UpdateRevisionAsyncHelper(const Model::UpdateRevisionRequest& request, const UpdateRevisionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
980 
981       Aws::String m_uri;
982       Aws::String m_configScheme;
983       std::shared_ptr<Aws::Utils::Threading::Executor> m_executor;
984   };
985 
986 } // namespace DataExchange
987 } // namespace Aws
988