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/schemas/Schemas_EXPORTS.h>
8 #include <aws/schemas/SchemasErrors.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/schemas/model/CreateDiscovererResult.h>
15 #include <aws/schemas/model/CreateRegistryResult.h>
16 #include <aws/schemas/model/CreateSchemaResult.h>
17 #include <aws/schemas/model/DescribeCodeBindingResult.h>
18 #include <aws/schemas/model/DescribeDiscovererResult.h>
19 #include <aws/schemas/model/DescribeRegistryResult.h>
20 #include <aws/schemas/model/DescribeSchemaResult.h>
21 #include <aws/schemas/model/ExportSchemaResult.h>
22 #include <aws/schemas/model/GetCodeBindingSourceResult.h>
23 #include <aws/schemas/model/GetDiscoveredSchemaResult.h>
24 #include <aws/schemas/model/GetResourcePolicyResult.h>
25 #include <aws/schemas/model/ListDiscoverersResult.h>
26 #include <aws/schemas/model/ListRegistriesResult.h>
27 #include <aws/schemas/model/ListSchemaVersionsResult.h>
28 #include <aws/schemas/model/ListSchemasResult.h>
29 #include <aws/schemas/model/ListTagsForResourceResult.h>
30 #include <aws/schemas/model/PutCodeBindingResult.h>
31 #include <aws/schemas/model/PutResourcePolicyResult.h>
32 #include <aws/schemas/model/SearchSchemasResult.h>
33 #include <aws/schemas/model/StartDiscovererResult.h>
34 #include <aws/schemas/model/StopDiscovererResult.h>
35 #include <aws/schemas/model/UpdateDiscovererResult.h>
36 #include <aws/schemas/model/UpdateRegistryResult.h>
37 #include <aws/schemas/model/UpdateSchemaResult.h>
38 #include <aws/core/NoResult.h>
39 #include <aws/core/client/AsyncCallerContext.h>
40 #include <aws/core/http/HttpTypes.h>
41 #include <future>
42 #include <functional>
43 
44 namespace Aws
45 {
46 
47 namespace Http
48 {
49   class HttpClient;
50   class HttpClientFactory;
51 } // namespace Http
52 
53 namespace Utils
54 {
55   template< typename R, typename E> class Outcome;
56 namespace Threading
57 {
58   class Executor;
59 } // namespace Threading
60 } // namespace Utils
61 
62 namespace Auth
63 {
64   class AWSCredentials;
65   class AWSCredentialsProvider;
66 } // namespace Auth
67 
68 namespace Client
69 {
70   class RetryStrategy;
71 } // namespace Client
72 
73 namespace Schemas
74 {
75 
76 namespace Model
77 {
78         class CreateDiscovererRequest;
79         class CreateRegistryRequest;
80         class CreateSchemaRequest;
81         class DeleteDiscovererRequest;
82         class DeleteRegistryRequest;
83         class DeleteResourcePolicyRequest;
84         class DeleteSchemaRequest;
85         class DeleteSchemaVersionRequest;
86         class DescribeCodeBindingRequest;
87         class DescribeDiscovererRequest;
88         class DescribeRegistryRequest;
89         class DescribeSchemaRequest;
90         class ExportSchemaRequest;
91         class GetCodeBindingSourceRequest;
92         class GetDiscoveredSchemaRequest;
93         class GetResourcePolicyRequest;
94         class ListDiscoverersRequest;
95         class ListRegistriesRequest;
96         class ListSchemaVersionsRequest;
97         class ListSchemasRequest;
98         class ListTagsForResourceRequest;
99         class PutCodeBindingRequest;
100         class PutResourcePolicyRequest;
101         class SearchSchemasRequest;
102         class StartDiscovererRequest;
103         class StopDiscovererRequest;
104         class TagResourceRequest;
105         class UntagResourceRequest;
106         class UpdateDiscovererRequest;
107         class UpdateRegistryRequest;
108         class UpdateSchemaRequest;
109 
110         typedef Aws::Utils::Outcome<CreateDiscovererResult, SchemasError> CreateDiscovererOutcome;
111         typedef Aws::Utils::Outcome<CreateRegistryResult, SchemasError> CreateRegistryOutcome;
112         typedef Aws::Utils::Outcome<CreateSchemaResult, SchemasError> CreateSchemaOutcome;
113         typedef Aws::Utils::Outcome<Aws::NoResult, SchemasError> DeleteDiscovererOutcome;
114         typedef Aws::Utils::Outcome<Aws::NoResult, SchemasError> DeleteRegistryOutcome;
115         typedef Aws::Utils::Outcome<Aws::NoResult, SchemasError> DeleteResourcePolicyOutcome;
116         typedef Aws::Utils::Outcome<Aws::NoResult, SchemasError> DeleteSchemaOutcome;
117         typedef Aws::Utils::Outcome<Aws::NoResult, SchemasError> DeleteSchemaVersionOutcome;
118         typedef Aws::Utils::Outcome<DescribeCodeBindingResult, SchemasError> DescribeCodeBindingOutcome;
119         typedef Aws::Utils::Outcome<DescribeDiscovererResult, SchemasError> DescribeDiscovererOutcome;
120         typedef Aws::Utils::Outcome<DescribeRegistryResult, SchemasError> DescribeRegistryOutcome;
121         typedef Aws::Utils::Outcome<DescribeSchemaResult, SchemasError> DescribeSchemaOutcome;
122         typedef Aws::Utils::Outcome<ExportSchemaResult, SchemasError> ExportSchemaOutcome;
123         typedef Aws::Utils::Outcome<GetCodeBindingSourceResult, SchemasError> GetCodeBindingSourceOutcome;
124         typedef Aws::Utils::Outcome<GetDiscoveredSchemaResult, SchemasError> GetDiscoveredSchemaOutcome;
125         typedef Aws::Utils::Outcome<GetResourcePolicyResult, SchemasError> GetResourcePolicyOutcome;
126         typedef Aws::Utils::Outcome<ListDiscoverersResult, SchemasError> ListDiscoverersOutcome;
127         typedef Aws::Utils::Outcome<ListRegistriesResult, SchemasError> ListRegistriesOutcome;
128         typedef Aws::Utils::Outcome<ListSchemaVersionsResult, SchemasError> ListSchemaVersionsOutcome;
129         typedef Aws::Utils::Outcome<ListSchemasResult, SchemasError> ListSchemasOutcome;
130         typedef Aws::Utils::Outcome<ListTagsForResourceResult, SchemasError> ListTagsForResourceOutcome;
131         typedef Aws::Utils::Outcome<PutCodeBindingResult, SchemasError> PutCodeBindingOutcome;
132         typedef Aws::Utils::Outcome<PutResourcePolicyResult, SchemasError> PutResourcePolicyOutcome;
133         typedef Aws::Utils::Outcome<SearchSchemasResult, SchemasError> SearchSchemasOutcome;
134         typedef Aws::Utils::Outcome<StartDiscovererResult, SchemasError> StartDiscovererOutcome;
135         typedef Aws::Utils::Outcome<StopDiscovererResult, SchemasError> StopDiscovererOutcome;
136         typedef Aws::Utils::Outcome<Aws::NoResult, SchemasError> TagResourceOutcome;
137         typedef Aws::Utils::Outcome<Aws::NoResult, SchemasError> UntagResourceOutcome;
138         typedef Aws::Utils::Outcome<UpdateDiscovererResult, SchemasError> UpdateDiscovererOutcome;
139         typedef Aws::Utils::Outcome<UpdateRegistryResult, SchemasError> UpdateRegistryOutcome;
140         typedef Aws::Utils::Outcome<UpdateSchemaResult, SchemasError> UpdateSchemaOutcome;
141 
142         typedef std::future<CreateDiscovererOutcome> CreateDiscovererOutcomeCallable;
143         typedef std::future<CreateRegistryOutcome> CreateRegistryOutcomeCallable;
144         typedef std::future<CreateSchemaOutcome> CreateSchemaOutcomeCallable;
145         typedef std::future<DeleteDiscovererOutcome> DeleteDiscovererOutcomeCallable;
146         typedef std::future<DeleteRegistryOutcome> DeleteRegistryOutcomeCallable;
147         typedef std::future<DeleteResourcePolicyOutcome> DeleteResourcePolicyOutcomeCallable;
148         typedef std::future<DeleteSchemaOutcome> DeleteSchemaOutcomeCallable;
149         typedef std::future<DeleteSchemaVersionOutcome> DeleteSchemaVersionOutcomeCallable;
150         typedef std::future<DescribeCodeBindingOutcome> DescribeCodeBindingOutcomeCallable;
151         typedef std::future<DescribeDiscovererOutcome> DescribeDiscovererOutcomeCallable;
152         typedef std::future<DescribeRegistryOutcome> DescribeRegistryOutcomeCallable;
153         typedef std::future<DescribeSchemaOutcome> DescribeSchemaOutcomeCallable;
154         typedef std::future<ExportSchemaOutcome> ExportSchemaOutcomeCallable;
155         typedef std::future<GetCodeBindingSourceOutcome> GetCodeBindingSourceOutcomeCallable;
156         typedef std::future<GetDiscoveredSchemaOutcome> GetDiscoveredSchemaOutcomeCallable;
157         typedef std::future<GetResourcePolicyOutcome> GetResourcePolicyOutcomeCallable;
158         typedef std::future<ListDiscoverersOutcome> ListDiscoverersOutcomeCallable;
159         typedef std::future<ListRegistriesOutcome> ListRegistriesOutcomeCallable;
160         typedef std::future<ListSchemaVersionsOutcome> ListSchemaVersionsOutcomeCallable;
161         typedef std::future<ListSchemasOutcome> ListSchemasOutcomeCallable;
162         typedef std::future<ListTagsForResourceOutcome> ListTagsForResourceOutcomeCallable;
163         typedef std::future<PutCodeBindingOutcome> PutCodeBindingOutcomeCallable;
164         typedef std::future<PutResourcePolicyOutcome> PutResourcePolicyOutcomeCallable;
165         typedef std::future<SearchSchemasOutcome> SearchSchemasOutcomeCallable;
166         typedef std::future<StartDiscovererOutcome> StartDiscovererOutcomeCallable;
167         typedef std::future<StopDiscovererOutcome> StopDiscovererOutcomeCallable;
168         typedef std::future<TagResourceOutcome> TagResourceOutcomeCallable;
169         typedef std::future<UntagResourceOutcome> UntagResourceOutcomeCallable;
170         typedef std::future<UpdateDiscovererOutcome> UpdateDiscovererOutcomeCallable;
171         typedef std::future<UpdateRegistryOutcome> UpdateRegistryOutcomeCallable;
172         typedef std::future<UpdateSchemaOutcome> UpdateSchemaOutcomeCallable;
173 } // namespace Model
174 
175   class SchemasClient;
176 
177     typedef std::function<void(const SchemasClient*, const Model::CreateDiscovererRequest&, const Model::CreateDiscovererOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateDiscovererResponseReceivedHandler;
178     typedef std::function<void(const SchemasClient*, const Model::CreateRegistryRequest&, const Model::CreateRegistryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateRegistryResponseReceivedHandler;
179     typedef std::function<void(const SchemasClient*, const Model::CreateSchemaRequest&, const Model::CreateSchemaOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateSchemaResponseReceivedHandler;
180     typedef std::function<void(const SchemasClient*, const Model::DeleteDiscovererRequest&, const Model::DeleteDiscovererOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteDiscovererResponseReceivedHandler;
181     typedef std::function<void(const SchemasClient*, const Model::DeleteRegistryRequest&, const Model::DeleteRegistryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteRegistryResponseReceivedHandler;
182     typedef std::function<void(const SchemasClient*, const Model::DeleteResourcePolicyRequest&, const Model::DeleteResourcePolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteResourcePolicyResponseReceivedHandler;
183     typedef std::function<void(const SchemasClient*, const Model::DeleteSchemaRequest&, const Model::DeleteSchemaOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteSchemaResponseReceivedHandler;
184     typedef std::function<void(const SchemasClient*, const Model::DeleteSchemaVersionRequest&, const Model::DeleteSchemaVersionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteSchemaVersionResponseReceivedHandler;
185     typedef std::function<void(const SchemasClient*, const Model::DescribeCodeBindingRequest&, const Model::DescribeCodeBindingOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeCodeBindingResponseReceivedHandler;
186     typedef std::function<void(const SchemasClient*, const Model::DescribeDiscovererRequest&, const Model::DescribeDiscovererOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeDiscovererResponseReceivedHandler;
187     typedef std::function<void(const SchemasClient*, const Model::DescribeRegistryRequest&, const Model::DescribeRegistryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeRegistryResponseReceivedHandler;
188     typedef std::function<void(const SchemasClient*, const Model::DescribeSchemaRequest&, const Model::DescribeSchemaOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeSchemaResponseReceivedHandler;
189     typedef std::function<void(const SchemasClient*, const Model::ExportSchemaRequest&, const Model::ExportSchemaOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ExportSchemaResponseReceivedHandler;
190     typedef std::function<void(const SchemasClient*, const Model::GetCodeBindingSourceRequest&, Model::GetCodeBindingSourceOutcome, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetCodeBindingSourceResponseReceivedHandler;
191     typedef std::function<void(const SchemasClient*, const Model::GetDiscoveredSchemaRequest&, const Model::GetDiscoveredSchemaOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetDiscoveredSchemaResponseReceivedHandler;
192     typedef std::function<void(const SchemasClient*, const Model::GetResourcePolicyRequest&, const Model::GetResourcePolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetResourcePolicyResponseReceivedHandler;
193     typedef std::function<void(const SchemasClient*, const Model::ListDiscoverersRequest&, const Model::ListDiscoverersOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListDiscoverersResponseReceivedHandler;
194     typedef std::function<void(const SchemasClient*, const Model::ListRegistriesRequest&, const Model::ListRegistriesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListRegistriesResponseReceivedHandler;
195     typedef std::function<void(const SchemasClient*, const Model::ListSchemaVersionsRequest&, const Model::ListSchemaVersionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListSchemaVersionsResponseReceivedHandler;
196     typedef std::function<void(const SchemasClient*, const Model::ListSchemasRequest&, const Model::ListSchemasOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListSchemasResponseReceivedHandler;
197     typedef std::function<void(const SchemasClient*, const Model::ListTagsForResourceRequest&, const Model::ListTagsForResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTagsForResourceResponseReceivedHandler;
198     typedef std::function<void(const SchemasClient*, const Model::PutCodeBindingRequest&, const Model::PutCodeBindingOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutCodeBindingResponseReceivedHandler;
199     typedef std::function<void(const SchemasClient*, const Model::PutResourcePolicyRequest&, const Model::PutResourcePolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutResourcePolicyResponseReceivedHandler;
200     typedef std::function<void(const SchemasClient*, const Model::SearchSchemasRequest&, const Model::SearchSchemasOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > SearchSchemasResponseReceivedHandler;
201     typedef std::function<void(const SchemasClient*, const Model::StartDiscovererRequest&, const Model::StartDiscovererOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StartDiscovererResponseReceivedHandler;
202     typedef std::function<void(const SchemasClient*, const Model::StopDiscovererRequest&, const Model::StopDiscovererOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StopDiscovererResponseReceivedHandler;
203     typedef std::function<void(const SchemasClient*, const Model::TagResourceRequest&, const Model::TagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TagResourceResponseReceivedHandler;
204     typedef std::function<void(const SchemasClient*, const Model::UntagResourceRequest&, const Model::UntagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UntagResourceResponseReceivedHandler;
205     typedef std::function<void(const SchemasClient*, const Model::UpdateDiscovererRequest&, const Model::UpdateDiscovererOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateDiscovererResponseReceivedHandler;
206     typedef std::function<void(const SchemasClient*, const Model::UpdateRegistryRequest&, const Model::UpdateRegistryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateRegistryResponseReceivedHandler;
207     typedef std::function<void(const SchemasClient*, const Model::UpdateSchemaRequest&, const Model::UpdateSchemaOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateSchemaResponseReceivedHandler;
208 
209   /**
210    * <p>Amazon EventBridge Schema Registry</p>
211    */
212   class AWS_SCHEMAS_API SchemasClient : public Aws::Client::AWSJsonClient
213   {
214     public:
215       typedef Aws::Client::AWSJsonClient BASECLASS;
216 
217        /**
218         * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
219         * is not specified, it will be initialized to default values.
220         */
221         SchemasClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
222 
223        /**
224         * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
225         * is not specified, it will be initialized to default values.
226         */
227         SchemasClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
228 
229        /**
230         * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
231         * the default http client factory will be used
232         */
233         SchemasClient(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
234             const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
235 
236         virtual ~SchemasClient();
237 
238 
239         /**
240          * <p>Creates a discoverer.</p><p><h3>See Also:</h3>   <a
241          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/CreateDiscoverer">AWS
242          * API Reference</a></p>
243          */
244         virtual Model::CreateDiscovererOutcome CreateDiscoverer(const Model::CreateDiscovererRequest& request) const;
245 
246         /**
247          * <p>Creates a discoverer.</p><p><h3>See Also:</h3>   <a
248          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/CreateDiscoverer">AWS
249          * API Reference</a></p>
250          *
251          * returns a future to the operation so that it can be executed in parallel to other requests.
252          */
253         virtual Model::CreateDiscovererOutcomeCallable CreateDiscovererCallable(const Model::CreateDiscovererRequest& request) const;
254 
255         /**
256          * <p>Creates a discoverer.</p><p><h3>See Also:</h3>   <a
257          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/CreateDiscoverer">AWS
258          * API Reference</a></p>
259          *
260          * Queues the request into a thread executor and triggers associated callback when operation has finished.
261          */
262         virtual void CreateDiscovererAsync(const Model::CreateDiscovererRequest& request, const CreateDiscovererResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
263 
264         /**
265          * <p>Creates a registry.</p><p><h3>See Also:</h3>   <a
266          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/CreateRegistry">AWS
267          * API Reference</a></p>
268          */
269         virtual Model::CreateRegistryOutcome CreateRegistry(const Model::CreateRegistryRequest& request) const;
270 
271         /**
272          * <p>Creates a registry.</p><p><h3>See Also:</h3>   <a
273          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/CreateRegistry">AWS
274          * API Reference</a></p>
275          *
276          * returns a future to the operation so that it can be executed in parallel to other requests.
277          */
278         virtual Model::CreateRegistryOutcomeCallable CreateRegistryCallable(const Model::CreateRegistryRequest& request) const;
279 
280         /**
281          * <p>Creates a registry.</p><p><h3>See Also:</h3>   <a
282          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/CreateRegistry">AWS
283          * API Reference</a></p>
284          *
285          * Queues the request into a thread executor and triggers associated callback when operation has finished.
286          */
287         virtual void CreateRegistryAsync(const Model::CreateRegistryRequest& request, const CreateRegistryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
288 
289         /**
290          * <p>Creates a schema definition.</p> <p>Inactive schemas will be deleted
291          * after two years.</p><p><h3>See Also:</h3>   <a
292          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/CreateSchema">AWS
293          * API Reference</a></p>
294          */
295         virtual Model::CreateSchemaOutcome CreateSchema(const Model::CreateSchemaRequest& request) const;
296 
297         /**
298          * <p>Creates a schema definition.</p> <p>Inactive schemas will be deleted
299          * after two years.</p><p><h3>See Also:</h3>   <a
300          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/CreateSchema">AWS
301          * API Reference</a></p>
302          *
303          * returns a future to the operation so that it can be executed in parallel to other requests.
304          */
305         virtual Model::CreateSchemaOutcomeCallable CreateSchemaCallable(const Model::CreateSchemaRequest& request) const;
306 
307         /**
308          * <p>Creates a schema definition.</p> <p>Inactive schemas will be deleted
309          * after two years.</p><p><h3>See Also:</h3>   <a
310          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/CreateSchema">AWS
311          * API Reference</a></p>
312          *
313          * Queues the request into a thread executor and triggers associated callback when operation has finished.
314          */
315         virtual void CreateSchemaAsync(const Model::CreateSchemaRequest& request, const CreateSchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
316 
317         /**
318          * <p>Deletes a discoverer.</p><p><h3>See Also:</h3>   <a
319          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DeleteDiscoverer">AWS
320          * API Reference</a></p>
321          */
322         virtual Model::DeleteDiscovererOutcome DeleteDiscoverer(const Model::DeleteDiscovererRequest& request) const;
323 
324         /**
325          * <p>Deletes a discoverer.</p><p><h3>See Also:</h3>   <a
326          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DeleteDiscoverer">AWS
327          * API Reference</a></p>
328          *
329          * returns a future to the operation so that it can be executed in parallel to other requests.
330          */
331         virtual Model::DeleteDiscovererOutcomeCallable DeleteDiscovererCallable(const Model::DeleteDiscovererRequest& request) const;
332 
333         /**
334          * <p>Deletes a discoverer.</p><p><h3>See Also:</h3>   <a
335          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DeleteDiscoverer">AWS
336          * API Reference</a></p>
337          *
338          * Queues the request into a thread executor and triggers associated callback when operation has finished.
339          */
340         virtual void DeleteDiscovererAsync(const Model::DeleteDiscovererRequest& request, const DeleteDiscovererResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
341 
342         /**
343          * <p>Deletes a Registry.</p><p><h3>See Also:</h3>   <a
344          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DeleteRegistry">AWS
345          * API Reference</a></p>
346          */
347         virtual Model::DeleteRegistryOutcome DeleteRegistry(const Model::DeleteRegistryRequest& request) const;
348 
349         /**
350          * <p>Deletes a Registry.</p><p><h3>See Also:</h3>   <a
351          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DeleteRegistry">AWS
352          * API Reference</a></p>
353          *
354          * returns a future to the operation so that it can be executed in parallel to other requests.
355          */
356         virtual Model::DeleteRegistryOutcomeCallable DeleteRegistryCallable(const Model::DeleteRegistryRequest& request) const;
357 
358         /**
359          * <p>Deletes a Registry.</p><p><h3>See Also:</h3>   <a
360          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DeleteRegistry">AWS
361          * API Reference</a></p>
362          *
363          * Queues the request into a thread executor and triggers associated callback when operation has finished.
364          */
365         virtual void DeleteRegistryAsync(const Model::DeleteRegistryRequest& request, const DeleteRegistryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
366 
367         /**
368          * <p>Delete the resource-based policy attached to the specified
369          * registry.</p><p><h3>See Also:</h3>   <a
370          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DeleteResourcePolicy">AWS
371          * API Reference</a></p>
372          */
373         virtual Model::DeleteResourcePolicyOutcome DeleteResourcePolicy(const Model::DeleteResourcePolicyRequest& request) const;
374 
375         /**
376          * <p>Delete the resource-based policy attached to the specified
377          * registry.</p><p><h3>See Also:</h3>   <a
378          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DeleteResourcePolicy">AWS
379          * API Reference</a></p>
380          *
381          * returns a future to the operation so that it can be executed in parallel to other requests.
382          */
383         virtual Model::DeleteResourcePolicyOutcomeCallable DeleteResourcePolicyCallable(const Model::DeleteResourcePolicyRequest& request) const;
384 
385         /**
386          * <p>Delete the resource-based policy attached to the specified
387          * registry.</p><p><h3>See Also:</h3>   <a
388          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DeleteResourcePolicy">AWS
389          * API Reference</a></p>
390          *
391          * Queues the request into a thread executor and triggers associated callback when operation has finished.
392          */
393         virtual void DeleteResourcePolicyAsync(const Model::DeleteResourcePolicyRequest& request, const DeleteResourcePolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
394 
395         /**
396          * <p>Delete a schema definition.</p><p><h3>See Also:</h3>   <a
397          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DeleteSchema">AWS
398          * API Reference</a></p>
399          */
400         virtual Model::DeleteSchemaOutcome DeleteSchema(const Model::DeleteSchemaRequest& request) const;
401 
402         /**
403          * <p>Delete a schema definition.</p><p><h3>See Also:</h3>   <a
404          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DeleteSchema">AWS
405          * API Reference</a></p>
406          *
407          * returns a future to the operation so that it can be executed in parallel to other requests.
408          */
409         virtual Model::DeleteSchemaOutcomeCallable DeleteSchemaCallable(const Model::DeleteSchemaRequest& request) const;
410 
411         /**
412          * <p>Delete a schema definition.</p><p><h3>See Also:</h3>   <a
413          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DeleteSchema">AWS
414          * API Reference</a></p>
415          *
416          * Queues the request into a thread executor and triggers associated callback when operation has finished.
417          */
418         virtual void DeleteSchemaAsync(const Model::DeleteSchemaRequest& request, const DeleteSchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
419 
420         /**
421          * <p>Delete the schema version definition</p><p><h3>See Also:</h3>   <a
422          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DeleteSchemaVersion">AWS
423          * API Reference</a></p>
424          */
425         virtual Model::DeleteSchemaVersionOutcome DeleteSchemaVersion(const Model::DeleteSchemaVersionRequest& request) const;
426 
427         /**
428          * <p>Delete the schema version definition</p><p><h3>See Also:</h3>   <a
429          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DeleteSchemaVersion">AWS
430          * API Reference</a></p>
431          *
432          * returns a future to the operation so that it can be executed in parallel to other requests.
433          */
434         virtual Model::DeleteSchemaVersionOutcomeCallable DeleteSchemaVersionCallable(const Model::DeleteSchemaVersionRequest& request) const;
435 
436         /**
437          * <p>Delete the schema version definition</p><p><h3>See Also:</h3>   <a
438          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DeleteSchemaVersion">AWS
439          * API Reference</a></p>
440          *
441          * Queues the request into a thread executor and triggers associated callback when operation has finished.
442          */
443         virtual void DeleteSchemaVersionAsync(const Model::DeleteSchemaVersionRequest& request, const DeleteSchemaVersionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
444 
445         /**
446          * <p>Describe the code binding URI.</p><p><h3>See Also:</h3>   <a
447          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DescribeCodeBinding">AWS
448          * API Reference</a></p>
449          */
450         virtual Model::DescribeCodeBindingOutcome DescribeCodeBinding(const Model::DescribeCodeBindingRequest& request) const;
451 
452         /**
453          * <p>Describe the code binding URI.</p><p><h3>See Also:</h3>   <a
454          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DescribeCodeBinding">AWS
455          * API Reference</a></p>
456          *
457          * returns a future to the operation so that it can be executed in parallel to other requests.
458          */
459         virtual Model::DescribeCodeBindingOutcomeCallable DescribeCodeBindingCallable(const Model::DescribeCodeBindingRequest& request) const;
460 
461         /**
462          * <p>Describe the code binding URI.</p><p><h3>See Also:</h3>   <a
463          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DescribeCodeBinding">AWS
464          * API Reference</a></p>
465          *
466          * Queues the request into a thread executor and triggers associated callback when operation has finished.
467          */
468         virtual void DescribeCodeBindingAsync(const Model::DescribeCodeBindingRequest& request, const DescribeCodeBindingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
469 
470         /**
471          * <p>Describes the discoverer.</p><p><h3>See Also:</h3>   <a
472          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DescribeDiscoverer">AWS
473          * API Reference</a></p>
474          */
475         virtual Model::DescribeDiscovererOutcome DescribeDiscoverer(const Model::DescribeDiscovererRequest& request) const;
476 
477         /**
478          * <p>Describes the discoverer.</p><p><h3>See Also:</h3>   <a
479          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DescribeDiscoverer">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::DescribeDiscovererOutcomeCallable DescribeDiscovererCallable(const Model::DescribeDiscovererRequest& request) const;
485 
486         /**
487          * <p>Describes the discoverer.</p><p><h3>See Also:</h3>   <a
488          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DescribeDiscoverer">AWS
489          * API Reference</a></p>
490          *
491          * Queues the request into a thread executor and triggers associated callback when operation has finished.
492          */
493         virtual void DescribeDiscovererAsync(const Model::DescribeDiscovererRequest& request, const DescribeDiscovererResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
494 
495         /**
496          * <p>Describes the registry.</p><p><h3>See Also:</h3>   <a
497          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DescribeRegistry">AWS
498          * API Reference</a></p>
499          */
500         virtual Model::DescribeRegistryOutcome DescribeRegistry(const Model::DescribeRegistryRequest& request) const;
501 
502         /**
503          * <p>Describes the registry.</p><p><h3>See Also:</h3>   <a
504          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DescribeRegistry">AWS
505          * API Reference</a></p>
506          *
507          * returns a future to the operation so that it can be executed in parallel to other requests.
508          */
509         virtual Model::DescribeRegistryOutcomeCallable DescribeRegistryCallable(const Model::DescribeRegistryRequest& request) const;
510 
511         /**
512          * <p>Describes the registry.</p><p><h3>See Also:</h3>   <a
513          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DescribeRegistry">AWS
514          * API Reference</a></p>
515          *
516          * Queues the request into a thread executor and triggers associated callback when operation has finished.
517          */
518         virtual void DescribeRegistryAsync(const Model::DescribeRegistryRequest& request, const DescribeRegistryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
519 
520         /**
521          * <p>Retrieve the schema definition.</p><p><h3>See Also:</h3>   <a
522          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DescribeSchema">AWS
523          * API Reference</a></p>
524          */
525         virtual Model::DescribeSchemaOutcome DescribeSchema(const Model::DescribeSchemaRequest& request) const;
526 
527         /**
528          * <p>Retrieve the schema definition.</p><p><h3>See Also:</h3>   <a
529          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DescribeSchema">AWS
530          * API Reference</a></p>
531          *
532          * returns a future to the operation so that it can be executed in parallel to other requests.
533          */
534         virtual Model::DescribeSchemaOutcomeCallable DescribeSchemaCallable(const Model::DescribeSchemaRequest& request) const;
535 
536         /**
537          * <p>Retrieve the schema definition.</p><p><h3>See Also:</h3>   <a
538          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/DescribeSchema">AWS
539          * API Reference</a></p>
540          *
541          * Queues the request into a thread executor and triggers associated callback when operation has finished.
542          */
543         virtual void DescribeSchemaAsync(const Model::DescribeSchemaRequest& request, const DescribeSchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
544 
545         /**
546          *
547          */
548         virtual Model::ExportSchemaOutcome ExportSchema(const Model::ExportSchemaRequest& request) const;
549 
550         /**
551          *
552          *
553          * returns a future to the operation so that it can be executed in parallel to other requests.
554          */
555         virtual Model::ExportSchemaOutcomeCallable ExportSchemaCallable(const Model::ExportSchemaRequest& request) const;
556 
557         /**
558          *
559          *
560          * Queues the request into a thread executor and triggers associated callback when operation has finished.
561          */
562         virtual void ExportSchemaAsync(const Model::ExportSchemaRequest& request, const ExportSchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
563 
564         /**
565          * <p>Get the code binding source URI.</p><p><h3>See Also:</h3>   <a
566          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/GetCodeBindingSource">AWS
567          * API Reference</a></p>
568          */
569         virtual Model::GetCodeBindingSourceOutcome GetCodeBindingSource(const Model::GetCodeBindingSourceRequest& request) const;
570 
571         /**
572          * <p>Get the code binding source URI.</p><p><h3>See Also:</h3>   <a
573          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/GetCodeBindingSource">AWS
574          * API Reference</a></p>
575          *
576          * returns a future to the operation so that it can be executed in parallel to other requests.
577          */
578         virtual Model::GetCodeBindingSourceOutcomeCallable GetCodeBindingSourceCallable(const Model::GetCodeBindingSourceRequest& request) const;
579 
580         /**
581          * <p>Get the code binding source URI.</p><p><h3>See Also:</h3>   <a
582          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/GetCodeBindingSource">AWS
583          * API Reference</a></p>
584          *
585          * Queues the request into a thread executor and triggers associated callback when operation has finished.
586          */
587         virtual void GetCodeBindingSourceAsync(const Model::GetCodeBindingSourceRequest& request, const GetCodeBindingSourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
588 
589         /**
590          * <p>Get the discovered schema that was generated based on sampled
591          * events.</p><p><h3>See Also:</h3>   <a
592          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/GetDiscoveredSchema">AWS
593          * API Reference</a></p>
594          */
595         virtual Model::GetDiscoveredSchemaOutcome GetDiscoveredSchema(const Model::GetDiscoveredSchemaRequest& request) const;
596 
597         /**
598          * <p>Get the discovered schema that was generated based on sampled
599          * events.</p><p><h3>See Also:</h3>   <a
600          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/GetDiscoveredSchema">AWS
601          * API Reference</a></p>
602          *
603          * returns a future to the operation so that it can be executed in parallel to other requests.
604          */
605         virtual Model::GetDiscoveredSchemaOutcomeCallable GetDiscoveredSchemaCallable(const Model::GetDiscoveredSchemaRequest& request) const;
606 
607         /**
608          * <p>Get the discovered schema that was generated based on sampled
609          * events.</p><p><h3>See Also:</h3>   <a
610          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/GetDiscoveredSchema">AWS
611          * API Reference</a></p>
612          *
613          * Queues the request into a thread executor and triggers associated callback when operation has finished.
614          */
615         virtual void GetDiscoveredSchemaAsync(const Model::GetDiscoveredSchemaRequest& request, const GetDiscoveredSchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
616 
617         /**
618          * <p>Retrieves the resource-based policy attached to a given
619          * registry.</p><p><h3>See Also:</h3>   <a
620          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/GetResourcePolicy">AWS
621          * API Reference</a></p>
622          */
623         virtual Model::GetResourcePolicyOutcome GetResourcePolicy(const Model::GetResourcePolicyRequest& request) const;
624 
625         /**
626          * <p>Retrieves the resource-based policy attached to a given
627          * registry.</p><p><h3>See Also:</h3>   <a
628          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/GetResourcePolicy">AWS
629          * API Reference</a></p>
630          *
631          * returns a future to the operation so that it can be executed in parallel to other requests.
632          */
633         virtual Model::GetResourcePolicyOutcomeCallable GetResourcePolicyCallable(const Model::GetResourcePolicyRequest& request) const;
634 
635         /**
636          * <p>Retrieves the resource-based policy attached to a given
637          * registry.</p><p><h3>See Also:</h3>   <a
638          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/GetResourcePolicy">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 GetResourcePolicyAsync(const Model::GetResourcePolicyRequest& request, const GetResourcePolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
644 
645         /**
646          * <p>List the discoverers.</p><p><h3>See Also:</h3>   <a
647          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/ListDiscoverers">AWS
648          * API Reference</a></p>
649          */
650         virtual Model::ListDiscoverersOutcome ListDiscoverers(const Model::ListDiscoverersRequest& request) const;
651 
652         /**
653          * <p>List the discoverers.</p><p><h3>See Also:</h3>   <a
654          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/ListDiscoverers">AWS
655          * API Reference</a></p>
656          *
657          * returns a future to the operation so that it can be executed in parallel to other requests.
658          */
659         virtual Model::ListDiscoverersOutcomeCallable ListDiscoverersCallable(const Model::ListDiscoverersRequest& request) const;
660 
661         /**
662          * <p>List the discoverers.</p><p><h3>See Also:</h3>   <a
663          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/ListDiscoverers">AWS
664          * API Reference</a></p>
665          *
666          * Queues the request into a thread executor and triggers associated callback when operation has finished.
667          */
668         virtual void ListDiscoverersAsync(const Model::ListDiscoverersRequest& request, const ListDiscoverersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
669 
670         /**
671          * <p>List the registries.</p><p><h3>See Also:</h3>   <a
672          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/ListRegistries">AWS
673          * API Reference</a></p>
674          */
675         virtual Model::ListRegistriesOutcome ListRegistries(const Model::ListRegistriesRequest& request) const;
676 
677         /**
678          * <p>List the registries.</p><p><h3>See Also:</h3>   <a
679          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/ListRegistries">AWS
680          * API Reference</a></p>
681          *
682          * returns a future to the operation so that it can be executed in parallel to other requests.
683          */
684         virtual Model::ListRegistriesOutcomeCallable ListRegistriesCallable(const Model::ListRegistriesRequest& request) const;
685 
686         /**
687          * <p>List the registries.</p><p><h3>See Also:</h3>   <a
688          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/ListRegistries">AWS
689          * API Reference</a></p>
690          *
691          * Queues the request into a thread executor and triggers associated callback when operation has finished.
692          */
693         virtual void ListRegistriesAsync(const Model::ListRegistriesRequest& request, const ListRegistriesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
694 
695         /**
696          * <p>Provides a list of the schema versions and related information.</p><p><h3>See
697          * Also:</h3>   <a
698          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/ListSchemaVersions">AWS
699          * API Reference</a></p>
700          */
701         virtual Model::ListSchemaVersionsOutcome ListSchemaVersions(const Model::ListSchemaVersionsRequest& request) const;
702 
703         /**
704          * <p>Provides a list of the schema versions and related information.</p><p><h3>See
705          * Also:</h3>   <a
706          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/ListSchemaVersions">AWS
707          * API Reference</a></p>
708          *
709          * returns a future to the operation so that it can be executed in parallel to other requests.
710          */
711         virtual Model::ListSchemaVersionsOutcomeCallable ListSchemaVersionsCallable(const Model::ListSchemaVersionsRequest& request) const;
712 
713         /**
714          * <p>Provides a list of the schema versions and related information.</p><p><h3>See
715          * Also:</h3>   <a
716          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/ListSchemaVersions">AWS
717          * API Reference</a></p>
718          *
719          * Queues the request into a thread executor and triggers associated callback when operation has finished.
720          */
721         virtual void ListSchemaVersionsAsync(const Model::ListSchemaVersionsRequest& request, const ListSchemaVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
722 
723         /**
724          * <p>List the schemas.</p><p><h3>See Also:</h3>   <a
725          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/ListSchemas">AWS
726          * API Reference</a></p>
727          */
728         virtual Model::ListSchemasOutcome ListSchemas(const Model::ListSchemasRequest& request) const;
729 
730         /**
731          * <p>List the schemas.</p><p><h3>See Also:</h3>   <a
732          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/ListSchemas">AWS
733          * API Reference</a></p>
734          *
735          * returns a future to the operation so that it can be executed in parallel to other requests.
736          */
737         virtual Model::ListSchemasOutcomeCallable ListSchemasCallable(const Model::ListSchemasRequest& request) const;
738 
739         /**
740          * <p>List the schemas.</p><p><h3>See Also:</h3>   <a
741          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/ListSchemas">AWS
742          * API Reference</a></p>
743          *
744          * Queues the request into a thread executor and triggers associated callback when operation has finished.
745          */
746         virtual void ListSchemasAsync(const Model::ListSchemasRequest& request, const ListSchemasResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
747 
748         /**
749          * <p>Get tags for resource.</p><p><h3>See Also:</h3>   <a
750          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/ListTagsForResource">AWS
751          * API Reference</a></p>
752          */
753         virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const;
754 
755         /**
756          * <p>Get tags for resource.</p><p><h3>See Also:</h3>   <a
757          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/ListTagsForResource">AWS
758          * API Reference</a></p>
759          *
760          * returns a future to the operation so that it can be executed in parallel to other requests.
761          */
762         virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const;
763 
764         /**
765          * <p>Get tags for resource.</p><p><h3>See Also:</h3>   <a
766          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/ListTagsForResource">AWS
767          * API Reference</a></p>
768          *
769          * Queues the request into a thread executor and triggers associated callback when operation has finished.
770          */
771         virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
772 
773         /**
774          * <p>Put code binding URI</p><p><h3>See Also:</h3>   <a
775          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/PutCodeBinding">AWS
776          * API Reference</a></p>
777          */
778         virtual Model::PutCodeBindingOutcome PutCodeBinding(const Model::PutCodeBindingRequest& request) const;
779 
780         /**
781          * <p>Put code binding URI</p><p><h3>See Also:</h3>   <a
782          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/PutCodeBinding">AWS
783          * API Reference</a></p>
784          *
785          * returns a future to the operation so that it can be executed in parallel to other requests.
786          */
787         virtual Model::PutCodeBindingOutcomeCallable PutCodeBindingCallable(const Model::PutCodeBindingRequest& request) const;
788 
789         /**
790          * <p>Put code binding URI</p><p><h3>See Also:</h3>   <a
791          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/PutCodeBinding">AWS
792          * API Reference</a></p>
793          *
794          * Queues the request into a thread executor and triggers associated callback when operation has finished.
795          */
796         virtual void PutCodeBindingAsync(const Model::PutCodeBindingRequest& request, const PutCodeBindingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
797 
798         /**
799          * <p>The name of the policy.</p><p><h3>See Also:</h3>   <a
800          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/PutResourcePolicy">AWS
801          * API Reference</a></p>
802          */
803         virtual Model::PutResourcePolicyOutcome PutResourcePolicy(const Model::PutResourcePolicyRequest& request) const;
804 
805         /**
806          * <p>The name of the policy.</p><p><h3>See Also:</h3>   <a
807          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/PutResourcePolicy">AWS
808          * API Reference</a></p>
809          *
810          * returns a future to the operation so that it can be executed in parallel to other requests.
811          */
812         virtual Model::PutResourcePolicyOutcomeCallable PutResourcePolicyCallable(const Model::PutResourcePolicyRequest& request) const;
813 
814         /**
815          * <p>The name of the policy.</p><p><h3>See Also:</h3>   <a
816          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/PutResourcePolicy">AWS
817          * API Reference</a></p>
818          *
819          * Queues the request into a thread executor and triggers associated callback when operation has finished.
820          */
821         virtual void PutResourcePolicyAsync(const Model::PutResourcePolicyRequest& request, const PutResourcePolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
822 
823         /**
824          * <p>Search the schemas</p><p><h3>See Also:</h3>   <a
825          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/SearchSchemas">AWS
826          * API Reference</a></p>
827          */
828         virtual Model::SearchSchemasOutcome SearchSchemas(const Model::SearchSchemasRequest& request) const;
829 
830         /**
831          * <p>Search the schemas</p><p><h3>See Also:</h3>   <a
832          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/SearchSchemas">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::SearchSchemasOutcomeCallable SearchSchemasCallable(const Model::SearchSchemasRequest& request) const;
838 
839         /**
840          * <p>Search the schemas</p><p><h3>See Also:</h3>   <a
841          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/SearchSchemas">AWS
842          * API Reference</a></p>
843          *
844          * Queues the request into a thread executor and triggers associated callback when operation has finished.
845          */
846         virtual void SearchSchemasAsync(const Model::SearchSchemasRequest& request, const SearchSchemasResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
847 
848         /**
849          * <p>Starts the discoverer</p><p><h3>See Also:</h3>   <a
850          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/StartDiscoverer">AWS
851          * API Reference</a></p>
852          */
853         virtual Model::StartDiscovererOutcome StartDiscoverer(const Model::StartDiscovererRequest& request) const;
854 
855         /**
856          * <p>Starts the discoverer</p><p><h3>See Also:</h3>   <a
857          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/StartDiscoverer">AWS
858          * API Reference</a></p>
859          *
860          * returns a future to the operation so that it can be executed in parallel to other requests.
861          */
862         virtual Model::StartDiscovererOutcomeCallable StartDiscovererCallable(const Model::StartDiscovererRequest& request) const;
863 
864         /**
865          * <p>Starts the discoverer</p><p><h3>See Also:</h3>   <a
866          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/StartDiscoverer">AWS
867          * API Reference</a></p>
868          *
869          * Queues the request into a thread executor and triggers associated callback when operation has finished.
870          */
871         virtual void StartDiscovererAsync(const Model::StartDiscovererRequest& request, const StartDiscovererResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
872 
873         /**
874          * <p>Stops the discoverer</p><p><h3>See Also:</h3>   <a
875          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/StopDiscoverer">AWS
876          * API Reference</a></p>
877          */
878         virtual Model::StopDiscovererOutcome StopDiscoverer(const Model::StopDiscovererRequest& request) const;
879 
880         /**
881          * <p>Stops the discoverer</p><p><h3>See Also:</h3>   <a
882          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/StopDiscoverer">AWS
883          * API Reference</a></p>
884          *
885          * returns a future to the operation so that it can be executed in parallel to other requests.
886          */
887         virtual Model::StopDiscovererOutcomeCallable StopDiscovererCallable(const Model::StopDiscovererRequest& request) const;
888 
889         /**
890          * <p>Stops the discoverer</p><p><h3>See Also:</h3>   <a
891          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/StopDiscoverer">AWS
892          * API Reference</a></p>
893          *
894          * Queues the request into a thread executor and triggers associated callback when operation has finished.
895          */
896         virtual void StopDiscovererAsync(const Model::StopDiscovererRequest& request, const StopDiscovererResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
897 
898         /**
899          * <p>Add tags to a resource.</p><p><h3>See Also:</h3>   <a
900          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/TagResource">AWS
901          * API Reference</a></p>
902          */
903         virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const;
904 
905         /**
906          * <p>Add tags to a resource.</p><p><h3>See Also:</h3>   <a
907          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/TagResource">AWS
908          * API Reference</a></p>
909          *
910          * returns a future to the operation so that it can be executed in parallel to other requests.
911          */
912         virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const;
913 
914         /**
915          * <p>Add tags to a resource.</p><p><h3>See Also:</h3>   <a
916          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/TagResource">AWS
917          * API Reference</a></p>
918          *
919          * Queues the request into a thread executor and triggers associated callback when operation has finished.
920          */
921         virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
922 
923         /**
924          * <p>Removes tags from a resource.</p><p><h3>See Also:</h3>   <a
925          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/UntagResource">AWS
926          * API Reference</a></p>
927          */
928         virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const;
929 
930         /**
931          * <p>Removes tags from a resource.</p><p><h3>See Also:</h3>   <a
932          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/UntagResource">AWS
933          * API Reference</a></p>
934          *
935          * returns a future to the operation so that it can be executed in parallel to other requests.
936          */
937         virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const;
938 
939         /**
940          * <p>Removes tags from a resource.</p><p><h3>See Also:</h3>   <a
941          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/UntagResource">AWS
942          * API Reference</a></p>
943          *
944          * Queues the request into a thread executor and triggers associated callback when operation has finished.
945          */
946         virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
947 
948         /**
949          * <p>Updates the discoverer</p><p><h3>See Also:</h3>   <a
950          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/UpdateDiscoverer">AWS
951          * API Reference</a></p>
952          */
953         virtual Model::UpdateDiscovererOutcome UpdateDiscoverer(const Model::UpdateDiscovererRequest& request) const;
954 
955         /**
956          * <p>Updates the discoverer</p><p><h3>See Also:</h3>   <a
957          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/UpdateDiscoverer">AWS
958          * API Reference</a></p>
959          *
960          * returns a future to the operation so that it can be executed in parallel to other requests.
961          */
962         virtual Model::UpdateDiscovererOutcomeCallable UpdateDiscovererCallable(const Model::UpdateDiscovererRequest& request) const;
963 
964         /**
965          * <p>Updates the discoverer</p><p><h3>See Also:</h3>   <a
966          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/UpdateDiscoverer">AWS
967          * API Reference</a></p>
968          *
969          * Queues the request into a thread executor and triggers associated callback when operation has finished.
970          */
971         virtual void UpdateDiscovererAsync(const Model::UpdateDiscovererRequest& request, const UpdateDiscovererResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
972 
973         /**
974          * <p>Updates a registry.</p><p><h3>See Also:</h3>   <a
975          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/UpdateRegistry">AWS
976          * API Reference</a></p>
977          */
978         virtual Model::UpdateRegistryOutcome UpdateRegistry(const Model::UpdateRegistryRequest& request) const;
979 
980         /**
981          * <p>Updates a registry.</p><p><h3>See Also:</h3>   <a
982          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/UpdateRegistry">AWS
983          * API Reference</a></p>
984          *
985          * returns a future to the operation so that it can be executed in parallel to other requests.
986          */
987         virtual Model::UpdateRegistryOutcomeCallable UpdateRegistryCallable(const Model::UpdateRegistryRequest& request) const;
988 
989         /**
990          * <p>Updates a registry.</p><p><h3>See Also:</h3>   <a
991          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/UpdateRegistry">AWS
992          * API Reference</a></p>
993          *
994          * Queues the request into a thread executor and triggers associated callback when operation has finished.
995          */
996         virtual void UpdateRegistryAsync(const Model::UpdateRegistryRequest& request, const UpdateRegistryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
997 
998         /**
999          * <p>Updates the schema definition</p> <p>Inactive schemas will be deleted
1000          * after two years.</p><p><h3>See Also:</h3>   <a
1001          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/UpdateSchema">AWS
1002          * API Reference</a></p>
1003          */
1004         virtual Model::UpdateSchemaOutcome UpdateSchema(const Model::UpdateSchemaRequest& request) const;
1005 
1006         /**
1007          * <p>Updates the schema definition</p> <p>Inactive schemas will be deleted
1008          * after two years.</p><p><h3>See Also:</h3>   <a
1009          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/UpdateSchema">AWS
1010          * API Reference</a></p>
1011          *
1012          * returns a future to the operation so that it can be executed in parallel to other requests.
1013          */
1014         virtual Model::UpdateSchemaOutcomeCallable UpdateSchemaCallable(const Model::UpdateSchemaRequest& request) const;
1015 
1016         /**
1017          * <p>Updates the schema definition</p> <p>Inactive schemas will be deleted
1018          * after two years.</p><p><h3>See Also:</h3>   <a
1019          * href="http://docs.aws.amazon.com/goto/WebAPI/schemas-2019-12-02/UpdateSchema">AWS
1020          * API Reference</a></p>
1021          *
1022          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1023          */
1024         virtual void UpdateSchemaAsync(const Model::UpdateSchemaRequest& request, const UpdateSchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1025 
1026 
1027       void OverrideEndpoint(const Aws::String& endpoint);
1028     private:
1029       void init(const Aws::Client::ClientConfiguration& clientConfiguration);
1030         void CreateDiscovererAsyncHelper(const Model::CreateDiscovererRequest& request, const CreateDiscovererResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1031         void CreateRegistryAsyncHelper(const Model::CreateRegistryRequest& request, const CreateRegistryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1032         void CreateSchemaAsyncHelper(const Model::CreateSchemaRequest& request, const CreateSchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1033         void DeleteDiscovererAsyncHelper(const Model::DeleteDiscovererRequest& request, const DeleteDiscovererResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1034         void DeleteRegistryAsyncHelper(const Model::DeleteRegistryRequest& request, const DeleteRegistryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1035         void DeleteResourcePolicyAsyncHelper(const Model::DeleteResourcePolicyRequest& request, const DeleteResourcePolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1036         void DeleteSchemaAsyncHelper(const Model::DeleteSchemaRequest& request, const DeleteSchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1037         void DeleteSchemaVersionAsyncHelper(const Model::DeleteSchemaVersionRequest& request, const DeleteSchemaVersionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1038         void DescribeCodeBindingAsyncHelper(const Model::DescribeCodeBindingRequest& request, const DescribeCodeBindingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1039         void DescribeDiscovererAsyncHelper(const Model::DescribeDiscovererRequest& request, const DescribeDiscovererResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1040         void DescribeRegistryAsyncHelper(const Model::DescribeRegistryRequest& request, const DescribeRegistryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1041         void DescribeSchemaAsyncHelper(const Model::DescribeSchemaRequest& request, const DescribeSchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1042         void ExportSchemaAsyncHelper(const Model::ExportSchemaRequest& request, const ExportSchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1043         void GetCodeBindingSourceAsyncHelper(const Model::GetCodeBindingSourceRequest& request, const GetCodeBindingSourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1044         void GetDiscoveredSchemaAsyncHelper(const Model::GetDiscoveredSchemaRequest& request, const GetDiscoveredSchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1045         void GetResourcePolicyAsyncHelper(const Model::GetResourcePolicyRequest& request, const GetResourcePolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1046         void ListDiscoverersAsyncHelper(const Model::ListDiscoverersRequest& request, const ListDiscoverersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1047         void ListRegistriesAsyncHelper(const Model::ListRegistriesRequest& request, const ListRegistriesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1048         void ListSchemaVersionsAsyncHelper(const Model::ListSchemaVersionsRequest& request, const ListSchemaVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1049         void ListSchemasAsyncHelper(const Model::ListSchemasRequest& request, const ListSchemasResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1050         void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1051         void PutCodeBindingAsyncHelper(const Model::PutCodeBindingRequest& request, const PutCodeBindingResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1052         void PutResourcePolicyAsyncHelper(const Model::PutResourcePolicyRequest& request, const PutResourcePolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1053         void SearchSchemasAsyncHelper(const Model::SearchSchemasRequest& request, const SearchSchemasResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1054         void StartDiscovererAsyncHelper(const Model::StartDiscovererRequest& request, const StartDiscovererResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1055         void StopDiscovererAsyncHelper(const Model::StopDiscovererRequest& request, const StopDiscovererResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1056         void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1057         void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1058         void UpdateDiscovererAsyncHelper(const Model::UpdateDiscovererRequest& request, const UpdateDiscovererResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1059         void UpdateRegistryAsyncHelper(const Model::UpdateRegistryRequest& request, const UpdateRegistryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1060         void UpdateSchemaAsyncHelper(const Model::UpdateSchemaRequest& request, const UpdateSchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1061 
1062       Aws::String m_uri;
1063       Aws::String m_configScheme;
1064       std::shared_ptr<Aws::Utils::Threading::Executor> m_executor;
1065   };
1066 
1067 } // namespace Schemas
1068 } // namespace Aws
1069