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/clouddirectory/CloudDirectory_EXPORTS.h>
8 #include <aws/clouddirectory/CloudDirectoryErrors.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/clouddirectory/model/AddFacetToObjectResult.h>
15 #include <aws/clouddirectory/model/ApplySchemaResult.h>
16 #include <aws/clouddirectory/model/AttachObjectResult.h>
17 #include <aws/clouddirectory/model/AttachPolicyResult.h>
18 #include <aws/clouddirectory/model/AttachToIndexResult.h>
19 #include <aws/clouddirectory/model/AttachTypedLinkResult.h>
20 #include <aws/clouddirectory/model/BatchReadResult.h>
21 #include <aws/clouddirectory/model/BatchWriteResult.h>
22 #include <aws/clouddirectory/model/CreateDirectoryResult.h>
23 #include <aws/clouddirectory/model/CreateFacetResult.h>
24 #include <aws/clouddirectory/model/CreateIndexResult.h>
25 #include <aws/clouddirectory/model/CreateObjectResult.h>
26 #include <aws/clouddirectory/model/CreateSchemaResult.h>
27 #include <aws/clouddirectory/model/CreateTypedLinkFacetResult.h>
28 #include <aws/clouddirectory/model/DeleteDirectoryResult.h>
29 #include <aws/clouddirectory/model/DeleteFacetResult.h>
30 #include <aws/clouddirectory/model/DeleteObjectResult.h>
31 #include <aws/clouddirectory/model/DeleteSchemaResult.h>
32 #include <aws/clouddirectory/model/DeleteTypedLinkFacetResult.h>
33 #include <aws/clouddirectory/model/DetachFromIndexResult.h>
34 #include <aws/clouddirectory/model/DetachObjectResult.h>
35 #include <aws/clouddirectory/model/DetachPolicyResult.h>
36 #include <aws/clouddirectory/model/DisableDirectoryResult.h>
37 #include <aws/clouddirectory/model/EnableDirectoryResult.h>
38 #include <aws/clouddirectory/model/GetAppliedSchemaVersionResult.h>
39 #include <aws/clouddirectory/model/GetDirectoryResult.h>
40 #include <aws/clouddirectory/model/GetFacetResult.h>
41 #include <aws/clouddirectory/model/GetLinkAttributesResult.h>
42 #include <aws/clouddirectory/model/GetObjectAttributesResult.h>
43 #include <aws/clouddirectory/model/GetObjectInformationResult.h>
44 #include <aws/clouddirectory/model/GetSchemaAsJsonResult.h>
45 #include <aws/clouddirectory/model/GetTypedLinkFacetInformationResult.h>
46 #include <aws/clouddirectory/model/ListAppliedSchemaArnsResult.h>
47 #include <aws/clouddirectory/model/ListAttachedIndicesResult.h>
48 #include <aws/clouddirectory/model/ListDevelopmentSchemaArnsResult.h>
49 #include <aws/clouddirectory/model/ListDirectoriesResult.h>
50 #include <aws/clouddirectory/model/ListFacetAttributesResult.h>
51 #include <aws/clouddirectory/model/ListFacetNamesResult.h>
52 #include <aws/clouddirectory/model/ListIncomingTypedLinksResult.h>
53 #include <aws/clouddirectory/model/ListIndexResult.h>
54 #include <aws/clouddirectory/model/ListManagedSchemaArnsResult.h>
55 #include <aws/clouddirectory/model/ListObjectAttributesResult.h>
56 #include <aws/clouddirectory/model/ListObjectChildrenResult.h>
57 #include <aws/clouddirectory/model/ListObjectParentPathsResult.h>
58 #include <aws/clouddirectory/model/ListObjectParentsResult.h>
59 #include <aws/clouddirectory/model/ListObjectPoliciesResult.h>
60 #include <aws/clouddirectory/model/ListOutgoingTypedLinksResult.h>
61 #include <aws/clouddirectory/model/ListPolicyAttachmentsResult.h>
62 #include <aws/clouddirectory/model/ListPublishedSchemaArnsResult.h>
63 #include <aws/clouddirectory/model/ListTagsForResourceResult.h>
64 #include <aws/clouddirectory/model/ListTypedLinkFacetAttributesResult.h>
65 #include <aws/clouddirectory/model/ListTypedLinkFacetNamesResult.h>
66 #include <aws/clouddirectory/model/LookupPolicyResult.h>
67 #include <aws/clouddirectory/model/PublishSchemaResult.h>
68 #include <aws/clouddirectory/model/PutSchemaFromJsonResult.h>
69 #include <aws/clouddirectory/model/RemoveFacetFromObjectResult.h>
70 #include <aws/clouddirectory/model/TagResourceResult.h>
71 #include <aws/clouddirectory/model/UntagResourceResult.h>
72 #include <aws/clouddirectory/model/UpdateFacetResult.h>
73 #include <aws/clouddirectory/model/UpdateLinkAttributesResult.h>
74 #include <aws/clouddirectory/model/UpdateObjectAttributesResult.h>
75 #include <aws/clouddirectory/model/UpdateSchemaResult.h>
76 #include <aws/clouddirectory/model/UpdateTypedLinkFacetResult.h>
77 #include <aws/clouddirectory/model/UpgradeAppliedSchemaResult.h>
78 #include <aws/clouddirectory/model/UpgradePublishedSchemaResult.h>
79 #include <aws/core/NoResult.h>
80 #include <aws/core/client/AsyncCallerContext.h>
81 #include <aws/core/http/HttpTypes.h>
82 #include <future>
83 #include <functional>
84 
85 namespace Aws
86 {
87 
88 namespace Http
89 {
90   class HttpClient;
91   class HttpClientFactory;
92 } // namespace Http
93 
94 namespace Utils
95 {
96   template< typename R, typename E> class Outcome;
97 namespace Threading
98 {
99   class Executor;
100 } // namespace Threading
101 } // namespace Utils
102 
103 namespace Auth
104 {
105   class AWSCredentials;
106   class AWSCredentialsProvider;
107 } // namespace Auth
108 
109 namespace Client
110 {
111   class RetryStrategy;
112 } // namespace Client
113 
114 namespace CloudDirectory
115 {
116 
117 namespace Model
118 {
119         class AddFacetToObjectRequest;
120         class ApplySchemaRequest;
121         class AttachObjectRequest;
122         class AttachPolicyRequest;
123         class AttachToIndexRequest;
124         class AttachTypedLinkRequest;
125         class BatchReadRequest;
126         class BatchWriteRequest;
127         class CreateDirectoryRequest;
128         class CreateFacetRequest;
129         class CreateIndexRequest;
130         class CreateObjectRequest;
131         class CreateSchemaRequest;
132         class CreateTypedLinkFacetRequest;
133         class DeleteDirectoryRequest;
134         class DeleteFacetRequest;
135         class DeleteObjectRequest;
136         class DeleteSchemaRequest;
137         class DeleteTypedLinkFacetRequest;
138         class DetachFromIndexRequest;
139         class DetachObjectRequest;
140         class DetachPolicyRequest;
141         class DetachTypedLinkRequest;
142         class DisableDirectoryRequest;
143         class EnableDirectoryRequest;
144         class GetAppliedSchemaVersionRequest;
145         class GetDirectoryRequest;
146         class GetFacetRequest;
147         class GetLinkAttributesRequest;
148         class GetObjectAttributesRequest;
149         class GetObjectInformationRequest;
150         class GetSchemaAsJsonRequest;
151         class GetTypedLinkFacetInformationRequest;
152         class ListAppliedSchemaArnsRequest;
153         class ListAttachedIndicesRequest;
154         class ListDevelopmentSchemaArnsRequest;
155         class ListDirectoriesRequest;
156         class ListFacetAttributesRequest;
157         class ListFacetNamesRequest;
158         class ListIncomingTypedLinksRequest;
159         class ListIndexRequest;
160         class ListManagedSchemaArnsRequest;
161         class ListObjectAttributesRequest;
162         class ListObjectChildrenRequest;
163         class ListObjectParentPathsRequest;
164         class ListObjectParentsRequest;
165         class ListObjectPoliciesRequest;
166         class ListOutgoingTypedLinksRequest;
167         class ListPolicyAttachmentsRequest;
168         class ListPublishedSchemaArnsRequest;
169         class ListTagsForResourceRequest;
170         class ListTypedLinkFacetAttributesRequest;
171         class ListTypedLinkFacetNamesRequest;
172         class LookupPolicyRequest;
173         class PublishSchemaRequest;
174         class PutSchemaFromJsonRequest;
175         class RemoveFacetFromObjectRequest;
176         class TagResourceRequest;
177         class UntagResourceRequest;
178         class UpdateFacetRequest;
179         class UpdateLinkAttributesRequest;
180         class UpdateObjectAttributesRequest;
181         class UpdateSchemaRequest;
182         class UpdateTypedLinkFacetRequest;
183         class UpgradeAppliedSchemaRequest;
184         class UpgradePublishedSchemaRequest;
185 
186         typedef Aws::Utils::Outcome<AddFacetToObjectResult, CloudDirectoryError> AddFacetToObjectOutcome;
187         typedef Aws::Utils::Outcome<ApplySchemaResult, CloudDirectoryError> ApplySchemaOutcome;
188         typedef Aws::Utils::Outcome<AttachObjectResult, CloudDirectoryError> AttachObjectOutcome;
189         typedef Aws::Utils::Outcome<AttachPolicyResult, CloudDirectoryError> AttachPolicyOutcome;
190         typedef Aws::Utils::Outcome<AttachToIndexResult, CloudDirectoryError> AttachToIndexOutcome;
191         typedef Aws::Utils::Outcome<AttachTypedLinkResult, CloudDirectoryError> AttachTypedLinkOutcome;
192         typedef Aws::Utils::Outcome<BatchReadResult, CloudDirectoryError> BatchReadOutcome;
193         typedef Aws::Utils::Outcome<BatchWriteResult, CloudDirectoryError> BatchWriteOutcome;
194         typedef Aws::Utils::Outcome<CreateDirectoryResult, CloudDirectoryError> CreateDirectoryOutcome;
195         typedef Aws::Utils::Outcome<CreateFacetResult, CloudDirectoryError> CreateFacetOutcome;
196         typedef Aws::Utils::Outcome<CreateIndexResult, CloudDirectoryError> CreateIndexOutcome;
197         typedef Aws::Utils::Outcome<CreateObjectResult, CloudDirectoryError> CreateObjectOutcome;
198         typedef Aws::Utils::Outcome<CreateSchemaResult, CloudDirectoryError> CreateSchemaOutcome;
199         typedef Aws::Utils::Outcome<CreateTypedLinkFacetResult, CloudDirectoryError> CreateTypedLinkFacetOutcome;
200         typedef Aws::Utils::Outcome<DeleteDirectoryResult, CloudDirectoryError> DeleteDirectoryOutcome;
201         typedef Aws::Utils::Outcome<DeleteFacetResult, CloudDirectoryError> DeleteFacetOutcome;
202         typedef Aws::Utils::Outcome<DeleteObjectResult, CloudDirectoryError> DeleteObjectOutcome;
203         typedef Aws::Utils::Outcome<DeleteSchemaResult, CloudDirectoryError> DeleteSchemaOutcome;
204         typedef Aws::Utils::Outcome<DeleteTypedLinkFacetResult, CloudDirectoryError> DeleteTypedLinkFacetOutcome;
205         typedef Aws::Utils::Outcome<DetachFromIndexResult, CloudDirectoryError> DetachFromIndexOutcome;
206         typedef Aws::Utils::Outcome<DetachObjectResult, CloudDirectoryError> DetachObjectOutcome;
207         typedef Aws::Utils::Outcome<DetachPolicyResult, CloudDirectoryError> DetachPolicyOutcome;
208         typedef Aws::Utils::Outcome<Aws::NoResult, CloudDirectoryError> DetachTypedLinkOutcome;
209         typedef Aws::Utils::Outcome<DisableDirectoryResult, CloudDirectoryError> DisableDirectoryOutcome;
210         typedef Aws::Utils::Outcome<EnableDirectoryResult, CloudDirectoryError> EnableDirectoryOutcome;
211         typedef Aws::Utils::Outcome<GetAppliedSchemaVersionResult, CloudDirectoryError> GetAppliedSchemaVersionOutcome;
212         typedef Aws::Utils::Outcome<GetDirectoryResult, CloudDirectoryError> GetDirectoryOutcome;
213         typedef Aws::Utils::Outcome<GetFacetResult, CloudDirectoryError> GetFacetOutcome;
214         typedef Aws::Utils::Outcome<GetLinkAttributesResult, CloudDirectoryError> GetLinkAttributesOutcome;
215         typedef Aws::Utils::Outcome<GetObjectAttributesResult, CloudDirectoryError> GetObjectAttributesOutcome;
216         typedef Aws::Utils::Outcome<GetObjectInformationResult, CloudDirectoryError> GetObjectInformationOutcome;
217         typedef Aws::Utils::Outcome<GetSchemaAsJsonResult, CloudDirectoryError> GetSchemaAsJsonOutcome;
218         typedef Aws::Utils::Outcome<GetTypedLinkFacetInformationResult, CloudDirectoryError> GetTypedLinkFacetInformationOutcome;
219         typedef Aws::Utils::Outcome<ListAppliedSchemaArnsResult, CloudDirectoryError> ListAppliedSchemaArnsOutcome;
220         typedef Aws::Utils::Outcome<ListAttachedIndicesResult, CloudDirectoryError> ListAttachedIndicesOutcome;
221         typedef Aws::Utils::Outcome<ListDevelopmentSchemaArnsResult, CloudDirectoryError> ListDevelopmentSchemaArnsOutcome;
222         typedef Aws::Utils::Outcome<ListDirectoriesResult, CloudDirectoryError> ListDirectoriesOutcome;
223         typedef Aws::Utils::Outcome<ListFacetAttributesResult, CloudDirectoryError> ListFacetAttributesOutcome;
224         typedef Aws::Utils::Outcome<ListFacetNamesResult, CloudDirectoryError> ListFacetNamesOutcome;
225         typedef Aws::Utils::Outcome<ListIncomingTypedLinksResult, CloudDirectoryError> ListIncomingTypedLinksOutcome;
226         typedef Aws::Utils::Outcome<ListIndexResult, CloudDirectoryError> ListIndexOutcome;
227         typedef Aws::Utils::Outcome<ListManagedSchemaArnsResult, CloudDirectoryError> ListManagedSchemaArnsOutcome;
228         typedef Aws::Utils::Outcome<ListObjectAttributesResult, CloudDirectoryError> ListObjectAttributesOutcome;
229         typedef Aws::Utils::Outcome<ListObjectChildrenResult, CloudDirectoryError> ListObjectChildrenOutcome;
230         typedef Aws::Utils::Outcome<ListObjectParentPathsResult, CloudDirectoryError> ListObjectParentPathsOutcome;
231         typedef Aws::Utils::Outcome<ListObjectParentsResult, CloudDirectoryError> ListObjectParentsOutcome;
232         typedef Aws::Utils::Outcome<ListObjectPoliciesResult, CloudDirectoryError> ListObjectPoliciesOutcome;
233         typedef Aws::Utils::Outcome<ListOutgoingTypedLinksResult, CloudDirectoryError> ListOutgoingTypedLinksOutcome;
234         typedef Aws::Utils::Outcome<ListPolicyAttachmentsResult, CloudDirectoryError> ListPolicyAttachmentsOutcome;
235         typedef Aws::Utils::Outcome<ListPublishedSchemaArnsResult, CloudDirectoryError> ListPublishedSchemaArnsOutcome;
236         typedef Aws::Utils::Outcome<ListTagsForResourceResult, CloudDirectoryError> ListTagsForResourceOutcome;
237         typedef Aws::Utils::Outcome<ListTypedLinkFacetAttributesResult, CloudDirectoryError> ListTypedLinkFacetAttributesOutcome;
238         typedef Aws::Utils::Outcome<ListTypedLinkFacetNamesResult, CloudDirectoryError> ListTypedLinkFacetNamesOutcome;
239         typedef Aws::Utils::Outcome<LookupPolicyResult, CloudDirectoryError> LookupPolicyOutcome;
240         typedef Aws::Utils::Outcome<PublishSchemaResult, CloudDirectoryError> PublishSchemaOutcome;
241         typedef Aws::Utils::Outcome<PutSchemaFromJsonResult, CloudDirectoryError> PutSchemaFromJsonOutcome;
242         typedef Aws::Utils::Outcome<RemoveFacetFromObjectResult, CloudDirectoryError> RemoveFacetFromObjectOutcome;
243         typedef Aws::Utils::Outcome<TagResourceResult, CloudDirectoryError> TagResourceOutcome;
244         typedef Aws::Utils::Outcome<UntagResourceResult, CloudDirectoryError> UntagResourceOutcome;
245         typedef Aws::Utils::Outcome<UpdateFacetResult, CloudDirectoryError> UpdateFacetOutcome;
246         typedef Aws::Utils::Outcome<UpdateLinkAttributesResult, CloudDirectoryError> UpdateLinkAttributesOutcome;
247         typedef Aws::Utils::Outcome<UpdateObjectAttributesResult, CloudDirectoryError> UpdateObjectAttributesOutcome;
248         typedef Aws::Utils::Outcome<UpdateSchemaResult, CloudDirectoryError> UpdateSchemaOutcome;
249         typedef Aws::Utils::Outcome<UpdateTypedLinkFacetResult, CloudDirectoryError> UpdateTypedLinkFacetOutcome;
250         typedef Aws::Utils::Outcome<UpgradeAppliedSchemaResult, CloudDirectoryError> UpgradeAppliedSchemaOutcome;
251         typedef Aws::Utils::Outcome<UpgradePublishedSchemaResult, CloudDirectoryError> UpgradePublishedSchemaOutcome;
252 
253         typedef std::future<AddFacetToObjectOutcome> AddFacetToObjectOutcomeCallable;
254         typedef std::future<ApplySchemaOutcome> ApplySchemaOutcomeCallable;
255         typedef std::future<AttachObjectOutcome> AttachObjectOutcomeCallable;
256         typedef std::future<AttachPolicyOutcome> AttachPolicyOutcomeCallable;
257         typedef std::future<AttachToIndexOutcome> AttachToIndexOutcomeCallable;
258         typedef std::future<AttachTypedLinkOutcome> AttachTypedLinkOutcomeCallable;
259         typedef std::future<BatchReadOutcome> BatchReadOutcomeCallable;
260         typedef std::future<BatchWriteOutcome> BatchWriteOutcomeCallable;
261         typedef std::future<CreateDirectoryOutcome> CreateDirectoryOutcomeCallable;
262         typedef std::future<CreateFacetOutcome> CreateFacetOutcomeCallable;
263         typedef std::future<CreateIndexOutcome> CreateIndexOutcomeCallable;
264         typedef std::future<CreateObjectOutcome> CreateObjectOutcomeCallable;
265         typedef std::future<CreateSchemaOutcome> CreateSchemaOutcomeCallable;
266         typedef std::future<CreateTypedLinkFacetOutcome> CreateTypedLinkFacetOutcomeCallable;
267         typedef std::future<DeleteDirectoryOutcome> DeleteDirectoryOutcomeCallable;
268         typedef std::future<DeleteFacetOutcome> DeleteFacetOutcomeCallable;
269         typedef std::future<DeleteObjectOutcome> DeleteObjectOutcomeCallable;
270         typedef std::future<DeleteSchemaOutcome> DeleteSchemaOutcomeCallable;
271         typedef std::future<DeleteTypedLinkFacetOutcome> DeleteTypedLinkFacetOutcomeCallable;
272         typedef std::future<DetachFromIndexOutcome> DetachFromIndexOutcomeCallable;
273         typedef std::future<DetachObjectOutcome> DetachObjectOutcomeCallable;
274         typedef std::future<DetachPolicyOutcome> DetachPolicyOutcomeCallable;
275         typedef std::future<DetachTypedLinkOutcome> DetachTypedLinkOutcomeCallable;
276         typedef std::future<DisableDirectoryOutcome> DisableDirectoryOutcomeCallable;
277         typedef std::future<EnableDirectoryOutcome> EnableDirectoryOutcomeCallable;
278         typedef std::future<GetAppliedSchemaVersionOutcome> GetAppliedSchemaVersionOutcomeCallable;
279         typedef std::future<GetDirectoryOutcome> GetDirectoryOutcomeCallable;
280         typedef std::future<GetFacetOutcome> GetFacetOutcomeCallable;
281         typedef std::future<GetLinkAttributesOutcome> GetLinkAttributesOutcomeCallable;
282         typedef std::future<GetObjectAttributesOutcome> GetObjectAttributesOutcomeCallable;
283         typedef std::future<GetObjectInformationOutcome> GetObjectInformationOutcomeCallable;
284         typedef std::future<GetSchemaAsJsonOutcome> GetSchemaAsJsonOutcomeCallable;
285         typedef std::future<GetTypedLinkFacetInformationOutcome> GetTypedLinkFacetInformationOutcomeCallable;
286         typedef std::future<ListAppliedSchemaArnsOutcome> ListAppliedSchemaArnsOutcomeCallable;
287         typedef std::future<ListAttachedIndicesOutcome> ListAttachedIndicesOutcomeCallable;
288         typedef std::future<ListDevelopmentSchemaArnsOutcome> ListDevelopmentSchemaArnsOutcomeCallable;
289         typedef std::future<ListDirectoriesOutcome> ListDirectoriesOutcomeCallable;
290         typedef std::future<ListFacetAttributesOutcome> ListFacetAttributesOutcomeCallable;
291         typedef std::future<ListFacetNamesOutcome> ListFacetNamesOutcomeCallable;
292         typedef std::future<ListIncomingTypedLinksOutcome> ListIncomingTypedLinksOutcomeCallable;
293         typedef std::future<ListIndexOutcome> ListIndexOutcomeCallable;
294         typedef std::future<ListManagedSchemaArnsOutcome> ListManagedSchemaArnsOutcomeCallable;
295         typedef std::future<ListObjectAttributesOutcome> ListObjectAttributesOutcomeCallable;
296         typedef std::future<ListObjectChildrenOutcome> ListObjectChildrenOutcomeCallable;
297         typedef std::future<ListObjectParentPathsOutcome> ListObjectParentPathsOutcomeCallable;
298         typedef std::future<ListObjectParentsOutcome> ListObjectParentsOutcomeCallable;
299         typedef std::future<ListObjectPoliciesOutcome> ListObjectPoliciesOutcomeCallable;
300         typedef std::future<ListOutgoingTypedLinksOutcome> ListOutgoingTypedLinksOutcomeCallable;
301         typedef std::future<ListPolicyAttachmentsOutcome> ListPolicyAttachmentsOutcomeCallable;
302         typedef std::future<ListPublishedSchemaArnsOutcome> ListPublishedSchemaArnsOutcomeCallable;
303         typedef std::future<ListTagsForResourceOutcome> ListTagsForResourceOutcomeCallable;
304         typedef std::future<ListTypedLinkFacetAttributesOutcome> ListTypedLinkFacetAttributesOutcomeCallable;
305         typedef std::future<ListTypedLinkFacetNamesOutcome> ListTypedLinkFacetNamesOutcomeCallable;
306         typedef std::future<LookupPolicyOutcome> LookupPolicyOutcomeCallable;
307         typedef std::future<PublishSchemaOutcome> PublishSchemaOutcomeCallable;
308         typedef std::future<PutSchemaFromJsonOutcome> PutSchemaFromJsonOutcomeCallable;
309         typedef std::future<RemoveFacetFromObjectOutcome> RemoveFacetFromObjectOutcomeCallable;
310         typedef std::future<TagResourceOutcome> TagResourceOutcomeCallable;
311         typedef std::future<UntagResourceOutcome> UntagResourceOutcomeCallable;
312         typedef std::future<UpdateFacetOutcome> UpdateFacetOutcomeCallable;
313         typedef std::future<UpdateLinkAttributesOutcome> UpdateLinkAttributesOutcomeCallable;
314         typedef std::future<UpdateObjectAttributesOutcome> UpdateObjectAttributesOutcomeCallable;
315         typedef std::future<UpdateSchemaOutcome> UpdateSchemaOutcomeCallable;
316         typedef std::future<UpdateTypedLinkFacetOutcome> UpdateTypedLinkFacetOutcomeCallable;
317         typedef std::future<UpgradeAppliedSchemaOutcome> UpgradeAppliedSchemaOutcomeCallable;
318         typedef std::future<UpgradePublishedSchemaOutcome> UpgradePublishedSchemaOutcomeCallable;
319 } // namespace Model
320 
321   class CloudDirectoryClient;
322 
323     typedef std::function<void(const CloudDirectoryClient*, const Model::AddFacetToObjectRequest&, const Model::AddFacetToObjectOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AddFacetToObjectResponseReceivedHandler;
324     typedef std::function<void(const CloudDirectoryClient*, const Model::ApplySchemaRequest&, const Model::ApplySchemaOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ApplySchemaResponseReceivedHandler;
325     typedef std::function<void(const CloudDirectoryClient*, const Model::AttachObjectRequest&, const Model::AttachObjectOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AttachObjectResponseReceivedHandler;
326     typedef std::function<void(const CloudDirectoryClient*, const Model::AttachPolicyRequest&, const Model::AttachPolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AttachPolicyResponseReceivedHandler;
327     typedef std::function<void(const CloudDirectoryClient*, const Model::AttachToIndexRequest&, const Model::AttachToIndexOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AttachToIndexResponseReceivedHandler;
328     typedef std::function<void(const CloudDirectoryClient*, const Model::AttachTypedLinkRequest&, const Model::AttachTypedLinkOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AttachTypedLinkResponseReceivedHandler;
329     typedef std::function<void(const CloudDirectoryClient*, const Model::BatchReadRequest&, const Model::BatchReadOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > BatchReadResponseReceivedHandler;
330     typedef std::function<void(const CloudDirectoryClient*, const Model::BatchWriteRequest&, const Model::BatchWriteOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > BatchWriteResponseReceivedHandler;
331     typedef std::function<void(const CloudDirectoryClient*, const Model::CreateDirectoryRequest&, const Model::CreateDirectoryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateDirectoryResponseReceivedHandler;
332     typedef std::function<void(const CloudDirectoryClient*, const Model::CreateFacetRequest&, const Model::CreateFacetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateFacetResponseReceivedHandler;
333     typedef std::function<void(const CloudDirectoryClient*, const Model::CreateIndexRequest&, const Model::CreateIndexOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateIndexResponseReceivedHandler;
334     typedef std::function<void(const CloudDirectoryClient*, const Model::CreateObjectRequest&, const Model::CreateObjectOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateObjectResponseReceivedHandler;
335     typedef std::function<void(const CloudDirectoryClient*, const Model::CreateSchemaRequest&, const Model::CreateSchemaOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateSchemaResponseReceivedHandler;
336     typedef std::function<void(const CloudDirectoryClient*, const Model::CreateTypedLinkFacetRequest&, const Model::CreateTypedLinkFacetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateTypedLinkFacetResponseReceivedHandler;
337     typedef std::function<void(const CloudDirectoryClient*, const Model::DeleteDirectoryRequest&, const Model::DeleteDirectoryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteDirectoryResponseReceivedHandler;
338     typedef std::function<void(const CloudDirectoryClient*, const Model::DeleteFacetRequest&, const Model::DeleteFacetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteFacetResponseReceivedHandler;
339     typedef std::function<void(const CloudDirectoryClient*, const Model::DeleteObjectRequest&, const Model::DeleteObjectOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteObjectResponseReceivedHandler;
340     typedef std::function<void(const CloudDirectoryClient*, const Model::DeleteSchemaRequest&, const Model::DeleteSchemaOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteSchemaResponseReceivedHandler;
341     typedef std::function<void(const CloudDirectoryClient*, const Model::DeleteTypedLinkFacetRequest&, const Model::DeleteTypedLinkFacetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteTypedLinkFacetResponseReceivedHandler;
342     typedef std::function<void(const CloudDirectoryClient*, const Model::DetachFromIndexRequest&, const Model::DetachFromIndexOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DetachFromIndexResponseReceivedHandler;
343     typedef std::function<void(const CloudDirectoryClient*, const Model::DetachObjectRequest&, const Model::DetachObjectOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DetachObjectResponseReceivedHandler;
344     typedef std::function<void(const CloudDirectoryClient*, const Model::DetachPolicyRequest&, const Model::DetachPolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DetachPolicyResponseReceivedHandler;
345     typedef std::function<void(const CloudDirectoryClient*, const Model::DetachTypedLinkRequest&, const Model::DetachTypedLinkOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DetachTypedLinkResponseReceivedHandler;
346     typedef std::function<void(const CloudDirectoryClient*, const Model::DisableDirectoryRequest&, const Model::DisableDirectoryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisableDirectoryResponseReceivedHandler;
347     typedef std::function<void(const CloudDirectoryClient*, const Model::EnableDirectoryRequest&, const Model::EnableDirectoryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > EnableDirectoryResponseReceivedHandler;
348     typedef std::function<void(const CloudDirectoryClient*, const Model::GetAppliedSchemaVersionRequest&, const Model::GetAppliedSchemaVersionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetAppliedSchemaVersionResponseReceivedHandler;
349     typedef std::function<void(const CloudDirectoryClient*, const Model::GetDirectoryRequest&, const Model::GetDirectoryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetDirectoryResponseReceivedHandler;
350     typedef std::function<void(const CloudDirectoryClient*, const Model::GetFacetRequest&, const Model::GetFacetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetFacetResponseReceivedHandler;
351     typedef std::function<void(const CloudDirectoryClient*, const Model::GetLinkAttributesRequest&, const Model::GetLinkAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetLinkAttributesResponseReceivedHandler;
352     typedef std::function<void(const CloudDirectoryClient*, const Model::GetObjectAttributesRequest&, const Model::GetObjectAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetObjectAttributesResponseReceivedHandler;
353     typedef std::function<void(const CloudDirectoryClient*, const Model::GetObjectInformationRequest&, const Model::GetObjectInformationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetObjectInformationResponseReceivedHandler;
354     typedef std::function<void(const CloudDirectoryClient*, const Model::GetSchemaAsJsonRequest&, const Model::GetSchemaAsJsonOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetSchemaAsJsonResponseReceivedHandler;
355     typedef std::function<void(const CloudDirectoryClient*, const Model::GetTypedLinkFacetInformationRequest&, const Model::GetTypedLinkFacetInformationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetTypedLinkFacetInformationResponseReceivedHandler;
356     typedef std::function<void(const CloudDirectoryClient*, const Model::ListAppliedSchemaArnsRequest&, const Model::ListAppliedSchemaArnsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListAppliedSchemaArnsResponseReceivedHandler;
357     typedef std::function<void(const CloudDirectoryClient*, const Model::ListAttachedIndicesRequest&, const Model::ListAttachedIndicesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListAttachedIndicesResponseReceivedHandler;
358     typedef std::function<void(const CloudDirectoryClient*, const Model::ListDevelopmentSchemaArnsRequest&, const Model::ListDevelopmentSchemaArnsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListDevelopmentSchemaArnsResponseReceivedHandler;
359     typedef std::function<void(const CloudDirectoryClient*, const Model::ListDirectoriesRequest&, const Model::ListDirectoriesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListDirectoriesResponseReceivedHandler;
360     typedef std::function<void(const CloudDirectoryClient*, const Model::ListFacetAttributesRequest&, const Model::ListFacetAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListFacetAttributesResponseReceivedHandler;
361     typedef std::function<void(const CloudDirectoryClient*, const Model::ListFacetNamesRequest&, const Model::ListFacetNamesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListFacetNamesResponseReceivedHandler;
362     typedef std::function<void(const CloudDirectoryClient*, const Model::ListIncomingTypedLinksRequest&, const Model::ListIncomingTypedLinksOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListIncomingTypedLinksResponseReceivedHandler;
363     typedef std::function<void(const CloudDirectoryClient*, const Model::ListIndexRequest&, const Model::ListIndexOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListIndexResponseReceivedHandler;
364     typedef std::function<void(const CloudDirectoryClient*, const Model::ListManagedSchemaArnsRequest&, const Model::ListManagedSchemaArnsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListManagedSchemaArnsResponseReceivedHandler;
365     typedef std::function<void(const CloudDirectoryClient*, const Model::ListObjectAttributesRequest&, const Model::ListObjectAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListObjectAttributesResponseReceivedHandler;
366     typedef std::function<void(const CloudDirectoryClient*, const Model::ListObjectChildrenRequest&, const Model::ListObjectChildrenOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListObjectChildrenResponseReceivedHandler;
367     typedef std::function<void(const CloudDirectoryClient*, const Model::ListObjectParentPathsRequest&, const Model::ListObjectParentPathsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListObjectParentPathsResponseReceivedHandler;
368     typedef std::function<void(const CloudDirectoryClient*, const Model::ListObjectParentsRequest&, const Model::ListObjectParentsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListObjectParentsResponseReceivedHandler;
369     typedef std::function<void(const CloudDirectoryClient*, const Model::ListObjectPoliciesRequest&, const Model::ListObjectPoliciesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListObjectPoliciesResponseReceivedHandler;
370     typedef std::function<void(const CloudDirectoryClient*, const Model::ListOutgoingTypedLinksRequest&, const Model::ListOutgoingTypedLinksOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListOutgoingTypedLinksResponseReceivedHandler;
371     typedef std::function<void(const CloudDirectoryClient*, const Model::ListPolicyAttachmentsRequest&, const Model::ListPolicyAttachmentsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListPolicyAttachmentsResponseReceivedHandler;
372     typedef std::function<void(const CloudDirectoryClient*, const Model::ListPublishedSchemaArnsRequest&, const Model::ListPublishedSchemaArnsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListPublishedSchemaArnsResponseReceivedHandler;
373     typedef std::function<void(const CloudDirectoryClient*, const Model::ListTagsForResourceRequest&, const Model::ListTagsForResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTagsForResourceResponseReceivedHandler;
374     typedef std::function<void(const CloudDirectoryClient*, const Model::ListTypedLinkFacetAttributesRequest&, const Model::ListTypedLinkFacetAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTypedLinkFacetAttributesResponseReceivedHandler;
375     typedef std::function<void(const CloudDirectoryClient*, const Model::ListTypedLinkFacetNamesRequest&, const Model::ListTypedLinkFacetNamesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTypedLinkFacetNamesResponseReceivedHandler;
376     typedef std::function<void(const CloudDirectoryClient*, const Model::LookupPolicyRequest&, const Model::LookupPolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > LookupPolicyResponseReceivedHandler;
377     typedef std::function<void(const CloudDirectoryClient*, const Model::PublishSchemaRequest&, const Model::PublishSchemaOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PublishSchemaResponseReceivedHandler;
378     typedef std::function<void(const CloudDirectoryClient*, const Model::PutSchemaFromJsonRequest&, const Model::PutSchemaFromJsonOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutSchemaFromJsonResponseReceivedHandler;
379     typedef std::function<void(const CloudDirectoryClient*, const Model::RemoveFacetFromObjectRequest&, const Model::RemoveFacetFromObjectOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RemoveFacetFromObjectResponseReceivedHandler;
380     typedef std::function<void(const CloudDirectoryClient*, const Model::TagResourceRequest&, const Model::TagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TagResourceResponseReceivedHandler;
381     typedef std::function<void(const CloudDirectoryClient*, const Model::UntagResourceRequest&, const Model::UntagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UntagResourceResponseReceivedHandler;
382     typedef std::function<void(const CloudDirectoryClient*, const Model::UpdateFacetRequest&, const Model::UpdateFacetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateFacetResponseReceivedHandler;
383     typedef std::function<void(const CloudDirectoryClient*, const Model::UpdateLinkAttributesRequest&, const Model::UpdateLinkAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateLinkAttributesResponseReceivedHandler;
384     typedef std::function<void(const CloudDirectoryClient*, const Model::UpdateObjectAttributesRequest&, const Model::UpdateObjectAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateObjectAttributesResponseReceivedHandler;
385     typedef std::function<void(const CloudDirectoryClient*, const Model::UpdateSchemaRequest&, const Model::UpdateSchemaOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateSchemaResponseReceivedHandler;
386     typedef std::function<void(const CloudDirectoryClient*, const Model::UpdateTypedLinkFacetRequest&, const Model::UpdateTypedLinkFacetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateTypedLinkFacetResponseReceivedHandler;
387     typedef std::function<void(const CloudDirectoryClient*, const Model::UpgradeAppliedSchemaRequest&, const Model::UpgradeAppliedSchemaOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpgradeAppliedSchemaResponseReceivedHandler;
388     typedef std::function<void(const CloudDirectoryClient*, const Model::UpgradePublishedSchemaRequest&, const Model::UpgradePublishedSchemaOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpgradePublishedSchemaResponseReceivedHandler;
389 
390   /**
391    * <fullname>Amazon Cloud Directory</fullname> <p>Amazon Cloud Directory is a
392    * component of the AWS Directory Service that simplifies the development and
393    * management of cloud-scale web, mobile, and IoT applications. This guide
394    * describes the Cloud Directory operations that you can call programmatically and
395    * includes detailed information on data types and errors. For information about
396    * Cloud Directory features, see <a
397    * href="https://aws.amazon.com/directoryservice/">AWS Directory Service</a> and
398    * the <a
399    * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/what_is_cloud_directory.html">Amazon
400    * Cloud Directory Developer Guide</a>.</p>
401    */
402   class AWS_CLOUDDIRECTORY_API CloudDirectoryClient : public Aws::Client::AWSJsonClient
403   {
404     public:
405       typedef Aws::Client::AWSJsonClient BASECLASS;
406 
407        /**
408         * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
409         * is not specified, it will be initialized to default values.
410         */
411         CloudDirectoryClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
412 
413        /**
414         * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
415         * is not specified, it will be initialized to default values.
416         */
417         CloudDirectoryClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
418 
419        /**
420         * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
421         * the default http client factory will be used
422         */
423         CloudDirectoryClient(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
424             const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
425 
426         virtual ~CloudDirectoryClient();
427 
428 
429         /**
430          * <p>Adds a new <a>Facet</a> to an object. An object can have more than one facet
431          * applied on it.</p><p><h3>See Also:</h3>   <a
432          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AddFacetToObject">AWS
433          * API Reference</a></p>
434          */
435         virtual Model::AddFacetToObjectOutcome AddFacetToObject(const Model::AddFacetToObjectRequest& request) const;
436 
437         /**
438          * <p>Adds a new <a>Facet</a> to an object. An object can have more than one facet
439          * applied on it.</p><p><h3>See Also:</h3>   <a
440          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AddFacetToObject">AWS
441          * API Reference</a></p>
442          *
443          * returns a future to the operation so that it can be executed in parallel to other requests.
444          */
445         virtual Model::AddFacetToObjectOutcomeCallable AddFacetToObjectCallable(const Model::AddFacetToObjectRequest& request) const;
446 
447         /**
448          * <p>Adds a new <a>Facet</a> to an object. An object can have more than one facet
449          * applied on it.</p><p><h3>See Also:</h3>   <a
450          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AddFacetToObject">AWS
451          * API Reference</a></p>
452          *
453          * Queues the request into a thread executor and triggers associated callback when operation has finished.
454          */
455         virtual void AddFacetToObjectAsync(const Model::AddFacetToObjectRequest& request, const AddFacetToObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
456 
457         /**
458          * <p>Copies the input published schema, at the specified version, into the
459          * <a>Directory</a> with the same name and version as that of the published
460          * schema.</p><p><h3>See Also:</h3>   <a
461          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ApplySchema">AWS
462          * API Reference</a></p>
463          */
464         virtual Model::ApplySchemaOutcome ApplySchema(const Model::ApplySchemaRequest& request) const;
465 
466         /**
467          * <p>Copies the input published schema, at the specified version, into the
468          * <a>Directory</a> with the same name and version as that of the published
469          * schema.</p><p><h3>See Also:</h3>   <a
470          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ApplySchema">AWS
471          * API Reference</a></p>
472          *
473          * returns a future to the operation so that it can be executed in parallel to other requests.
474          */
475         virtual Model::ApplySchemaOutcomeCallable ApplySchemaCallable(const Model::ApplySchemaRequest& request) const;
476 
477         /**
478          * <p>Copies the input published schema, at the specified version, into the
479          * <a>Directory</a> with the same name and version as that of the published
480          * schema.</p><p><h3>See Also:</h3>   <a
481          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ApplySchema">AWS
482          * API Reference</a></p>
483          *
484          * Queues the request into a thread executor and triggers associated callback when operation has finished.
485          */
486         virtual void ApplySchemaAsync(const Model::ApplySchemaRequest& request, const ApplySchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
487 
488         /**
489          * <p>Attaches an existing object to another object. An object can be accessed in
490          * two ways:</p> <ol> <li> <p>Using the path</p> </li> <li> <p>Using
491          * <code>ObjectIdentifier</code> </p> </li> </ol><p><h3>See Also:</h3>   <a
492          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachObject">AWS
493          * API Reference</a></p>
494          */
495         virtual Model::AttachObjectOutcome AttachObject(const Model::AttachObjectRequest& request) const;
496 
497         /**
498          * <p>Attaches an existing object to another object. An object can be accessed in
499          * two ways:</p> <ol> <li> <p>Using the path</p> </li> <li> <p>Using
500          * <code>ObjectIdentifier</code> </p> </li> </ol><p><h3>See Also:</h3>   <a
501          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachObject">AWS
502          * API Reference</a></p>
503          *
504          * returns a future to the operation so that it can be executed in parallel to other requests.
505          */
506         virtual Model::AttachObjectOutcomeCallable AttachObjectCallable(const Model::AttachObjectRequest& request) const;
507 
508         /**
509          * <p>Attaches an existing object to another object. An object can be accessed in
510          * two ways:</p> <ol> <li> <p>Using the path</p> </li> <li> <p>Using
511          * <code>ObjectIdentifier</code> </p> </li> </ol><p><h3>See Also:</h3>   <a
512          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachObject">AWS
513          * API Reference</a></p>
514          *
515          * Queues the request into a thread executor and triggers associated callback when operation has finished.
516          */
517         virtual void AttachObjectAsync(const Model::AttachObjectRequest& request, const AttachObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
518 
519         /**
520          * <p>Attaches a policy object to a regular object. An object can have a limited
521          * number of attached policies.</p><p><h3>See Also:</h3>   <a
522          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachPolicy">AWS
523          * API Reference</a></p>
524          */
525         virtual Model::AttachPolicyOutcome AttachPolicy(const Model::AttachPolicyRequest& request) const;
526 
527         /**
528          * <p>Attaches a policy object to a regular object. An object can have a limited
529          * number of attached policies.</p><p><h3>See Also:</h3>   <a
530          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachPolicy">AWS
531          * API Reference</a></p>
532          *
533          * returns a future to the operation so that it can be executed in parallel to other requests.
534          */
535         virtual Model::AttachPolicyOutcomeCallable AttachPolicyCallable(const Model::AttachPolicyRequest& request) const;
536 
537         /**
538          * <p>Attaches a policy object to a regular object. An object can have a limited
539          * number of attached policies.</p><p><h3>See Also:</h3>   <a
540          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachPolicy">AWS
541          * API Reference</a></p>
542          *
543          * Queues the request into a thread executor and triggers associated callback when operation has finished.
544          */
545         virtual void AttachPolicyAsync(const Model::AttachPolicyRequest& request, const AttachPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
546 
547         /**
548          * <p>Attaches the specified object to the specified index.</p><p><h3>See
549          * Also:</h3>   <a
550          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachToIndex">AWS
551          * API Reference</a></p>
552          */
553         virtual Model::AttachToIndexOutcome AttachToIndex(const Model::AttachToIndexRequest& request) const;
554 
555         /**
556          * <p>Attaches the specified object to the specified index.</p><p><h3>See
557          * Also:</h3>   <a
558          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachToIndex">AWS
559          * API Reference</a></p>
560          *
561          * returns a future to the operation so that it can be executed in parallel to other requests.
562          */
563         virtual Model::AttachToIndexOutcomeCallable AttachToIndexCallable(const Model::AttachToIndexRequest& request) const;
564 
565         /**
566          * <p>Attaches the specified object to the specified index.</p><p><h3>See
567          * Also:</h3>   <a
568          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachToIndex">AWS
569          * API Reference</a></p>
570          *
571          * Queues the request into a thread executor and triggers associated callback when operation has finished.
572          */
573         virtual void AttachToIndexAsync(const Model::AttachToIndexRequest& request, const AttachToIndexResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
574 
575         /**
576          * <p>Attaches a typed link to a specified source and target object. For more
577          * information, see <a
578          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
579          * Links</a>.</p><p><h3>See Also:</h3>   <a
580          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachTypedLink">AWS
581          * API Reference</a></p>
582          */
583         virtual Model::AttachTypedLinkOutcome AttachTypedLink(const Model::AttachTypedLinkRequest& request) const;
584 
585         /**
586          * <p>Attaches a typed link to a specified source and target object. For more
587          * information, see <a
588          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
589          * Links</a>.</p><p><h3>See Also:</h3>   <a
590          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachTypedLink">AWS
591          * API Reference</a></p>
592          *
593          * returns a future to the operation so that it can be executed in parallel to other requests.
594          */
595         virtual Model::AttachTypedLinkOutcomeCallable AttachTypedLinkCallable(const Model::AttachTypedLinkRequest& request) const;
596 
597         /**
598          * <p>Attaches a typed link to a specified source and target object. For more
599          * information, see <a
600          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
601          * Links</a>.</p><p><h3>See Also:</h3>   <a
602          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/AttachTypedLink">AWS
603          * API Reference</a></p>
604          *
605          * Queues the request into a thread executor and triggers associated callback when operation has finished.
606          */
607         virtual void AttachTypedLinkAsync(const Model::AttachTypedLinkRequest& request, const AttachTypedLinkResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
608 
609         /**
610          * <p>Performs all the read operations in a batch. </p><p><h3>See Also:</h3>   <a
611          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/BatchRead">AWS
612          * API Reference</a></p>
613          */
614         virtual Model::BatchReadOutcome BatchRead(const Model::BatchReadRequest& request) const;
615 
616         /**
617          * <p>Performs all the read operations in a batch. </p><p><h3>See Also:</h3>   <a
618          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/BatchRead">AWS
619          * API Reference</a></p>
620          *
621          * returns a future to the operation so that it can be executed in parallel to other requests.
622          */
623         virtual Model::BatchReadOutcomeCallable BatchReadCallable(const Model::BatchReadRequest& request) const;
624 
625         /**
626          * <p>Performs all the read operations in a batch. </p><p><h3>See Also:</h3>   <a
627          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/BatchRead">AWS
628          * API Reference</a></p>
629          *
630          * Queues the request into a thread executor and triggers associated callback when operation has finished.
631          */
632         virtual void BatchReadAsync(const Model::BatchReadRequest& request, const BatchReadResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
633 
634         /**
635          * <p>Performs all the write operations in a batch. Either all the operations
636          * succeed or none.</p><p><h3>See Also:</h3>   <a
637          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/BatchWrite">AWS
638          * API Reference</a></p>
639          */
640         virtual Model::BatchWriteOutcome BatchWrite(const Model::BatchWriteRequest& request) const;
641 
642         /**
643          * <p>Performs all the write operations in a batch. Either all the operations
644          * succeed or none.</p><p><h3>See Also:</h3>   <a
645          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/BatchWrite">AWS
646          * API Reference</a></p>
647          *
648          * returns a future to the operation so that it can be executed in parallel to other requests.
649          */
650         virtual Model::BatchWriteOutcomeCallable BatchWriteCallable(const Model::BatchWriteRequest& request) const;
651 
652         /**
653          * <p>Performs all the write operations in a batch. Either all the operations
654          * succeed or none.</p><p><h3>See Also:</h3>   <a
655          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/BatchWrite">AWS
656          * API Reference</a></p>
657          *
658          * Queues the request into a thread executor and triggers associated callback when operation has finished.
659          */
660         virtual void BatchWriteAsync(const Model::BatchWriteRequest& request, const BatchWriteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
661 
662         /**
663          * <p>Creates a <a>Directory</a> by copying the published schema into the
664          * directory. A directory cannot be created without a schema.</p> <p>You can also
665          * quickly create a directory using a managed schema, called the
666          * <code>QuickStartSchema</code>. For more information, see <a
667          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_managed.html">Managed
668          * Schema</a> in the <i>Amazon Cloud Directory Developer Guide</i>.</p><p><h3>See
669          * Also:</h3>   <a
670          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateDirectory">AWS
671          * API Reference</a></p>
672          */
673         virtual Model::CreateDirectoryOutcome CreateDirectory(const Model::CreateDirectoryRequest& request) const;
674 
675         /**
676          * <p>Creates a <a>Directory</a> by copying the published schema into the
677          * directory. A directory cannot be created without a schema.</p> <p>You can also
678          * quickly create a directory using a managed schema, called the
679          * <code>QuickStartSchema</code>. For more information, see <a
680          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_managed.html">Managed
681          * Schema</a> in the <i>Amazon Cloud Directory Developer Guide</i>.</p><p><h3>See
682          * Also:</h3>   <a
683          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateDirectory">AWS
684          * API Reference</a></p>
685          *
686          * returns a future to the operation so that it can be executed in parallel to other requests.
687          */
688         virtual Model::CreateDirectoryOutcomeCallable CreateDirectoryCallable(const Model::CreateDirectoryRequest& request) const;
689 
690         /**
691          * <p>Creates a <a>Directory</a> by copying the published schema into the
692          * directory. A directory cannot be created without a schema.</p> <p>You can also
693          * quickly create a directory using a managed schema, called the
694          * <code>QuickStartSchema</code>. For more information, see <a
695          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_managed.html">Managed
696          * Schema</a> in the <i>Amazon Cloud Directory Developer Guide</i>.</p><p><h3>See
697          * Also:</h3>   <a
698          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateDirectory">AWS
699          * API Reference</a></p>
700          *
701          * Queues the request into a thread executor and triggers associated callback when operation has finished.
702          */
703         virtual void CreateDirectoryAsync(const Model::CreateDirectoryRequest& request, const CreateDirectoryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
704 
705         /**
706          * <p>Creates a new <a>Facet</a> in a schema. Facet creation is allowed only in
707          * development or applied schemas.</p><p><h3>See Also:</h3>   <a
708          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateFacet">AWS
709          * API Reference</a></p>
710          */
711         virtual Model::CreateFacetOutcome CreateFacet(const Model::CreateFacetRequest& request) const;
712 
713         /**
714          * <p>Creates a new <a>Facet</a> in a schema. Facet creation is allowed only in
715          * development or applied schemas.</p><p><h3>See Also:</h3>   <a
716          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateFacet">AWS
717          * API Reference</a></p>
718          *
719          * returns a future to the operation so that it can be executed in parallel to other requests.
720          */
721         virtual Model::CreateFacetOutcomeCallable CreateFacetCallable(const Model::CreateFacetRequest& request) const;
722 
723         /**
724          * <p>Creates a new <a>Facet</a> in a schema. Facet creation is allowed only in
725          * development or applied schemas.</p><p><h3>See Also:</h3>   <a
726          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateFacet">AWS
727          * API Reference</a></p>
728          *
729          * Queues the request into a thread executor and triggers associated callback when operation has finished.
730          */
731         virtual void CreateFacetAsync(const Model::CreateFacetRequest& request, const CreateFacetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
732 
733         /**
734          * <p>Creates an index object. See <a
735          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/indexing_search.html">Indexing
736          * and search</a> for more information.</p><p><h3>See Also:</h3>   <a
737          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateIndex">AWS
738          * API Reference</a></p>
739          */
740         virtual Model::CreateIndexOutcome CreateIndex(const Model::CreateIndexRequest& request) const;
741 
742         /**
743          * <p>Creates an index object. See <a
744          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/indexing_search.html">Indexing
745          * and search</a> for more information.</p><p><h3>See Also:</h3>   <a
746          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateIndex">AWS
747          * API Reference</a></p>
748          *
749          * returns a future to the operation so that it can be executed in parallel to other requests.
750          */
751         virtual Model::CreateIndexOutcomeCallable CreateIndexCallable(const Model::CreateIndexRequest& request) const;
752 
753         /**
754          * <p>Creates an index object. See <a
755          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/indexing_search.html">Indexing
756          * and search</a> for more information.</p><p><h3>See Also:</h3>   <a
757          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateIndex">AWS
758          * API Reference</a></p>
759          *
760          * Queues the request into a thread executor and triggers associated callback when operation has finished.
761          */
762         virtual void CreateIndexAsync(const Model::CreateIndexRequest& request, const CreateIndexResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
763 
764         /**
765          * <p>Creates an object in a <a>Directory</a>. Additionally attaches the object to
766          * a parent, if a parent reference and <code>LinkName</code> is specified. An
767          * object is simply a collection of <a>Facet</a> attributes. You can also use this
768          * API call to create a policy object, if the facet from which you create the
769          * object is a policy facet. </p><p><h3>See Also:</h3>   <a
770          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateObject">AWS
771          * API Reference</a></p>
772          */
773         virtual Model::CreateObjectOutcome CreateObject(const Model::CreateObjectRequest& request) const;
774 
775         /**
776          * <p>Creates an object in a <a>Directory</a>. Additionally attaches the object to
777          * a parent, if a parent reference and <code>LinkName</code> is specified. An
778          * object is simply a collection of <a>Facet</a> attributes. You can also use this
779          * API call to create a policy object, if the facet from which you create the
780          * object is a policy facet. </p><p><h3>See Also:</h3>   <a
781          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateObject">AWS
782          * API Reference</a></p>
783          *
784          * returns a future to the operation so that it can be executed in parallel to other requests.
785          */
786         virtual Model::CreateObjectOutcomeCallable CreateObjectCallable(const Model::CreateObjectRequest& request) const;
787 
788         /**
789          * <p>Creates an object in a <a>Directory</a>. Additionally attaches the object to
790          * a parent, if a parent reference and <code>LinkName</code> is specified. An
791          * object is simply a collection of <a>Facet</a> attributes. You can also use this
792          * API call to create a policy object, if the facet from which you create the
793          * object is a policy facet. </p><p><h3>See Also:</h3>   <a
794          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateObject">AWS
795          * API Reference</a></p>
796          *
797          * Queues the request into a thread executor and triggers associated callback when operation has finished.
798          */
799         virtual void CreateObjectAsync(const Model::CreateObjectRequest& request, const CreateObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
800 
801         /**
802          * <p>Creates a new schema in a development state. A schema can exist in three
803          * phases:</p> <ul> <li> <p> <i>Development:</i> This is a mutable phase of the
804          * schema. All new schemas are in the development phase. Once the schema is
805          * finalized, it can be published.</p> </li> <li> <p> <i>Published:</i> Published
806          * schemas are immutable and have a version associated with them.</p> </li> <li>
807          * <p> <i>Applied:</i> Applied schemas are mutable in a way that allows you to add
808          * new schema facets. You can also add new, nonrequired attributes to existing
809          * schema facets. You can apply only published schemas to directories. </p> </li>
810          * </ul><p><h3>See Also:</h3>   <a
811          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateSchema">AWS
812          * API Reference</a></p>
813          */
814         virtual Model::CreateSchemaOutcome CreateSchema(const Model::CreateSchemaRequest& request) const;
815 
816         /**
817          * <p>Creates a new schema in a development state. A schema can exist in three
818          * phases:</p> <ul> <li> <p> <i>Development:</i> This is a mutable phase of the
819          * schema. All new schemas are in the development phase. Once the schema is
820          * finalized, it can be published.</p> </li> <li> <p> <i>Published:</i> Published
821          * schemas are immutable and have a version associated with them.</p> </li> <li>
822          * <p> <i>Applied:</i> Applied schemas are mutable in a way that allows you to add
823          * new schema facets. You can also add new, nonrequired attributes to existing
824          * schema facets. You can apply only published schemas to directories. </p> </li>
825          * </ul><p><h3>See Also:</h3>   <a
826          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateSchema">AWS
827          * API Reference</a></p>
828          *
829          * returns a future to the operation so that it can be executed in parallel to other requests.
830          */
831         virtual Model::CreateSchemaOutcomeCallable CreateSchemaCallable(const Model::CreateSchemaRequest& request) const;
832 
833         /**
834          * <p>Creates a new schema in a development state. A schema can exist in three
835          * phases:</p> <ul> <li> <p> <i>Development:</i> This is a mutable phase of the
836          * schema. All new schemas are in the development phase. Once the schema is
837          * finalized, it can be published.</p> </li> <li> <p> <i>Published:</i> Published
838          * schemas are immutable and have a version associated with them.</p> </li> <li>
839          * <p> <i>Applied:</i> Applied schemas are mutable in a way that allows you to add
840          * new schema facets. You can also add new, nonrequired attributes to existing
841          * schema facets. You can apply only published schemas to directories. </p> </li>
842          * </ul><p><h3>See Also:</h3>   <a
843          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateSchema">AWS
844          * API Reference</a></p>
845          *
846          * Queues the request into a thread executor and triggers associated callback when operation has finished.
847          */
848         virtual void CreateSchemaAsync(const Model::CreateSchemaRequest& request, const CreateSchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
849 
850         /**
851          * <p>Creates a <a>TypedLinkFacet</a>. For more information, see <a
852          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
853          * Links</a>.</p><p><h3>See Also:</h3>   <a
854          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateTypedLinkFacet">AWS
855          * API Reference</a></p>
856          */
857         virtual Model::CreateTypedLinkFacetOutcome CreateTypedLinkFacet(const Model::CreateTypedLinkFacetRequest& request) const;
858 
859         /**
860          * <p>Creates a <a>TypedLinkFacet</a>. For more information, see <a
861          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
862          * Links</a>.</p><p><h3>See Also:</h3>   <a
863          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateTypedLinkFacet">AWS
864          * API Reference</a></p>
865          *
866          * returns a future to the operation so that it can be executed in parallel to other requests.
867          */
868         virtual Model::CreateTypedLinkFacetOutcomeCallable CreateTypedLinkFacetCallable(const Model::CreateTypedLinkFacetRequest& request) const;
869 
870         /**
871          * <p>Creates a <a>TypedLinkFacet</a>. For more information, see <a
872          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
873          * Links</a>.</p><p><h3>See Also:</h3>   <a
874          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/CreateTypedLinkFacet">AWS
875          * API Reference</a></p>
876          *
877          * Queues the request into a thread executor and triggers associated callback when operation has finished.
878          */
879         virtual void CreateTypedLinkFacetAsync(const Model::CreateTypedLinkFacetRequest& request, const CreateTypedLinkFacetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
880 
881         /**
882          * <p>Deletes a directory. Only disabled directories can be deleted. A deleted
883          * directory cannot be undone. Exercise extreme caution when deleting
884          * directories.</p><p><h3>See Also:</h3>   <a
885          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteDirectory">AWS
886          * API Reference</a></p>
887          */
888         virtual Model::DeleteDirectoryOutcome DeleteDirectory(const Model::DeleteDirectoryRequest& request) const;
889 
890         /**
891          * <p>Deletes a directory. Only disabled directories can be deleted. A deleted
892          * directory cannot be undone. Exercise extreme caution when deleting
893          * directories.</p><p><h3>See Also:</h3>   <a
894          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteDirectory">AWS
895          * API Reference</a></p>
896          *
897          * returns a future to the operation so that it can be executed in parallel to other requests.
898          */
899         virtual Model::DeleteDirectoryOutcomeCallable DeleteDirectoryCallable(const Model::DeleteDirectoryRequest& request) const;
900 
901         /**
902          * <p>Deletes a directory. Only disabled directories can be deleted. A deleted
903          * directory cannot be undone. Exercise extreme caution when deleting
904          * directories.</p><p><h3>See Also:</h3>   <a
905          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteDirectory">AWS
906          * API Reference</a></p>
907          *
908          * Queues the request into a thread executor and triggers associated callback when operation has finished.
909          */
910         virtual void DeleteDirectoryAsync(const Model::DeleteDirectoryRequest& request, const DeleteDirectoryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
911 
912         /**
913          * <p>Deletes a given <a>Facet</a>. All attributes and <a>Rule</a>s that are
914          * associated with the facet will be deleted. Only development schema facets are
915          * allowed deletion.</p><p><h3>See Also:</h3>   <a
916          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteFacet">AWS
917          * API Reference</a></p>
918          */
919         virtual Model::DeleteFacetOutcome DeleteFacet(const Model::DeleteFacetRequest& request) const;
920 
921         /**
922          * <p>Deletes a given <a>Facet</a>. All attributes and <a>Rule</a>s that are
923          * associated with the facet will be deleted. Only development schema facets are
924          * allowed deletion.</p><p><h3>See Also:</h3>   <a
925          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteFacet">AWS
926          * API Reference</a></p>
927          *
928          * returns a future to the operation so that it can be executed in parallel to other requests.
929          */
930         virtual Model::DeleteFacetOutcomeCallable DeleteFacetCallable(const Model::DeleteFacetRequest& request) const;
931 
932         /**
933          * <p>Deletes a given <a>Facet</a>. All attributes and <a>Rule</a>s that are
934          * associated with the facet will be deleted. Only development schema facets are
935          * allowed deletion.</p><p><h3>See Also:</h3>   <a
936          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteFacet">AWS
937          * API Reference</a></p>
938          *
939          * Queues the request into a thread executor and triggers associated callback when operation has finished.
940          */
941         virtual void DeleteFacetAsync(const Model::DeleteFacetRequest& request, const DeleteFacetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
942 
943         /**
944          * <p>Deletes an object and its associated attributes. Only objects with no
945          * children and no parents can be deleted. The maximum number of attributes that
946          * can be deleted during an object deletion is 30. For more information, see <a
947          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html">Amazon
948          * Cloud Directory Limits</a>.</p><p><h3>See Also:</h3>   <a
949          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteObject">AWS
950          * API Reference</a></p>
951          */
952         virtual Model::DeleteObjectOutcome DeleteObject(const Model::DeleteObjectRequest& request) const;
953 
954         /**
955          * <p>Deletes an object and its associated attributes. Only objects with no
956          * children and no parents can be deleted. The maximum number of attributes that
957          * can be deleted during an object deletion is 30. For more information, see <a
958          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html">Amazon
959          * Cloud Directory Limits</a>.</p><p><h3>See Also:</h3>   <a
960          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteObject">AWS
961          * API Reference</a></p>
962          *
963          * returns a future to the operation so that it can be executed in parallel to other requests.
964          */
965         virtual Model::DeleteObjectOutcomeCallable DeleteObjectCallable(const Model::DeleteObjectRequest& request) const;
966 
967         /**
968          * <p>Deletes an object and its associated attributes. Only objects with no
969          * children and no parents can be deleted. The maximum number of attributes that
970          * can be deleted during an object deletion is 30. For more information, see <a
971          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html">Amazon
972          * Cloud Directory Limits</a>.</p><p><h3>See Also:</h3>   <a
973          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteObject">AWS
974          * API Reference</a></p>
975          *
976          * Queues the request into a thread executor and triggers associated callback when operation has finished.
977          */
978         virtual void DeleteObjectAsync(const Model::DeleteObjectRequest& request, const DeleteObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
979 
980         /**
981          * <p>Deletes a given schema. Schemas in a development and published state can only
982          * be deleted. </p><p><h3>See Also:</h3>   <a
983          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteSchema">AWS
984          * API Reference</a></p>
985          */
986         virtual Model::DeleteSchemaOutcome DeleteSchema(const Model::DeleteSchemaRequest& request) const;
987 
988         /**
989          * <p>Deletes a given schema. Schemas in a development and published state can only
990          * be deleted. </p><p><h3>See Also:</h3>   <a
991          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteSchema">AWS
992          * API Reference</a></p>
993          *
994          * returns a future to the operation so that it can be executed in parallel to other requests.
995          */
996         virtual Model::DeleteSchemaOutcomeCallable DeleteSchemaCallable(const Model::DeleteSchemaRequest& request) const;
997 
998         /**
999          * <p>Deletes a given schema. Schemas in a development and published state can only
1000          * be deleted. </p><p><h3>See Also:</h3>   <a
1001          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteSchema">AWS
1002          * API Reference</a></p>
1003          *
1004          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1005          */
1006         virtual void DeleteSchemaAsync(const Model::DeleteSchemaRequest& request, const DeleteSchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1007 
1008         /**
1009          * <p>Deletes a <a>TypedLinkFacet</a>. For more information, see <a
1010          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
1011          * Links</a>.</p><p><h3>See Also:</h3>   <a
1012          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteTypedLinkFacet">AWS
1013          * API Reference</a></p>
1014          */
1015         virtual Model::DeleteTypedLinkFacetOutcome DeleteTypedLinkFacet(const Model::DeleteTypedLinkFacetRequest& request) const;
1016 
1017         /**
1018          * <p>Deletes a <a>TypedLinkFacet</a>. For more information, see <a
1019          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
1020          * Links</a>.</p><p><h3>See Also:</h3>   <a
1021          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteTypedLinkFacet">AWS
1022          * API Reference</a></p>
1023          *
1024          * returns a future to the operation so that it can be executed in parallel to other requests.
1025          */
1026         virtual Model::DeleteTypedLinkFacetOutcomeCallable DeleteTypedLinkFacetCallable(const Model::DeleteTypedLinkFacetRequest& request) const;
1027 
1028         /**
1029          * <p>Deletes a <a>TypedLinkFacet</a>. For more information, see <a
1030          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
1031          * Links</a>.</p><p><h3>See Also:</h3>   <a
1032          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DeleteTypedLinkFacet">AWS
1033          * API Reference</a></p>
1034          *
1035          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1036          */
1037         virtual void DeleteTypedLinkFacetAsync(const Model::DeleteTypedLinkFacetRequest& request, const DeleteTypedLinkFacetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1038 
1039         /**
1040          * <p>Detaches the specified object from the specified index.</p><p><h3>See
1041          * Also:</h3>   <a
1042          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachFromIndex">AWS
1043          * API Reference</a></p>
1044          */
1045         virtual Model::DetachFromIndexOutcome DetachFromIndex(const Model::DetachFromIndexRequest& request) const;
1046 
1047         /**
1048          * <p>Detaches the specified object from the specified index.</p><p><h3>See
1049          * Also:</h3>   <a
1050          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachFromIndex">AWS
1051          * API Reference</a></p>
1052          *
1053          * returns a future to the operation so that it can be executed in parallel to other requests.
1054          */
1055         virtual Model::DetachFromIndexOutcomeCallable DetachFromIndexCallable(const Model::DetachFromIndexRequest& request) const;
1056 
1057         /**
1058          * <p>Detaches the specified object from the specified index.</p><p><h3>See
1059          * Also:</h3>   <a
1060          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachFromIndex">AWS
1061          * API Reference</a></p>
1062          *
1063          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1064          */
1065         virtual void DetachFromIndexAsync(const Model::DetachFromIndexRequest& request, const DetachFromIndexResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1066 
1067         /**
1068          * <p>Detaches a given object from the parent object. The object that is to be
1069          * detached from the parent is specified by the link name.</p><p><h3>See Also:</h3>
1070          * <a
1071          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachObject">AWS
1072          * API Reference</a></p>
1073          */
1074         virtual Model::DetachObjectOutcome DetachObject(const Model::DetachObjectRequest& request) const;
1075 
1076         /**
1077          * <p>Detaches a given object from the parent object. The object that is to be
1078          * detached from the parent is specified by the link name.</p><p><h3>See Also:</h3>
1079          * <a
1080          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachObject">AWS
1081          * API Reference</a></p>
1082          *
1083          * returns a future to the operation so that it can be executed in parallel to other requests.
1084          */
1085         virtual Model::DetachObjectOutcomeCallable DetachObjectCallable(const Model::DetachObjectRequest& request) const;
1086 
1087         /**
1088          * <p>Detaches a given object from the parent object. The object that is to be
1089          * detached from the parent is specified by the link name.</p><p><h3>See Also:</h3>
1090          * <a
1091          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachObject">AWS
1092          * API Reference</a></p>
1093          *
1094          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1095          */
1096         virtual void DetachObjectAsync(const Model::DetachObjectRequest& request, const DetachObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1097 
1098         /**
1099          * <p>Detaches a policy from an object.</p><p><h3>See Also:</h3>   <a
1100          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachPolicy">AWS
1101          * API Reference</a></p>
1102          */
1103         virtual Model::DetachPolicyOutcome DetachPolicy(const Model::DetachPolicyRequest& request) const;
1104 
1105         /**
1106          * <p>Detaches a policy from an object.</p><p><h3>See Also:</h3>   <a
1107          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachPolicy">AWS
1108          * API Reference</a></p>
1109          *
1110          * returns a future to the operation so that it can be executed in parallel to other requests.
1111          */
1112         virtual Model::DetachPolicyOutcomeCallable DetachPolicyCallable(const Model::DetachPolicyRequest& request) const;
1113 
1114         /**
1115          * <p>Detaches a policy from an object.</p><p><h3>See Also:</h3>   <a
1116          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachPolicy">AWS
1117          * API Reference</a></p>
1118          *
1119          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1120          */
1121         virtual void DetachPolicyAsync(const Model::DetachPolicyRequest& request, const DetachPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1122 
1123         /**
1124          * <p>Detaches a typed link from a specified source and target object. For more
1125          * information, see <a
1126          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
1127          * Links</a>.</p><p><h3>See Also:</h3>   <a
1128          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachTypedLink">AWS
1129          * API Reference</a></p>
1130          */
1131         virtual Model::DetachTypedLinkOutcome DetachTypedLink(const Model::DetachTypedLinkRequest& request) const;
1132 
1133         /**
1134          * <p>Detaches a typed link from a specified source and target object. For more
1135          * information, see <a
1136          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
1137          * Links</a>.</p><p><h3>See Also:</h3>   <a
1138          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachTypedLink">AWS
1139          * API Reference</a></p>
1140          *
1141          * returns a future to the operation so that it can be executed in parallel to other requests.
1142          */
1143         virtual Model::DetachTypedLinkOutcomeCallable DetachTypedLinkCallable(const Model::DetachTypedLinkRequest& request) const;
1144 
1145         /**
1146          * <p>Detaches a typed link from a specified source and target object. For more
1147          * information, see <a
1148          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
1149          * Links</a>.</p><p><h3>See Also:</h3>   <a
1150          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DetachTypedLink">AWS
1151          * API Reference</a></p>
1152          *
1153          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1154          */
1155         virtual void DetachTypedLinkAsync(const Model::DetachTypedLinkRequest& request, const DetachTypedLinkResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1156 
1157         /**
1158          * <p>Disables the specified directory. Disabled directories cannot be read or
1159          * written to. Only enabled directories can be disabled. Disabled directories may
1160          * be reenabled.</p><p><h3>See Also:</h3>   <a
1161          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DisableDirectory">AWS
1162          * API Reference</a></p>
1163          */
1164         virtual Model::DisableDirectoryOutcome DisableDirectory(const Model::DisableDirectoryRequest& request) const;
1165 
1166         /**
1167          * <p>Disables the specified directory. Disabled directories cannot be read or
1168          * written to. Only enabled directories can be disabled. Disabled directories may
1169          * be reenabled.</p><p><h3>See Also:</h3>   <a
1170          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DisableDirectory">AWS
1171          * API Reference</a></p>
1172          *
1173          * returns a future to the operation so that it can be executed in parallel to other requests.
1174          */
1175         virtual Model::DisableDirectoryOutcomeCallable DisableDirectoryCallable(const Model::DisableDirectoryRequest& request) const;
1176 
1177         /**
1178          * <p>Disables the specified directory. Disabled directories cannot be read or
1179          * written to. Only enabled directories can be disabled. Disabled directories may
1180          * be reenabled.</p><p><h3>See Also:</h3>   <a
1181          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/DisableDirectory">AWS
1182          * API Reference</a></p>
1183          *
1184          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1185          */
1186         virtual void DisableDirectoryAsync(const Model::DisableDirectoryRequest& request, const DisableDirectoryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1187 
1188         /**
1189          * <p>Enables the specified directory. Only disabled directories can be enabled.
1190          * Once enabled, the directory can then be read and written to.</p><p><h3>See
1191          * Also:</h3>   <a
1192          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/EnableDirectory">AWS
1193          * API Reference</a></p>
1194          */
1195         virtual Model::EnableDirectoryOutcome EnableDirectory(const Model::EnableDirectoryRequest& request) const;
1196 
1197         /**
1198          * <p>Enables the specified directory. Only disabled directories can be enabled.
1199          * Once enabled, the directory can then be read and written to.</p><p><h3>See
1200          * Also:</h3>   <a
1201          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/EnableDirectory">AWS
1202          * API Reference</a></p>
1203          *
1204          * returns a future to the operation so that it can be executed in parallel to other requests.
1205          */
1206         virtual Model::EnableDirectoryOutcomeCallable EnableDirectoryCallable(const Model::EnableDirectoryRequest& request) const;
1207 
1208         /**
1209          * <p>Enables the specified directory. Only disabled directories can be enabled.
1210          * Once enabled, the directory can then be read and written to.</p><p><h3>See
1211          * Also:</h3>   <a
1212          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/EnableDirectory">AWS
1213          * API Reference</a></p>
1214          *
1215          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1216          */
1217         virtual void EnableDirectoryAsync(const Model::EnableDirectoryRequest& request, const EnableDirectoryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1218 
1219         /**
1220          * <p>Returns current applied schema version ARN, including the minor version in
1221          * use.</p><p><h3>See Also:</h3>   <a
1222          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetAppliedSchemaVersion">AWS
1223          * API Reference</a></p>
1224          */
1225         virtual Model::GetAppliedSchemaVersionOutcome GetAppliedSchemaVersion(const Model::GetAppliedSchemaVersionRequest& request) const;
1226 
1227         /**
1228          * <p>Returns current applied schema version ARN, including the minor version in
1229          * use.</p><p><h3>See Also:</h3>   <a
1230          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetAppliedSchemaVersion">AWS
1231          * API Reference</a></p>
1232          *
1233          * returns a future to the operation so that it can be executed in parallel to other requests.
1234          */
1235         virtual Model::GetAppliedSchemaVersionOutcomeCallable GetAppliedSchemaVersionCallable(const Model::GetAppliedSchemaVersionRequest& request) const;
1236 
1237         /**
1238          * <p>Returns current applied schema version ARN, including the minor version in
1239          * use.</p><p><h3>See Also:</h3>   <a
1240          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetAppliedSchemaVersion">AWS
1241          * API Reference</a></p>
1242          *
1243          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1244          */
1245         virtual void GetAppliedSchemaVersionAsync(const Model::GetAppliedSchemaVersionRequest& request, const GetAppliedSchemaVersionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1246 
1247         /**
1248          * <p>Retrieves metadata about a directory.</p><p><h3>See Also:</h3>   <a
1249          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetDirectory">AWS
1250          * API Reference</a></p>
1251          */
1252         virtual Model::GetDirectoryOutcome GetDirectory(const Model::GetDirectoryRequest& request) const;
1253 
1254         /**
1255          * <p>Retrieves metadata about a directory.</p><p><h3>See Also:</h3>   <a
1256          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetDirectory">AWS
1257          * API Reference</a></p>
1258          *
1259          * returns a future to the operation so that it can be executed in parallel to other requests.
1260          */
1261         virtual Model::GetDirectoryOutcomeCallable GetDirectoryCallable(const Model::GetDirectoryRequest& request) const;
1262 
1263         /**
1264          * <p>Retrieves metadata about a directory.</p><p><h3>See Also:</h3>   <a
1265          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetDirectory">AWS
1266          * API Reference</a></p>
1267          *
1268          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1269          */
1270         virtual void GetDirectoryAsync(const Model::GetDirectoryRequest& request, const GetDirectoryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1271 
1272         /**
1273          * <p>Gets details of the <a>Facet</a>, such as facet name, attributes,
1274          * <a>Rule</a>s, or <code>ObjectType</code>. You can call this on all kinds of
1275          * schema facets -- published, development, or applied.</p><p><h3>See Also:</h3>
1276          * <a
1277          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetFacet">AWS
1278          * API Reference</a></p>
1279          */
1280         virtual Model::GetFacetOutcome GetFacet(const Model::GetFacetRequest& request) const;
1281 
1282         /**
1283          * <p>Gets details of the <a>Facet</a>, such as facet name, attributes,
1284          * <a>Rule</a>s, or <code>ObjectType</code>. You can call this on all kinds of
1285          * schema facets -- published, development, or applied.</p><p><h3>See Also:</h3>
1286          * <a
1287          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetFacet">AWS
1288          * API Reference</a></p>
1289          *
1290          * returns a future to the operation so that it can be executed in parallel to other requests.
1291          */
1292         virtual Model::GetFacetOutcomeCallable GetFacetCallable(const Model::GetFacetRequest& request) const;
1293 
1294         /**
1295          * <p>Gets details of the <a>Facet</a>, such as facet name, attributes,
1296          * <a>Rule</a>s, or <code>ObjectType</code>. You can call this on all kinds of
1297          * schema facets -- published, development, or applied.</p><p><h3>See Also:</h3>
1298          * <a
1299          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetFacet">AWS
1300          * API Reference</a></p>
1301          *
1302          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1303          */
1304         virtual void GetFacetAsync(const Model::GetFacetRequest& request, const GetFacetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1305 
1306         /**
1307          * <p>Retrieves attributes that are associated with a typed link.</p><p><h3>See
1308          * Also:</h3>   <a
1309          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetLinkAttributes">AWS
1310          * API Reference</a></p>
1311          */
1312         virtual Model::GetLinkAttributesOutcome GetLinkAttributes(const Model::GetLinkAttributesRequest& request) const;
1313 
1314         /**
1315          * <p>Retrieves attributes that are associated with a typed link.</p><p><h3>See
1316          * Also:</h3>   <a
1317          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetLinkAttributes">AWS
1318          * API Reference</a></p>
1319          *
1320          * returns a future to the operation so that it can be executed in parallel to other requests.
1321          */
1322         virtual Model::GetLinkAttributesOutcomeCallable GetLinkAttributesCallable(const Model::GetLinkAttributesRequest& request) const;
1323 
1324         /**
1325          * <p>Retrieves attributes that are associated with a typed link.</p><p><h3>See
1326          * Also:</h3>   <a
1327          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetLinkAttributes">AWS
1328          * API Reference</a></p>
1329          *
1330          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1331          */
1332         virtual void GetLinkAttributesAsync(const Model::GetLinkAttributesRequest& request, const GetLinkAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1333 
1334         /**
1335          * <p>Retrieves attributes within a facet that are associated with an
1336          * object.</p><p><h3>See Also:</h3>   <a
1337          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetObjectAttributes">AWS
1338          * API Reference</a></p>
1339          */
1340         virtual Model::GetObjectAttributesOutcome GetObjectAttributes(const Model::GetObjectAttributesRequest& request) const;
1341 
1342         /**
1343          * <p>Retrieves attributes within a facet that are associated with an
1344          * object.</p><p><h3>See Also:</h3>   <a
1345          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetObjectAttributes">AWS
1346          * API Reference</a></p>
1347          *
1348          * returns a future to the operation so that it can be executed in parallel to other requests.
1349          */
1350         virtual Model::GetObjectAttributesOutcomeCallable GetObjectAttributesCallable(const Model::GetObjectAttributesRequest& request) const;
1351 
1352         /**
1353          * <p>Retrieves attributes within a facet that are associated with an
1354          * object.</p><p><h3>See Also:</h3>   <a
1355          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetObjectAttributes">AWS
1356          * API Reference</a></p>
1357          *
1358          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1359          */
1360         virtual void GetObjectAttributesAsync(const Model::GetObjectAttributesRequest& request, const GetObjectAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1361 
1362         /**
1363          * <p>Retrieves metadata about an object.</p><p><h3>See Also:</h3>   <a
1364          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetObjectInformation">AWS
1365          * API Reference</a></p>
1366          */
1367         virtual Model::GetObjectInformationOutcome GetObjectInformation(const Model::GetObjectInformationRequest& request) const;
1368 
1369         /**
1370          * <p>Retrieves metadata about an object.</p><p><h3>See Also:</h3>   <a
1371          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetObjectInformation">AWS
1372          * API Reference</a></p>
1373          *
1374          * returns a future to the operation so that it can be executed in parallel to other requests.
1375          */
1376         virtual Model::GetObjectInformationOutcomeCallable GetObjectInformationCallable(const Model::GetObjectInformationRequest& request) const;
1377 
1378         /**
1379          * <p>Retrieves metadata about an object.</p><p><h3>See Also:</h3>   <a
1380          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetObjectInformation">AWS
1381          * API Reference</a></p>
1382          *
1383          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1384          */
1385         virtual void GetObjectInformationAsync(const Model::GetObjectInformationRequest& request, const GetObjectInformationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1386 
1387         /**
1388          * <p>Retrieves a JSON representation of the schema. See <a
1389          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_jsonformat.html#schemas_json">JSON
1390          * Schema Format</a> for more information.</p><p><h3>See Also:</h3>   <a
1391          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetSchemaAsJson">AWS
1392          * API Reference</a></p>
1393          */
1394         virtual Model::GetSchemaAsJsonOutcome GetSchemaAsJson(const Model::GetSchemaAsJsonRequest& request) const;
1395 
1396         /**
1397          * <p>Retrieves a JSON representation of the schema. See <a
1398          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_jsonformat.html#schemas_json">JSON
1399          * Schema Format</a> for more information.</p><p><h3>See Also:</h3>   <a
1400          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetSchemaAsJson">AWS
1401          * API Reference</a></p>
1402          *
1403          * returns a future to the operation so that it can be executed in parallel to other requests.
1404          */
1405         virtual Model::GetSchemaAsJsonOutcomeCallable GetSchemaAsJsonCallable(const Model::GetSchemaAsJsonRequest& request) const;
1406 
1407         /**
1408          * <p>Retrieves a JSON representation of the schema. See <a
1409          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_jsonformat.html#schemas_json">JSON
1410          * Schema Format</a> for more information.</p><p><h3>See Also:</h3>   <a
1411          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetSchemaAsJson">AWS
1412          * API Reference</a></p>
1413          *
1414          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1415          */
1416         virtual void GetSchemaAsJsonAsync(const Model::GetSchemaAsJsonRequest& request, const GetSchemaAsJsonResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1417 
1418         /**
1419          * <p>Returns the identity attribute order for a specific <a>TypedLinkFacet</a>.
1420          * For more information, see <a
1421          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
1422          * Links</a>.</p><p><h3>See Also:</h3>   <a
1423          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetTypedLinkFacetInformation">AWS
1424          * API Reference</a></p>
1425          */
1426         virtual Model::GetTypedLinkFacetInformationOutcome GetTypedLinkFacetInformation(const Model::GetTypedLinkFacetInformationRequest& request) const;
1427 
1428         /**
1429          * <p>Returns the identity attribute order for a specific <a>TypedLinkFacet</a>.
1430          * For more information, see <a
1431          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
1432          * Links</a>.</p><p><h3>See Also:</h3>   <a
1433          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetTypedLinkFacetInformation">AWS
1434          * API Reference</a></p>
1435          *
1436          * returns a future to the operation so that it can be executed in parallel to other requests.
1437          */
1438         virtual Model::GetTypedLinkFacetInformationOutcomeCallable GetTypedLinkFacetInformationCallable(const Model::GetTypedLinkFacetInformationRequest& request) const;
1439 
1440         /**
1441          * <p>Returns the identity attribute order for a specific <a>TypedLinkFacet</a>.
1442          * For more information, see <a
1443          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
1444          * Links</a>.</p><p><h3>See Also:</h3>   <a
1445          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/GetTypedLinkFacetInformation">AWS
1446          * API Reference</a></p>
1447          *
1448          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1449          */
1450         virtual void GetTypedLinkFacetInformationAsync(const Model::GetTypedLinkFacetInformationRequest& request, const GetTypedLinkFacetInformationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1451 
1452         /**
1453          * <p>Lists schema major versions applied to a directory. If <code>SchemaArn</code>
1454          * is provided, lists the minor version.</p><p><h3>See Also:</h3>   <a
1455          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListAppliedSchemaArns">AWS
1456          * API Reference</a></p>
1457          */
1458         virtual Model::ListAppliedSchemaArnsOutcome ListAppliedSchemaArns(const Model::ListAppliedSchemaArnsRequest& request) const;
1459 
1460         /**
1461          * <p>Lists schema major versions applied to a directory. If <code>SchemaArn</code>
1462          * is provided, lists the minor version.</p><p><h3>See Also:</h3>   <a
1463          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListAppliedSchemaArns">AWS
1464          * API Reference</a></p>
1465          *
1466          * returns a future to the operation so that it can be executed in parallel to other requests.
1467          */
1468         virtual Model::ListAppliedSchemaArnsOutcomeCallable ListAppliedSchemaArnsCallable(const Model::ListAppliedSchemaArnsRequest& request) const;
1469 
1470         /**
1471          * <p>Lists schema major versions applied to a directory. If <code>SchemaArn</code>
1472          * is provided, lists the minor version.</p><p><h3>See Also:</h3>   <a
1473          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListAppliedSchemaArns">AWS
1474          * API Reference</a></p>
1475          *
1476          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1477          */
1478         virtual void ListAppliedSchemaArnsAsync(const Model::ListAppliedSchemaArnsRequest& request, const ListAppliedSchemaArnsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1479 
1480         /**
1481          * <p>Lists indices attached to the specified object.</p><p><h3>See Also:</h3>   <a
1482          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListAttachedIndices">AWS
1483          * API Reference</a></p>
1484          */
1485         virtual Model::ListAttachedIndicesOutcome ListAttachedIndices(const Model::ListAttachedIndicesRequest& request) const;
1486 
1487         /**
1488          * <p>Lists indices attached to the specified object.</p><p><h3>See Also:</h3>   <a
1489          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListAttachedIndices">AWS
1490          * API Reference</a></p>
1491          *
1492          * returns a future to the operation so that it can be executed in parallel to other requests.
1493          */
1494         virtual Model::ListAttachedIndicesOutcomeCallable ListAttachedIndicesCallable(const Model::ListAttachedIndicesRequest& request) const;
1495 
1496         /**
1497          * <p>Lists indices attached to the specified object.</p><p><h3>See Also:</h3>   <a
1498          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListAttachedIndices">AWS
1499          * API Reference</a></p>
1500          *
1501          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1502          */
1503         virtual void ListAttachedIndicesAsync(const Model::ListAttachedIndicesRequest& request, const ListAttachedIndicesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1504 
1505         /**
1506          * <p>Retrieves each Amazon Resource Name (ARN) of schemas in the development
1507          * state.</p><p><h3>See Also:</h3>   <a
1508          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListDevelopmentSchemaArns">AWS
1509          * API Reference</a></p>
1510          */
1511         virtual Model::ListDevelopmentSchemaArnsOutcome ListDevelopmentSchemaArns(const Model::ListDevelopmentSchemaArnsRequest& request) const;
1512 
1513         /**
1514          * <p>Retrieves each Amazon Resource Name (ARN) of schemas in the development
1515          * state.</p><p><h3>See Also:</h3>   <a
1516          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListDevelopmentSchemaArns">AWS
1517          * API Reference</a></p>
1518          *
1519          * returns a future to the operation so that it can be executed in parallel to other requests.
1520          */
1521         virtual Model::ListDevelopmentSchemaArnsOutcomeCallable ListDevelopmentSchemaArnsCallable(const Model::ListDevelopmentSchemaArnsRequest& request) const;
1522 
1523         /**
1524          * <p>Retrieves each Amazon Resource Name (ARN) of schemas in the development
1525          * state.</p><p><h3>See Also:</h3>   <a
1526          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListDevelopmentSchemaArns">AWS
1527          * API Reference</a></p>
1528          *
1529          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1530          */
1531         virtual void ListDevelopmentSchemaArnsAsync(const Model::ListDevelopmentSchemaArnsRequest& request, const ListDevelopmentSchemaArnsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1532 
1533         /**
1534          * <p>Lists directories created within an account.</p><p><h3>See Also:</h3>   <a
1535          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListDirectories">AWS
1536          * API Reference</a></p>
1537          */
1538         virtual Model::ListDirectoriesOutcome ListDirectories(const Model::ListDirectoriesRequest& request) const;
1539 
1540         /**
1541          * <p>Lists directories created within an account.</p><p><h3>See Also:</h3>   <a
1542          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListDirectories">AWS
1543          * API Reference</a></p>
1544          *
1545          * returns a future to the operation so that it can be executed in parallel to other requests.
1546          */
1547         virtual Model::ListDirectoriesOutcomeCallable ListDirectoriesCallable(const Model::ListDirectoriesRequest& request) const;
1548 
1549         /**
1550          * <p>Lists directories created within an account.</p><p><h3>See Also:</h3>   <a
1551          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListDirectories">AWS
1552          * API Reference</a></p>
1553          *
1554          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1555          */
1556         virtual void ListDirectoriesAsync(const Model::ListDirectoriesRequest& request, const ListDirectoriesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1557 
1558         /**
1559          * <p>Retrieves attributes attached to the facet.</p><p><h3>See Also:</h3>   <a
1560          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListFacetAttributes">AWS
1561          * API Reference</a></p>
1562          */
1563         virtual Model::ListFacetAttributesOutcome ListFacetAttributes(const Model::ListFacetAttributesRequest& request) const;
1564 
1565         /**
1566          * <p>Retrieves attributes attached to the facet.</p><p><h3>See Also:</h3>   <a
1567          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListFacetAttributes">AWS
1568          * API Reference</a></p>
1569          *
1570          * returns a future to the operation so that it can be executed in parallel to other requests.
1571          */
1572         virtual Model::ListFacetAttributesOutcomeCallable ListFacetAttributesCallable(const Model::ListFacetAttributesRequest& request) const;
1573 
1574         /**
1575          * <p>Retrieves attributes attached to the facet.</p><p><h3>See Also:</h3>   <a
1576          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListFacetAttributes">AWS
1577          * API Reference</a></p>
1578          *
1579          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1580          */
1581         virtual void ListFacetAttributesAsync(const Model::ListFacetAttributesRequest& request, const ListFacetAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1582 
1583         /**
1584          * <p>Retrieves the names of facets that exist in a schema.</p><p><h3>See
1585          * Also:</h3>   <a
1586          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListFacetNames">AWS
1587          * API Reference</a></p>
1588          */
1589         virtual Model::ListFacetNamesOutcome ListFacetNames(const Model::ListFacetNamesRequest& request) const;
1590 
1591         /**
1592          * <p>Retrieves the names of facets that exist in a schema.</p><p><h3>See
1593          * Also:</h3>   <a
1594          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListFacetNames">AWS
1595          * API Reference</a></p>
1596          *
1597          * returns a future to the operation so that it can be executed in parallel to other requests.
1598          */
1599         virtual Model::ListFacetNamesOutcomeCallable ListFacetNamesCallable(const Model::ListFacetNamesRequest& request) const;
1600 
1601         /**
1602          * <p>Retrieves the names of facets that exist in a schema.</p><p><h3>See
1603          * Also:</h3>   <a
1604          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListFacetNames">AWS
1605          * API Reference</a></p>
1606          *
1607          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1608          */
1609         virtual void ListFacetNamesAsync(const Model::ListFacetNamesRequest& request, const ListFacetNamesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1610 
1611         /**
1612          * <p>Returns a paginated list of all the incoming <a>TypedLinkSpecifier</a>
1613          * information for an object. It also supports filtering by typed link facet and
1614          * identity attributes. For more information, see <a
1615          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
1616          * Links</a>.</p><p><h3>See Also:</h3>   <a
1617          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListIncomingTypedLinks">AWS
1618          * API Reference</a></p>
1619          */
1620         virtual Model::ListIncomingTypedLinksOutcome ListIncomingTypedLinks(const Model::ListIncomingTypedLinksRequest& request) const;
1621 
1622         /**
1623          * <p>Returns a paginated list of all the incoming <a>TypedLinkSpecifier</a>
1624          * information for an object. It also supports filtering by typed link facet and
1625          * identity attributes. For more information, see <a
1626          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
1627          * Links</a>.</p><p><h3>See Also:</h3>   <a
1628          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListIncomingTypedLinks">AWS
1629          * API Reference</a></p>
1630          *
1631          * returns a future to the operation so that it can be executed in parallel to other requests.
1632          */
1633         virtual Model::ListIncomingTypedLinksOutcomeCallable ListIncomingTypedLinksCallable(const Model::ListIncomingTypedLinksRequest& request) const;
1634 
1635         /**
1636          * <p>Returns a paginated list of all the incoming <a>TypedLinkSpecifier</a>
1637          * information for an object. It also supports filtering by typed link facet and
1638          * identity attributes. For more information, see <a
1639          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
1640          * Links</a>.</p><p><h3>See Also:</h3>   <a
1641          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListIncomingTypedLinks">AWS
1642          * API Reference</a></p>
1643          *
1644          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1645          */
1646         virtual void ListIncomingTypedLinksAsync(const Model::ListIncomingTypedLinksRequest& request, const ListIncomingTypedLinksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1647 
1648         /**
1649          * <p>Lists objects attached to the specified index.</p><p><h3>See Also:</h3>   <a
1650          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListIndex">AWS
1651          * API Reference</a></p>
1652          */
1653         virtual Model::ListIndexOutcome ListIndex(const Model::ListIndexRequest& request) const;
1654 
1655         /**
1656          * <p>Lists objects attached to the specified index.</p><p><h3>See Also:</h3>   <a
1657          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListIndex">AWS
1658          * API Reference</a></p>
1659          *
1660          * returns a future to the operation so that it can be executed in parallel to other requests.
1661          */
1662         virtual Model::ListIndexOutcomeCallable ListIndexCallable(const Model::ListIndexRequest& request) const;
1663 
1664         /**
1665          * <p>Lists objects attached to the specified index.</p><p><h3>See Also:</h3>   <a
1666          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListIndex">AWS
1667          * API Reference</a></p>
1668          *
1669          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1670          */
1671         virtual void ListIndexAsync(const Model::ListIndexRequest& request, const ListIndexResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1672 
1673         /**
1674          * <p>Lists the major version families of each managed schema. If a major version
1675          * ARN is provided as SchemaArn, the minor version revisions in that family are
1676          * listed instead.</p><p><h3>See Also:</h3>   <a
1677          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListManagedSchemaArns">AWS
1678          * API Reference</a></p>
1679          */
1680         virtual Model::ListManagedSchemaArnsOutcome ListManagedSchemaArns(const Model::ListManagedSchemaArnsRequest& request) const;
1681 
1682         /**
1683          * <p>Lists the major version families of each managed schema. If a major version
1684          * ARN is provided as SchemaArn, the minor version revisions in that family are
1685          * listed instead.</p><p><h3>See Also:</h3>   <a
1686          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListManagedSchemaArns">AWS
1687          * API Reference</a></p>
1688          *
1689          * returns a future to the operation so that it can be executed in parallel to other requests.
1690          */
1691         virtual Model::ListManagedSchemaArnsOutcomeCallable ListManagedSchemaArnsCallable(const Model::ListManagedSchemaArnsRequest& request) const;
1692 
1693         /**
1694          * <p>Lists the major version families of each managed schema. If a major version
1695          * ARN is provided as SchemaArn, the minor version revisions in that family are
1696          * listed instead.</p><p><h3>See Also:</h3>   <a
1697          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListManagedSchemaArns">AWS
1698          * API Reference</a></p>
1699          *
1700          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1701          */
1702         virtual void ListManagedSchemaArnsAsync(const Model::ListManagedSchemaArnsRequest& request, const ListManagedSchemaArnsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1703 
1704         /**
1705          * <p>Lists all attributes that are associated with an object. </p><p><h3>See
1706          * Also:</h3>   <a
1707          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectAttributes">AWS
1708          * API Reference</a></p>
1709          */
1710         virtual Model::ListObjectAttributesOutcome ListObjectAttributes(const Model::ListObjectAttributesRequest& request) const;
1711 
1712         /**
1713          * <p>Lists all attributes that are associated with an object. </p><p><h3>See
1714          * Also:</h3>   <a
1715          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectAttributes">AWS
1716          * API Reference</a></p>
1717          *
1718          * returns a future to the operation so that it can be executed in parallel to other requests.
1719          */
1720         virtual Model::ListObjectAttributesOutcomeCallable ListObjectAttributesCallable(const Model::ListObjectAttributesRequest& request) const;
1721 
1722         /**
1723          * <p>Lists all attributes that are associated with an object. </p><p><h3>See
1724          * Also:</h3>   <a
1725          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectAttributes">AWS
1726          * API Reference</a></p>
1727          *
1728          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1729          */
1730         virtual void ListObjectAttributesAsync(const Model::ListObjectAttributesRequest& request, const ListObjectAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1731 
1732         /**
1733          * <p>Returns a paginated list of child objects that are associated with a given
1734          * object.</p><p><h3>See Also:</h3>   <a
1735          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectChildren">AWS
1736          * API Reference</a></p>
1737          */
1738         virtual Model::ListObjectChildrenOutcome ListObjectChildren(const Model::ListObjectChildrenRequest& request) const;
1739 
1740         /**
1741          * <p>Returns a paginated list of child objects that are associated with a given
1742          * object.</p><p><h3>See Also:</h3>   <a
1743          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectChildren">AWS
1744          * API Reference</a></p>
1745          *
1746          * returns a future to the operation so that it can be executed in parallel to other requests.
1747          */
1748         virtual Model::ListObjectChildrenOutcomeCallable ListObjectChildrenCallable(const Model::ListObjectChildrenRequest& request) const;
1749 
1750         /**
1751          * <p>Returns a paginated list of child objects that are associated with a given
1752          * object.</p><p><h3>See Also:</h3>   <a
1753          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectChildren">AWS
1754          * API Reference</a></p>
1755          *
1756          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1757          */
1758         virtual void ListObjectChildrenAsync(const Model::ListObjectChildrenRequest& request, const ListObjectChildrenResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1759 
1760         /**
1761          * <p>Retrieves all available parent paths for any object type such as node, leaf
1762          * node, policy node, and index node objects. For more information about objects,
1763          * see <a
1764          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directorystructure.html">Directory
1765          * Structure</a>.</p> <p>Use this API to evaluate all parents for an object. The
1766          * call returns all objects from the root of the directory up to the requested
1767          * object. The API returns the number of paths based on user-defined
1768          * <code>MaxResults</code>, in case there are multiple paths to the parent. The
1769          * order of the paths and nodes returned is consistent among multiple API calls
1770          * unless the objects are deleted or moved. Paths not leading to the directory root
1771          * are ignored from the target object.</p><p><h3>See Also:</h3>   <a
1772          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectParentPaths">AWS
1773          * API Reference</a></p>
1774          */
1775         virtual Model::ListObjectParentPathsOutcome ListObjectParentPaths(const Model::ListObjectParentPathsRequest& request) const;
1776 
1777         /**
1778          * <p>Retrieves all available parent paths for any object type such as node, leaf
1779          * node, policy node, and index node objects. For more information about objects,
1780          * see <a
1781          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directorystructure.html">Directory
1782          * Structure</a>.</p> <p>Use this API to evaluate all parents for an object. The
1783          * call returns all objects from the root of the directory up to the requested
1784          * object. The API returns the number of paths based on user-defined
1785          * <code>MaxResults</code>, in case there are multiple paths to the parent. The
1786          * order of the paths and nodes returned is consistent among multiple API calls
1787          * unless the objects are deleted or moved. Paths not leading to the directory root
1788          * are ignored from the target object.</p><p><h3>See Also:</h3>   <a
1789          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectParentPaths">AWS
1790          * API Reference</a></p>
1791          *
1792          * returns a future to the operation so that it can be executed in parallel to other requests.
1793          */
1794         virtual Model::ListObjectParentPathsOutcomeCallable ListObjectParentPathsCallable(const Model::ListObjectParentPathsRequest& request) const;
1795 
1796         /**
1797          * <p>Retrieves all available parent paths for any object type such as node, leaf
1798          * node, policy node, and index node objects. For more information about objects,
1799          * see <a
1800          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directorystructure.html">Directory
1801          * Structure</a>.</p> <p>Use this API to evaluate all parents for an object. The
1802          * call returns all objects from the root of the directory up to the requested
1803          * object. The API returns the number of paths based on user-defined
1804          * <code>MaxResults</code>, in case there are multiple paths to the parent. The
1805          * order of the paths and nodes returned is consistent among multiple API calls
1806          * unless the objects are deleted or moved. Paths not leading to the directory root
1807          * are ignored from the target object.</p><p><h3>See Also:</h3>   <a
1808          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectParentPaths">AWS
1809          * API Reference</a></p>
1810          *
1811          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1812          */
1813         virtual void ListObjectParentPathsAsync(const Model::ListObjectParentPathsRequest& request, const ListObjectParentPathsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1814 
1815         /**
1816          * <p>Lists parent objects that are associated with a given object in pagination
1817          * fashion.</p><p><h3>See Also:</h3>   <a
1818          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectParents">AWS
1819          * API Reference</a></p>
1820          */
1821         virtual Model::ListObjectParentsOutcome ListObjectParents(const Model::ListObjectParentsRequest& request) const;
1822 
1823         /**
1824          * <p>Lists parent objects that are associated with a given object in pagination
1825          * fashion.</p><p><h3>See Also:</h3>   <a
1826          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectParents">AWS
1827          * API Reference</a></p>
1828          *
1829          * returns a future to the operation so that it can be executed in parallel to other requests.
1830          */
1831         virtual Model::ListObjectParentsOutcomeCallable ListObjectParentsCallable(const Model::ListObjectParentsRequest& request) const;
1832 
1833         /**
1834          * <p>Lists parent objects that are associated with a given object in pagination
1835          * fashion.</p><p><h3>See Also:</h3>   <a
1836          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectParents">AWS
1837          * API Reference</a></p>
1838          *
1839          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1840          */
1841         virtual void ListObjectParentsAsync(const Model::ListObjectParentsRequest& request, const ListObjectParentsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1842 
1843         /**
1844          * <p>Returns policies attached to an object in pagination fashion.</p><p><h3>See
1845          * Also:</h3>   <a
1846          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectPolicies">AWS
1847          * API Reference</a></p>
1848          */
1849         virtual Model::ListObjectPoliciesOutcome ListObjectPolicies(const Model::ListObjectPoliciesRequest& request) const;
1850 
1851         /**
1852          * <p>Returns policies attached to an object in pagination fashion.</p><p><h3>See
1853          * Also:</h3>   <a
1854          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectPolicies">AWS
1855          * API Reference</a></p>
1856          *
1857          * returns a future to the operation so that it can be executed in parallel to other requests.
1858          */
1859         virtual Model::ListObjectPoliciesOutcomeCallable ListObjectPoliciesCallable(const Model::ListObjectPoliciesRequest& request) const;
1860 
1861         /**
1862          * <p>Returns policies attached to an object in pagination fashion.</p><p><h3>See
1863          * Also:</h3>   <a
1864          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListObjectPolicies">AWS
1865          * API Reference</a></p>
1866          *
1867          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1868          */
1869         virtual void ListObjectPoliciesAsync(const Model::ListObjectPoliciesRequest& request, const ListObjectPoliciesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1870 
1871         /**
1872          * <p>Returns a paginated list of all the outgoing <a>TypedLinkSpecifier</a>
1873          * information for an object. It also supports filtering by typed link facet and
1874          * identity attributes. For more information, see <a
1875          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
1876          * Links</a>.</p><p><h3>See Also:</h3>   <a
1877          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListOutgoingTypedLinks">AWS
1878          * API Reference</a></p>
1879          */
1880         virtual Model::ListOutgoingTypedLinksOutcome ListOutgoingTypedLinks(const Model::ListOutgoingTypedLinksRequest& request) const;
1881 
1882         /**
1883          * <p>Returns a paginated list of all the outgoing <a>TypedLinkSpecifier</a>
1884          * information for an object. It also supports filtering by typed link facet and
1885          * identity attributes. For more information, see <a
1886          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
1887          * Links</a>.</p><p><h3>See Also:</h3>   <a
1888          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListOutgoingTypedLinks">AWS
1889          * API Reference</a></p>
1890          *
1891          * returns a future to the operation so that it can be executed in parallel to other requests.
1892          */
1893         virtual Model::ListOutgoingTypedLinksOutcomeCallable ListOutgoingTypedLinksCallable(const Model::ListOutgoingTypedLinksRequest& request) const;
1894 
1895         /**
1896          * <p>Returns a paginated list of all the outgoing <a>TypedLinkSpecifier</a>
1897          * information for an object. It also supports filtering by typed link facet and
1898          * identity attributes. For more information, see <a
1899          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
1900          * Links</a>.</p><p><h3>See Also:</h3>   <a
1901          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListOutgoingTypedLinks">AWS
1902          * API Reference</a></p>
1903          *
1904          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1905          */
1906         virtual void ListOutgoingTypedLinksAsync(const Model::ListOutgoingTypedLinksRequest& request, const ListOutgoingTypedLinksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1907 
1908         /**
1909          * <p>Returns all of the <code>ObjectIdentifiers</code> to which a given policy is
1910          * attached.</p><p><h3>See Also:</h3>   <a
1911          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListPolicyAttachments">AWS
1912          * API Reference</a></p>
1913          */
1914         virtual Model::ListPolicyAttachmentsOutcome ListPolicyAttachments(const Model::ListPolicyAttachmentsRequest& request) const;
1915 
1916         /**
1917          * <p>Returns all of the <code>ObjectIdentifiers</code> to which a given policy is
1918          * attached.</p><p><h3>See Also:</h3>   <a
1919          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListPolicyAttachments">AWS
1920          * API Reference</a></p>
1921          *
1922          * returns a future to the operation so that it can be executed in parallel to other requests.
1923          */
1924         virtual Model::ListPolicyAttachmentsOutcomeCallable ListPolicyAttachmentsCallable(const Model::ListPolicyAttachmentsRequest& request) const;
1925 
1926         /**
1927          * <p>Returns all of the <code>ObjectIdentifiers</code> to which a given policy is
1928          * attached.</p><p><h3>See Also:</h3>   <a
1929          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListPolicyAttachments">AWS
1930          * API Reference</a></p>
1931          *
1932          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1933          */
1934         virtual void ListPolicyAttachmentsAsync(const Model::ListPolicyAttachmentsRequest& request, const ListPolicyAttachmentsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1935 
1936         /**
1937          * <p>Lists the major version families of each published schema. If a major version
1938          * ARN is provided as <code>SchemaArn</code>, the minor version revisions in that
1939          * family are listed instead.</p><p><h3>See Also:</h3>   <a
1940          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListPublishedSchemaArns">AWS
1941          * API Reference</a></p>
1942          */
1943         virtual Model::ListPublishedSchemaArnsOutcome ListPublishedSchemaArns(const Model::ListPublishedSchemaArnsRequest& request) const;
1944 
1945         /**
1946          * <p>Lists the major version families of each published schema. If a major version
1947          * ARN is provided as <code>SchemaArn</code>, the minor version revisions in that
1948          * family are listed instead.</p><p><h3>See Also:</h3>   <a
1949          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListPublishedSchemaArns">AWS
1950          * API Reference</a></p>
1951          *
1952          * returns a future to the operation so that it can be executed in parallel to other requests.
1953          */
1954         virtual Model::ListPublishedSchemaArnsOutcomeCallable ListPublishedSchemaArnsCallable(const Model::ListPublishedSchemaArnsRequest& request) const;
1955 
1956         /**
1957          * <p>Lists the major version families of each published schema. If a major version
1958          * ARN is provided as <code>SchemaArn</code>, the minor version revisions in that
1959          * family are listed instead.</p><p><h3>See Also:</h3>   <a
1960          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListPublishedSchemaArns">AWS
1961          * API Reference</a></p>
1962          *
1963          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1964          */
1965         virtual void ListPublishedSchemaArnsAsync(const Model::ListPublishedSchemaArnsRequest& request, const ListPublishedSchemaArnsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1966 
1967         /**
1968          * <p>Returns tags for a resource. Tagging is currently supported only for
1969          * directories with a limit of 50 tags per directory. All 50 tags are returned for
1970          * a given directory with this API call.</p><p><h3>See Also:</h3>   <a
1971          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTagsForResource">AWS
1972          * API Reference</a></p>
1973          */
1974         virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const;
1975 
1976         /**
1977          * <p>Returns tags for a resource. Tagging is currently supported only for
1978          * directories with a limit of 50 tags per directory. All 50 tags are returned for
1979          * a given directory with this API call.</p><p><h3>See Also:</h3>   <a
1980          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTagsForResource">AWS
1981          * API Reference</a></p>
1982          *
1983          * returns a future to the operation so that it can be executed in parallel to other requests.
1984          */
1985         virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const;
1986 
1987         /**
1988          * <p>Returns tags for a resource. Tagging is currently supported only for
1989          * directories with a limit of 50 tags per directory. All 50 tags are returned for
1990          * a given directory with this API call.</p><p><h3>See Also:</h3>   <a
1991          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTagsForResource">AWS
1992          * API Reference</a></p>
1993          *
1994          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1995          */
1996         virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1997 
1998         /**
1999          * <p>Returns a paginated list of all attribute definitions for a particular
2000          * <a>TypedLinkFacet</a>. For more information, see <a
2001          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
2002          * Links</a>.</p><p><h3>See Also:</h3>   <a
2003          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTypedLinkFacetAttributes">AWS
2004          * API Reference</a></p>
2005          */
2006         virtual Model::ListTypedLinkFacetAttributesOutcome ListTypedLinkFacetAttributes(const Model::ListTypedLinkFacetAttributesRequest& request) const;
2007 
2008         /**
2009          * <p>Returns a paginated list of all attribute definitions for a particular
2010          * <a>TypedLinkFacet</a>. For more information, see <a
2011          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
2012          * Links</a>.</p><p><h3>See Also:</h3>   <a
2013          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTypedLinkFacetAttributes">AWS
2014          * API Reference</a></p>
2015          *
2016          * returns a future to the operation so that it can be executed in parallel to other requests.
2017          */
2018         virtual Model::ListTypedLinkFacetAttributesOutcomeCallable ListTypedLinkFacetAttributesCallable(const Model::ListTypedLinkFacetAttributesRequest& request) const;
2019 
2020         /**
2021          * <p>Returns a paginated list of all attribute definitions for a particular
2022          * <a>TypedLinkFacet</a>. For more information, see <a
2023          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
2024          * Links</a>.</p><p><h3>See Also:</h3>   <a
2025          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTypedLinkFacetAttributes">AWS
2026          * API Reference</a></p>
2027          *
2028          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2029          */
2030         virtual void ListTypedLinkFacetAttributesAsync(const Model::ListTypedLinkFacetAttributesRequest& request, const ListTypedLinkFacetAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2031 
2032         /**
2033          * <p>Returns a paginated list of <code>TypedLink</code> facet names for a
2034          * particular schema. For more information, see <a
2035          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
2036          * Links</a>.</p><p><h3>See Also:</h3>   <a
2037          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTypedLinkFacetNames">AWS
2038          * API Reference</a></p>
2039          */
2040         virtual Model::ListTypedLinkFacetNamesOutcome ListTypedLinkFacetNames(const Model::ListTypedLinkFacetNamesRequest& request) const;
2041 
2042         /**
2043          * <p>Returns a paginated list of <code>TypedLink</code> facet names for a
2044          * particular schema. For more information, see <a
2045          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
2046          * Links</a>.</p><p><h3>See Also:</h3>   <a
2047          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTypedLinkFacetNames">AWS
2048          * API Reference</a></p>
2049          *
2050          * returns a future to the operation so that it can be executed in parallel to other requests.
2051          */
2052         virtual Model::ListTypedLinkFacetNamesOutcomeCallable ListTypedLinkFacetNamesCallable(const Model::ListTypedLinkFacetNamesRequest& request) const;
2053 
2054         /**
2055          * <p>Returns a paginated list of <code>TypedLink</code> facet names for a
2056          * particular schema. For more information, see <a
2057          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
2058          * Links</a>.</p><p><h3>See Also:</h3>   <a
2059          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/ListTypedLinkFacetNames">AWS
2060          * API Reference</a></p>
2061          *
2062          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2063          */
2064         virtual void ListTypedLinkFacetNamesAsync(const Model::ListTypedLinkFacetNamesRequest& request, const ListTypedLinkFacetNamesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2065 
2066         /**
2067          * <p>Lists all policies from the root of the <a>Directory</a> to the object
2068          * specified. If there are no policies present, an empty list is returned. If
2069          * policies are present, and if some objects don't have the policies attached, it
2070          * returns the <code>ObjectIdentifier</code> for such objects. If policies are
2071          * present, it returns <code>ObjectIdentifier</code>, <code>policyId</code>, and
2072          * <code>policyType</code>. Paths that don't lead to the root from the target
2073          * object are ignored. For more information, see <a
2074          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies">Policies</a>.</p><p><h3>See
2075          * Also:</h3>   <a
2076          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/LookupPolicy">AWS
2077          * API Reference</a></p>
2078          */
2079         virtual Model::LookupPolicyOutcome LookupPolicy(const Model::LookupPolicyRequest& request) const;
2080 
2081         /**
2082          * <p>Lists all policies from the root of the <a>Directory</a> to the object
2083          * specified. If there are no policies present, an empty list is returned. If
2084          * policies are present, and if some objects don't have the policies attached, it
2085          * returns the <code>ObjectIdentifier</code> for such objects. If policies are
2086          * present, it returns <code>ObjectIdentifier</code>, <code>policyId</code>, and
2087          * <code>policyType</code>. Paths that don't lead to the root from the target
2088          * object are ignored. For more information, see <a
2089          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies">Policies</a>.</p><p><h3>See
2090          * Also:</h3>   <a
2091          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/LookupPolicy">AWS
2092          * API Reference</a></p>
2093          *
2094          * returns a future to the operation so that it can be executed in parallel to other requests.
2095          */
2096         virtual Model::LookupPolicyOutcomeCallable LookupPolicyCallable(const Model::LookupPolicyRequest& request) const;
2097 
2098         /**
2099          * <p>Lists all policies from the root of the <a>Directory</a> to the object
2100          * specified. If there are no policies present, an empty list is returned. If
2101          * policies are present, and if some objects don't have the policies attached, it
2102          * returns the <code>ObjectIdentifier</code> for such objects. If policies are
2103          * present, it returns <code>ObjectIdentifier</code>, <code>policyId</code>, and
2104          * <code>policyType</code>. Paths that don't lead to the root from the target
2105          * object are ignored. For more information, see <a
2106          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies">Policies</a>.</p><p><h3>See
2107          * Also:</h3>   <a
2108          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/LookupPolicy">AWS
2109          * API Reference</a></p>
2110          *
2111          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2112          */
2113         virtual void LookupPolicyAsync(const Model::LookupPolicyRequest& request, const LookupPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2114 
2115         /**
2116          * <p>Publishes a development schema with a major version and a recommended minor
2117          * version.</p><p><h3>See Also:</h3>   <a
2118          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/PublishSchema">AWS
2119          * API Reference</a></p>
2120          */
2121         virtual Model::PublishSchemaOutcome PublishSchema(const Model::PublishSchemaRequest& request) const;
2122 
2123         /**
2124          * <p>Publishes a development schema with a major version and a recommended minor
2125          * version.</p><p><h3>See Also:</h3>   <a
2126          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/PublishSchema">AWS
2127          * API Reference</a></p>
2128          *
2129          * returns a future to the operation so that it can be executed in parallel to other requests.
2130          */
2131         virtual Model::PublishSchemaOutcomeCallable PublishSchemaCallable(const Model::PublishSchemaRequest& request) const;
2132 
2133         /**
2134          * <p>Publishes a development schema with a major version and a recommended minor
2135          * version.</p><p><h3>See Also:</h3>   <a
2136          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/PublishSchema">AWS
2137          * API Reference</a></p>
2138          *
2139          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2140          */
2141         virtual void PublishSchemaAsync(const Model::PublishSchemaRequest& request, const PublishSchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2142 
2143         /**
2144          * <p>Allows a schema to be updated using JSON upload. Only available for
2145          * development schemas. See <a
2146          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_jsonformat.html#schemas_json">JSON
2147          * Schema Format</a> for more information.</p><p><h3>See Also:</h3>   <a
2148          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/PutSchemaFromJson">AWS
2149          * API Reference</a></p>
2150          */
2151         virtual Model::PutSchemaFromJsonOutcome PutSchemaFromJson(const Model::PutSchemaFromJsonRequest& request) const;
2152 
2153         /**
2154          * <p>Allows a schema to be updated using JSON upload. Only available for
2155          * development schemas. See <a
2156          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_jsonformat.html#schemas_json">JSON
2157          * Schema Format</a> for more information.</p><p><h3>See Also:</h3>   <a
2158          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/PutSchemaFromJson">AWS
2159          * API Reference</a></p>
2160          *
2161          * returns a future to the operation so that it can be executed in parallel to other requests.
2162          */
2163         virtual Model::PutSchemaFromJsonOutcomeCallable PutSchemaFromJsonCallable(const Model::PutSchemaFromJsonRequest& request) const;
2164 
2165         /**
2166          * <p>Allows a schema to be updated using JSON upload. Only available for
2167          * development schemas. See <a
2168          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_jsonformat.html#schemas_json">JSON
2169          * Schema Format</a> for more information.</p><p><h3>See Also:</h3>   <a
2170          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/PutSchemaFromJson">AWS
2171          * API Reference</a></p>
2172          *
2173          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2174          */
2175         virtual void PutSchemaFromJsonAsync(const Model::PutSchemaFromJsonRequest& request, const PutSchemaFromJsonResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2176 
2177         /**
2178          * <p>Removes the specified facet from the specified object.</p><p><h3>See
2179          * Also:</h3>   <a
2180          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/RemoveFacetFromObject">AWS
2181          * API Reference</a></p>
2182          */
2183         virtual Model::RemoveFacetFromObjectOutcome RemoveFacetFromObject(const Model::RemoveFacetFromObjectRequest& request) const;
2184 
2185         /**
2186          * <p>Removes the specified facet from the specified object.</p><p><h3>See
2187          * Also:</h3>   <a
2188          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/RemoveFacetFromObject">AWS
2189          * API Reference</a></p>
2190          *
2191          * returns a future to the operation so that it can be executed in parallel to other requests.
2192          */
2193         virtual Model::RemoveFacetFromObjectOutcomeCallable RemoveFacetFromObjectCallable(const Model::RemoveFacetFromObjectRequest& request) const;
2194 
2195         /**
2196          * <p>Removes the specified facet from the specified object.</p><p><h3>See
2197          * Also:</h3>   <a
2198          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/RemoveFacetFromObject">AWS
2199          * API Reference</a></p>
2200          *
2201          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2202          */
2203         virtual void RemoveFacetFromObjectAsync(const Model::RemoveFacetFromObjectRequest& request, const RemoveFacetFromObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2204 
2205         /**
2206          * <p>An API operation for adding tags to a resource.</p><p><h3>See Also:</h3>   <a
2207          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/TagResource">AWS
2208          * API Reference</a></p>
2209          */
2210         virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const;
2211 
2212         /**
2213          * <p>An API operation for adding tags to a resource.</p><p><h3>See Also:</h3>   <a
2214          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/TagResource">AWS
2215          * API Reference</a></p>
2216          *
2217          * returns a future to the operation so that it can be executed in parallel to other requests.
2218          */
2219         virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const;
2220 
2221         /**
2222          * <p>An API operation for adding tags to a resource.</p><p><h3>See Also:</h3>   <a
2223          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/TagResource">AWS
2224          * API Reference</a></p>
2225          *
2226          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2227          */
2228         virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2229 
2230         /**
2231          * <p>An API operation for removing tags from a resource.</p><p><h3>See Also:</h3>
2232          * <a
2233          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UntagResource">AWS
2234          * API Reference</a></p>
2235          */
2236         virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const;
2237 
2238         /**
2239          * <p>An API operation for removing tags from a resource.</p><p><h3>See Also:</h3>
2240          * <a
2241          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UntagResource">AWS
2242          * API Reference</a></p>
2243          *
2244          * returns a future to the operation so that it can be executed in parallel to other requests.
2245          */
2246         virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const;
2247 
2248         /**
2249          * <p>An API operation for removing tags from a resource.</p><p><h3>See Also:</h3>
2250          * <a
2251          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UntagResource">AWS
2252          * API Reference</a></p>
2253          *
2254          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2255          */
2256         virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2257 
2258         /**
2259          * <p>Does the following:</p> <ol> <li> <p>Adds new <code>Attributes</code>,
2260          * <code>Rules</code>, or <code>ObjectTypes</code>.</p> </li> <li> <p>Updates
2261          * existing <code>Attributes</code>, <code>Rules</code>, or
2262          * <code>ObjectTypes</code>.</p> </li> <li> <p>Deletes existing
2263          * <code>Attributes</code>, <code>Rules</code>, or <code>ObjectTypes</code>.</p>
2264          * </li> </ol><p><h3>See Also:</h3>   <a
2265          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateFacet">AWS
2266          * API Reference</a></p>
2267          */
2268         virtual Model::UpdateFacetOutcome UpdateFacet(const Model::UpdateFacetRequest& request) const;
2269 
2270         /**
2271          * <p>Does the following:</p> <ol> <li> <p>Adds new <code>Attributes</code>,
2272          * <code>Rules</code>, or <code>ObjectTypes</code>.</p> </li> <li> <p>Updates
2273          * existing <code>Attributes</code>, <code>Rules</code>, or
2274          * <code>ObjectTypes</code>.</p> </li> <li> <p>Deletes existing
2275          * <code>Attributes</code>, <code>Rules</code>, or <code>ObjectTypes</code>.</p>
2276          * </li> </ol><p><h3>See Also:</h3>   <a
2277          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateFacet">AWS
2278          * API Reference</a></p>
2279          *
2280          * returns a future to the operation so that it can be executed in parallel to other requests.
2281          */
2282         virtual Model::UpdateFacetOutcomeCallable UpdateFacetCallable(const Model::UpdateFacetRequest& request) const;
2283 
2284         /**
2285          * <p>Does the following:</p> <ol> <li> <p>Adds new <code>Attributes</code>,
2286          * <code>Rules</code>, or <code>ObjectTypes</code>.</p> </li> <li> <p>Updates
2287          * existing <code>Attributes</code>, <code>Rules</code>, or
2288          * <code>ObjectTypes</code>.</p> </li> <li> <p>Deletes existing
2289          * <code>Attributes</code>, <code>Rules</code>, or <code>ObjectTypes</code>.</p>
2290          * </li> </ol><p><h3>See Also:</h3>   <a
2291          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateFacet">AWS
2292          * API Reference</a></p>
2293          *
2294          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2295          */
2296         virtual void UpdateFacetAsync(const Model::UpdateFacetRequest& request, const UpdateFacetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2297 
2298         /**
2299          * <p>Updates a given typed link’s attributes. Attributes to be updated must not
2300          * contribute to the typed link’s identity, as defined by its
2301          * <code>IdentityAttributeOrder</code>.</p><p><h3>See Also:</h3>   <a
2302          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateLinkAttributes">AWS
2303          * API Reference</a></p>
2304          */
2305         virtual Model::UpdateLinkAttributesOutcome UpdateLinkAttributes(const Model::UpdateLinkAttributesRequest& request) const;
2306 
2307         /**
2308          * <p>Updates a given typed link’s attributes. Attributes to be updated must not
2309          * contribute to the typed link’s identity, as defined by its
2310          * <code>IdentityAttributeOrder</code>.</p><p><h3>See Also:</h3>   <a
2311          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateLinkAttributes">AWS
2312          * API Reference</a></p>
2313          *
2314          * returns a future to the operation so that it can be executed in parallel to other requests.
2315          */
2316         virtual Model::UpdateLinkAttributesOutcomeCallable UpdateLinkAttributesCallable(const Model::UpdateLinkAttributesRequest& request) const;
2317 
2318         /**
2319          * <p>Updates a given typed link’s attributes. Attributes to be updated must not
2320          * contribute to the typed link’s identity, as defined by its
2321          * <code>IdentityAttributeOrder</code>.</p><p><h3>See Also:</h3>   <a
2322          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateLinkAttributes">AWS
2323          * API Reference</a></p>
2324          *
2325          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2326          */
2327         virtual void UpdateLinkAttributesAsync(const Model::UpdateLinkAttributesRequest& request, const UpdateLinkAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2328 
2329         /**
2330          * <p>Updates a given object's attributes.</p><p><h3>See Also:</h3>   <a
2331          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateObjectAttributes">AWS
2332          * API Reference</a></p>
2333          */
2334         virtual Model::UpdateObjectAttributesOutcome UpdateObjectAttributes(const Model::UpdateObjectAttributesRequest& request) const;
2335 
2336         /**
2337          * <p>Updates a given object's attributes.</p><p><h3>See Also:</h3>   <a
2338          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateObjectAttributes">AWS
2339          * API Reference</a></p>
2340          *
2341          * returns a future to the operation so that it can be executed in parallel to other requests.
2342          */
2343         virtual Model::UpdateObjectAttributesOutcomeCallable UpdateObjectAttributesCallable(const Model::UpdateObjectAttributesRequest& request) const;
2344 
2345         /**
2346          * <p>Updates a given object's attributes.</p><p><h3>See Also:</h3>   <a
2347          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateObjectAttributes">AWS
2348          * API Reference</a></p>
2349          *
2350          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2351          */
2352         virtual void UpdateObjectAttributesAsync(const Model::UpdateObjectAttributesRequest& request, const UpdateObjectAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2353 
2354         /**
2355          * <p>Updates the schema name with a new name. Only development schema names can be
2356          * updated.</p><p><h3>See Also:</h3>   <a
2357          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateSchema">AWS
2358          * API Reference</a></p>
2359          */
2360         virtual Model::UpdateSchemaOutcome UpdateSchema(const Model::UpdateSchemaRequest& request) const;
2361 
2362         /**
2363          * <p>Updates the schema name with a new name. Only development schema names can be
2364          * updated.</p><p><h3>See Also:</h3>   <a
2365          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateSchema">AWS
2366          * API Reference</a></p>
2367          *
2368          * returns a future to the operation so that it can be executed in parallel to other requests.
2369          */
2370         virtual Model::UpdateSchemaOutcomeCallable UpdateSchemaCallable(const Model::UpdateSchemaRequest& request) const;
2371 
2372         /**
2373          * <p>Updates the schema name with a new name. Only development schema names can be
2374          * updated.</p><p><h3>See Also:</h3>   <a
2375          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateSchema">AWS
2376          * API Reference</a></p>
2377          *
2378          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2379          */
2380         virtual void UpdateSchemaAsync(const Model::UpdateSchemaRequest& request, const UpdateSchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2381 
2382         /**
2383          * <p>Updates a <a>TypedLinkFacet</a>. For more information, see <a
2384          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
2385          * Links</a>.</p><p><h3>See Also:</h3>   <a
2386          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateTypedLinkFacet">AWS
2387          * API Reference</a></p>
2388          */
2389         virtual Model::UpdateTypedLinkFacetOutcome UpdateTypedLinkFacet(const Model::UpdateTypedLinkFacetRequest& request) const;
2390 
2391         /**
2392          * <p>Updates a <a>TypedLinkFacet</a>. For more information, see <a
2393          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
2394          * Links</a>.</p><p><h3>See Also:</h3>   <a
2395          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateTypedLinkFacet">AWS
2396          * API Reference</a></p>
2397          *
2398          * returns a future to the operation so that it can be executed in parallel to other requests.
2399          */
2400         virtual Model::UpdateTypedLinkFacetOutcomeCallable UpdateTypedLinkFacetCallable(const Model::UpdateTypedLinkFacetRequest& request) const;
2401 
2402         /**
2403          * <p>Updates a <a>TypedLinkFacet</a>. For more information, see <a
2404          * href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink">Typed
2405          * Links</a>.</p><p><h3>See Also:</h3>   <a
2406          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpdateTypedLinkFacet">AWS
2407          * API Reference</a></p>
2408          *
2409          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2410          */
2411         virtual void UpdateTypedLinkFacetAsync(const Model::UpdateTypedLinkFacetRequest& request, const UpdateTypedLinkFacetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2412 
2413         /**
2414          * <p>Upgrades a single directory in-place using the
2415          * <code>PublishedSchemaArn</code> with schema updates found in
2416          * <code>MinorVersion</code>. Backwards-compatible minor version upgrades are
2417          * instantaneously available for readers on all objects in the directory. Note:
2418          * This is a synchronous API call and upgrades only one schema on a given directory
2419          * per call. To upgrade multiple directories from one schema, you would need to
2420          * call this API on each directory.</p><p><h3>See Also:</h3>   <a
2421          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpgradeAppliedSchema">AWS
2422          * API Reference</a></p>
2423          */
2424         virtual Model::UpgradeAppliedSchemaOutcome UpgradeAppliedSchema(const Model::UpgradeAppliedSchemaRequest& request) const;
2425 
2426         /**
2427          * <p>Upgrades a single directory in-place using the
2428          * <code>PublishedSchemaArn</code> with schema updates found in
2429          * <code>MinorVersion</code>. Backwards-compatible minor version upgrades are
2430          * instantaneously available for readers on all objects in the directory. Note:
2431          * This is a synchronous API call and upgrades only one schema on a given directory
2432          * per call. To upgrade multiple directories from one schema, you would need to
2433          * call this API on each directory.</p><p><h3>See Also:</h3>   <a
2434          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpgradeAppliedSchema">AWS
2435          * API Reference</a></p>
2436          *
2437          * returns a future to the operation so that it can be executed in parallel to other requests.
2438          */
2439         virtual Model::UpgradeAppliedSchemaOutcomeCallable UpgradeAppliedSchemaCallable(const Model::UpgradeAppliedSchemaRequest& request) const;
2440 
2441         /**
2442          * <p>Upgrades a single directory in-place using the
2443          * <code>PublishedSchemaArn</code> with schema updates found in
2444          * <code>MinorVersion</code>. Backwards-compatible minor version upgrades are
2445          * instantaneously available for readers on all objects in the directory. Note:
2446          * This is a synchronous API call and upgrades only one schema on a given directory
2447          * per call. To upgrade multiple directories from one schema, you would need to
2448          * call this API on each directory.</p><p><h3>See Also:</h3>   <a
2449          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpgradeAppliedSchema">AWS
2450          * API Reference</a></p>
2451          *
2452          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2453          */
2454         virtual void UpgradeAppliedSchemaAsync(const Model::UpgradeAppliedSchemaRequest& request, const UpgradeAppliedSchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2455 
2456         /**
2457          * <p>Upgrades a published schema under a new minor version revision using the
2458          * current contents of <code>DevelopmentSchemaArn</code>.</p><p><h3>See Also:</h3>
2459          * <a
2460          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpgradePublishedSchema">AWS
2461          * API Reference</a></p>
2462          */
2463         virtual Model::UpgradePublishedSchemaOutcome UpgradePublishedSchema(const Model::UpgradePublishedSchemaRequest& request) const;
2464 
2465         /**
2466          * <p>Upgrades a published schema under a new minor version revision using the
2467          * current contents of <code>DevelopmentSchemaArn</code>.</p><p><h3>See Also:</h3>
2468          * <a
2469          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpgradePublishedSchema">AWS
2470          * API Reference</a></p>
2471          *
2472          * returns a future to the operation so that it can be executed in parallel to other requests.
2473          */
2474         virtual Model::UpgradePublishedSchemaOutcomeCallable UpgradePublishedSchemaCallable(const Model::UpgradePublishedSchemaRequest& request) const;
2475 
2476         /**
2477          * <p>Upgrades a published schema under a new minor version revision using the
2478          * current contents of <code>DevelopmentSchemaArn</code>.</p><p><h3>See Also:</h3>
2479          * <a
2480          * href="http://docs.aws.amazon.com/goto/WebAPI/clouddirectory-2017-01-11/UpgradePublishedSchema">AWS
2481          * API Reference</a></p>
2482          *
2483          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2484          */
2485         virtual void UpgradePublishedSchemaAsync(const Model::UpgradePublishedSchemaRequest& request, const UpgradePublishedSchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2486 
2487 
2488       void OverrideEndpoint(const Aws::String& endpoint);
2489     private:
2490       void init(const Aws::Client::ClientConfiguration& clientConfiguration);
2491         void AddFacetToObjectAsyncHelper(const Model::AddFacetToObjectRequest& request, const AddFacetToObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2492         void ApplySchemaAsyncHelper(const Model::ApplySchemaRequest& request, const ApplySchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2493         void AttachObjectAsyncHelper(const Model::AttachObjectRequest& request, const AttachObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2494         void AttachPolicyAsyncHelper(const Model::AttachPolicyRequest& request, const AttachPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2495         void AttachToIndexAsyncHelper(const Model::AttachToIndexRequest& request, const AttachToIndexResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2496         void AttachTypedLinkAsyncHelper(const Model::AttachTypedLinkRequest& request, const AttachTypedLinkResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2497         void BatchReadAsyncHelper(const Model::BatchReadRequest& request, const BatchReadResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2498         void BatchWriteAsyncHelper(const Model::BatchWriteRequest& request, const BatchWriteResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2499         void CreateDirectoryAsyncHelper(const Model::CreateDirectoryRequest& request, const CreateDirectoryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2500         void CreateFacetAsyncHelper(const Model::CreateFacetRequest& request, const CreateFacetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2501         void CreateIndexAsyncHelper(const Model::CreateIndexRequest& request, const CreateIndexResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2502         void CreateObjectAsyncHelper(const Model::CreateObjectRequest& request, const CreateObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2503         void CreateSchemaAsyncHelper(const Model::CreateSchemaRequest& request, const CreateSchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2504         void CreateTypedLinkFacetAsyncHelper(const Model::CreateTypedLinkFacetRequest& request, const CreateTypedLinkFacetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2505         void DeleteDirectoryAsyncHelper(const Model::DeleteDirectoryRequest& request, const DeleteDirectoryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2506         void DeleteFacetAsyncHelper(const Model::DeleteFacetRequest& request, const DeleteFacetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2507         void DeleteObjectAsyncHelper(const Model::DeleteObjectRequest& request, const DeleteObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2508         void DeleteSchemaAsyncHelper(const Model::DeleteSchemaRequest& request, const DeleteSchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2509         void DeleteTypedLinkFacetAsyncHelper(const Model::DeleteTypedLinkFacetRequest& request, const DeleteTypedLinkFacetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2510         void DetachFromIndexAsyncHelper(const Model::DetachFromIndexRequest& request, const DetachFromIndexResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2511         void DetachObjectAsyncHelper(const Model::DetachObjectRequest& request, const DetachObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2512         void DetachPolicyAsyncHelper(const Model::DetachPolicyRequest& request, const DetachPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2513         void DetachTypedLinkAsyncHelper(const Model::DetachTypedLinkRequest& request, const DetachTypedLinkResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2514         void DisableDirectoryAsyncHelper(const Model::DisableDirectoryRequest& request, const DisableDirectoryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2515         void EnableDirectoryAsyncHelper(const Model::EnableDirectoryRequest& request, const EnableDirectoryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2516         void GetAppliedSchemaVersionAsyncHelper(const Model::GetAppliedSchemaVersionRequest& request, const GetAppliedSchemaVersionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2517         void GetDirectoryAsyncHelper(const Model::GetDirectoryRequest& request, const GetDirectoryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2518         void GetFacetAsyncHelper(const Model::GetFacetRequest& request, const GetFacetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2519         void GetLinkAttributesAsyncHelper(const Model::GetLinkAttributesRequest& request, const GetLinkAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2520         void GetObjectAttributesAsyncHelper(const Model::GetObjectAttributesRequest& request, const GetObjectAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2521         void GetObjectInformationAsyncHelper(const Model::GetObjectInformationRequest& request, const GetObjectInformationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2522         void GetSchemaAsJsonAsyncHelper(const Model::GetSchemaAsJsonRequest& request, const GetSchemaAsJsonResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2523         void GetTypedLinkFacetInformationAsyncHelper(const Model::GetTypedLinkFacetInformationRequest& request, const GetTypedLinkFacetInformationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2524         void ListAppliedSchemaArnsAsyncHelper(const Model::ListAppliedSchemaArnsRequest& request, const ListAppliedSchemaArnsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2525         void ListAttachedIndicesAsyncHelper(const Model::ListAttachedIndicesRequest& request, const ListAttachedIndicesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2526         void ListDevelopmentSchemaArnsAsyncHelper(const Model::ListDevelopmentSchemaArnsRequest& request, const ListDevelopmentSchemaArnsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2527         void ListDirectoriesAsyncHelper(const Model::ListDirectoriesRequest& request, const ListDirectoriesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2528         void ListFacetAttributesAsyncHelper(const Model::ListFacetAttributesRequest& request, const ListFacetAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2529         void ListFacetNamesAsyncHelper(const Model::ListFacetNamesRequest& request, const ListFacetNamesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2530         void ListIncomingTypedLinksAsyncHelper(const Model::ListIncomingTypedLinksRequest& request, const ListIncomingTypedLinksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2531         void ListIndexAsyncHelper(const Model::ListIndexRequest& request, const ListIndexResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2532         void ListManagedSchemaArnsAsyncHelper(const Model::ListManagedSchemaArnsRequest& request, const ListManagedSchemaArnsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2533         void ListObjectAttributesAsyncHelper(const Model::ListObjectAttributesRequest& request, const ListObjectAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2534         void ListObjectChildrenAsyncHelper(const Model::ListObjectChildrenRequest& request, const ListObjectChildrenResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2535         void ListObjectParentPathsAsyncHelper(const Model::ListObjectParentPathsRequest& request, const ListObjectParentPathsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2536         void ListObjectParentsAsyncHelper(const Model::ListObjectParentsRequest& request, const ListObjectParentsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2537         void ListObjectPoliciesAsyncHelper(const Model::ListObjectPoliciesRequest& request, const ListObjectPoliciesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2538         void ListOutgoingTypedLinksAsyncHelper(const Model::ListOutgoingTypedLinksRequest& request, const ListOutgoingTypedLinksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2539         void ListPolicyAttachmentsAsyncHelper(const Model::ListPolicyAttachmentsRequest& request, const ListPolicyAttachmentsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2540         void ListPublishedSchemaArnsAsyncHelper(const Model::ListPublishedSchemaArnsRequest& request, const ListPublishedSchemaArnsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2541         void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2542         void ListTypedLinkFacetAttributesAsyncHelper(const Model::ListTypedLinkFacetAttributesRequest& request, const ListTypedLinkFacetAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2543         void ListTypedLinkFacetNamesAsyncHelper(const Model::ListTypedLinkFacetNamesRequest& request, const ListTypedLinkFacetNamesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2544         void LookupPolicyAsyncHelper(const Model::LookupPolicyRequest& request, const LookupPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2545         void PublishSchemaAsyncHelper(const Model::PublishSchemaRequest& request, const PublishSchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2546         void PutSchemaFromJsonAsyncHelper(const Model::PutSchemaFromJsonRequest& request, const PutSchemaFromJsonResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2547         void RemoveFacetFromObjectAsyncHelper(const Model::RemoveFacetFromObjectRequest& request, const RemoveFacetFromObjectResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2548         void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2549         void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2550         void UpdateFacetAsyncHelper(const Model::UpdateFacetRequest& request, const UpdateFacetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2551         void UpdateLinkAttributesAsyncHelper(const Model::UpdateLinkAttributesRequest& request, const UpdateLinkAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2552         void UpdateObjectAttributesAsyncHelper(const Model::UpdateObjectAttributesRequest& request, const UpdateObjectAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2553         void UpdateSchemaAsyncHelper(const Model::UpdateSchemaRequest& request, const UpdateSchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2554         void UpdateTypedLinkFacetAsyncHelper(const Model::UpdateTypedLinkFacetRequest& request, const UpdateTypedLinkFacetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2555         void UpgradeAppliedSchemaAsyncHelper(const Model::UpgradeAppliedSchemaRequest& request, const UpgradeAppliedSchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2556         void UpgradePublishedSchemaAsyncHelper(const Model::UpgradePublishedSchemaRequest& request, const UpgradePublishedSchemaResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2557 
2558       Aws::String m_uri;
2559       Aws::String m_configScheme;
2560       std::shared_ptr<Aws::Utils::Threading::Executor> m_executor;
2561   };
2562 
2563 } // namespace CloudDirectory
2564 } // namespace Aws
2565