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/appintegrations/AppIntegrationsService_EXPORTS.h>
8 #include <aws/appintegrations/AppIntegrationsServiceErrors.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/appintegrations/model/CreateDataIntegrationResult.h>
15 #include <aws/appintegrations/model/CreateEventIntegrationResult.h>
16 #include <aws/appintegrations/model/DeleteDataIntegrationResult.h>
17 #include <aws/appintegrations/model/DeleteEventIntegrationResult.h>
18 #include <aws/appintegrations/model/GetDataIntegrationResult.h>
19 #include <aws/appintegrations/model/GetEventIntegrationResult.h>
20 #include <aws/appintegrations/model/ListDataIntegrationAssociationsResult.h>
21 #include <aws/appintegrations/model/ListDataIntegrationsResult.h>
22 #include <aws/appintegrations/model/ListEventIntegrationAssociationsResult.h>
23 #include <aws/appintegrations/model/ListEventIntegrationsResult.h>
24 #include <aws/appintegrations/model/ListTagsForResourceResult.h>
25 #include <aws/appintegrations/model/TagResourceResult.h>
26 #include <aws/appintegrations/model/UntagResourceResult.h>
27 #include <aws/appintegrations/model/UpdateDataIntegrationResult.h>
28 #include <aws/appintegrations/model/UpdateEventIntegrationResult.h>
29 #include <aws/core/client/AsyncCallerContext.h>
30 #include <aws/core/http/HttpTypes.h>
31 #include <future>
32 #include <functional>
33 
34 namespace Aws
35 {
36 
37 namespace Http
38 {
39   class HttpClient;
40   class HttpClientFactory;
41 } // namespace Http
42 
43 namespace Utils
44 {
45   template< typename R, typename E> class Outcome;
46 namespace Threading
47 {
48   class Executor;
49 } // namespace Threading
50 } // namespace Utils
51 
52 namespace Auth
53 {
54   class AWSCredentials;
55   class AWSCredentialsProvider;
56 } // namespace Auth
57 
58 namespace Client
59 {
60   class RetryStrategy;
61 } // namespace Client
62 
63 namespace AppIntegrationsService
64 {
65 
66 namespace Model
67 {
68         class CreateDataIntegrationRequest;
69         class CreateEventIntegrationRequest;
70         class DeleteDataIntegrationRequest;
71         class DeleteEventIntegrationRequest;
72         class GetDataIntegrationRequest;
73         class GetEventIntegrationRequest;
74         class ListDataIntegrationAssociationsRequest;
75         class ListDataIntegrationsRequest;
76         class ListEventIntegrationAssociationsRequest;
77         class ListEventIntegrationsRequest;
78         class ListTagsForResourceRequest;
79         class TagResourceRequest;
80         class UntagResourceRequest;
81         class UpdateDataIntegrationRequest;
82         class UpdateEventIntegrationRequest;
83 
84         typedef Aws::Utils::Outcome<CreateDataIntegrationResult, AppIntegrationsServiceError> CreateDataIntegrationOutcome;
85         typedef Aws::Utils::Outcome<CreateEventIntegrationResult, AppIntegrationsServiceError> CreateEventIntegrationOutcome;
86         typedef Aws::Utils::Outcome<DeleteDataIntegrationResult, AppIntegrationsServiceError> DeleteDataIntegrationOutcome;
87         typedef Aws::Utils::Outcome<DeleteEventIntegrationResult, AppIntegrationsServiceError> DeleteEventIntegrationOutcome;
88         typedef Aws::Utils::Outcome<GetDataIntegrationResult, AppIntegrationsServiceError> GetDataIntegrationOutcome;
89         typedef Aws::Utils::Outcome<GetEventIntegrationResult, AppIntegrationsServiceError> GetEventIntegrationOutcome;
90         typedef Aws::Utils::Outcome<ListDataIntegrationAssociationsResult, AppIntegrationsServiceError> ListDataIntegrationAssociationsOutcome;
91         typedef Aws::Utils::Outcome<ListDataIntegrationsResult, AppIntegrationsServiceError> ListDataIntegrationsOutcome;
92         typedef Aws::Utils::Outcome<ListEventIntegrationAssociationsResult, AppIntegrationsServiceError> ListEventIntegrationAssociationsOutcome;
93         typedef Aws::Utils::Outcome<ListEventIntegrationsResult, AppIntegrationsServiceError> ListEventIntegrationsOutcome;
94         typedef Aws::Utils::Outcome<ListTagsForResourceResult, AppIntegrationsServiceError> ListTagsForResourceOutcome;
95         typedef Aws::Utils::Outcome<TagResourceResult, AppIntegrationsServiceError> TagResourceOutcome;
96         typedef Aws::Utils::Outcome<UntagResourceResult, AppIntegrationsServiceError> UntagResourceOutcome;
97         typedef Aws::Utils::Outcome<UpdateDataIntegrationResult, AppIntegrationsServiceError> UpdateDataIntegrationOutcome;
98         typedef Aws::Utils::Outcome<UpdateEventIntegrationResult, AppIntegrationsServiceError> UpdateEventIntegrationOutcome;
99 
100         typedef std::future<CreateDataIntegrationOutcome> CreateDataIntegrationOutcomeCallable;
101         typedef std::future<CreateEventIntegrationOutcome> CreateEventIntegrationOutcomeCallable;
102         typedef std::future<DeleteDataIntegrationOutcome> DeleteDataIntegrationOutcomeCallable;
103         typedef std::future<DeleteEventIntegrationOutcome> DeleteEventIntegrationOutcomeCallable;
104         typedef std::future<GetDataIntegrationOutcome> GetDataIntegrationOutcomeCallable;
105         typedef std::future<GetEventIntegrationOutcome> GetEventIntegrationOutcomeCallable;
106         typedef std::future<ListDataIntegrationAssociationsOutcome> ListDataIntegrationAssociationsOutcomeCallable;
107         typedef std::future<ListDataIntegrationsOutcome> ListDataIntegrationsOutcomeCallable;
108         typedef std::future<ListEventIntegrationAssociationsOutcome> ListEventIntegrationAssociationsOutcomeCallable;
109         typedef std::future<ListEventIntegrationsOutcome> ListEventIntegrationsOutcomeCallable;
110         typedef std::future<ListTagsForResourceOutcome> ListTagsForResourceOutcomeCallable;
111         typedef std::future<TagResourceOutcome> TagResourceOutcomeCallable;
112         typedef std::future<UntagResourceOutcome> UntagResourceOutcomeCallable;
113         typedef std::future<UpdateDataIntegrationOutcome> UpdateDataIntegrationOutcomeCallable;
114         typedef std::future<UpdateEventIntegrationOutcome> UpdateEventIntegrationOutcomeCallable;
115 } // namespace Model
116 
117   class AppIntegrationsServiceClient;
118 
119     typedef std::function<void(const AppIntegrationsServiceClient*, const Model::CreateDataIntegrationRequest&, const Model::CreateDataIntegrationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateDataIntegrationResponseReceivedHandler;
120     typedef std::function<void(const AppIntegrationsServiceClient*, const Model::CreateEventIntegrationRequest&, const Model::CreateEventIntegrationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateEventIntegrationResponseReceivedHandler;
121     typedef std::function<void(const AppIntegrationsServiceClient*, const Model::DeleteDataIntegrationRequest&, const Model::DeleteDataIntegrationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteDataIntegrationResponseReceivedHandler;
122     typedef std::function<void(const AppIntegrationsServiceClient*, const Model::DeleteEventIntegrationRequest&, const Model::DeleteEventIntegrationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteEventIntegrationResponseReceivedHandler;
123     typedef std::function<void(const AppIntegrationsServiceClient*, const Model::GetDataIntegrationRequest&, const Model::GetDataIntegrationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetDataIntegrationResponseReceivedHandler;
124     typedef std::function<void(const AppIntegrationsServiceClient*, const Model::GetEventIntegrationRequest&, const Model::GetEventIntegrationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetEventIntegrationResponseReceivedHandler;
125     typedef std::function<void(const AppIntegrationsServiceClient*, const Model::ListDataIntegrationAssociationsRequest&, const Model::ListDataIntegrationAssociationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListDataIntegrationAssociationsResponseReceivedHandler;
126     typedef std::function<void(const AppIntegrationsServiceClient*, const Model::ListDataIntegrationsRequest&, const Model::ListDataIntegrationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListDataIntegrationsResponseReceivedHandler;
127     typedef std::function<void(const AppIntegrationsServiceClient*, const Model::ListEventIntegrationAssociationsRequest&, const Model::ListEventIntegrationAssociationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListEventIntegrationAssociationsResponseReceivedHandler;
128     typedef std::function<void(const AppIntegrationsServiceClient*, const Model::ListEventIntegrationsRequest&, const Model::ListEventIntegrationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListEventIntegrationsResponseReceivedHandler;
129     typedef std::function<void(const AppIntegrationsServiceClient*, const Model::ListTagsForResourceRequest&, const Model::ListTagsForResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTagsForResourceResponseReceivedHandler;
130     typedef std::function<void(const AppIntegrationsServiceClient*, const Model::TagResourceRequest&, const Model::TagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TagResourceResponseReceivedHandler;
131     typedef std::function<void(const AppIntegrationsServiceClient*, const Model::UntagResourceRequest&, const Model::UntagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UntagResourceResponseReceivedHandler;
132     typedef std::function<void(const AppIntegrationsServiceClient*, const Model::UpdateDataIntegrationRequest&, const Model::UpdateDataIntegrationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateDataIntegrationResponseReceivedHandler;
133     typedef std::function<void(const AppIntegrationsServiceClient*, const Model::UpdateEventIntegrationRequest&, const Model::UpdateEventIntegrationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateEventIntegrationResponseReceivedHandler;
134 
135   /**
136    * <p>The Amazon AppIntegrations service enables you to configure and reuse
137    * connections to external applications.</p> <p>For information about how you can
138    * use external applications with Amazon Connect, see <a
139    * href="https://docs.aws.amazon.com/connect/latest/adminguide/crm.html">Set up
140    * pre-built integrations</a> and <a
141    * href="https://docs.aws.amazon.com/connect/latest/adminguide/amazon-connect-wisdom.html">Deliver
142    * information to agents using Amazon Connect Wisdom</a> in the <i>Amazon Connect
143    * Administrator Guide</i>.</p>
144    */
145   class AWS_APPINTEGRATIONSSERVICE_API AppIntegrationsServiceClient : public Aws::Client::AWSJsonClient
146   {
147     public:
148       typedef Aws::Client::AWSJsonClient BASECLASS;
149 
150        /**
151         * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
152         * is not specified, it will be initialized to default values.
153         */
154         AppIntegrationsServiceClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
155 
156        /**
157         * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
158         * is not specified, it will be initialized to default values.
159         */
160         AppIntegrationsServiceClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
161 
162        /**
163         * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
164         * the default http client factory will be used
165         */
166         AppIntegrationsServiceClient(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
167             const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
168 
169         virtual ~AppIntegrationsServiceClient();
170 
171 
172         /**
173          * <p>Creates and persists a DataIntegration resource.</p>  <p>You cannot
174          * create a DataIntegration association for a DataIntegration that has been
175          * previously associated. Use a different DataIntegration, or recreate the
176          * DataIntegration using the <code>CreateDataIntegration</code> API.</p>
177          * <p><h3>See Also:</h3>   <a
178          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/CreateDataIntegration">AWS
179          * API Reference</a></p>
180          */
181         virtual Model::CreateDataIntegrationOutcome CreateDataIntegration(const Model::CreateDataIntegrationRequest& request) const;
182 
183         /**
184          * <p>Creates and persists a DataIntegration resource.</p>  <p>You cannot
185          * create a DataIntegration association for a DataIntegration that has been
186          * previously associated. Use a different DataIntegration, or recreate the
187          * DataIntegration using the <code>CreateDataIntegration</code> API.</p>
188          * <p><h3>See Also:</h3>   <a
189          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/CreateDataIntegration">AWS
190          * API Reference</a></p>
191          *
192          * returns a future to the operation so that it can be executed in parallel to other requests.
193          */
194         virtual Model::CreateDataIntegrationOutcomeCallable CreateDataIntegrationCallable(const Model::CreateDataIntegrationRequest& request) const;
195 
196         /**
197          * <p>Creates and persists a DataIntegration resource.</p>  <p>You cannot
198          * create a DataIntegration association for a DataIntegration that has been
199          * previously associated. Use a different DataIntegration, or recreate the
200          * DataIntegration using the <code>CreateDataIntegration</code> API.</p>
201          * <p><h3>See Also:</h3>   <a
202          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/CreateDataIntegration">AWS
203          * API Reference</a></p>
204          *
205          * Queues the request into a thread executor and triggers associated callback when operation has finished.
206          */
207         virtual void CreateDataIntegrationAsync(const Model::CreateDataIntegrationRequest& request, const CreateDataIntegrationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
208 
209         /**
210          * <p>Creates an EventIntegration, given a specified name, description, and a
211          * reference to an Amazon EventBridge bus in your account and a partner event
212          * source that pushes events to that bus. No objects are created in the your
213          * account, only metadata that is persisted on the EventIntegration control
214          * plane.</p><p><h3>See Also:</h3>   <a
215          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/CreateEventIntegration">AWS
216          * API Reference</a></p>
217          */
218         virtual Model::CreateEventIntegrationOutcome CreateEventIntegration(const Model::CreateEventIntegrationRequest& request) const;
219 
220         /**
221          * <p>Creates an EventIntegration, given a specified name, description, and a
222          * reference to an Amazon EventBridge bus in your account and a partner event
223          * source that pushes events to that bus. No objects are created in the your
224          * account, only metadata that is persisted on the EventIntegration control
225          * plane.</p><p><h3>See Also:</h3>   <a
226          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/CreateEventIntegration">AWS
227          * API Reference</a></p>
228          *
229          * returns a future to the operation so that it can be executed in parallel to other requests.
230          */
231         virtual Model::CreateEventIntegrationOutcomeCallable CreateEventIntegrationCallable(const Model::CreateEventIntegrationRequest& request) const;
232 
233         /**
234          * <p>Creates an EventIntegration, given a specified name, description, and a
235          * reference to an Amazon EventBridge bus in your account and a partner event
236          * source that pushes events to that bus. No objects are created in the your
237          * account, only metadata that is persisted on the EventIntegration control
238          * plane.</p><p><h3>See Also:</h3>   <a
239          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/CreateEventIntegration">AWS
240          * API Reference</a></p>
241          *
242          * Queues the request into a thread executor and triggers associated callback when operation has finished.
243          */
244         virtual void CreateEventIntegrationAsync(const Model::CreateEventIntegrationRequest& request, const CreateEventIntegrationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
245 
246         /**
247          * <p>Deletes the DataIntegration. Only DataIntegrations that don't have any
248          * DataIntegrationAssociations can be deleted. Deleting a DataIntegration also
249          * deletes the underlying Amazon AppFlow flow and service linked role. </p>
250          * <p>You cannot create a DataIntegration association for a DataIntegration that
251          * has been previously associated. Use a different DataIntegration, or recreate the
252          * DataIntegration using the <a
253          * href="https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_CreateDataIntegration.html">CreateDataIntegration</a>
254          * API.</p> <p><h3>See Also:</h3>   <a
255          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/DeleteDataIntegration">AWS
256          * API Reference</a></p>
257          */
258         virtual Model::DeleteDataIntegrationOutcome DeleteDataIntegration(const Model::DeleteDataIntegrationRequest& request) const;
259 
260         /**
261          * <p>Deletes the DataIntegration. Only DataIntegrations that don't have any
262          * DataIntegrationAssociations can be deleted. Deleting a DataIntegration also
263          * deletes the underlying Amazon AppFlow flow and service linked role. </p>
264          * <p>You cannot create a DataIntegration association for a DataIntegration that
265          * has been previously associated. Use a different DataIntegration, or recreate the
266          * DataIntegration using the <a
267          * href="https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_CreateDataIntegration.html">CreateDataIntegration</a>
268          * API.</p> <p><h3>See Also:</h3>   <a
269          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/DeleteDataIntegration">AWS
270          * API Reference</a></p>
271          *
272          * returns a future to the operation so that it can be executed in parallel to other requests.
273          */
274         virtual Model::DeleteDataIntegrationOutcomeCallable DeleteDataIntegrationCallable(const Model::DeleteDataIntegrationRequest& request) const;
275 
276         /**
277          * <p>Deletes the DataIntegration. Only DataIntegrations that don't have any
278          * DataIntegrationAssociations can be deleted. Deleting a DataIntegration also
279          * deletes the underlying Amazon AppFlow flow and service linked role. </p>
280          * <p>You cannot create a DataIntegration association for a DataIntegration that
281          * has been previously associated. Use a different DataIntegration, or recreate the
282          * DataIntegration using the <a
283          * href="https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_CreateDataIntegration.html">CreateDataIntegration</a>
284          * API.</p> <p><h3>See Also:</h3>   <a
285          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/DeleteDataIntegration">AWS
286          * API Reference</a></p>
287          *
288          * Queues the request into a thread executor and triggers associated callback when operation has finished.
289          */
290         virtual void DeleteDataIntegrationAsync(const Model::DeleteDataIntegrationRequest& request, const DeleteDataIntegrationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
291 
292         /**
293          * <p>Deletes the specified existing event integration. If the event integration is
294          * associated with clients, the request is rejected.</p><p><h3>See Also:</h3>   <a
295          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/DeleteEventIntegration">AWS
296          * API Reference</a></p>
297          */
298         virtual Model::DeleteEventIntegrationOutcome DeleteEventIntegration(const Model::DeleteEventIntegrationRequest& request) const;
299 
300         /**
301          * <p>Deletes the specified existing event integration. If the event integration is
302          * associated with clients, the request is rejected.</p><p><h3>See Also:</h3>   <a
303          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/DeleteEventIntegration">AWS
304          * API Reference</a></p>
305          *
306          * returns a future to the operation so that it can be executed in parallel to other requests.
307          */
308         virtual Model::DeleteEventIntegrationOutcomeCallable DeleteEventIntegrationCallable(const Model::DeleteEventIntegrationRequest& request) const;
309 
310         /**
311          * <p>Deletes the specified existing event integration. If the event integration is
312          * associated with clients, the request is rejected.</p><p><h3>See Also:</h3>   <a
313          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/DeleteEventIntegration">AWS
314          * API Reference</a></p>
315          *
316          * Queues the request into a thread executor and triggers associated callback when operation has finished.
317          */
318         virtual void DeleteEventIntegrationAsync(const Model::DeleteEventIntegrationRequest& request, const DeleteEventIntegrationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
319 
320         /**
321          * <p>Returns information about the DataIntegration.</p>  <p>You cannot
322          * create a DataIntegration association for a DataIntegration that has been
323          * previously associated. Use a different DataIntegration, or recreate the
324          * DataIntegration using the <a
325          * href="https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_CreateDataIntegration.html">CreateDataIntegration</a>
326          * API.</p> <p><h3>See Also:</h3>   <a
327          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/GetDataIntegration">AWS
328          * API Reference</a></p>
329          */
330         virtual Model::GetDataIntegrationOutcome GetDataIntegration(const Model::GetDataIntegrationRequest& request) const;
331 
332         /**
333          * <p>Returns information about the DataIntegration.</p>  <p>You cannot
334          * create a DataIntegration association for a DataIntegration that has been
335          * previously associated. Use a different DataIntegration, or recreate the
336          * DataIntegration using the <a
337          * href="https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_CreateDataIntegration.html">CreateDataIntegration</a>
338          * API.</p> <p><h3>See Also:</h3>   <a
339          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/GetDataIntegration">AWS
340          * API Reference</a></p>
341          *
342          * returns a future to the operation so that it can be executed in parallel to other requests.
343          */
344         virtual Model::GetDataIntegrationOutcomeCallable GetDataIntegrationCallable(const Model::GetDataIntegrationRequest& request) const;
345 
346         /**
347          * <p>Returns information about the DataIntegration.</p>  <p>You cannot
348          * create a DataIntegration association for a DataIntegration that has been
349          * previously associated. Use a different DataIntegration, or recreate the
350          * DataIntegration using the <a
351          * href="https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_CreateDataIntegration.html">CreateDataIntegration</a>
352          * API.</p> <p><h3>See Also:</h3>   <a
353          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/GetDataIntegration">AWS
354          * API Reference</a></p>
355          *
356          * Queues the request into a thread executor and triggers associated callback when operation has finished.
357          */
358         virtual void GetDataIntegrationAsync(const Model::GetDataIntegrationRequest& request, const GetDataIntegrationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
359 
360         /**
361          * <p>Returns information about the event integration.</p><p><h3>See Also:</h3>
362          * <a
363          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/GetEventIntegration">AWS
364          * API Reference</a></p>
365          */
366         virtual Model::GetEventIntegrationOutcome GetEventIntegration(const Model::GetEventIntegrationRequest& request) const;
367 
368         /**
369          * <p>Returns information about the event integration.</p><p><h3>See Also:</h3>
370          * <a
371          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/GetEventIntegration">AWS
372          * API Reference</a></p>
373          *
374          * returns a future to the operation so that it can be executed in parallel to other requests.
375          */
376         virtual Model::GetEventIntegrationOutcomeCallable GetEventIntegrationCallable(const Model::GetEventIntegrationRequest& request) const;
377 
378         /**
379          * <p>Returns information about the event integration.</p><p><h3>See Also:</h3>
380          * <a
381          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/GetEventIntegration">AWS
382          * API Reference</a></p>
383          *
384          * Queues the request into a thread executor and triggers associated callback when operation has finished.
385          */
386         virtual void GetEventIntegrationAsync(const Model::GetEventIntegrationRequest& request, const GetEventIntegrationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
387 
388         /**
389          * <p>Returns a paginated list of DataIntegration associations in the account.</p>
390          *  <p>You cannot create a DataIntegration association for a DataIntegration
391          * that has been previously associated. Use a different DataIntegration, or
392          * recreate the DataIntegration using the <a
393          * href="https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_CreateDataIntegration.html">CreateDataIntegration</a>
394          * API.</p> <p><h3>See Also:</h3>   <a
395          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListDataIntegrationAssociations">AWS
396          * API Reference</a></p>
397          */
398         virtual Model::ListDataIntegrationAssociationsOutcome ListDataIntegrationAssociations(const Model::ListDataIntegrationAssociationsRequest& request) const;
399 
400         /**
401          * <p>Returns a paginated list of DataIntegration associations in the account.</p>
402          *  <p>You cannot create a DataIntegration association for a DataIntegration
403          * that has been previously associated. Use a different DataIntegration, or
404          * recreate the DataIntegration using the <a
405          * href="https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_CreateDataIntegration.html">CreateDataIntegration</a>
406          * API.</p> <p><h3>See Also:</h3>   <a
407          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListDataIntegrationAssociations">AWS
408          * API Reference</a></p>
409          *
410          * returns a future to the operation so that it can be executed in parallel to other requests.
411          */
412         virtual Model::ListDataIntegrationAssociationsOutcomeCallable ListDataIntegrationAssociationsCallable(const Model::ListDataIntegrationAssociationsRequest& request) const;
413 
414         /**
415          * <p>Returns a paginated list of DataIntegration associations in the account.</p>
416          *  <p>You cannot create a DataIntegration association for a DataIntegration
417          * that has been previously associated. Use a different DataIntegration, or
418          * recreate the DataIntegration using the <a
419          * href="https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_CreateDataIntegration.html">CreateDataIntegration</a>
420          * API.</p> <p><h3>See Also:</h3>   <a
421          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListDataIntegrationAssociations">AWS
422          * API Reference</a></p>
423          *
424          * Queues the request into a thread executor and triggers associated callback when operation has finished.
425          */
426         virtual void ListDataIntegrationAssociationsAsync(const Model::ListDataIntegrationAssociationsRequest& request, const ListDataIntegrationAssociationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
427 
428         /**
429          * <p>Returns a paginated list of DataIntegrations in the account.</p>
430          * <p>You cannot create a DataIntegration association for a DataIntegration that
431          * has been previously associated. Use a different DataIntegration, or recreate the
432          * DataIntegration using the <a
433          * href="https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_CreateDataIntegration.html">CreateDataIntegration</a>
434          * API.</p> <p><h3>See Also:</h3>   <a
435          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListDataIntegrations">AWS
436          * API Reference</a></p>
437          */
438         virtual Model::ListDataIntegrationsOutcome ListDataIntegrations(const Model::ListDataIntegrationsRequest& request) const;
439 
440         /**
441          * <p>Returns a paginated list of DataIntegrations in the account.</p>
442          * <p>You cannot create a DataIntegration association for a DataIntegration that
443          * has been previously associated. Use a different DataIntegration, or recreate the
444          * DataIntegration using the <a
445          * href="https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_CreateDataIntegration.html">CreateDataIntegration</a>
446          * API.</p> <p><h3>See Also:</h3>   <a
447          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListDataIntegrations">AWS
448          * API Reference</a></p>
449          *
450          * returns a future to the operation so that it can be executed in parallel to other requests.
451          */
452         virtual Model::ListDataIntegrationsOutcomeCallable ListDataIntegrationsCallable(const Model::ListDataIntegrationsRequest& request) const;
453 
454         /**
455          * <p>Returns a paginated list of DataIntegrations in the account.</p>
456          * <p>You cannot create a DataIntegration association for a DataIntegration that
457          * has been previously associated. Use a different DataIntegration, or recreate the
458          * DataIntegration using the <a
459          * href="https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_CreateDataIntegration.html">CreateDataIntegration</a>
460          * API.</p> <p><h3>See Also:</h3>   <a
461          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListDataIntegrations">AWS
462          * API Reference</a></p>
463          *
464          * Queues the request into a thread executor and triggers associated callback when operation has finished.
465          */
466         virtual void ListDataIntegrationsAsync(const Model::ListDataIntegrationsRequest& request, const ListDataIntegrationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
467 
468         /**
469          * <p>Returns a paginated list of event integration associations in the account.
470          * </p><p><h3>See Also:</h3>   <a
471          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListEventIntegrationAssociations">AWS
472          * API Reference</a></p>
473          */
474         virtual Model::ListEventIntegrationAssociationsOutcome ListEventIntegrationAssociations(const Model::ListEventIntegrationAssociationsRequest& request) const;
475 
476         /**
477          * <p>Returns a paginated list of event integration associations in the account.
478          * </p><p><h3>See Also:</h3>   <a
479          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListEventIntegrationAssociations">AWS
480          * API Reference</a></p>
481          *
482          * returns a future to the operation so that it can be executed in parallel to other requests.
483          */
484         virtual Model::ListEventIntegrationAssociationsOutcomeCallable ListEventIntegrationAssociationsCallable(const Model::ListEventIntegrationAssociationsRequest& request) const;
485 
486         /**
487          * <p>Returns a paginated list of event integration associations in the account.
488          * </p><p><h3>See Also:</h3>   <a
489          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListEventIntegrationAssociations">AWS
490          * API Reference</a></p>
491          *
492          * Queues the request into a thread executor and triggers associated callback when operation has finished.
493          */
494         virtual void ListEventIntegrationAssociationsAsync(const Model::ListEventIntegrationAssociationsRequest& request, const ListEventIntegrationAssociationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
495 
496         /**
497          * <p>Returns a paginated list of event integrations in the account.</p><p><h3>See
498          * Also:</h3>   <a
499          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListEventIntegrations">AWS
500          * API Reference</a></p>
501          */
502         virtual Model::ListEventIntegrationsOutcome ListEventIntegrations(const Model::ListEventIntegrationsRequest& request) const;
503 
504         /**
505          * <p>Returns a paginated list of event integrations in the account.</p><p><h3>See
506          * Also:</h3>   <a
507          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListEventIntegrations">AWS
508          * API Reference</a></p>
509          *
510          * returns a future to the operation so that it can be executed in parallel to other requests.
511          */
512         virtual Model::ListEventIntegrationsOutcomeCallable ListEventIntegrationsCallable(const Model::ListEventIntegrationsRequest& request) const;
513 
514         /**
515          * <p>Returns a paginated list of event integrations in the account.</p><p><h3>See
516          * Also:</h3>   <a
517          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListEventIntegrations">AWS
518          * API Reference</a></p>
519          *
520          * Queues the request into a thread executor and triggers associated callback when operation has finished.
521          */
522         virtual void ListEventIntegrationsAsync(const Model::ListEventIntegrationsRequest& request, const ListEventIntegrationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
523 
524         /**
525          * <p>Lists the tags for the specified resource.</p><p><h3>See Also:</h3>   <a
526          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListTagsForResource">AWS
527          * API Reference</a></p>
528          */
529         virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const;
530 
531         /**
532          * <p>Lists the tags for the specified resource.</p><p><h3>See Also:</h3>   <a
533          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListTagsForResource">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::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const;
539 
540         /**
541          * <p>Lists the tags for the specified resource.</p><p><h3>See Also:</h3>   <a
542          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/ListTagsForResource">AWS
543          * API Reference</a></p>
544          *
545          * Queues the request into a thread executor and triggers associated callback when operation has finished.
546          */
547         virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
548 
549         /**
550          * <p>Adds the specified tags to the specified resource.</p><p><h3>See Also:</h3>
551          * <a
552          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/TagResource">AWS
553          * API Reference</a></p>
554          */
555         virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const;
556 
557         /**
558          * <p>Adds the specified tags to the specified resource.</p><p><h3>See Also:</h3>
559          * <a
560          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/TagResource">AWS
561          * API Reference</a></p>
562          *
563          * returns a future to the operation so that it can be executed in parallel to other requests.
564          */
565         virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const;
566 
567         /**
568          * <p>Adds the specified tags to the specified resource.</p><p><h3>See Also:</h3>
569          * <a
570          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/TagResource">AWS
571          * API Reference</a></p>
572          *
573          * Queues the request into a thread executor and triggers associated callback when operation has finished.
574          */
575         virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
576 
577         /**
578          * <p>Removes the specified tags from the specified resource.</p><p><h3>See
579          * Also:</h3>   <a
580          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/UntagResource">AWS
581          * API Reference</a></p>
582          */
583         virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const;
584 
585         /**
586          * <p>Removes the specified tags from the specified resource.</p><p><h3>See
587          * Also:</h3>   <a
588          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/UntagResource">AWS
589          * API Reference</a></p>
590          *
591          * returns a future to the operation so that it can be executed in parallel to other requests.
592          */
593         virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const;
594 
595         /**
596          * <p>Removes the specified tags from the specified resource.</p><p><h3>See
597          * Also:</h3>   <a
598          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/UntagResource">AWS
599          * API Reference</a></p>
600          *
601          * Queues the request into a thread executor and triggers associated callback when operation has finished.
602          */
603         virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
604 
605         /**
606          * <p>Updates the description of a DataIntegration.</p>  <p>You cannot create
607          * a DataIntegration association for a DataIntegration that has been previously
608          * associated. Use a different DataIntegration, or recreate the DataIntegration
609          * using the <a
610          * href="https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_CreateDataIntegration.html">CreateDataIntegration</a>
611          * API.</p> <p><h3>See Also:</h3>   <a
612          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/UpdateDataIntegration">AWS
613          * API Reference</a></p>
614          */
615         virtual Model::UpdateDataIntegrationOutcome UpdateDataIntegration(const Model::UpdateDataIntegrationRequest& request) const;
616 
617         /**
618          * <p>Updates the description of a DataIntegration.</p>  <p>You cannot create
619          * a DataIntegration association for a DataIntegration that has been previously
620          * associated. Use a different DataIntegration, or recreate the DataIntegration
621          * using the <a
622          * href="https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_CreateDataIntegration.html">CreateDataIntegration</a>
623          * API.</p> <p><h3>See Also:</h3>   <a
624          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/UpdateDataIntegration">AWS
625          * API Reference</a></p>
626          *
627          * returns a future to the operation so that it can be executed in parallel to other requests.
628          */
629         virtual Model::UpdateDataIntegrationOutcomeCallable UpdateDataIntegrationCallable(const Model::UpdateDataIntegrationRequest& request) const;
630 
631         /**
632          * <p>Updates the description of a DataIntegration.</p>  <p>You cannot create
633          * a DataIntegration association for a DataIntegration that has been previously
634          * associated. Use a different DataIntegration, or recreate the DataIntegration
635          * using the <a
636          * href="https://docs.aws.amazon.com/appintegrations/latest/APIReference/API_CreateDataIntegration.html">CreateDataIntegration</a>
637          * API.</p> <p><h3>See Also:</h3>   <a
638          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/UpdateDataIntegration">AWS
639          * API Reference</a></p>
640          *
641          * Queues the request into a thread executor and triggers associated callback when operation has finished.
642          */
643         virtual void UpdateDataIntegrationAsync(const Model::UpdateDataIntegrationRequest& request, const UpdateDataIntegrationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
644 
645         /**
646          * <p>Updates the description of an event integration.</p><p><h3>See Also:</h3>
647          * <a
648          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/UpdateEventIntegration">AWS
649          * API Reference</a></p>
650          */
651         virtual Model::UpdateEventIntegrationOutcome UpdateEventIntegration(const Model::UpdateEventIntegrationRequest& request) const;
652 
653         /**
654          * <p>Updates the description of an event integration.</p><p><h3>See Also:</h3>
655          * <a
656          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/UpdateEventIntegration">AWS
657          * API Reference</a></p>
658          *
659          * returns a future to the operation so that it can be executed in parallel to other requests.
660          */
661         virtual Model::UpdateEventIntegrationOutcomeCallable UpdateEventIntegrationCallable(const Model::UpdateEventIntegrationRequest& request) const;
662 
663         /**
664          * <p>Updates the description of an event integration.</p><p><h3>See Also:</h3>
665          * <a
666          * href="http://docs.aws.amazon.com/goto/WebAPI/appintegrations-2020-07-29/UpdateEventIntegration">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 UpdateEventIntegrationAsync(const Model::UpdateEventIntegrationRequest& request, const UpdateEventIntegrationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
672 
673 
674       void OverrideEndpoint(const Aws::String& endpoint);
675     private:
676       void init(const Aws::Client::ClientConfiguration& clientConfiguration);
677         void CreateDataIntegrationAsyncHelper(const Model::CreateDataIntegrationRequest& request, const CreateDataIntegrationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
678         void CreateEventIntegrationAsyncHelper(const Model::CreateEventIntegrationRequest& request, const CreateEventIntegrationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
679         void DeleteDataIntegrationAsyncHelper(const Model::DeleteDataIntegrationRequest& request, const DeleteDataIntegrationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
680         void DeleteEventIntegrationAsyncHelper(const Model::DeleteEventIntegrationRequest& request, const DeleteEventIntegrationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
681         void GetDataIntegrationAsyncHelper(const Model::GetDataIntegrationRequest& request, const GetDataIntegrationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
682         void GetEventIntegrationAsyncHelper(const Model::GetEventIntegrationRequest& request, const GetEventIntegrationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
683         void ListDataIntegrationAssociationsAsyncHelper(const Model::ListDataIntegrationAssociationsRequest& request, const ListDataIntegrationAssociationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
684         void ListDataIntegrationsAsyncHelper(const Model::ListDataIntegrationsRequest& request, const ListDataIntegrationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
685         void ListEventIntegrationAssociationsAsyncHelper(const Model::ListEventIntegrationAssociationsRequest& request, const ListEventIntegrationAssociationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
686         void ListEventIntegrationsAsyncHelper(const Model::ListEventIntegrationsRequest& request, const ListEventIntegrationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
687         void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
688         void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
689         void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
690         void UpdateDataIntegrationAsyncHelper(const Model::UpdateDataIntegrationRequest& request, const UpdateDataIntegrationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
691         void UpdateEventIntegrationAsyncHelper(const Model::UpdateEventIntegrationRequest& request, const UpdateEventIntegrationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
692 
693       Aws::String m_uri;
694       Aws::String m_configScheme;
695       std::shared_ptr<Aws::Utils::Threading::Executor> m_executor;
696   };
697 
698 } // namespace AppIntegrationsService
699 } // namespace Aws
700