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/docdb/DocDB_EXPORTS.h>
8 #include <aws/docdb/DocDBErrors.h>
9 #include <aws/core/client/AWSError.h>
10 #include <aws/core/client/ClientConfiguration.h>
11 #include <aws/core/AmazonSerializableWebServiceRequest.h>
12 #include <aws/core/client/AWSClient.h>
13 #include <aws/core/utils/memory/stl/AWSString.h>
14 #include <aws/core/utils/xml/XmlSerializer.h>
15 #include <aws/docdb/model/AddSourceIdentifierToSubscriptionResult.h>
16 #include <aws/docdb/model/ApplyPendingMaintenanceActionResult.h>
17 #include <aws/docdb/model/CopyDBClusterParameterGroupResult.h>
18 #include <aws/docdb/model/CopyDBClusterSnapshotResult.h>
19 #include <aws/docdb/model/CreateDBClusterResult.h>
20 #include <aws/docdb/model/CreateDBClusterParameterGroupResult.h>
21 #include <aws/docdb/model/CreateDBClusterSnapshotResult.h>
22 #include <aws/docdb/model/CreateDBInstanceResult.h>
23 #include <aws/docdb/model/CreateDBSubnetGroupResult.h>
24 #include <aws/docdb/model/CreateEventSubscriptionResult.h>
25 #include <aws/docdb/model/CreateGlobalClusterResult.h>
26 #include <aws/docdb/model/DeleteDBClusterResult.h>
27 #include <aws/docdb/model/DeleteDBClusterSnapshotResult.h>
28 #include <aws/docdb/model/DeleteDBInstanceResult.h>
29 #include <aws/docdb/model/DeleteEventSubscriptionResult.h>
30 #include <aws/docdb/model/DeleteGlobalClusterResult.h>
31 #include <aws/docdb/model/DescribeCertificatesResult.h>
32 #include <aws/docdb/model/DescribeDBClusterParameterGroupsResult.h>
33 #include <aws/docdb/model/DescribeDBClusterParametersResult.h>
34 #include <aws/docdb/model/DescribeDBClusterSnapshotAttributesResult.h>
35 #include <aws/docdb/model/DescribeDBClusterSnapshotsResult.h>
36 #include <aws/docdb/model/DescribeDBClustersResult.h>
37 #include <aws/docdb/model/DescribeDBEngineVersionsResult.h>
38 #include <aws/docdb/model/DescribeDBInstancesResult.h>
39 #include <aws/docdb/model/DescribeDBSubnetGroupsResult.h>
40 #include <aws/docdb/model/DescribeEngineDefaultClusterParametersResult.h>
41 #include <aws/docdb/model/DescribeEventCategoriesResult.h>
42 #include <aws/docdb/model/DescribeEventSubscriptionsResult.h>
43 #include <aws/docdb/model/DescribeEventsResult.h>
44 #include <aws/docdb/model/DescribeGlobalClustersResult.h>
45 #include <aws/docdb/model/DescribeOrderableDBInstanceOptionsResult.h>
46 #include <aws/docdb/model/DescribePendingMaintenanceActionsResult.h>
47 #include <aws/docdb/model/FailoverDBClusterResult.h>
48 #include <aws/docdb/model/ListTagsForResourceResult.h>
49 #include <aws/docdb/model/ModifyDBClusterResult.h>
50 #include <aws/docdb/model/ModifyDBClusterParameterGroupResult.h>
51 #include <aws/docdb/model/ModifyDBClusterSnapshotAttributeResult.h>
52 #include <aws/docdb/model/ModifyDBInstanceResult.h>
53 #include <aws/docdb/model/ModifyDBSubnetGroupResult.h>
54 #include <aws/docdb/model/ModifyEventSubscriptionResult.h>
55 #include <aws/docdb/model/ModifyGlobalClusterResult.h>
56 #include <aws/docdb/model/RebootDBInstanceResult.h>
57 #include <aws/docdb/model/RemoveFromGlobalClusterResult.h>
58 #include <aws/docdb/model/RemoveSourceIdentifierFromSubscriptionResult.h>
59 #include <aws/docdb/model/ResetDBClusterParameterGroupResult.h>
60 #include <aws/docdb/model/RestoreDBClusterFromSnapshotResult.h>
61 #include <aws/docdb/model/RestoreDBClusterToPointInTimeResult.h>
62 #include <aws/docdb/model/StartDBClusterResult.h>
63 #include <aws/docdb/model/StopDBClusterResult.h>
64 #include <aws/core/NoResult.h>
65 #include <aws/core/client/AsyncCallerContext.h>
66 #include <aws/core/http/HttpTypes.h>
67 #include <future>
68 #include <functional>
69 
70 namespace Aws
71 {
72 
73 namespace Http
74 {
75   class HttpClient;
76   class HttpClientFactory;
77 } // namespace Http
78 
79 namespace Utils
80 {
81   template< typename R, typename E> class Outcome;
82 
83 namespace Threading
84 {
85   class Executor;
86 } // namespace Threading
87 
88 namespace Xml
89 {
90   class XmlDocument;
91 } // namespace Xml
92 } // namespace Utils
93 
94 namespace Auth
95 {
96   class AWSCredentials;
97   class AWSCredentialsProvider;
98 } // namespace Auth
99 
100 namespace Client
101 {
102   class RetryStrategy;
103 } // namespace Client
104 
105 namespace DocDB
106 {
107 
108 namespace Model
109 {
110         class AddSourceIdentifierToSubscriptionRequest;
111         class AddTagsToResourceRequest;
112         class ApplyPendingMaintenanceActionRequest;
113         class CopyDBClusterParameterGroupRequest;
114         class CopyDBClusterSnapshotRequest;
115         class CreateDBClusterRequest;
116         class CreateDBClusterParameterGroupRequest;
117         class CreateDBClusterSnapshotRequest;
118         class CreateDBInstanceRequest;
119         class CreateDBSubnetGroupRequest;
120         class CreateEventSubscriptionRequest;
121         class CreateGlobalClusterRequest;
122         class DeleteDBClusterRequest;
123         class DeleteDBClusterParameterGroupRequest;
124         class DeleteDBClusterSnapshotRequest;
125         class DeleteDBInstanceRequest;
126         class DeleteDBSubnetGroupRequest;
127         class DeleteEventSubscriptionRequest;
128         class DeleteGlobalClusterRequest;
129         class DescribeCertificatesRequest;
130         class DescribeDBClusterParameterGroupsRequest;
131         class DescribeDBClusterParametersRequest;
132         class DescribeDBClusterSnapshotAttributesRequest;
133         class DescribeDBClusterSnapshotsRequest;
134         class DescribeDBClustersRequest;
135         class DescribeDBEngineVersionsRequest;
136         class DescribeDBInstancesRequest;
137         class DescribeDBSubnetGroupsRequest;
138         class DescribeEngineDefaultClusterParametersRequest;
139         class DescribeEventCategoriesRequest;
140         class DescribeEventSubscriptionsRequest;
141         class DescribeEventsRequest;
142         class DescribeGlobalClustersRequest;
143         class DescribeOrderableDBInstanceOptionsRequest;
144         class DescribePendingMaintenanceActionsRequest;
145         class FailoverDBClusterRequest;
146         class ListTagsForResourceRequest;
147         class ModifyDBClusterRequest;
148         class ModifyDBClusterParameterGroupRequest;
149         class ModifyDBClusterSnapshotAttributeRequest;
150         class ModifyDBInstanceRequest;
151         class ModifyDBSubnetGroupRequest;
152         class ModifyEventSubscriptionRequest;
153         class ModifyGlobalClusterRequest;
154         class RebootDBInstanceRequest;
155         class RemoveFromGlobalClusterRequest;
156         class RemoveSourceIdentifierFromSubscriptionRequest;
157         class RemoveTagsFromResourceRequest;
158         class ResetDBClusterParameterGroupRequest;
159         class RestoreDBClusterFromSnapshotRequest;
160         class RestoreDBClusterToPointInTimeRequest;
161         class StartDBClusterRequest;
162         class StopDBClusterRequest;
163 
164         typedef Aws::Utils::Outcome<AddSourceIdentifierToSubscriptionResult, DocDBError> AddSourceIdentifierToSubscriptionOutcome;
165         typedef Aws::Utils::Outcome<Aws::NoResult, DocDBError> AddTagsToResourceOutcome;
166         typedef Aws::Utils::Outcome<ApplyPendingMaintenanceActionResult, DocDBError> ApplyPendingMaintenanceActionOutcome;
167         typedef Aws::Utils::Outcome<CopyDBClusterParameterGroupResult, DocDBError> CopyDBClusterParameterGroupOutcome;
168         typedef Aws::Utils::Outcome<CopyDBClusterSnapshotResult, DocDBError> CopyDBClusterSnapshotOutcome;
169         typedef Aws::Utils::Outcome<CreateDBClusterResult, DocDBError> CreateDBClusterOutcome;
170         typedef Aws::Utils::Outcome<CreateDBClusterParameterGroupResult, DocDBError> CreateDBClusterParameterGroupOutcome;
171         typedef Aws::Utils::Outcome<CreateDBClusterSnapshotResult, DocDBError> CreateDBClusterSnapshotOutcome;
172         typedef Aws::Utils::Outcome<CreateDBInstanceResult, DocDBError> CreateDBInstanceOutcome;
173         typedef Aws::Utils::Outcome<CreateDBSubnetGroupResult, DocDBError> CreateDBSubnetGroupOutcome;
174         typedef Aws::Utils::Outcome<CreateEventSubscriptionResult, DocDBError> CreateEventSubscriptionOutcome;
175         typedef Aws::Utils::Outcome<CreateGlobalClusterResult, DocDBError> CreateGlobalClusterOutcome;
176         typedef Aws::Utils::Outcome<DeleteDBClusterResult, DocDBError> DeleteDBClusterOutcome;
177         typedef Aws::Utils::Outcome<Aws::NoResult, DocDBError> DeleteDBClusterParameterGroupOutcome;
178         typedef Aws::Utils::Outcome<DeleteDBClusterSnapshotResult, DocDBError> DeleteDBClusterSnapshotOutcome;
179         typedef Aws::Utils::Outcome<DeleteDBInstanceResult, DocDBError> DeleteDBInstanceOutcome;
180         typedef Aws::Utils::Outcome<Aws::NoResult, DocDBError> DeleteDBSubnetGroupOutcome;
181         typedef Aws::Utils::Outcome<DeleteEventSubscriptionResult, DocDBError> DeleteEventSubscriptionOutcome;
182         typedef Aws::Utils::Outcome<DeleteGlobalClusterResult, DocDBError> DeleteGlobalClusterOutcome;
183         typedef Aws::Utils::Outcome<DescribeCertificatesResult, DocDBError> DescribeCertificatesOutcome;
184         typedef Aws::Utils::Outcome<DescribeDBClusterParameterGroupsResult, DocDBError> DescribeDBClusterParameterGroupsOutcome;
185         typedef Aws::Utils::Outcome<DescribeDBClusterParametersResult, DocDBError> DescribeDBClusterParametersOutcome;
186         typedef Aws::Utils::Outcome<DescribeDBClusterSnapshotAttributesResult, DocDBError> DescribeDBClusterSnapshotAttributesOutcome;
187         typedef Aws::Utils::Outcome<DescribeDBClusterSnapshotsResult, DocDBError> DescribeDBClusterSnapshotsOutcome;
188         typedef Aws::Utils::Outcome<DescribeDBClustersResult, DocDBError> DescribeDBClustersOutcome;
189         typedef Aws::Utils::Outcome<DescribeDBEngineVersionsResult, DocDBError> DescribeDBEngineVersionsOutcome;
190         typedef Aws::Utils::Outcome<DescribeDBInstancesResult, DocDBError> DescribeDBInstancesOutcome;
191         typedef Aws::Utils::Outcome<DescribeDBSubnetGroupsResult, DocDBError> DescribeDBSubnetGroupsOutcome;
192         typedef Aws::Utils::Outcome<DescribeEngineDefaultClusterParametersResult, DocDBError> DescribeEngineDefaultClusterParametersOutcome;
193         typedef Aws::Utils::Outcome<DescribeEventCategoriesResult, DocDBError> DescribeEventCategoriesOutcome;
194         typedef Aws::Utils::Outcome<DescribeEventSubscriptionsResult, DocDBError> DescribeEventSubscriptionsOutcome;
195         typedef Aws::Utils::Outcome<DescribeEventsResult, DocDBError> DescribeEventsOutcome;
196         typedef Aws::Utils::Outcome<DescribeGlobalClustersResult, DocDBError> DescribeGlobalClustersOutcome;
197         typedef Aws::Utils::Outcome<DescribeOrderableDBInstanceOptionsResult, DocDBError> DescribeOrderableDBInstanceOptionsOutcome;
198         typedef Aws::Utils::Outcome<DescribePendingMaintenanceActionsResult, DocDBError> DescribePendingMaintenanceActionsOutcome;
199         typedef Aws::Utils::Outcome<FailoverDBClusterResult, DocDBError> FailoverDBClusterOutcome;
200         typedef Aws::Utils::Outcome<ListTagsForResourceResult, DocDBError> ListTagsForResourceOutcome;
201         typedef Aws::Utils::Outcome<ModifyDBClusterResult, DocDBError> ModifyDBClusterOutcome;
202         typedef Aws::Utils::Outcome<ModifyDBClusterParameterGroupResult, DocDBError> ModifyDBClusterParameterGroupOutcome;
203         typedef Aws::Utils::Outcome<ModifyDBClusterSnapshotAttributeResult, DocDBError> ModifyDBClusterSnapshotAttributeOutcome;
204         typedef Aws::Utils::Outcome<ModifyDBInstanceResult, DocDBError> ModifyDBInstanceOutcome;
205         typedef Aws::Utils::Outcome<ModifyDBSubnetGroupResult, DocDBError> ModifyDBSubnetGroupOutcome;
206         typedef Aws::Utils::Outcome<ModifyEventSubscriptionResult, DocDBError> ModifyEventSubscriptionOutcome;
207         typedef Aws::Utils::Outcome<ModifyGlobalClusterResult, DocDBError> ModifyGlobalClusterOutcome;
208         typedef Aws::Utils::Outcome<RebootDBInstanceResult, DocDBError> RebootDBInstanceOutcome;
209         typedef Aws::Utils::Outcome<RemoveFromGlobalClusterResult, DocDBError> RemoveFromGlobalClusterOutcome;
210         typedef Aws::Utils::Outcome<RemoveSourceIdentifierFromSubscriptionResult, DocDBError> RemoveSourceIdentifierFromSubscriptionOutcome;
211         typedef Aws::Utils::Outcome<Aws::NoResult, DocDBError> RemoveTagsFromResourceOutcome;
212         typedef Aws::Utils::Outcome<ResetDBClusterParameterGroupResult, DocDBError> ResetDBClusterParameterGroupOutcome;
213         typedef Aws::Utils::Outcome<RestoreDBClusterFromSnapshotResult, DocDBError> RestoreDBClusterFromSnapshotOutcome;
214         typedef Aws::Utils::Outcome<RestoreDBClusterToPointInTimeResult, DocDBError> RestoreDBClusterToPointInTimeOutcome;
215         typedef Aws::Utils::Outcome<StartDBClusterResult, DocDBError> StartDBClusterOutcome;
216         typedef Aws::Utils::Outcome<StopDBClusterResult, DocDBError> StopDBClusterOutcome;
217 
218         typedef std::future<AddSourceIdentifierToSubscriptionOutcome> AddSourceIdentifierToSubscriptionOutcomeCallable;
219         typedef std::future<AddTagsToResourceOutcome> AddTagsToResourceOutcomeCallable;
220         typedef std::future<ApplyPendingMaintenanceActionOutcome> ApplyPendingMaintenanceActionOutcomeCallable;
221         typedef std::future<CopyDBClusterParameterGroupOutcome> CopyDBClusterParameterGroupOutcomeCallable;
222         typedef std::future<CopyDBClusterSnapshotOutcome> CopyDBClusterSnapshotOutcomeCallable;
223         typedef std::future<CreateDBClusterOutcome> CreateDBClusterOutcomeCallable;
224         typedef std::future<CreateDBClusterParameterGroupOutcome> CreateDBClusterParameterGroupOutcomeCallable;
225         typedef std::future<CreateDBClusterSnapshotOutcome> CreateDBClusterSnapshotOutcomeCallable;
226         typedef std::future<CreateDBInstanceOutcome> CreateDBInstanceOutcomeCallable;
227         typedef std::future<CreateDBSubnetGroupOutcome> CreateDBSubnetGroupOutcomeCallable;
228         typedef std::future<CreateEventSubscriptionOutcome> CreateEventSubscriptionOutcomeCallable;
229         typedef std::future<CreateGlobalClusterOutcome> CreateGlobalClusterOutcomeCallable;
230         typedef std::future<DeleteDBClusterOutcome> DeleteDBClusterOutcomeCallable;
231         typedef std::future<DeleteDBClusterParameterGroupOutcome> DeleteDBClusterParameterGroupOutcomeCallable;
232         typedef std::future<DeleteDBClusterSnapshotOutcome> DeleteDBClusterSnapshotOutcomeCallable;
233         typedef std::future<DeleteDBInstanceOutcome> DeleteDBInstanceOutcomeCallable;
234         typedef std::future<DeleteDBSubnetGroupOutcome> DeleteDBSubnetGroupOutcomeCallable;
235         typedef std::future<DeleteEventSubscriptionOutcome> DeleteEventSubscriptionOutcomeCallable;
236         typedef std::future<DeleteGlobalClusterOutcome> DeleteGlobalClusterOutcomeCallable;
237         typedef std::future<DescribeCertificatesOutcome> DescribeCertificatesOutcomeCallable;
238         typedef std::future<DescribeDBClusterParameterGroupsOutcome> DescribeDBClusterParameterGroupsOutcomeCallable;
239         typedef std::future<DescribeDBClusterParametersOutcome> DescribeDBClusterParametersOutcomeCallable;
240         typedef std::future<DescribeDBClusterSnapshotAttributesOutcome> DescribeDBClusterSnapshotAttributesOutcomeCallable;
241         typedef std::future<DescribeDBClusterSnapshotsOutcome> DescribeDBClusterSnapshotsOutcomeCallable;
242         typedef std::future<DescribeDBClustersOutcome> DescribeDBClustersOutcomeCallable;
243         typedef std::future<DescribeDBEngineVersionsOutcome> DescribeDBEngineVersionsOutcomeCallable;
244         typedef std::future<DescribeDBInstancesOutcome> DescribeDBInstancesOutcomeCallable;
245         typedef std::future<DescribeDBSubnetGroupsOutcome> DescribeDBSubnetGroupsOutcomeCallable;
246         typedef std::future<DescribeEngineDefaultClusterParametersOutcome> DescribeEngineDefaultClusterParametersOutcomeCallable;
247         typedef std::future<DescribeEventCategoriesOutcome> DescribeEventCategoriesOutcomeCallable;
248         typedef std::future<DescribeEventSubscriptionsOutcome> DescribeEventSubscriptionsOutcomeCallable;
249         typedef std::future<DescribeEventsOutcome> DescribeEventsOutcomeCallable;
250         typedef std::future<DescribeGlobalClustersOutcome> DescribeGlobalClustersOutcomeCallable;
251         typedef std::future<DescribeOrderableDBInstanceOptionsOutcome> DescribeOrderableDBInstanceOptionsOutcomeCallable;
252         typedef std::future<DescribePendingMaintenanceActionsOutcome> DescribePendingMaintenanceActionsOutcomeCallable;
253         typedef std::future<FailoverDBClusterOutcome> FailoverDBClusterOutcomeCallable;
254         typedef std::future<ListTagsForResourceOutcome> ListTagsForResourceOutcomeCallable;
255         typedef std::future<ModifyDBClusterOutcome> ModifyDBClusterOutcomeCallable;
256         typedef std::future<ModifyDBClusterParameterGroupOutcome> ModifyDBClusterParameterGroupOutcomeCallable;
257         typedef std::future<ModifyDBClusterSnapshotAttributeOutcome> ModifyDBClusterSnapshotAttributeOutcomeCallable;
258         typedef std::future<ModifyDBInstanceOutcome> ModifyDBInstanceOutcomeCallable;
259         typedef std::future<ModifyDBSubnetGroupOutcome> ModifyDBSubnetGroupOutcomeCallable;
260         typedef std::future<ModifyEventSubscriptionOutcome> ModifyEventSubscriptionOutcomeCallable;
261         typedef std::future<ModifyGlobalClusterOutcome> ModifyGlobalClusterOutcomeCallable;
262         typedef std::future<RebootDBInstanceOutcome> RebootDBInstanceOutcomeCallable;
263         typedef std::future<RemoveFromGlobalClusterOutcome> RemoveFromGlobalClusterOutcomeCallable;
264         typedef std::future<RemoveSourceIdentifierFromSubscriptionOutcome> RemoveSourceIdentifierFromSubscriptionOutcomeCallable;
265         typedef std::future<RemoveTagsFromResourceOutcome> RemoveTagsFromResourceOutcomeCallable;
266         typedef std::future<ResetDBClusterParameterGroupOutcome> ResetDBClusterParameterGroupOutcomeCallable;
267         typedef std::future<RestoreDBClusterFromSnapshotOutcome> RestoreDBClusterFromSnapshotOutcomeCallable;
268         typedef std::future<RestoreDBClusterToPointInTimeOutcome> RestoreDBClusterToPointInTimeOutcomeCallable;
269         typedef std::future<StartDBClusterOutcome> StartDBClusterOutcomeCallable;
270         typedef std::future<StopDBClusterOutcome> StopDBClusterOutcomeCallable;
271 } // namespace Model
272 
273   class DocDBClient;
274 
275     typedef std::function<void(const DocDBClient*, const Model::AddSourceIdentifierToSubscriptionRequest&, const Model::AddSourceIdentifierToSubscriptionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AddSourceIdentifierToSubscriptionResponseReceivedHandler;
276     typedef std::function<void(const DocDBClient*, const Model::AddTagsToResourceRequest&, const Model::AddTagsToResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AddTagsToResourceResponseReceivedHandler;
277     typedef std::function<void(const DocDBClient*, const Model::ApplyPendingMaintenanceActionRequest&, const Model::ApplyPendingMaintenanceActionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ApplyPendingMaintenanceActionResponseReceivedHandler;
278     typedef std::function<void(const DocDBClient*, const Model::CopyDBClusterParameterGroupRequest&, const Model::CopyDBClusterParameterGroupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CopyDBClusterParameterGroupResponseReceivedHandler;
279     typedef std::function<void(const DocDBClient*, const Model::CopyDBClusterSnapshotRequest&, const Model::CopyDBClusterSnapshotOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CopyDBClusterSnapshotResponseReceivedHandler;
280     typedef std::function<void(const DocDBClient*, const Model::CreateDBClusterRequest&, const Model::CreateDBClusterOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateDBClusterResponseReceivedHandler;
281     typedef std::function<void(const DocDBClient*, const Model::CreateDBClusterParameterGroupRequest&, const Model::CreateDBClusterParameterGroupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateDBClusterParameterGroupResponseReceivedHandler;
282     typedef std::function<void(const DocDBClient*, const Model::CreateDBClusterSnapshotRequest&, const Model::CreateDBClusterSnapshotOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateDBClusterSnapshotResponseReceivedHandler;
283     typedef std::function<void(const DocDBClient*, const Model::CreateDBInstanceRequest&, const Model::CreateDBInstanceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateDBInstanceResponseReceivedHandler;
284     typedef std::function<void(const DocDBClient*, const Model::CreateDBSubnetGroupRequest&, const Model::CreateDBSubnetGroupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateDBSubnetGroupResponseReceivedHandler;
285     typedef std::function<void(const DocDBClient*, const Model::CreateEventSubscriptionRequest&, const Model::CreateEventSubscriptionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateEventSubscriptionResponseReceivedHandler;
286     typedef std::function<void(const DocDBClient*, const Model::CreateGlobalClusterRequest&, const Model::CreateGlobalClusterOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateGlobalClusterResponseReceivedHandler;
287     typedef std::function<void(const DocDBClient*, const Model::DeleteDBClusterRequest&, const Model::DeleteDBClusterOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteDBClusterResponseReceivedHandler;
288     typedef std::function<void(const DocDBClient*, const Model::DeleteDBClusterParameterGroupRequest&, const Model::DeleteDBClusterParameterGroupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteDBClusterParameterGroupResponseReceivedHandler;
289     typedef std::function<void(const DocDBClient*, const Model::DeleteDBClusterSnapshotRequest&, const Model::DeleteDBClusterSnapshotOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteDBClusterSnapshotResponseReceivedHandler;
290     typedef std::function<void(const DocDBClient*, const Model::DeleteDBInstanceRequest&, const Model::DeleteDBInstanceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteDBInstanceResponseReceivedHandler;
291     typedef std::function<void(const DocDBClient*, const Model::DeleteDBSubnetGroupRequest&, const Model::DeleteDBSubnetGroupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteDBSubnetGroupResponseReceivedHandler;
292     typedef std::function<void(const DocDBClient*, const Model::DeleteEventSubscriptionRequest&, const Model::DeleteEventSubscriptionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteEventSubscriptionResponseReceivedHandler;
293     typedef std::function<void(const DocDBClient*, const Model::DeleteGlobalClusterRequest&, const Model::DeleteGlobalClusterOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteGlobalClusterResponseReceivedHandler;
294     typedef std::function<void(const DocDBClient*, const Model::DescribeCertificatesRequest&, const Model::DescribeCertificatesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeCertificatesResponseReceivedHandler;
295     typedef std::function<void(const DocDBClient*, const Model::DescribeDBClusterParameterGroupsRequest&, const Model::DescribeDBClusterParameterGroupsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeDBClusterParameterGroupsResponseReceivedHandler;
296     typedef std::function<void(const DocDBClient*, const Model::DescribeDBClusterParametersRequest&, const Model::DescribeDBClusterParametersOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeDBClusterParametersResponseReceivedHandler;
297     typedef std::function<void(const DocDBClient*, const Model::DescribeDBClusterSnapshotAttributesRequest&, const Model::DescribeDBClusterSnapshotAttributesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeDBClusterSnapshotAttributesResponseReceivedHandler;
298     typedef std::function<void(const DocDBClient*, const Model::DescribeDBClusterSnapshotsRequest&, const Model::DescribeDBClusterSnapshotsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeDBClusterSnapshotsResponseReceivedHandler;
299     typedef std::function<void(const DocDBClient*, const Model::DescribeDBClustersRequest&, const Model::DescribeDBClustersOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeDBClustersResponseReceivedHandler;
300     typedef std::function<void(const DocDBClient*, const Model::DescribeDBEngineVersionsRequest&, const Model::DescribeDBEngineVersionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeDBEngineVersionsResponseReceivedHandler;
301     typedef std::function<void(const DocDBClient*, const Model::DescribeDBInstancesRequest&, const Model::DescribeDBInstancesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeDBInstancesResponseReceivedHandler;
302     typedef std::function<void(const DocDBClient*, const Model::DescribeDBSubnetGroupsRequest&, const Model::DescribeDBSubnetGroupsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeDBSubnetGroupsResponseReceivedHandler;
303     typedef std::function<void(const DocDBClient*, const Model::DescribeEngineDefaultClusterParametersRequest&, const Model::DescribeEngineDefaultClusterParametersOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeEngineDefaultClusterParametersResponseReceivedHandler;
304     typedef std::function<void(const DocDBClient*, const Model::DescribeEventCategoriesRequest&, const Model::DescribeEventCategoriesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeEventCategoriesResponseReceivedHandler;
305     typedef std::function<void(const DocDBClient*, const Model::DescribeEventSubscriptionsRequest&, const Model::DescribeEventSubscriptionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeEventSubscriptionsResponseReceivedHandler;
306     typedef std::function<void(const DocDBClient*, const Model::DescribeEventsRequest&, const Model::DescribeEventsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeEventsResponseReceivedHandler;
307     typedef std::function<void(const DocDBClient*, const Model::DescribeGlobalClustersRequest&, const Model::DescribeGlobalClustersOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeGlobalClustersResponseReceivedHandler;
308     typedef std::function<void(const DocDBClient*, const Model::DescribeOrderableDBInstanceOptionsRequest&, const Model::DescribeOrderableDBInstanceOptionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeOrderableDBInstanceOptionsResponseReceivedHandler;
309     typedef std::function<void(const DocDBClient*, const Model::DescribePendingMaintenanceActionsRequest&, const Model::DescribePendingMaintenanceActionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribePendingMaintenanceActionsResponseReceivedHandler;
310     typedef std::function<void(const DocDBClient*, const Model::FailoverDBClusterRequest&, const Model::FailoverDBClusterOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > FailoverDBClusterResponseReceivedHandler;
311     typedef std::function<void(const DocDBClient*, const Model::ListTagsForResourceRequest&, const Model::ListTagsForResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTagsForResourceResponseReceivedHandler;
312     typedef std::function<void(const DocDBClient*, const Model::ModifyDBClusterRequest&, const Model::ModifyDBClusterOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyDBClusterResponseReceivedHandler;
313     typedef std::function<void(const DocDBClient*, const Model::ModifyDBClusterParameterGroupRequest&, const Model::ModifyDBClusterParameterGroupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyDBClusterParameterGroupResponseReceivedHandler;
314     typedef std::function<void(const DocDBClient*, const Model::ModifyDBClusterSnapshotAttributeRequest&, const Model::ModifyDBClusterSnapshotAttributeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyDBClusterSnapshotAttributeResponseReceivedHandler;
315     typedef std::function<void(const DocDBClient*, const Model::ModifyDBInstanceRequest&, const Model::ModifyDBInstanceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyDBInstanceResponseReceivedHandler;
316     typedef std::function<void(const DocDBClient*, const Model::ModifyDBSubnetGroupRequest&, const Model::ModifyDBSubnetGroupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyDBSubnetGroupResponseReceivedHandler;
317     typedef std::function<void(const DocDBClient*, const Model::ModifyEventSubscriptionRequest&, const Model::ModifyEventSubscriptionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyEventSubscriptionResponseReceivedHandler;
318     typedef std::function<void(const DocDBClient*, const Model::ModifyGlobalClusterRequest&, const Model::ModifyGlobalClusterOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ModifyGlobalClusterResponseReceivedHandler;
319     typedef std::function<void(const DocDBClient*, const Model::RebootDBInstanceRequest&, const Model::RebootDBInstanceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RebootDBInstanceResponseReceivedHandler;
320     typedef std::function<void(const DocDBClient*, const Model::RemoveFromGlobalClusterRequest&, const Model::RemoveFromGlobalClusterOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RemoveFromGlobalClusterResponseReceivedHandler;
321     typedef std::function<void(const DocDBClient*, const Model::RemoveSourceIdentifierFromSubscriptionRequest&, const Model::RemoveSourceIdentifierFromSubscriptionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RemoveSourceIdentifierFromSubscriptionResponseReceivedHandler;
322     typedef std::function<void(const DocDBClient*, const Model::RemoveTagsFromResourceRequest&, const Model::RemoveTagsFromResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RemoveTagsFromResourceResponseReceivedHandler;
323     typedef std::function<void(const DocDBClient*, const Model::ResetDBClusterParameterGroupRequest&, const Model::ResetDBClusterParameterGroupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ResetDBClusterParameterGroupResponseReceivedHandler;
324     typedef std::function<void(const DocDBClient*, const Model::RestoreDBClusterFromSnapshotRequest&, const Model::RestoreDBClusterFromSnapshotOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RestoreDBClusterFromSnapshotResponseReceivedHandler;
325     typedef std::function<void(const DocDBClient*, const Model::RestoreDBClusterToPointInTimeRequest&, const Model::RestoreDBClusterToPointInTimeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > RestoreDBClusterToPointInTimeResponseReceivedHandler;
326     typedef std::function<void(const DocDBClient*, const Model::StartDBClusterRequest&, const Model::StartDBClusterOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StartDBClusterResponseReceivedHandler;
327     typedef std::function<void(const DocDBClient*, const Model::StopDBClusterRequest&, const Model::StopDBClusterOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StopDBClusterResponseReceivedHandler;
328 
329   /**
330    * <p>Amazon DocumentDB API documentation</p>
331    */
332   class AWS_DOCDB_API DocDBClient : public Aws::Client::AWSXMLClient
333   {
334     public:
335       typedef Aws::Client::AWSXMLClient BASECLASS;
336 
337        /**
338         * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
339         * is not specified, it will be initialized to default values.
340         */
341         DocDBClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
342 
343        /**
344         * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
345         * is not specified, it will be initialized to default values.
346         */
347         DocDBClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
348 
349        /**
350         * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
351         * the default http client factory will be used
352         */
353         DocDBClient(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
354             const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
355 
356         virtual ~DocDBClient();
357 
358 
359        /**
360         * Converts any request object to a presigned URL with the GET method, using region for the signer and a timeout of 15 minutes.
361         */
362         Aws::String ConvertRequestToPresignedUrl(const Aws::AmazonSerializableWebServiceRequest& requestToConvert, const char* region) const;
363 
364 
365         /**
366          * <p>Adds a source identifier to an existing event notification
367          * subscription.</p><p><h3>See Also:</h3>   <a
368          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/AddSourceIdentifierToSubscription">AWS
369          * API Reference</a></p>
370          */
371         virtual Model::AddSourceIdentifierToSubscriptionOutcome AddSourceIdentifierToSubscription(const Model::AddSourceIdentifierToSubscriptionRequest& request) const;
372 
373         /**
374          * <p>Adds a source identifier to an existing event notification
375          * subscription.</p><p><h3>See Also:</h3>   <a
376          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/AddSourceIdentifierToSubscription">AWS
377          * API Reference</a></p>
378          *
379          * returns a future to the operation so that it can be executed in parallel to other requests.
380          */
381         virtual Model::AddSourceIdentifierToSubscriptionOutcomeCallable AddSourceIdentifierToSubscriptionCallable(const Model::AddSourceIdentifierToSubscriptionRequest& request) const;
382 
383         /**
384          * <p>Adds a source identifier to an existing event notification
385          * subscription.</p><p><h3>See Also:</h3>   <a
386          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/AddSourceIdentifierToSubscription">AWS
387          * API Reference</a></p>
388          *
389          * Queues the request into a thread executor and triggers associated callback when operation has finished.
390          */
391         virtual void AddSourceIdentifierToSubscriptionAsync(const Model::AddSourceIdentifierToSubscriptionRequest& request, const AddSourceIdentifierToSubscriptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
392 
393         /**
394          * <p>Adds metadata tags to an Amazon DocumentDB resource. You can use these tags
395          * with cost allocation reporting to track costs that are associated with Amazon
396          * DocumentDB resources or in a <code>Condition</code> statement in an Identity and
397          * Access Management (IAM) policy for Amazon DocumentDB.</p><p><h3>See Also:</h3>
398          * <a
399          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/AddTagsToResource">AWS
400          * API Reference</a></p>
401          */
402         virtual Model::AddTagsToResourceOutcome AddTagsToResource(const Model::AddTagsToResourceRequest& request) const;
403 
404         /**
405          * <p>Adds metadata tags to an Amazon DocumentDB resource. You can use these tags
406          * with cost allocation reporting to track costs that are associated with Amazon
407          * DocumentDB resources or in a <code>Condition</code> statement in an Identity and
408          * Access Management (IAM) policy for Amazon DocumentDB.</p><p><h3>See Also:</h3>
409          * <a
410          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/AddTagsToResource">AWS
411          * API Reference</a></p>
412          *
413          * returns a future to the operation so that it can be executed in parallel to other requests.
414          */
415         virtual Model::AddTagsToResourceOutcomeCallable AddTagsToResourceCallable(const Model::AddTagsToResourceRequest& request) const;
416 
417         /**
418          * <p>Adds metadata tags to an Amazon DocumentDB resource. You can use these tags
419          * with cost allocation reporting to track costs that are associated with Amazon
420          * DocumentDB resources or in a <code>Condition</code> statement in an Identity and
421          * Access Management (IAM) policy for Amazon DocumentDB.</p><p><h3>See Also:</h3>
422          * <a
423          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/AddTagsToResource">AWS
424          * API Reference</a></p>
425          *
426          * Queues the request into a thread executor and triggers associated callback when operation has finished.
427          */
428         virtual void AddTagsToResourceAsync(const Model::AddTagsToResourceRequest& request, const AddTagsToResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
429 
430         /**
431          * <p>Applies a pending maintenance action to a resource (for example, to an Amazon
432          * DocumentDB instance).</p><p><h3>See Also:</h3>   <a
433          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ApplyPendingMaintenanceAction">AWS
434          * API Reference</a></p>
435          */
436         virtual Model::ApplyPendingMaintenanceActionOutcome ApplyPendingMaintenanceAction(const Model::ApplyPendingMaintenanceActionRequest& request) const;
437 
438         /**
439          * <p>Applies a pending maintenance action to a resource (for example, to an Amazon
440          * DocumentDB instance).</p><p><h3>See Also:</h3>   <a
441          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ApplyPendingMaintenanceAction">AWS
442          * API Reference</a></p>
443          *
444          * returns a future to the operation so that it can be executed in parallel to other requests.
445          */
446         virtual Model::ApplyPendingMaintenanceActionOutcomeCallable ApplyPendingMaintenanceActionCallable(const Model::ApplyPendingMaintenanceActionRequest& request) const;
447 
448         /**
449          * <p>Applies a pending maintenance action to a resource (for example, to an Amazon
450          * DocumentDB instance).</p><p><h3>See Also:</h3>   <a
451          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ApplyPendingMaintenanceAction">AWS
452          * API Reference</a></p>
453          *
454          * Queues the request into a thread executor and triggers associated callback when operation has finished.
455          */
456         virtual void ApplyPendingMaintenanceActionAsync(const Model::ApplyPendingMaintenanceActionRequest& request, const ApplyPendingMaintenanceActionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
457 
458         /**
459          * <p>Copies the specified cluster parameter group.</p><p><h3>See Also:</h3>   <a
460          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CopyDBClusterParameterGroup">AWS
461          * API Reference</a></p>
462          */
463         virtual Model::CopyDBClusterParameterGroupOutcome CopyDBClusterParameterGroup(const Model::CopyDBClusterParameterGroupRequest& request) const;
464 
465         /**
466          * <p>Copies the specified cluster parameter group.</p><p><h3>See Also:</h3>   <a
467          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CopyDBClusterParameterGroup">AWS
468          * API Reference</a></p>
469          *
470          * returns a future to the operation so that it can be executed in parallel to other requests.
471          */
472         virtual Model::CopyDBClusterParameterGroupOutcomeCallable CopyDBClusterParameterGroupCallable(const Model::CopyDBClusterParameterGroupRequest& request) const;
473 
474         /**
475          * <p>Copies the specified cluster parameter group.</p><p><h3>See Also:</h3>   <a
476          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CopyDBClusterParameterGroup">AWS
477          * API Reference</a></p>
478          *
479          * Queues the request into a thread executor and triggers associated callback when operation has finished.
480          */
481         virtual void CopyDBClusterParameterGroupAsync(const Model::CopyDBClusterParameterGroupRequest& request, const CopyDBClusterParameterGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
482 
483         /**
484          * <p>Copies a snapshot of a cluster.</p> <p>To copy a cluster snapshot from a
485          * shared manual cluster snapshot, <code>SourceDBClusterSnapshotIdentifier</code>
486          * must be the Amazon Resource Name (ARN) of the shared cluster snapshot. You can
487          * only copy a shared DB cluster snapshot, whether encrypted or not, in the same
488          * Region.</p> <p>To cancel the copy operation after it is in progress, delete the
489          * target cluster snapshot identified by
490          * <code>TargetDBClusterSnapshotIdentifier</code> while that cluster snapshot is in
491          * the <i>copying</i> status.</p><p><h3>See Also:</h3>   <a
492          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CopyDBClusterSnapshot">AWS
493          * API Reference</a></p>
494          */
495         virtual Model::CopyDBClusterSnapshotOutcome CopyDBClusterSnapshot(const Model::CopyDBClusterSnapshotRequest& request) const;
496 
497         /**
498          * <p>Copies a snapshot of a cluster.</p> <p>To copy a cluster snapshot from a
499          * shared manual cluster snapshot, <code>SourceDBClusterSnapshotIdentifier</code>
500          * must be the Amazon Resource Name (ARN) of the shared cluster snapshot. You can
501          * only copy a shared DB cluster snapshot, whether encrypted or not, in the same
502          * Region.</p> <p>To cancel the copy operation after it is in progress, delete the
503          * target cluster snapshot identified by
504          * <code>TargetDBClusterSnapshotIdentifier</code> while that cluster snapshot is in
505          * the <i>copying</i> status.</p><p><h3>See Also:</h3>   <a
506          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CopyDBClusterSnapshot">AWS
507          * API Reference</a></p>
508          *
509          * returns a future to the operation so that it can be executed in parallel to other requests.
510          */
511         virtual Model::CopyDBClusterSnapshotOutcomeCallable CopyDBClusterSnapshotCallable(const Model::CopyDBClusterSnapshotRequest& request) const;
512 
513         /**
514          * <p>Copies a snapshot of a cluster.</p> <p>To copy a cluster snapshot from a
515          * shared manual cluster snapshot, <code>SourceDBClusterSnapshotIdentifier</code>
516          * must be the Amazon Resource Name (ARN) of the shared cluster snapshot. You can
517          * only copy a shared DB cluster snapshot, whether encrypted or not, in the same
518          * Region.</p> <p>To cancel the copy operation after it is in progress, delete the
519          * target cluster snapshot identified by
520          * <code>TargetDBClusterSnapshotIdentifier</code> while that cluster snapshot is in
521          * the <i>copying</i> status.</p><p><h3>See Also:</h3>   <a
522          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CopyDBClusterSnapshot">AWS
523          * API Reference</a></p>
524          *
525          * Queues the request into a thread executor and triggers associated callback when operation has finished.
526          */
527         virtual void CopyDBClusterSnapshotAsync(const Model::CopyDBClusterSnapshotRequest& request, const CopyDBClusterSnapshotResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
528 
529         /**
530          * <p>Creates a new Amazon DocumentDB cluster.</p><p><h3>See Also:</h3>   <a
531          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateDBCluster">AWS
532          * API Reference</a></p>
533          */
534         virtual Model::CreateDBClusterOutcome CreateDBCluster(const Model::CreateDBClusterRequest& request) const;
535 
536         /**
537          * <p>Creates a new Amazon DocumentDB cluster.</p><p><h3>See Also:</h3>   <a
538          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateDBCluster">AWS
539          * API Reference</a></p>
540          *
541          * returns a future to the operation so that it can be executed in parallel to other requests.
542          */
543         virtual Model::CreateDBClusterOutcomeCallable CreateDBClusterCallable(const Model::CreateDBClusterRequest& request) const;
544 
545         /**
546          * <p>Creates a new Amazon DocumentDB cluster.</p><p><h3>See Also:</h3>   <a
547          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateDBCluster">AWS
548          * API Reference</a></p>
549          *
550          * Queues the request into a thread executor and triggers associated callback when operation has finished.
551          */
552         virtual void CreateDBClusterAsync(const Model::CreateDBClusterRequest& request, const CreateDBClusterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
553 
554         /**
555          * <p>Creates a new cluster parameter group.</p> <p>Parameters in a cluster
556          * parameter group apply to all of the instances in a cluster.</p> <p>A cluster
557          * parameter group is initially created with the default parameters for the
558          * database engine used by instances in the cluster. In Amazon DocumentDB, you
559          * cannot make modifications directly to the <code>default.docdb3.6</code> cluster
560          * parameter group. If your Amazon DocumentDB cluster is using the default cluster
561          * parameter group and you want to modify a value in it, you must first <a
562          * href="https://docs.aws.amazon.com/documentdb/latest/developerguide/cluster_parameter_group-create.html">
563          * create a new parameter group</a> or <a
564          * href="https://docs.aws.amazon.com/documentdb/latest/developerguide/cluster_parameter_group-copy.html">
565          * copy an existing parameter group</a>, modify it, and then apply the modified
566          * parameter group to your cluster. For the new cluster parameter group and
567          * associated settings to take effect, you must then reboot the instances in the
568          * cluster without failover. For more information, see <a
569          * href="https://docs.aws.amazon.com/documentdb/latest/developerguide/cluster_parameter_group-modify.html">
570          * Modifying Amazon DocumentDB Cluster Parameter Groups</a>. </p><p><h3>See
571          * Also:</h3>   <a
572          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateDBClusterParameterGroup">AWS
573          * API Reference</a></p>
574          */
575         virtual Model::CreateDBClusterParameterGroupOutcome CreateDBClusterParameterGroup(const Model::CreateDBClusterParameterGroupRequest& request) const;
576 
577         /**
578          * <p>Creates a new cluster parameter group.</p> <p>Parameters in a cluster
579          * parameter group apply to all of the instances in a cluster.</p> <p>A cluster
580          * parameter group is initially created with the default parameters for the
581          * database engine used by instances in the cluster. In Amazon DocumentDB, you
582          * cannot make modifications directly to the <code>default.docdb3.6</code> cluster
583          * parameter group. If your Amazon DocumentDB cluster is using the default cluster
584          * parameter group and you want to modify a value in it, you must first <a
585          * href="https://docs.aws.amazon.com/documentdb/latest/developerguide/cluster_parameter_group-create.html">
586          * create a new parameter group</a> or <a
587          * href="https://docs.aws.amazon.com/documentdb/latest/developerguide/cluster_parameter_group-copy.html">
588          * copy an existing parameter group</a>, modify it, and then apply the modified
589          * parameter group to your cluster. For the new cluster parameter group and
590          * associated settings to take effect, you must then reboot the instances in the
591          * cluster without failover. For more information, see <a
592          * href="https://docs.aws.amazon.com/documentdb/latest/developerguide/cluster_parameter_group-modify.html">
593          * Modifying Amazon DocumentDB Cluster Parameter Groups</a>. </p><p><h3>See
594          * Also:</h3>   <a
595          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateDBClusterParameterGroup">AWS
596          * API Reference</a></p>
597          *
598          * returns a future to the operation so that it can be executed in parallel to other requests.
599          */
600         virtual Model::CreateDBClusterParameterGroupOutcomeCallable CreateDBClusterParameterGroupCallable(const Model::CreateDBClusterParameterGroupRequest& request) const;
601 
602         /**
603          * <p>Creates a new cluster parameter group.</p> <p>Parameters in a cluster
604          * parameter group apply to all of the instances in a cluster.</p> <p>A cluster
605          * parameter group is initially created with the default parameters for the
606          * database engine used by instances in the cluster. In Amazon DocumentDB, you
607          * cannot make modifications directly to the <code>default.docdb3.6</code> cluster
608          * parameter group. If your Amazon DocumentDB cluster is using the default cluster
609          * parameter group and you want to modify a value in it, you must first <a
610          * href="https://docs.aws.amazon.com/documentdb/latest/developerguide/cluster_parameter_group-create.html">
611          * create a new parameter group</a> or <a
612          * href="https://docs.aws.amazon.com/documentdb/latest/developerguide/cluster_parameter_group-copy.html">
613          * copy an existing parameter group</a>, modify it, and then apply the modified
614          * parameter group to your cluster. For the new cluster parameter group and
615          * associated settings to take effect, you must then reboot the instances in the
616          * cluster without failover. For more information, see <a
617          * href="https://docs.aws.amazon.com/documentdb/latest/developerguide/cluster_parameter_group-modify.html">
618          * Modifying Amazon DocumentDB Cluster Parameter Groups</a>. </p><p><h3>See
619          * Also:</h3>   <a
620          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateDBClusterParameterGroup">AWS
621          * API Reference</a></p>
622          *
623          * Queues the request into a thread executor and triggers associated callback when operation has finished.
624          */
625         virtual void CreateDBClusterParameterGroupAsync(const Model::CreateDBClusterParameterGroupRequest& request, const CreateDBClusterParameterGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
626 
627         /**
628          * <p>Creates a snapshot of a cluster. </p><p><h3>See Also:</h3>   <a
629          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateDBClusterSnapshot">AWS
630          * API Reference</a></p>
631          */
632         virtual Model::CreateDBClusterSnapshotOutcome CreateDBClusterSnapshot(const Model::CreateDBClusterSnapshotRequest& request) const;
633 
634         /**
635          * <p>Creates a snapshot of a cluster. </p><p><h3>See Also:</h3>   <a
636          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateDBClusterSnapshot">AWS
637          * API Reference</a></p>
638          *
639          * returns a future to the operation so that it can be executed in parallel to other requests.
640          */
641         virtual Model::CreateDBClusterSnapshotOutcomeCallable CreateDBClusterSnapshotCallable(const Model::CreateDBClusterSnapshotRequest& request) const;
642 
643         /**
644          * <p>Creates a snapshot of a cluster. </p><p><h3>See Also:</h3>   <a
645          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateDBClusterSnapshot">AWS
646          * API Reference</a></p>
647          *
648          * Queues the request into a thread executor and triggers associated callback when operation has finished.
649          */
650         virtual void CreateDBClusterSnapshotAsync(const Model::CreateDBClusterSnapshotRequest& request, const CreateDBClusterSnapshotResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
651 
652         /**
653          * <p>Creates a new instance.</p><p><h3>See Also:</h3>   <a
654          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateDBInstance">AWS
655          * API Reference</a></p>
656          */
657         virtual Model::CreateDBInstanceOutcome CreateDBInstance(const Model::CreateDBInstanceRequest& request) const;
658 
659         /**
660          * <p>Creates a new instance.</p><p><h3>See Also:</h3>   <a
661          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateDBInstance">AWS
662          * API Reference</a></p>
663          *
664          * returns a future to the operation so that it can be executed in parallel to other requests.
665          */
666         virtual Model::CreateDBInstanceOutcomeCallable CreateDBInstanceCallable(const Model::CreateDBInstanceRequest& request) const;
667 
668         /**
669          * <p>Creates a new instance.</p><p><h3>See Also:</h3>   <a
670          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateDBInstance">AWS
671          * API Reference</a></p>
672          *
673          * Queues the request into a thread executor and triggers associated callback when operation has finished.
674          */
675         virtual void CreateDBInstanceAsync(const Model::CreateDBInstanceRequest& request, const CreateDBInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
676 
677         /**
678          * <p>Creates a new subnet group. subnet groups must contain at least one subnet in
679          * at least two Availability Zones in the Region.</p><p><h3>See Also:</h3>   <a
680          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateDBSubnetGroup">AWS
681          * API Reference</a></p>
682          */
683         virtual Model::CreateDBSubnetGroupOutcome CreateDBSubnetGroup(const Model::CreateDBSubnetGroupRequest& request) const;
684 
685         /**
686          * <p>Creates a new subnet group. subnet groups must contain at least one subnet in
687          * at least two Availability Zones in the Region.</p><p><h3>See Also:</h3>   <a
688          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateDBSubnetGroup">AWS
689          * API Reference</a></p>
690          *
691          * returns a future to the operation so that it can be executed in parallel to other requests.
692          */
693         virtual Model::CreateDBSubnetGroupOutcomeCallable CreateDBSubnetGroupCallable(const Model::CreateDBSubnetGroupRequest& request) const;
694 
695         /**
696          * <p>Creates a new subnet group. subnet groups must contain at least one subnet in
697          * at least two Availability Zones in the Region.</p><p><h3>See Also:</h3>   <a
698          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateDBSubnetGroup">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 CreateDBSubnetGroupAsync(const Model::CreateDBSubnetGroupRequest& request, const CreateDBSubnetGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
704 
705         /**
706          * <p>Creates an Amazon DocumentDB event notification subscription. This action
707          * requires a topic Amazon Resource Name (ARN) created by using the Amazon
708          * DocumentDB console, the Amazon SNS console, or the Amazon SNS API. To obtain an
709          * ARN with Amazon SNS, you must create a topic in Amazon SNS and subscribe to the
710          * topic. The ARN is displayed in the Amazon SNS console.</p> <p>You can specify
711          * the type of source (<code>SourceType</code>) that you want to be notified of.
712          * You can also provide a list of Amazon DocumentDB sources
713          * (<code>SourceIds</code>) that trigger the events, and you can provide a list of
714          * event categories (<code>EventCategories</code>) for events that you want to be
715          * notified of. For example, you can specify <code>SourceType = db-instance</code>,
716          * <code>SourceIds = mydbinstance1, mydbinstance2</code> and <code>EventCategories
717          * = Availability, Backup</code>.</p> <p>If you specify both the
718          * <code>SourceType</code> and <code>SourceIds</code> (such as <code>SourceType =
719          * db-instance</code> and <code>SourceIdentifier = myDBInstance1</code>), you are
720          * notified of all the <code>db-instance</code> events for the specified source. If
721          * you specify a <code>SourceType</code> but do not specify a
722          * <code>SourceIdentifier</code>, you receive notice of the events for that source
723          * type for all your Amazon DocumentDB sources. If you do not specify either the
724          * <code>SourceType</code> or the <code>SourceIdentifier</code>, you are notified
725          * of events generated from all Amazon DocumentDB sources belonging to your
726          * customer account.</p><p><h3>See Also:</h3>   <a
727          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateEventSubscription">AWS
728          * API Reference</a></p>
729          */
730         virtual Model::CreateEventSubscriptionOutcome CreateEventSubscription(const Model::CreateEventSubscriptionRequest& request) const;
731 
732         /**
733          * <p>Creates an Amazon DocumentDB event notification subscription. This action
734          * requires a topic Amazon Resource Name (ARN) created by using the Amazon
735          * DocumentDB console, the Amazon SNS console, or the Amazon SNS API. To obtain an
736          * ARN with Amazon SNS, you must create a topic in Amazon SNS and subscribe to the
737          * topic. The ARN is displayed in the Amazon SNS console.</p> <p>You can specify
738          * the type of source (<code>SourceType</code>) that you want to be notified of.
739          * You can also provide a list of Amazon DocumentDB sources
740          * (<code>SourceIds</code>) that trigger the events, and you can provide a list of
741          * event categories (<code>EventCategories</code>) for events that you want to be
742          * notified of. For example, you can specify <code>SourceType = db-instance</code>,
743          * <code>SourceIds = mydbinstance1, mydbinstance2</code> and <code>EventCategories
744          * = Availability, Backup</code>.</p> <p>If you specify both the
745          * <code>SourceType</code> and <code>SourceIds</code> (such as <code>SourceType =
746          * db-instance</code> and <code>SourceIdentifier = myDBInstance1</code>), you are
747          * notified of all the <code>db-instance</code> events for the specified source. If
748          * you specify a <code>SourceType</code> but do not specify a
749          * <code>SourceIdentifier</code>, you receive notice of the events for that source
750          * type for all your Amazon DocumentDB sources. If you do not specify either the
751          * <code>SourceType</code> or the <code>SourceIdentifier</code>, you are notified
752          * of events generated from all Amazon DocumentDB sources belonging to your
753          * customer account.</p><p><h3>See Also:</h3>   <a
754          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateEventSubscription">AWS
755          * API Reference</a></p>
756          *
757          * returns a future to the operation so that it can be executed in parallel to other requests.
758          */
759         virtual Model::CreateEventSubscriptionOutcomeCallable CreateEventSubscriptionCallable(const Model::CreateEventSubscriptionRequest& request) const;
760 
761         /**
762          * <p>Creates an Amazon DocumentDB event notification subscription. This action
763          * requires a topic Amazon Resource Name (ARN) created by using the Amazon
764          * DocumentDB console, the Amazon SNS console, or the Amazon SNS API. To obtain an
765          * ARN with Amazon SNS, you must create a topic in Amazon SNS and subscribe to the
766          * topic. The ARN is displayed in the Amazon SNS console.</p> <p>You can specify
767          * the type of source (<code>SourceType</code>) that you want to be notified of.
768          * You can also provide a list of Amazon DocumentDB sources
769          * (<code>SourceIds</code>) that trigger the events, and you can provide a list of
770          * event categories (<code>EventCategories</code>) for events that you want to be
771          * notified of. For example, you can specify <code>SourceType = db-instance</code>,
772          * <code>SourceIds = mydbinstance1, mydbinstance2</code> and <code>EventCategories
773          * = Availability, Backup</code>.</p> <p>If you specify both the
774          * <code>SourceType</code> and <code>SourceIds</code> (such as <code>SourceType =
775          * db-instance</code> and <code>SourceIdentifier = myDBInstance1</code>), you are
776          * notified of all the <code>db-instance</code> events for the specified source. If
777          * you specify a <code>SourceType</code> but do not specify a
778          * <code>SourceIdentifier</code>, you receive notice of the events for that source
779          * type for all your Amazon DocumentDB sources. If you do not specify either the
780          * <code>SourceType</code> or the <code>SourceIdentifier</code>, you are notified
781          * of events generated from all Amazon DocumentDB sources belonging to your
782          * customer account.</p><p><h3>See Also:</h3>   <a
783          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateEventSubscription">AWS
784          * API Reference</a></p>
785          *
786          * Queues the request into a thread executor and triggers associated callback when operation has finished.
787          */
788         virtual void CreateEventSubscriptionAsync(const Model::CreateEventSubscriptionRequest& request, const CreateEventSubscriptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
789 
790         /**
791          * <p>Creates an Amazon DocumentDB global cluster that can span multiple multiple
792          * Regions. The global cluster contains one primary cluster with read-write
793          * capability, and up-to give read-only secondary clusters. Global clusters uses
794          * storage-based fast replication across regions with latencies less than one
795          * second, using dedicated infrastructure with no impact to your workload’s
796          * performance.</p> <p/> <p>You can create a global cluster that is initially
797          * empty, and then add a primary and a secondary to it. Or you can specify an
798          * existing cluster during the create operation, and this cluster becomes the
799          * primary of the global cluster. </p>  <p>This action only applies to Amazon
800          * DocumentDB clusters.</p> <p><h3>See Also:</h3>   <a
801          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateGlobalCluster">AWS
802          * API Reference</a></p>
803          */
804         virtual Model::CreateGlobalClusterOutcome CreateGlobalCluster(const Model::CreateGlobalClusterRequest& request) const;
805 
806         /**
807          * <p>Creates an Amazon DocumentDB global cluster that can span multiple multiple
808          * Regions. The global cluster contains one primary cluster with read-write
809          * capability, and up-to give read-only secondary clusters. Global clusters uses
810          * storage-based fast replication across regions with latencies less than one
811          * second, using dedicated infrastructure with no impact to your workload’s
812          * performance.</p> <p/> <p>You can create a global cluster that is initially
813          * empty, and then add a primary and a secondary to it. Or you can specify an
814          * existing cluster during the create operation, and this cluster becomes the
815          * primary of the global cluster. </p>  <p>This action only applies to Amazon
816          * DocumentDB clusters.</p> <p><h3>See Also:</h3>   <a
817          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateGlobalCluster">AWS
818          * API Reference</a></p>
819          *
820          * returns a future to the operation so that it can be executed in parallel to other requests.
821          */
822         virtual Model::CreateGlobalClusterOutcomeCallable CreateGlobalClusterCallable(const Model::CreateGlobalClusterRequest& request) const;
823 
824         /**
825          * <p>Creates an Amazon DocumentDB global cluster that can span multiple multiple
826          * Regions. The global cluster contains one primary cluster with read-write
827          * capability, and up-to give read-only secondary clusters. Global clusters uses
828          * storage-based fast replication across regions with latencies less than one
829          * second, using dedicated infrastructure with no impact to your workload’s
830          * performance.</p> <p/> <p>You can create a global cluster that is initially
831          * empty, and then add a primary and a secondary to it. Or you can specify an
832          * existing cluster during the create operation, and this cluster becomes the
833          * primary of the global cluster. </p>  <p>This action only applies to Amazon
834          * DocumentDB clusters.</p> <p><h3>See Also:</h3>   <a
835          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/CreateGlobalCluster">AWS
836          * API Reference</a></p>
837          *
838          * Queues the request into a thread executor and triggers associated callback when operation has finished.
839          */
840         virtual void CreateGlobalClusterAsync(const Model::CreateGlobalClusterRequest& request, const CreateGlobalClusterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
841 
842         /**
843          * <p>Deletes a previously provisioned cluster. When you delete a cluster, all
844          * automated backups for that cluster are deleted and can't be recovered. Manual DB
845          * cluster snapshots of the specified cluster are not deleted.</p> <p/><p><h3>See
846          * Also:</h3>   <a
847          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteDBCluster">AWS
848          * API Reference</a></p>
849          */
850         virtual Model::DeleteDBClusterOutcome DeleteDBCluster(const Model::DeleteDBClusterRequest& request) const;
851 
852         /**
853          * <p>Deletes a previously provisioned cluster. When you delete a cluster, all
854          * automated backups for that cluster are deleted and can't be recovered. Manual DB
855          * cluster snapshots of the specified cluster are not deleted.</p> <p/><p><h3>See
856          * Also:</h3>   <a
857          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteDBCluster">AWS
858          * API Reference</a></p>
859          *
860          * returns a future to the operation so that it can be executed in parallel to other requests.
861          */
862         virtual Model::DeleteDBClusterOutcomeCallable DeleteDBClusterCallable(const Model::DeleteDBClusterRequest& request) const;
863 
864         /**
865          * <p>Deletes a previously provisioned cluster. When you delete a cluster, all
866          * automated backups for that cluster are deleted and can't be recovered. Manual DB
867          * cluster snapshots of the specified cluster are not deleted.</p> <p/><p><h3>See
868          * Also:</h3>   <a
869          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteDBCluster">AWS
870          * API Reference</a></p>
871          *
872          * Queues the request into a thread executor and triggers associated callback when operation has finished.
873          */
874         virtual void DeleteDBClusterAsync(const Model::DeleteDBClusterRequest& request, const DeleteDBClusterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
875 
876         /**
877          * <p>Deletes a specified cluster parameter group. The cluster parameter group to
878          * be deleted can't be associated with any clusters.</p><p><h3>See Also:</h3>   <a
879          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteDBClusterParameterGroup">AWS
880          * API Reference</a></p>
881          */
882         virtual Model::DeleteDBClusterParameterGroupOutcome DeleteDBClusterParameterGroup(const Model::DeleteDBClusterParameterGroupRequest& request) const;
883 
884         /**
885          * <p>Deletes a specified cluster parameter group. The cluster parameter group to
886          * be deleted can't be associated with any clusters.</p><p><h3>See Also:</h3>   <a
887          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteDBClusterParameterGroup">AWS
888          * API Reference</a></p>
889          *
890          * returns a future to the operation so that it can be executed in parallel to other requests.
891          */
892         virtual Model::DeleteDBClusterParameterGroupOutcomeCallable DeleteDBClusterParameterGroupCallable(const Model::DeleteDBClusterParameterGroupRequest& request) const;
893 
894         /**
895          * <p>Deletes a specified cluster parameter group. The cluster parameter group to
896          * be deleted can't be associated with any clusters.</p><p><h3>See Also:</h3>   <a
897          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteDBClusterParameterGroup">AWS
898          * API Reference</a></p>
899          *
900          * Queues the request into a thread executor and triggers associated callback when operation has finished.
901          */
902         virtual void DeleteDBClusterParameterGroupAsync(const Model::DeleteDBClusterParameterGroupRequest& request, const DeleteDBClusterParameterGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
903 
904         /**
905          * <p>Deletes a cluster snapshot. If the snapshot is being copied, the copy
906          * operation is terminated.</p>  <p>The cluster snapshot must be in the
907          * <code>available</code> state to be deleted.</p> <p><h3>See Also:</h3>
908          * <a
909          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteDBClusterSnapshot">AWS
910          * API Reference</a></p>
911          */
912         virtual Model::DeleteDBClusterSnapshotOutcome DeleteDBClusterSnapshot(const Model::DeleteDBClusterSnapshotRequest& request) const;
913 
914         /**
915          * <p>Deletes a cluster snapshot. If the snapshot is being copied, the copy
916          * operation is terminated.</p>  <p>The cluster snapshot must be in the
917          * <code>available</code> state to be deleted.</p> <p><h3>See Also:</h3>
918          * <a
919          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteDBClusterSnapshot">AWS
920          * API Reference</a></p>
921          *
922          * returns a future to the operation so that it can be executed in parallel to other requests.
923          */
924         virtual Model::DeleteDBClusterSnapshotOutcomeCallable DeleteDBClusterSnapshotCallable(const Model::DeleteDBClusterSnapshotRequest& request) const;
925 
926         /**
927          * <p>Deletes a cluster snapshot. If the snapshot is being copied, the copy
928          * operation is terminated.</p>  <p>The cluster snapshot must be in the
929          * <code>available</code> state to be deleted.</p> <p><h3>See Also:</h3>
930          * <a
931          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteDBClusterSnapshot">AWS
932          * API Reference</a></p>
933          *
934          * Queues the request into a thread executor and triggers associated callback when operation has finished.
935          */
936         virtual void DeleteDBClusterSnapshotAsync(const Model::DeleteDBClusterSnapshotRequest& request, const DeleteDBClusterSnapshotResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
937 
938         /**
939          * <p>Deletes a previously provisioned instance.</p><p><h3>See Also:</h3>   <a
940          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteDBInstance">AWS
941          * API Reference</a></p>
942          */
943         virtual Model::DeleteDBInstanceOutcome DeleteDBInstance(const Model::DeleteDBInstanceRequest& request) const;
944 
945         /**
946          * <p>Deletes a previously provisioned instance.</p><p><h3>See Also:</h3>   <a
947          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteDBInstance">AWS
948          * API Reference</a></p>
949          *
950          * returns a future to the operation so that it can be executed in parallel to other requests.
951          */
952         virtual Model::DeleteDBInstanceOutcomeCallable DeleteDBInstanceCallable(const Model::DeleteDBInstanceRequest& request) const;
953 
954         /**
955          * <p>Deletes a previously provisioned instance.</p><p><h3>See Also:</h3>   <a
956          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteDBInstance">AWS
957          * API Reference</a></p>
958          *
959          * Queues the request into a thread executor and triggers associated callback when operation has finished.
960          */
961         virtual void DeleteDBInstanceAsync(const Model::DeleteDBInstanceRequest& request, const DeleteDBInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
962 
963         /**
964          * <p>Deletes a subnet group.</p>  <p>The specified database subnet group
965          * must not be associated with any DB instances.</p> <p><h3>See Also:</h3>
966          * <a
967          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteDBSubnetGroup">AWS
968          * API Reference</a></p>
969          */
970         virtual Model::DeleteDBSubnetGroupOutcome DeleteDBSubnetGroup(const Model::DeleteDBSubnetGroupRequest& request) const;
971 
972         /**
973          * <p>Deletes a subnet group.</p>  <p>The specified database subnet group
974          * must not be associated with any DB instances.</p> <p><h3>See Also:</h3>
975          * <a
976          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteDBSubnetGroup">AWS
977          * API Reference</a></p>
978          *
979          * returns a future to the operation so that it can be executed in parallel to other requests.
980          */
981         virtual Model::DeleteDBSubnetGroupOutcomeCallable DeleteDBSubnetGroupCallable(const Model::DeleteDBSubnetGroupRequest& request) const;
982 
983         /**
984          * <p>Deletes a subnet group.</p>  <p>The specified database subnet group
985          * must not be associated with any DB instances.</p> <p><h3>See Also:</h3>
986          * <a
987          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteDBSubnetGroup">AWS
988          * API Reference</a></p>
989          *
990          * Queues the request into a thread executor and triggers associated callback when operation has finished.
991          */
992         virtual void DeleteDBSubnetGroupAsync(const Model::DeleteDBSubnetGroupRequest& request, const DeleteDBSubnetGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
993 
994         /**
995          * <p>Deletes an Amazon DocumentDB event notification subscription.</p><p><h3>See
996          * Also:</h3>   <a
997          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteEventSubscription">AWS
998          * API Reference</a></p>
999          */
1000         virtual Model::DeleteEventSubscriptionOutcome DeleteEventSubscription(const Model::DeleteEventSubscriptionRequest& request) const;
1001 
1002         /**
1003          * <p>Deletes an Amazon DocumentDB event notification subscription.</p><p><h3>See
1004          * Also:</h3>   <a
1005          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteEventSubscription">AWS
1006          * API Reference</a></p>
1007          *
1008          * returns a future to the operation so that it can be executed in parallel to other requests.
1009          */
1010         virtual Model::DeleteEventSubscriptionOutcomeCallable DeleteEventSubscriptionCallable(const Model::DeleteEventSubscriptionRequest& request) const;
1011 
1012         /**
1013          * <p>Deletes an Amazon DocumentDB event notification subscription.</p><p><h3>See
1014          * Also:</h3>   <a
1015          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteEventSubscription">AWS
1016          * API Reference</a></p>
1017          *
1018          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1019          */
1020         virtual void DeleteEventSubscriptionAsync(const Model::DeleteEventSubscriptionRequest& request, const DeleteEventSubscriptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1021 
1022         /**
1023          * <p>Deletes a global cluster. The primary and secondary clusters must already be
1024          * detached or deleted before attempting to delete a global cluster.</p>
1025          * <p>This action only applies to Amazon DocumentDB clusters.</p> <p><h3>See
1026          * Also:</h3>   <a
1027          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteGlobalCluster">AWS
1028          * API Reference</a></p>
1029          */
1030         virtual Model::DeleteGlobalClusterOutcome DeleteGlobalCluster(const Model::DeleteGlobalClusterRequest& request) const;
1031 
1032         /**
1033          * <p>Deletes a global cluster. The primary and secondary clusters must already be
1034          * detached or deleted before attempting to delete a global cluster.</p>
1035          * <p>This action only applies to Amazon DocumentDB clusters.</p> <p><h3>See
1036          * Also:</h3>   <a
1037          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteGlobalCluster">AWS
1038          * API Reference</a></p>
1039          *
1040          * returns a future to the operation so that it can be executed in parallel to other requests.
1041          */
1042         virtual Model::DeleteGlobalClusterOutcomeCallable DeleteGlobalClusterCallable(const Model::DeleteGlobalClusterRequest& request) const;
1043 
1044         /**
1045          * <p>Deletes a global cluster. The primary and secondary clusters must already be
1046          * detached or deleted before attempting to delete a global cluster.</p>
1047          * <p>This action only applies to Amazon DocumentDB clusters.</p> <p><h3>See
1048          * Also:</h3>   <a
1049          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DeleteGlobalCluster">AWS
1050          * API Reference</a></p>
1051          *
1052          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1053          */
1054         virtual void DeleteGlobalClusterAsync(const Model::DeleteGlobalClusterRequest& request, const DeleteGlobalClusterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1055 
1056         /**
1057          * <p>Returns a list of certificate authority (CA) certificates provided by Amazon
1058          * DocumentDB for this account.</p><p><h3>See Also:</h3>   <a
1059          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeCertificates">AWS
1060          * API Reference</a></p>
1061          */
1062         virtual Model::DescribeCertificatesOutcome DescribeCertificates(const Model::DescribeCertificatesRequest& request) const;
1063 
1064         /**
1065          * <p>Returns a list of certificate authority (CA) certificates provided by Amazon
1066          * DocumentDB for this account.</p><p><h3>See Also:</h3>   <a
1067          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeCertificates">AWS
1068          * API Reference</a></p>
1069          *
1070          * returns a future to the operation so that it can be executed in parallel to other requests.
1071          */
1072         virtual Model::DescribeCertificatesOutcomeCallable DescribeCertificatesCallable(const Model::DescribeCertificatesRequest& request) const;
1073 
1074         /**
1075          * <p>Returns a list of certificate authority (CA) certificates provided by Amazon
1076          * DocumentDB for this account.</p><p><h3>See Also:</h3>   <a
1077          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeCertificates">AWS
1078          * API Reference</a></p>
1079          *
1080          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1081          */
1082         virtual void DescribeCertificatesAsync(const Model::DescribeCertificatesRequest& request, const DescribeCertificatesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1083 
1084         /**
1085          * <p>Returns a list of <code>DBClusterParameterGroup</code> descriptions. If a
1086          * <code>DBClusterParameterGroupName</code> parameter is specified, the list
1087          * contains only the description of the specified cluster parameter group.
1088          * </p><p><h3>See Also:</h3>   <a
1089          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBClusterParameterGroups">AWS
1090          * API Reference</a></p>
1091          */
1092         virtual Model::DescribeDBClusterParameterGroupsOutcome DescribeDBClusterParameterGroups(const Model::DescribeDBClusterParameterGroupsRequest& request) const;
1093 
1094         /**
1095          * <p>Returns a list of <code>DBClusterParameterGroup</code> descriptions. If a
1096          * <code>DBClusterParameterGroupName</code> parameter is specified, the list
1097          * contains only the description of the specified cluster parameter group.
1098          * </p><p><h3>See Also:</h3>   <a
1099          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBClusterParameterGroups">AWS
1100          * API Reference</a></p>
1101          *
1102          * returns a future to the operation so that it can be executed in parallel to other requests.
1103          */
1104         virtual Model::DescribeDBClusterParameterGroupsOutcomeCallable DescribeDBClusterParameterGroupsCallable(const Model::DescribeDBClusterParameterGroupsRequest& request) const;
1105 
1106         /**
1107          * <p>Returns a list of <code>DBClusterParameterGroup</code> descriptions. If a
1108          * <code>DBClusterParameterGroupName</code> parameter is specified, the list
1109          * contains only the description of the specified cluster parameter group.
1110          * </p><p><h3>See Also:</h3>   <a
1111          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBClusterParameterGroups">AWS
1112          * API Reference</a></p>
1113          *
1114          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1115          */
1116         virtual void DescribeDBClusterParameterGroupsAsync(const Model::DescribeDBClusterParameterGroupsRequest& request, const DescribeDBClusterParameterGroupsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1117 
1118         /**
1119          * <p>Returns the detailed parameter list for a particular cluster parameter
1120          * group.</p><p><h3>See Also:</h3>   <a
1121          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBClusterParameters">AWS
1122          * API Reference</a></p>
1123          */
1124         virtual Model::DescribeDBClusterParametersOutcome DescribeDBClusterParameters(const Model::DescribeDBClusterParametersRequest& request) const;
1125 
1126         /**
1127          * <p>Returns the detailed parameter list for a particular cluster parameter
1128          * group.</p><p><h3>See Also:</h3>   <a
1129          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBClusterParameters">AWS
1130          * API Reference</a></p>
1131          *
1132          * returns a future to the operation so that it can be executed in parallel to other requests.
1133          */
1134         virtual Model::DescribeDBClusterParametersOutcomeCallable DescribeDBClusterParametersCallable(const Model::DescribeDBClusterParametersRequest& request) const;
1135 
1136         /**
1137          * <p>Returns the detailed parameter list for a particular cluster parameter
1138          * group.</p><p><h3>See Also:</h3>   <a
1139          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBClusterParameters">AWS
1140          * API Reference</a></p>
1141          *
1142          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1143          */
1144         virtual void DescribeDBClusterParametersAsync(const Model::DescribeDBClusterParametersRequest& request, const DescribeDBClusterParametersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1145 
1146         /**
1147          * <p>Returns a list of cluster snapshot attribute names and values for a manual DB
1148          * cluster snapshot.</p> <p>When you share snapshots with other accounts,
1149          * <code>DescribeDBClusterSnapshotAttributes</code> returns the
1150          * <code>restore</code> attribute and a list of IDs for the accounts that are
1151          * authorized to copy or restore the manual cluster snapshot. If <code>all</code>
1152          * is included in the list of values for the <code>restore</code> attribute, then
1153          * the manual cluster snapshot is public and can be copied or restored by all
1154          * accounts.</p><p><h3>See Also:</h3>   <a
1155          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBClusterSnapshotAttributes">AWS
1156          * API Reference</a></p>
1157          */
1158         virtual Model::DescribeDBClusterSnapshotAttributesOutcome DescribeDBClusterSnapshotAttributes(const Model::DescribeDBClusterSnapshotAttributesRequest& request) const;
1159 
1160         /**
1161          * <p>Returns a list of cluster snapshot attribute names and values for a manual DB
1162          * cluster snapshot.</p> <p>When you share snapshots with other accounts,
1163          * <code>DescribeDBClusterSnapshotAttributes</code> returns the
1164          * <code>restore</code> attribute and a list of IDs for the accounts that are
1165          * authorized to copy or restore the manual cluster snapshot. If <code>all</code>
1166          * is included in the list of values for the <code>restore</code> attribute, then
1167          * the manual cluster snapshot is public and can be copied or restored by all
1168          * accounts.</p><p><h3>See Also:</h3>   <a
1169          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBClusterSnapshotAttributes">AWS
1170          * API Reference</a></p>
1171          *
1172          * returns a future to the operation so that it can be executed in parallel to other requests.
1173          */
1174         virtual Model::DescribeDBClusterSnapshotAttributesOutcomeCallable DescribeDBClusterSnapshotAttributesCallable(const Model::DescribeDBClusterSnapshotAttributesRequest& request) const;
1175 
1176         /**
1177          * <p>Returns a list of cluster snapshot attribute names and values for a manual DB
1178          * cluster snapshot.</p> <p>When you share snapshots with other accounts,
1179          * <code>DescribeDBClusterSnapshotAttributes</code> returns the
1180          * <code>restore</code> attribute and a list of IDs for the accounts that are
1181          * authorized to copy or restore the manual cluster snapshot. If <code>all</code>
1182          * is included in the list of values for the <code>restore</code> attribute, then
1183          * the manual cluster snapshot is public and can be copied or restored by all
1184          * accounts.</p><p><h3>See Also:</h3>   <a
1185          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBClusterSnapshotAttributes">AWS
1186          * API Reference</a></p>
1187          *
1188          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1189          */
1190         virtual void DescribeDBClusterSnapshotAttributesAsync(const Model::DescribeDBClusterSnapshotAttributesRequest& request, const DescribeDBClusterSnapshotAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1191 
1192         /**
1193          * <p>Returns information about cluster snapshots. This API operation supports
1194          * pagination.</p><p><h3>See Also:</h3>   <a
1195          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBClusterSnapshots">AWS
1196          * API Reference</a></p>
1197          */
1198         virtual Model::DescribeDBClusterSnapshotsOutcome DescribeDBClusterSnapshots(const Model::DescribeDBClusterSnapshotsRequest& request) const;
1199 
1200         /**
1201          * <p>Returns information about cluster snapshots. This API operation supports
1202          * pagination.</p><p><h3>See Also:</h3>   <a
1203          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBClusterSnapshots">AWS
1204          * API Reference</a></p>
1205          *
1206          * returns a future to the operation so that it can be executed in parallel to other requests.
1207          */
1208         virtual Model::DescribeDBClusterSnapshotsOutcomeCallable DescribeDBClusterSnapshotsCallable(const Model::DescribeDBClusterSnapshotsRequest& request) const;
1209 
1210         /**
1211          * <p>Returns information about cluster snapshots. This API operation supports
1212          * pagination.</p><p><h3>See Also:</h3>   <a
1213          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBClusterSnapshots">AWS
1214          * API Reference</a></p>
1215          *
1216          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1217          */
1218         virtual void DescribeDBClusterSnapshotsAsync(const Model::DescribeDBClusterSnapshotsRequest& request, const DescribeDBClusterSnapshotsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1219 
1220         /**
1221          * <p>Returns information about provisioned Amazon DocumentDB clusters. This API
1222          * operation supports pagination. For certain management features such as cluster
1223          * and instance lifecycle management, Amazon DocumentDB leverages operational
1224          * technology that is shared with Amazon RDS and Amazon Neptune. Use the
1225          * <code>filterName=engine,Values=docdb</code> filter parameter to return only
1226          * Amazon DocumentDB clusters.</p><p><h3>See Also:</h3>   <a
1227          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBClusters">AWS
1228          * API Reference</a></p>
1229          */
1230         virtual Model::DescribeDBClustersOutcome DescribeDBClusters(const Model::DescribeDBClustersRequest& request) const;
1231 
1232         /**
1233          * <p>Returns information about provisioned Amazon DocumentDB clusters. This API
1234          * operation supports pagination. For certain management features such as cluster
1235          * and instance lifecycle management, Amazon DocumentDB leverages operational
1236          * technology that is shared with Amazon RDS and Amazon Neptune. Use the
1237          * <code>filterName=engine,Values=docdb</code> filter parameter to return only
1238          * Amazon DocumentDB clusters.</p><p><h3>See Also:</h3>   <a
1239          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBClusters">AWS
1240          * API Reference</a></p>
1241          *
1242          * returns a future to the operation so that it can be executed in parallel to other requests.
1243          */
1244         virtual Model::DescribeDBClustersOutcomeCallable DescribeDBClustersCallable(const Model::DescribeDBClustersRequest& request) const;
1245 
1246         /**
1247          * <p>Returns information about provisioned Amazon DocumentDB clusters. This API
1248          * operation supports pagination. For certain management features such as cluster
1249          * and instance lifecycle management, Amazon DocumentDB leverages operational
1250          * technology that is shared with Amazon RDS and Amazon Neptune. Use the
1251          * <code>filterName=engine,Values=docdb</code> filter parameter to return only
1252          * Amazon DocumentDB clusters.</p><p><h3>See Also:</h3>   <a
1253          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBClusters">AWS
1254          * API Reference</a></p>
1255          *
1256          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1257          */
1258         virtual void DescribeDBClustersAsync(const Model::DescribeDBClustersRequest& request, const DescribeDBClustersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1259 
1260         /**
1261          * <p>Returns a list of the available engines.</p><p><h3>See Also:</h3>   <a
1262          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBEngineVersions">AWS
1263          * API Reference</a></p>
1264          */
1265         virtual Model::DescribeDBEngineVersionsOutcome DescribeDBEngineVersions(const Model::DescribeDBEngineVersionsRequest& request) const;
1266 
1267         /**
1268          * <p>Returns a list of the available engines.</p><p><h3>See Also:</h3>   <a
1269          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBEngineVersions">AWS
1270          * API Reference</a></p>
1271          *
1272          * returns a future to the operation so that it can be executed in parallel to other requests.
1273          */
1274         virtual Model::DescribeDBEngineVersionsOutcomeCallable DescribeDBEngineVersionsCallable(const Model::DescribeDBEngineVersionsRequest& request) const;
1275 
1276         /**
1277          * <p>Returns a list of the available engines.</p><p><h3>See Also:</h3>   <a
1278          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBEngineVersions">AWS
1279          * API Reference</a></p>
1280          *
1281          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1282          */
1283         virtual void DescribeDBEngineVersionsAsync(const Model::DescribeDBEngineVersionsRequest& request, const DescribeDBEngineVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1284 
1285         /**
1286          * <p>Returns information about provisioned Amazon DocumentDB instances. This API
1287          * supports pagination.</p><p><h3>See Also:</h3>   <a
1288          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBInstances">AWS
1289          * API Reference</a></p>
1290          */
1291         virtual Model::DescribeDBInstancesOutcome DescribeDBInstances(const Model::DescribeDBInstancesRequest& request) const;
1292 
1293         /**
1294          * <p>Returns information about provisioned Amazon DocumentDB instances. This API
1295          * supports pagination.</p><p><h3>See Also:</h3>   <a
1296          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBInstances">AWS
1297          * API Reference</a></p>
1298          *
1299          * returns a future to the operation so that it can be executed in parallel to other requests.
1300          */
1301         virtual Model::DescribeDBInstancesOutcomeCallable DescribeDBInstancesCallable(const Model::DescribeDBInstancesRequest& request) const;
1302 
1303         /**
1304          * <p>Returns information about provisioned Amazon DocumentDB instances. This API
1305          * supports pagination.</p><p><h3>See Also:</h3>   <a
1306          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBInstances">AWS
1307          * API Reference</a></p>
1308          *
1309          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1310          */
1311         virtual void DescribeDBInstancesAsync(const Model::DescribeDBInstancesRequest& request, const DescribeDBInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1312 
1313         /**
1314          * <p>Returns a list of <code>DBSubnetGroup</code> descriptions. If a
1315          * <code>DBSubnetGroupName</code> is specified, the list will contain only the
1316          * descriptions of the specified <code>DBSubnetGroup</code>.</p><p><h3>See
1317          * Also:</h3>   <a
1318          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBSubnetGroups">AWS
1319          * API Reference</a></p>
1320          */
1321         virtual Model::DescribeDBSubnetGroupsOutcome DescribeDBSubnetGroups(const Model::DescribeDBSubnetGroupsRequest& request) const;
1322 
1323         /**
1324          * <p>Returns a list of <code>DBSubnetGroup</code> descriptions. If a
1325          * <code>DBSubnetGroupName</code> is specified, the list will contain only the
1326          * descriptions of the specified <code>DBSubnetGroup</code>.</p><p><h3>See
1327          * Also:</h3>   <a
1328          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBSubnetGroups">AWS
1329          * API Reference</a></p>
1330          *
1331          * returns a future to the operation so that it can be executed in parallel to other requests.
1332          */
1333         virtual Model::DescribeDBSubnetGroupsOutcomeCallable DescribeDBSubnetGroupsCallable(const Model::DescribeDBSubnetGroupsRequest& request) const;
1334 
1335         /**
1336          * <p>Returns a list of <code>DBSubnetGroup</code> descriptions. If a
1337          * <code>DBSubnetGroupName</code> is specified, the list will contain only the
1338          * descriptions of the specified <code>DBSubnetGroup</code>.</p><p><h3>See
1339          * Also:</h3>   <a
1340          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeDBSubnetGroups">AWS
1341          * API Reference</a></p>
1342          *
1343          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1344          */
1345         virtual void DescribeDBSubnetGroupsAsync(const Model::DescribeDBSubnetGroupsRequest& request, const DescribeDBSubnetGroupsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1346 
1347         /**
1348          * <p>Returns the default engine and system parameter information for the cluster
1349          * database engine.</p><p><h3>See Also:</h3>   <a
1350          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeEngineDefaultClusterParameters">AWS
1351          * API Reference</a></p>
1352          */
1353         virtual Model::DescribeEngineDefaultClusterParametersOutcome DescribeEngineDefaultClusterParameters(const Model::DescribeEngineDefaultClusterParametersRequest& request) const;
1354 
1355         /**
1356          * <p>Returns the default engine and system parameter information for the cluster
1357          * database engine.</p><p><h3>See Also:</h3>   <a
1358          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeEngineDefaultClusterParameters">AWS
1359          * API Reference</a></p>
1360          *
1361          * returns a future to the operation so that it can be executed in parallel to other requests.
1362          */
1363         virtual Model::DescribeEngineDefaultClusterParametersOutcomeCallable DescribeEngineDefaultClusterParametersCallable(const Model::DescribeEngineDefaultClusterParametersRequest& request) const;
1364 
1365         /**
1366          * <p>Returns the default engine and system parameter information for the cluster
1367          * database engine.</p><p><h3>See Also:</h3>   <a
1368          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeEngineDefaultClusterParameters">AWS
1369          * API Reference</a></p>
1370          *
1371          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1372          */
1373         virtual void DescribeEngineDefaultClusterParametersAsync(const Model::DescribeEngineDefaultClusterParametersRequest& request, const DescribeEngineDefaultClusterParametersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1374 
1375         /**
1376          * <p>Displays a list of categories for all event source types, or, if specified,
1377          * for a specified source type. </p><p><h3>See Also:</h3>   <a
1378          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeEventCategories">AWS
1379          * API Reference</a></p>
1380          */
1381         virtual Model::DescribeEventCategoriesOutcome DescribeEventCategories(const Model::DescribeEventCategoriesRequest& request) const;
1382 
1383         /**
1384          * <p>Displays a list of categories for all event source types, or, if specified,
1385          * for a specified source type. </p><p><h3>See Also:</h3>   <a
1386          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeEventCategories">AWS
1387          * API Reference</a></p>
1388          *
1389          * returns a future to the operation so that it can be executed in parallel to other requests.
1390          */
1391         virtual Model::DescribeEventCategoriesOutcomeCallable DescribeEventCategoriesCallable(const Model::DescribeEventCategoriesRequest& request) const;
1392 
1393         /**
1394          * <p>Displays a list of categories for all event source types, or, if specified,
1395          * for a specified source type. </p><p><h3>See Also:</h3>   <a
1396          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeEventCategories">AWS
1397          * API Reference</a></p>
1398          *
1399          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1400          */
1401         virtual void DescribeEventCategoriesAsync(const Model::DescribeEventCategoriesRequest& request, const DescribeEventCategoriesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1402 
1403         /**
1404          * <p>Lists all the subscription descriptions for a customer account. The
1405          * description for a subscription includes <code>SubscriptionName</code>,
1406          * <code>SNSTopicARN</code>, <code>CustomerID</code>, <code>SourceType</code>,
1407          * <code>SourceID</code>, <code>CreationTime</code>, and <code>Status</code>.</p>
1408          * <p>If you specify a <code>SubscriptionName</code>, lists the description for
1409          * that subscription.</p><p><h3>See Also:</h3>   <a
1410          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeEventSubscriptions">AWS
1411          * API Reference</a></p>
1412          */
1413         virtual Model::DescribeEventSubscriptionsOutcome DescribeEventSubscriptions(const Model::DescribeEventSubscriptionsRequest& request) const;
1414 
1415         /**
1416          * <p>Lists all the subscription descriptions for a customer account. The
1417          * description for a subscription includes <code>SubscriptionName</code>,
1418          * <code>SNSTopicARN</code>, <code>CustomerID</code>, <code>SourceType</code>,
1419          * <code>SourceID</code>, <code>CreationTime</code>, and <code>Status</code>.</p>
1420          * <p>If you specify a <code>SubscriptionName</code>, lists the description for
1421          * that subscription.</p><p><h3>See Also:</h3>   <a
1422          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeEventSubscriptions">AWS
1423          * API Reference</a></p>
1424          *
1425          * returns a future to the operation so that it can be executed in parallel to other requests.
1426          */
1427         virtual Model::DescribeEventSubscriptionsOutcomeCallable DescribeEventSubscriptionsCallable(const Model::DescribeEventSubscriptionsRequest& request) const;
1428 
1429         /**
1430          * <p>Lists all the subscription descriptions for a customer account. The
1431          * description for a subscription includes <code>SubscriptionName</code>,
1432          * <code>SNSTopicARN</code>, <code>CustomerID</code>, <code>SourceType</code>,
1433          * <code>SourceID</code>, <code>CreationTime</code>, and <code>Status</code>.</p>
1434          * <p>If you specify a <code>SubscriptionName</code>, lists the description for
1435          * that subscription.</p><p><h3>See Also:</h3>   <a
1436          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeEventSubscriptions">AWS
1437          * API Reference</a></p>
1438          *
1439          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1440          */
1441         virtual void DescribeEventSubscriptionsAsync(const Model::DescribeEventSubscriptionsRequest& request, const DescribeEventSubscriptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1442 
1443         /**
1444          * <p>Returns events related to instances, security groups, snapshots, and DB
1445          * parameter groups for the past 14 days. You can obtain events specific to a
1446          * particular DB instance, security group, snapshot, or parameter group by
1447          * providing the name as a parameter. By default, the events of the past hour are
1448          * returned.</p><p><h3>See Also:</h3>   <a
1449          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeEvents">AWS
1450          * API Reference</a></p>
1451          */
1452         virtual Model::DescribeEventsOutcome DescribeEvents(const Model::DescribeEventsRequest& request) const;
1453 
1454         /**
1455          * <p>Returns events related to instances, security groups, snapshots, and DB
1456          * parameter groups for the past 14 days. You can obtain events specific to a
1457          * particular DB instance, security group, snapshot, or parameter group by
1458          * providing the name as a parameter. By default, the events of the past hour are
1459          * returned.</p><p><h3>See Also:</h3>   <a
1460          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeEvents">AWS
1461          * API Reference</a></p>
1462          *
1463          * returns a future to the operation so that it can be executed in parallel to other requests.
1464          */
1465         virtual Model::DescribeEventsOutcomeCallable DescribeEventsCallable(const Model::DescribeEventsRequest& request) const;
1466 
1467         /**
1468          * <p>Returns events related to instances, security groups, snapshots, and DB
1469          * parameter groups for the past 14 days. You can obtain events specific to a
1470          * particular DB instance, security group, snapshot, or parameter group by
1471          * providing the name as a parameter. By default, the events of the past hour are
1472          * returned.</p><p><h3>See Also:</h3>   <a
1473          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeEvents">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 DescribeEventsAsync(const Model::DescribeEventsRequest& request, const DescribeEventsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1479 
1480         /**
1481          * <p>Returns information about Amazon DocumentDB global clusters. This API
1482          * supports pagination.</p>  <p>This action only applies to Amazon DocumentDB
1483          * clusters.</p> <p><h3>See Also:</h3>   <a
1484          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeGlobalClusters">AWS
1485          * API Reference</a></p>
1486          */
1487         virtual Model::DescribeGlobalClustersOutcome DescribeGlobalClusters(const Model::DescribeGlobalClustersRequest& request) const;
1488 
1489         /**
1490          * <p>Returns information about Amazon DocumentDB global clusters. This API
1491          * supports pagination.</p>  <p>This action only applies to Amazon DocumentDB
1492          * clusters.</p> <p><h3>See Also:</h3>   <a
1493          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeGlobalClusters">AWS
1494          * API Reference</a></p>
1495          *
1496          * returns a future to the operation so that it can be executed in parallel to other requests.
1497          */
1498         virtual Model::DescribeGlobalClustersOutcomeCallable DescribeGlobalClustersCallable(const Model::DescribeGlobalClustersRequest& request) const;
1499 
1500         /**
1501          * <p>Returns information about Amazon DocumentDB global clusters. This API
1502          * supports pagination.</p>  <p>This action only applies to Amazon DocumentDB
1503          * clusters.</p> <p><h3>See Also:</h3>   <a
1504          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeGlobalClusters">AWS
1505          * API Reference</a></p>
1506          *
1507          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1508          */
1509         virtual void DescribeGlobalClustersAsync(const Model::DescribeGlobalClustersRequest& request, const DescribeGlobalClustersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1510 
1511         /**
1512          * <p>Returns a list of orderable instance options for the specified
1513          * engine.</p><p><h3>See Also:</h3>   <a
1514          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeOrderableDBInstanceOptions">AWS
1515          * API Reference</a></p>
1516          */
1517         virtual Model::DescribeOrderableDBInstanceOptionsOutcome DescribeOrderableDBInstanceOptions(const Model::DescribeOrderableDBInstanceOptionsRequest& request) const;
1518 
1519         /**
1520          * <p>Returns a list of orderable instance options for the specified
1521          * engine.</p><p><h3>See Also:</h3>   <a
1522          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeOrderableDBInstanceOptions">AWS
1523          * API Reference</a></p>
1524          *
1525          * returns a future to the operation so that it can be executed in parallel to other requests.
1526          */
1527         virtual Model::DescribeOrderableDBInstanceOptionsOutcomeCallable DescribeOrderableDBInstanceOptionsCallable(const Model::DescribeOrderableDBInstanceOptionsRequest& request) const;
1528 
1529         /**
1530          * <p>Returns a list of orderable instance options for the specified
1531          * engine.</p><p><h3>See Also:</h3>   <a
1532          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribeOrderableDBInstanceOptions">AWS
1533          * API Reference</a></p>
1534          *
1535          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1536          */
1537         virtual void DescribeOrderableDBInstanceOptionsAsync(const Model::DescribeOrderableDBInstanceOptionsRequest& request, const DescribeOrderableDBInstanceOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1538 
1539         /**
1540          * <p>Returns a list of resources (for example, instances) that have at least one
1541          * pending maintenance action.</p><p><h3>See Also:</h3>   <a
1542          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribePendingMaintenanceActions">AWS
1543          * API Reference</a></p>
1544          */
1545         virtual Model::DescribePendingMaintenanceActionsOutcome DescribePendingMaintenanceActions(const Model::DescribePendingMaintenanceActionsRequest& request) const;
1546 
1547         /**
1548          * <p>Returns a list of resources (for example, instances) that have at least one
1549          * pending maintenance action.</p><p><h3>See Also:</h3>   <a
1550          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribePendingMaintenanceActions">AWS
1551          * API Reference</a></p>
1552          *
1553          * returns a future to the operation so that it can be executed in parallel to other requests.
1554          */
1555         virtual Model::DescribePendingMaintenanceActionsOutcomeCallable DescribePendingMaintenanceActionsCallable(const Model::DescribePendingMaintenanceActionsRequest& request) const;
1556 
1557         /**
1558          * <p>Returns a list of resources (for example, instances) that have at least one
1559          * pending maintenance action.</p><p><h3>See Also:</h3>   <a
1560          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/DescribePendingMaintenanceActions">AWS
1561          * API Reference</a></p>
1562          *
1563          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1564          */
1565         virtual void DescribePendingMaintenanceActionsAsync(const Model::DescribePendingMaintenanceActionsRequest& request, const DescribePendingMaintenanceActionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1566 
1567         /**
1568          * <p>Forces a failover for a cluster.</p> <p>A failover for a cluster promotes one
1569          * of the Amazon DocumentDB replicas (read-only instances) in the cluster to be the
1570          * primary instance (the cluster writer).</p> <p>If the primary instance fails,
1571          * Amazon DocumentDB automatically fails over to an Amazon DocumentDB replica, if
1572          * one exists. You can force a failover when you want to simulate a failure of a
1573          * primary instance for testing.</p><p><h3>See Also:</h3>   <a
1574          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/FailoverDBCluster">AWS
1575          * API Reference</a></p>
1576          */
1577         virtual Model::FailoverDBClusterOutcome FailoverDBCluster(const Model::FailoverDBClusterRequest& request) const;
1578 
1579         /**
1580          * <p>Forces a failover for a cluster.</p> <p>A failover for a cluster promotes one
1581          * of the Amazon DocumentDB replicas (read-only instances) in the cluster to be the
1582          * primary instance (the cluster writer).</p> <p>If the primary instance fails,
1583          * Amazon DocumentDB automatically fails over to an Amazon DocumentDB replica, if
1584          * one exists. You can force a failover when you want to simulate a failure of a
1585          * primary instance for testing.</p><p><h3>See Also:</h3>   <a
1586          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/FailoverDBCluster">AWS
1587          * API Reference</a></p>
1588          *
1589          * returns a future to the operation so that it can be executed in parallel to other requests.
1590          */
1591         virtual Model::FailoverDBClusterOutcomeCallable FailoverDBClusterCallable(const Model::FailoverDBClusterRequest& request) const;
1592 
1593         /**
1594          * <p>Forces a failover for a cluster.</p> <p>A failover for a cluster promotes one
1595          * of the Amazon DocumentDB replicas (read-only instances) in the cluster to be the
1596          * primary instance (the cluster writer).</p> <p>If the primary instance fails,
1597          * Amazon DocumentDB automatically fails over to an Amazon DocumentDB replica, if
1598          * one exists. You can force a failover when you want to simulate a failure of a
1599          * primary instance for testing.</p><p><h3>See Also:</h3>   <a
1600          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/FailoverDBCluster">AWS
1601          * API Reference</a></p>
1602          *
1603          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1604          */
1605         virtual void FailoverDBClusterAsync(const Model::FailoverDBClusterRequest& request, const FailoverDBClusterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1606 
1607         /**
1608          * <p>Lists all tags on an Amazon DocumentDB resource.</p><p><h3>See Also:</h3>
1609          * <a
1610          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ListTagsForResource">AWS
1611          * API Reference</a></p>
1612          */
1613         virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const;
1614 
1615         /**
1616          * <p>Lists all tags on an Amazon DocumentDB resource.</p><p><h3>See Also:</h3>
1617          * <a
1618          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ListTagsForResource">AWS
1619          * API Reference</a></p>
1620          *
1621          * returns a future to the operation so that it can be executed in parallel to other requests.
1622          */
1623         virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const;
1624 
1625         /**
1626          * <p>Lists all tags on an Amazon DocumentDB resource.</p><p><h3>See Also:</h3>
1627          * <a
1628          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ListTagsForResource">AWS
1629          * API Reference</a></p>
1630          *
1631          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1632          */
1633         virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1634 
1635         /**
1636          * <p>Modifies a setting for an Amazon DocumentDB cluster. You can change one or
1637          * more database configuration parameters by specifying these parameters and the
1638          * new values in the request. </p><p><h3>See Also:</h3>   <a
1639          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyDBCluster">AWS
1640          * API Reference</a></p>
1641          */
1642         virtual Model::ModifyDBClusterOutcome ModifyDBCluster(const Model::ModifyDBClusterRequest& request) const;
1643 
1644         /**
1645          * <p>Modifies a setting for an Amazon DocumentDB cluster. You can change one or
1646          * more database configuration parameters by specifying these parameters and the
1647          * new values in the request. </p><p><h3>See Also:</h3>   <a
1648          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyDBCluster">AWS
1649          * API Reference</a></p>
1650          *
1651          * returns a future to the operation so that it can be executed in parallel to other requests.
1652          */
1653         virtual Model::ModifyDBClusterOutcomeCallable ModifyDBClusterCallable(const Model::ModifyDBClusterRequest& request) const;
1654 
1655         /**
1656          * <p>Modifies a setting for an Amazon DocumentDB cluster. You can change one or
1657          * more database configuration parameters by specifying these parameters and the
1658          * new values in the request. </p><p><h3>See Also:</h3>   <a
1659          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyDBCluster">AWS
1660          * API Reference</a></p>
1661          *
1662          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1663          */
1664         virtual void ModifyDBClusterAsync(const Model::ModifyDBClusterRequest& request, const ModifyDBClusterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1665 
1666         /**
1667          * <p> Modifies the parameters of a cluster parameter group. To modify more than
1668          * one parameter, submit a list of the following: <code>ParameterName</code>,
1669          * <code>ParameterValue</code>, and <code>ApplyMethod</code>. A maximum of 20
1670          * parameters can be modified in a single request. </p>  <p>Changes to
1671          * dynamic parameters are applied immediately. Changes to static parameters require
1672          * a reboot or maintenance window before the change can take effect.</p>
1673          *  <p>After you create a cluster parameter group, you should wait at
1674          * least 5 minutes before creating your first cluster that uses that cluster
1675          * parameter group as the default parameter group. This allows Amazon DocumentDB to
1676          * fully complete the create action before the parameter group is used as the
1677          * default for a new cluster. This step is especially important for parameters that
1678          * are critical when creating the default database for a cluster, such as the
1679          * character set for the default database defined by the
1680          * <code>character_set_database</code> parameter.</p> <p><h3>See
1681          * Also:</h3>   <a
1682          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyDBClusterParameterGroup">AWS
1683          * API Reference</a></p>
1684          */
1685         virtual Model::ModifyDBClusterParameterGroupOutcome ModifyDBClusterParameterGroup(const Model::ModifyDBClusterParameterGroupRequest& request) const;
1686 
1687         /**
1688          * <p> Modifies the parameters of a cluster parameter group. To modify more than
1689          * one parameter, submit a list of the following: <code>ParameterName</code>,
1690          * <code>ParameterValue</code>, and <code>ApplyMethod</code>. A maximum of 20
1691          * parameters can be modified in a single request. </p>  <p>Changes to
1692          * dynamic parameters are applied immediately. Changes to static parameters require
1693          * a reboot or maintenance window before the change can take effect.</p>
1694          *  <p>After you create a cluster parameter group, you should wait at
1695          * least 5 minutes before creating your first cluster that uses that cluster
1696          * parameter group as the default parameter group. This allows Amazon DocumentDB to
1697          * fully complete the create action before the parameter group is used as the
1698          * default for a new cluster. This step is especially important for parameters that
1699          * are critical when creating the default database for a cluster, such as the
1700          * character set for the default database defined by the
1701          * <code>character_set_database</code> parameter.</p> <p><h3>See
1702          * Also:</h3>   <a
1703          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyDBClusterParameterGroup">AWS
1704          * API Reference</a></p>
1705          *
1706          * returns a future to the operation so that it can be executed in parallel to other requests.
1707          */
1708         virtual Model::ModifyDBClusterParameterGroupOutcomeCallable ModifyDBClusterParameterGroupCallable(const Model::ModifyDBClusterParameterGroupRequest& request) const;
1709 
1710         /**
1711          * <p> Modifies the parameters of a cluster parameter group. To modify more than
1712          * one parameter, submit a list of the following: <code>ParameterName</code>,
1713          * <code>ParameterValue</code>, and <code>ApplyMethod</code>. A maximum of 20
1714          * parameters can be modified in a single request. </p>  <p>Changes to
1715          * dynamic parameters are applied immediately. Changes to static parameters require
1716          * a reboot or maintenance window before the change can take effect.</p>
1717          *  <p>After you create a cluster parameter group, you should wait at
1718          * least 5 minutes before creating your first cluster that uses that cluster
1719          * parameter group as the default parameter group. This allows Amazon DocumentDB to
1720          * fully complete the create action before the parameter group is used as the
1721          * default for a new cluster. This step is especially important for parameters that
1722          * are critical when creating the default database for a cluster, such as the
1723          * character set for the default database defined by the
1724          * <code>character_set_database</code> parameter.</p> <p><h3>See
1725          * Also:</h3>   <a
1726          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyDBClusterParameterGroup">AWS
1727          * API Reference</a></p>
1728          *
1729          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1730          */
1731         virtual void ModifyDBClusterParameterGroupAsync(const Model::ModifyDBClusterParameterGroupRequest& request, const ModifyDBClusterParameterGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1732 
1733         /**
1734          * <p>Adds an attribute and values to, or removes an attribute and values from, a
1735          * manual cluster snapshot.</p> <p>To share a manual cluster snapshot with other
1736          * accounts, specify <code>restore</code> as the <code>AttributeName</code>, and
1737          * use the <code>ValuesToAdd</code> parameter to add a list of IDs of the accounts
1738          * that are authorized to restore the manual cluster snapshot. Use the value
1739          * <code>all</code> to make the manual cluster snapshot public, which means that it
1740          * can be copied or restored by all accounts. Do not add the <code>all</code> value
1741          * for any manual cluster snapshots that contain private information that you don't
1742          * want available to all accounts. If a manual cluster snapshot is encrypted, it
1743          * can be shared, but only by specifying a list of authorized account IDs for the
1744          * <code>ValuesToAdd</code> parameter. You can't use <code>all</code> as a value
1745          * for that parameter in this case.</p><p><h3>See Also:</h3>   <a
1746          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyDBClusterSnapshotAttribute">AWS
1747          * API Reference</a></p>
1748          */
1749         virtual Model::ModifyDBClusterSnapshotAttributeOutcome ModifyDBClusterSnapshotAttribute(const Model::ModifyDBClusterSnapshotAttributeRequest& request) const;
1750 
1751         /**
1752          * <p>Adds an attribute and values to, or removes an attribute and values from, a
1753          * manual cluster snapshot.</p> <p>To share a manual cluster snapshot with other
1754          * accounts, specify <code>restore</code> as the <code>AttributeName</code>, and
1755          * use the <code>ValuesToAdd</code> parameter to add a list of IDs of the accounts
1756          * that are authorized to restore the manual cluster snapshot. Use the value
1757          * <code>all</code> to make the manual cluster snapshot public, which means that it
1758          * can be copied or restored by all accounts. Do not add the <code>all</code> value
1759          * for any manual cluster snapshots that contain private information that you don't
1760          * want available to all accounts. If a manual cluster snapshot is encrypted, it
1761          * can be shared, but only by specifying a list of authorized account IDs for the
1762          * <code>ValuesToAdd</code> parameter. You can't use <code>all</code> as a value
1763          * for that parameter in this case.</p><p><h3>See Also:</h3>   <a
1764          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyDBClusterSnapshotAttribute">AWS
1765          * API Reference</a></p>
1766          *
1767          * returns a future to the operation so that it can be executed in parallel to other requests.
1768          */
1769         virtual Model::ModifyDBClusterSnapshotAttributeOutcomeCallable ModifyDBClusterSnapshotAttributeCallable(const Model::ModifyDBClusterSnapshotAttributeRequest& request) const;
1770 
1771         /**
1772          * <p>Adds an attribute and values to, or removes an attribute and values from, a
1773          * manual cluster snapshot.</p> <p>To share a manual cluster snapshot with other
1774          * accounts, specify <code>restore</code> as the <code>AttributeName</code>, and
1775          * use the <code>ValuesToAdd</code> parameter to add a list of IDs of the accounts
1776          * that are authorized to restore the manual cluster snapshot. Use the value
1777          * <code>all</code> to make the manual cluster snapshot public, which means that it
1778          * can be copied or restored by all accounts. Do not add the <code>all</code> value
1779          * for any manual cluster snapshots that contain private information that you don't
1780          * want available to all accounts. If a manual cluster snapshot is encrypted, it
1781          * can be shared, but only by specifying a list of authorized account IDs for the
1782          * <code>ValuesToAdd</code> parameter. You can't use <code>all</code> as a value
1783          * for that parameter in this case.</p><p><h3>See Also:</h3>   <a
1784          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyDBClusterSnapshotAttribute">AWS
1785          * API Reference</a></p>
1786          *
1787          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1788          */
1789         virtual void ModifyDBClusterSnapshotAttributeAsync(const Model::ModifyDBClusterSnapshotAttributeRequest& request, const ModifyDBClusterSnapshotAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1790 
1791         /**
1792          * <p>Modifies settings for an instance. You can change one or more database
1793          * configuration parameters by specifying these parameters and the new values in
1794          * the request.</p><p><h3>See Also:</h3>   <a
1795          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyDBInstance">AWS
1796          * API Reference</a></p>
1797          */
1798         virtual Model::ModifyDBInstanceOutcome ModifyDBInstance(const Model::ModifyDBInstanceRequest& request) const;
1799 
1800         /**
1801          * <p>Modifies settings for an instance. You can change one or more database
1802          * configuration parameters by specifying these parameters and the new values in
1803          * the request.</p><p><h3>See Also:</h3>   <a
1804          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyDBInstance">AWS
1805          * API Reference</a></p>
1806          *
1807          * returns a future to the operation so that it can be executed in parallel to other requests.
1808          */
1809         virtual Model::ModifyDBInstanceOutcomeCallable ModifyDBInstanceCallable(const Model::ModifyDBInstanceRequest& request) const;
1810 
1811         /**
1812          * <p>Modifies settings for an instance. You can change one or more database
1813          * configuration parameters by specifying these parameters and the new values in
1814          * the request.</p><p><h3>See Also:</h3>   <a
1815          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyDBInstance">AWS
1816          * API Reference</a></p>
1817          *
1818          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1819          */
1820         virtual void ModifyDBInstanceAsync(const Model::ModifyDBInstanceRequest& request, const ModifyDBInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1821 
1822         /**
1823          * <p>Modifies an existing subnet group. subnet groups must contain at least one
1824          * subnet in at least two Availability Zones in the Region.</p><p><h3>See
1825          * Also:</h3>   <a
1826          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyDBSubnetGroup">AWS
1827          * API Reference</a></p>
1828          */
1829         virtual Model::ModifyDBSubnetGroupOutcome ModifyDBSubnetGroup(const Model::ModifyDBSubnetGroupRequest& request) const;
1830 
1831         /**
1832          * <p>Modifies an existing subnet group. subnet groups must contain at least one
1833          * subnet in at least two Availability Zones in the Region.</p><p><h3>See
1834          * Also:</h3>   <a
1835          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyDBSubnetGroup">AWS
1836          * API Reference</a></p>
1837          *
1838          * returns a future to the operation so that it can be executed in parallel to other requests.
1839          */
1840         virtual Model::ModifyDBSubnetGroupOutcomeCallable ModifyDBSubnetGroupCallable(const Model::ModifyDBSubnetGroupRequest& request) const;
1841 
1842         /**
1843          * <p>Modifies an existing subnet group. subnet groups must contain at least one
1844          * subnet in at least two Availability Zones in the Region.</p><p><h3>See
1845          * Also:</h3>   <a
1846          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyDBSubnetGroup">AWS
1847          * API Reference</a></p>
1848          *
1849          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1850          */
1851         virtual void ModifyDBSubnetGroupAsync(const Model::ModifyDBSubnetGroupRequest& request, const ModifyDBSubnetGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1852 
1853         /**
1854          * <p>Modifies an existing Amazon DocumentDB event notification
1855          * subscription.</p><p><h3>See Also:</h3>   <a
1856          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyEventSubscription">AWS
1857          * API Reference</a></p>
1858          */
1859         virtual Model::ModifyEventSubscriptionOutcome ModifyEventSubscription(const Model::ModifyEventSubscriptionRequest& request) const;
1860 
1861         /**
1862          * <p>Modifies an existing Amazon DocumentDB event notification
1863          * subscription.</p><p><h3>See Also:</h3>   <a
1864          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyEventSubscription">AWS
1865          * API Reference</a></p>
1866          *
1867          * returns a future to the operation so that it can be executed in parallel to other requests.
1868          */
1869         virtual Model::ModifyEventSubscriptionOutcomeCallable ModifyEventSubscriptionCallable(const Model::ModifyEventSubscriptionRequest& request) const;
1870 
1871         /**
1872          * <p>Modifies an existing Amazon DocumentDB event notification
1873          * subscription.</p><p><h3>See Also:</h3>   <a
1874          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyEventSubscription">AWS
1875          * API Reference</a></p>
1876          *
1877          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1878          */
1879         virtual void ModifyEventSubscriptionAsync(const Model::ModifyEventSubscriptionRequest& request, const ModifyEventSubscriptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1880 
1881         /**
1882          * <p>Modify a setting for an Amazon DocumentDB global cluster. You can change one
1883          * or more configuration parameters (for example: deletion protection), or the
1884          * global cluster identifier by specifying these parameters and the new values in
1885          * the request.</p>  <p>This action only applies to Amazon DocumentDB
1886          * clusters.</p> <p><h3>See Also:</h3>   <a
1887          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyGlobalCluster">AWS
1888          * API Reference</a></p>
1889          */
1890         virtual Model::ModifyGlobalClusterOutcome ModifyGlobalCluster(const Model::ModifyGlobalClusterRequest& request) const;
1891 
1892         /**
1893          * <p>Modify a setting for an Amazon DocumentDB global cluster. You can change one
1894          * or more configuration parameters (for example: deletion protection), or the
1895          * global cluster identifier by specifying these parameters and the new values in
1896          * the request.</p>  <p>This action only applies to Amazon DocumentDB
1897          * clusters.</p> <p><h3>See Also:</h3>   <a
1898          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyGlobalCluster">AWS
1899          * API Reference</a></p>
1900          *
1901          * returns a future to the operation so that it can be executed in parallel to other requests.
1902          */
1903         virtual Model::ModifyGlobalClusterOutcomeCallable ModifyGlobalClusterCallable(const Model::ModifyGlobalClusterRequest& request) const;
1904 
1905         /**
1906          * <p>Modify a setting for an Amazon DocumentDB global cluster. You can change one
1907          * or more configuration parameters (for example: deletion protection), or the
1908          * global cluster identifier by specifying these parameters and the new values in
1909          * the request.</p>  <p>This action only applies to Amazon DocumentDB
1910          * clusters.</p> <p><h3>See Also:</h3>   <a
1911          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ModifyGlobalCluster">AWS
1912          * API Reference</a></p>
1913          *
1914          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1915          */
1916         virtual void ModifyGlobalClusterAsync(const Model::ModifyGlobalClusterRequest& request, const ModifyGlobalClusterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1917 
1918         /**
1919          * <p>You might need to reboot your instance, usually for maintenance reasons. For
1920          * example, if you make certain changes, or if you change the cluster parameter
1921          * group that is associated with the instance, you must reboot the instance for the
1922          * changes to take effect. </p> <p>Rebooting an instance restarts the database
1923          * engine service. Rebooting an instance results in a momentary outage, during
1924          * which the instance status is set to <i>rebooting</i>. </p><p><h3>See Also:</h3>
1925          * <a
1926          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RebootDBInstance">AWS
1927          * API Reference</a></p>
1928          */
1929         virtual Model::RebootDBInstanceOutcome RebootDBInstance(const Model::RebootDBInstanceRequest& request) const;
1930 
1931         /**
1932          * <p>You might need to reboot your instance, usually for maintenance reasons. For
1933          * example, if you make certain changes, or if you change the cluster parameter
1934          * group that is associated with the instance, you must reboot the instance for the
1935          * changes to take effect. </p> <p>Rebooting an instance restarts the database
1936          * engine service. Rebooting an instance results in a momentary outage, during
1937          * which the instance status is set to <i>rebooting</i>. </p><p><h3>See Also:</h3>
1938          * <a
1939          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RebootDBInstance">AWS
1940          * API Reference</a></p>
1941          *
1942          * returns a future to the operation so that it can be executed in parallel to other requests.
1943          */
1944         virtual Model::RebootDBInstanceOutcomeCallable RebootDBInstanceCallable(const Model::RebootDBInstanceRequest& request) const;
1945 
1946         /**
1947          * <p>You might need to reboot your instance, usually for maintenance reasons. For
1948          * example, if you make certain changes, or if you change the cluster parameter
1949          * group that is associated with the instance, you must reboot the instance for the
1950          * changes to take effect. </p> <p>Rebooting an instance restarts the database
1951          * engine service. Rebooting an instance results in a momentary outage, during
1952          * which the instance status is set to <i>rebooting</i>. </p><p><h3>See Also:</h3>
1953          * <a
1954          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RebootDBInstance">AWS
1955          * API Reference</a></p>
1956          *
1957          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1958          */
1959         virtual void RebootDBInstanceAsync(const Model::RebootDBInstanceRequest& request, const RebootDBInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1960 
1961         /**
1962          * <p>Detaches an Amazon DocumentDB secondary cluster from a global cluster. The
1963          * cluster becomes a standalone cluster with read-write capability instead of being
1964          * read-only and receiving data from a primary in a different region. </p>
1965          * <p>This action only applies to Amazon DocumentDB clusters.</p> <p><h3>See
1966          * Also:</h3>   <a
1967          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RemoveFromGlobalCluster">AWS
1968          * API Reference</a></p>
1969          */
1970         virtual Model::RemoveFromGlobalClusterOutcome RemoveFromGlobalCluster(const Model::RemoveFromGlobalClusterRequest& request) const;
1971 
1972         /**
1973          * <p>Detaches an Amazon DocumentDB secondary cluster from a global cluster. The
1974          * cluster becomes a standalone cluster with read-write capability instead of being
1975          * read-only and receiving data from a primary in a different region. </p>
1976          * <p>This action only applies to Amazon DocumentDB clusters.</p> <p><h3>See
1977          * Also:</h3>   <a
1978          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RemoveFromGlobalCluster">AWS
1979          * API Reference</a></p>
1980          *
1981          * returns a future to the operation so that it can be executed in parallel to other requests.
1982          */
1983         virtual Model::RemoveFromGlobalClusterOutcomeCallable RemoveFromGlobalClusterCallable(const Model::RemoveFromGlobalClusterRequest& request) const;
1984 
1985         /**
1986          * <p>Detaches an Amazon DocumentDB secondary cluster from a global cluster. The
1987          * cluster becomes a standalone cluster with read-write capability instead of being
1988          * read-only and receiving data from a primary in a different region. </p>
1989          * <p>This action only applies to Amazon DocumentDB clusters.</p> <p><h3>See
1990          * Also:</h3>   <a
1991          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RemoveFromGlobalCluster">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 RemoveFromGlobalClusterAsync(const Model::RemoveFromGlobalClusterRequest& request, const RemoveFromGlobalClusterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1997 
1998         /**
1999          * <p>Removes a source identifier from an existing Amazon DocumentDB event
2000          * notification subscription.</p><p><h3>See Also:</h3>   <a
2001          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RemoveSourceIdentifierFromSubscription">AWS
2002          * API Reference</a></p>
2003          */
2004         virtual Model::RemoveSourceIdentifierFromSubscriptionOutcome RemoveSourceIdentifierFromSubscription(const Model::RemoveSourceIdentifierFromSubscriptionRequest& request) const;
2005 
2006         /**
2007          * <p>Removes a source identifier from an existing Amazon DocumentDB event
2008          * notification subscription.</p><p><h3>See Also:</h3>   <a
2009          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RemoveSourceIdentifierFromSubscription">AWS
2010          * API Reference</a></p>
2011          *
2012          * returns a future to the operation so that it can be executed in parallel to other requests.
2013          */
2014         virtual Model::RemoveSourceIdentifierFromSubscriptionOutcomeCallable RemoveSourceIdentifierFromSubscriptionCallable(const Model::RemoveSourceIdentifierFromSubscriptionRequest& request) const;
2015 
2016         /**
2017          * <p>Removes a source identifier from an existing Amazon DocumentDB event
2018          * notification subscription.</p><p><h3>See Also:</h3>   <a
2019          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RemoveSourceIdentifierFromSubscription">AWS
2020          * API Reference</a></p>
2021          *
2022          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2023          */
2024         virtual void RemoveSourceIdentifierFromSubscriptionAsync(const Model::RemoveSourceIdentifierFromSubscriptionRequest& request, const RemoveSourceIdentifierFromSubscriptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2025 
2026         /**
2027          * <p>Removes metadata tags from an Amazon DocumentDB resource.</p><p><h3>See
2028          * Also:</h3>   <a
2029          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RemoveTagsFromResource">AWS
2030          * API Reference</a></p>
2031          */
2032         virtual Model::RemoveTagsFromResourceOutcome RemoveTagsFromResource(const Model::RemoveTagsFromResourceRequest& request) const;
2033 
2034         /**
2035          * <p>Removes metadata tags from an Amazon DocumentDB resource.</p><p><h3>See
2036          * Also:</h3>   <a
2037          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RemoveTagsFromResource">AWS
2038          * API Reference</a></p>
2039          *
2040          * returns a future to the operation so that it can be executed in parallel to other requests.
2041          */
2042         virtual Model::RemoveTagsFromResourceOutcomeCallable RemoveTagsFromResourceCallable(const Model::RemoveTagsFromResourceRequest& request) const;
2043 
2044         /**
2045          * <p>Removes metadata tags from an Amazon DocumentDB resource.</p><p><h3>See
2046          * Also:</h3>   <a
2047          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RemoveTagsFromResource">AWS
2048          * API Reference</a></p>
2049          *
2050          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2051          */
2052         virtual void RemoveTagsFromResourceAsync(const Model::RemoveTagsFromResourceRequest& request, const RemoveTagsFromResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2053 
2054         /**
2055          * <p> Modifies the parameters of a cluster parameter group to the default value.
2056          * To reset specific parameters, submit a list of the following:
2057          * <code>ParameterName</code> and <code>ApplyMethod</code>. To reset the entire
2058          * cluster parameter group, specify the <code>DBClusterParameterGroupName</code>
2059          * and <code>ResetAllParameters</code> parameters. </p> <p> When you reset the
2060          * entire group, dynamic parameters are updated immediately and static parameters
2061          * are set to <code>pending-reboot</code> to take effect on the next DB instance
2062          * reboot.</p><p><h3>See Also:</h3>   <a
2063          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ResetDBClusterParameterGroup">AWS
2064          * API Reference</a></p>
2065          */
2066         virtual Model::ResetDBClusterParameterGroupOutcome ResetDBClusterParameterGroup(const Model::ResetDBClusterParameterGroupRequest& request) const;
2067 
2068         /**
2069          * <p> Modifies the parameters of a cluster parameter group to the default value.
2070          * To reset specific parameters, submit a list of the following:
2071          * <code>ParameterName</code> and <code>ApplyMethod</code>. To reset the entire
2072          * cluster parameter group, specify the <code>DBClusterParameterGroupName</code>
2073          * and <code>ResetAllParameters</code> parameters. </p> <p> When you reset the
2074          * entire group, dynamic parameters are updated immediately and static parameters
2075          * are set to <code>pending-reboot</code> to take effect on the next DB instance
2076          * reboot.</p><p><h3>See Also:</h3>   <a
2077          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ResetDBClusterParameterGroup">AWS
2078          * API Reference</a></p>
2079          *
2080          * returns a future to the operation so that it can be executed in parallel to other requests.
2081          */
2082         virtual Model::ResetDBClusterParameterGroupOutcomeCallable ResetDBClusterParameterGroupCallable(const Model::ResetDBClusterParameterGroupRequest& request) const;
2083 
2084         /**
2085          * <p> Modifies the parameters of a cluster parameter group to the default value.
2086          * To reset specific parameters, submit a list of the following:
2087          * <code>ParameterName</code> and <code>ApplyMethod</code>. To reset the entire
2088          * cluster parameter group, specify the <code>DBClusterParameterGroupName</code>
2089          * and <code>ResetAllParameters</code> parameters. </p> <p> When you reset the
2090          * entire group, dynamic parameters are updated immediately and static parameters
2091          * are set to <code>pending-reboot</code> to take effect on the next DB instance
2092          * reboot.</p><p><h3>See Also:</h3>   <a
2093          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/ResetDBClusterParameterGroup">AWS
2094          * API Reference</a></p>
2095          *
2096          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2097          */
2098         virtual void ResetDBClusterParameterGroupAsync(const Model::ResetDBClusterParameterGroupRequest& request, const ResetDBClusterParameterGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2099 
2100         /**
2101          * <p>Creates a new cluster from a snapshot or cluster snapshot.</p> <p>If a
2102          * snapshot is specified, the target cluster is created from the source DB snapshot
2103          * with a default configuration and default security group.</p> <p>If a cluster
2104          * snapshot is specified, the target cluster is created from the source cluster
2105          * restore point with the same configuration as the original source DB cluster,
2106          * except that the new cluster is created with the default security
2107          * group.</p><p><h3>See Also:</h3>   <a
2108          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RestoreDBClusterFromSnapshot">AWS
2109          * API Reference</a></p>
2110          */
2111         virtual Model::RestoreDBClusterFromSnapshotOutcome RestoreDBClusterFromSnapshot(const Model::RestoreDBClusterFromSnapshotRequest& request) const;
2112 
2113         /**
2114          * <p>Creates a new cluster from a snapshot or cluster snapshot.</p> <p>If a
2115          * snapshot is specified, the target cluster is created from the source DB snapshot
2116          * with a default configuration and default security group.</p> <p>If a cluster
2117          * snapshot is specified, the target cluster is created from the source cluster
2118          * restore point with the same configuration as the original source DB cluster,
2119          * except that the new cluster is created with the default security
2120          * group.</p><p><h3>See Also:</h3>   <a
2121          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RestoreDBClusterFromSnapshot">AWS
2122          * API Reference</a></p>
2123          *
2124          * returns a future to the operation so that it can be executed in parallel to other requests.
2125          */
2126         virtual Model::RestoreDBClusterFromSnapshotOutcomeCallable RestoreDBClusterFromSnapshotCallable(const Model::RestoreDBClusterFromSnapshotRequest& request) const;
2127 
2128         /**
2129          * <p>Creates a new cluster from a snapshot or cluster snapshot.</p> <p>If a
2130          * snapshot is specified, the target cluster is created from the source DB snapshot
2131          * with a default configuration and default security group.</p> <p>If a cluster
2132          * snapshot is specified, the target cluster is created from the source cluster
2133          * restore point with the same configuration as the original source DB cluster,
2134          * except that the new cluster is created with the default security
2135          * group.</p><p><h3>See Also:</h3>   <a
2136          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RestoreDBClusterFromSnapshot">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 RestoreDBClusterFromSnapshotAsync(const Model::RestoreDBClusterFromSnapshotRequest& request, const RestoreDBClusterFromSnapshotResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2142 
2143         /**
2144          * <p>Restores a cluster to an arbitrary point in time. Users can restore to any
2145          * point in time before <code>LatestRestorableTime</code> for up to
2146          * <code>BackupRetentionPeriod</code> days. The target cluster is created from the
2147          * source cluster with the same configuration as the original cluster, except that
2148          * the new cluster is created with the default security group. </p><p><h3>See
2149          * Also:</h3>   <a
2150          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RestoreDBClusterToPointInTime">AWS
2151          * API Reference</a></p>
2152          */
2153         virtual Model::RestoreDBClusterToPointInTimeOutcome RestoreDBClusterToPointInTime(const Model::RestoreDBClusterToPointInTimeRequest& request) const;
2154 
2155         /**
2156          * <p>Restores a cluster to an arbitrary point in time. Users can restore to any
2157          * point in time before <code>LatestRestorableTime</code> for up to
2158          * <code>BackupRetentionPeriod</code> days. The target cluster is created from the
2159          * source cluster with the same configuration as the original cluster, except that
2160          * the new cluster is created with the default security group. </p><p><h3>See
2161          * Also:</h3>   <a
2162          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RestoreDBClusterToPointInTime">AWS
2163          * API Reference</a></p>
2164          *
2165          * returns a future to the operation so that it can be executed in parallel to other requests.
2166          */
2167         virtual Model::RestoreDBClusterToPointInTimeOutcomeCallable RestoreDBClusterToPointInTimeCallable(const Model::RestoreDBClusterToPointInTimeRequest& request) const;
2168 
2169         /**
2170          * <p>Restores a cluster to an arbitrary point in time. Users can restore to any
2171          * point in time before <code>LatestRestorableTime</code> for up to
2172          * <code>BackupRetentionPeriod</code> days. The target cluster is created from the
2173          * source cluster with the same configuration as the original cluster, except that
2174          * the new cluster is created with the default security group. </p><p><h3>See
2175          * Also:</h3>   <a
2176          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/RestoreDBClusterToPointInTime">AWS
2177          * API Reference</a></p>
2178          *
2179          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2180          */
2181         virtual void RestoreDBClusterToPointInTimeAsync(const Model::RestoreDBClusterToPointInTimeRequest& request, const RestoreDBClusterToPointInTimeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2182 
2183         /**
2184          * <p>Restarts the stopped cluster that is specified by
2185          * <code>DBClusterIdentifier</code>. For more information, see <a
2186          * href="https://docs.aws.amazon.com/documentdb/latest/developerguide/db-cluster-stop-start.html">Stopping
2187          * and Starting an Amazon DocumentDB Cluster</a>.</p><p><h3>See Also:</h3>   <a
2188          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/StartDBCluster">AWS
2189          * API Reference</a></p>
2190          */
2191         virtual Model::StartDBClusterOutcome StartDBCluster(const Model::StartDBClusterRequest& request) const;
2192 
2193         /**
2194          * <p>Restarts the stopped cluster that is specified by
2195          * <code>DBClusterIdentifier</code>. For more information, see <a
2196          * href="https://docs.aws.amazon.com/documentdb/latest/developerguide/db-cluster-stop-start.html">Stopping
2197          * and Starting an Amazon DocumentDB Cluster</a>.</p><p><h3>See Also:</h3>   <a
2198          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/StartDBCluster">AWS
2199          * API Reference</a></p>
2200          *
2201          * returns a future to the operation so that it can be executed in parallel to other requests.
2202          */
2203         virtual Model::StartDBClusterOutcomeCallable StartDBClusterCallable(const Model::StartDBClusterRequest& request) const;
2204 
2205         /**
2206          * <p>Restarts the stopped cluster that is specified by
2207          * <code>DBClusterIdentifier</code>. For more information, see <a
2208          * href="https://docs.aws.amazon.com/documentdb/latest/developerguide/db-cluster-stop-start.html">Stopping
2209          * and Starting an Amazon DocumentDB Cluster</a>.</p><p><h3>See Also:</h3>   <a
2210          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/StartDBCluster">AWS
2211          * API Reference</a></p>
2212          *
2213          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2214          */
2215         virtual void StartDBClusterAsync(const Model::StartDBClusterRequest& request, const StartDBClusterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2216 
2217         /**
2218          * <p>Stops the running cluster that is specified by
2219          * <code>DBClusterIdentifier</code>. The cluster must be in the <i>available</i>
2220          * state. For more information, see <a
2221          * href="https://docs.aws.amazon.com/documentdb/latest/developerguide/db-cluster-stop-start.html">Stopping
2222          * and Starting an Amazon DocumentDB Cluster</a>.</p><p><h3>See Also:</h3>   <a
2223          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/StopDBCluster">AWS
2224          * API Reference</a></p>
2225          */
2226         virtual Model::StopDBClusterOutcome StopDBCluster(const Model::StopDBClusterRequest& request) const;
2227 
2228         /**
2229          * <p>Stops the running cluster that is specified by
2230          * <code>DBClusterIdentifier</code>. The cluster must be in the <i>available</i>
2231          * state. For more information, see <a
2232          * href="https://docs.aws.amazon.com/documentdb/latest/developerguide/db-cluster-stop-start.html">Stopping
2233          * and Starting an Amazon DocumentDB Cluster</a>.</p><p><h3>See Also:</h3>   <a
2234          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/StopDBCluster">AWS
2235          * API Reference</a></p>
2236          *
2237          * returns a future to the operation so that it can be executed in parallel to other requests.
2238          */
2239         virtual Model::StopDBClusterOutcomeCallable StopDBClusterCallable(const Model::StopDBClusterRequest& request) const;
2240 
2241         /**
2242          * <p>Stops the running cluster that is specified by
2243          * <code>DBClusterIdentifier</code>. The cluster must be in the <i>available</i>
2244          * state. For more information, see <a
2245          * href="https://docs.aws.amazon.com/documentdb/latest/developerguide/db-cluster-stop-start.html">Stopping
2246          * and Starting an Amazon DocumentDB Cluster</a>.</p><p><h3>See Also:</h3>   <a
2247          * href="http://docs.aws.amazon.com/goto/WebAPI/docdb-2014-10-31/StopDBCluster">AWS
2248          * API Reference</a></p>
2249          *
2250          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2251          */
2252         virtual void StopDBClusterAsync(const Model::StopDBClusterRequest& request, const StopDBClusterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2253 
2254 
2255         void OverrideEndpoint(const Aws::String& endpoint);
2256   private:
2257         void init(const Aws::Client::ClientConfiguration& clientConfiguration);
2258         void AddSourceIdentifierToSubscriptionAsyncHelper(const Model::AddSourceIdentifierToSubscriptionRequest& request, const AddSourceIdentifierToSubscriptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2259         void AddTagsToResourceAsyncHelper(const Model::AddTagsToResourceRequest& request, const AddTagsToResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2260         void ApplyPendingMaintenanceActionAsyncHelper(const Model::ApplyPendingMaintenanceActionRequest& request, const ApplyPendingMaintenanceActionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2261         void CopyDBClusterParameterGroupAsyncHelper(const Model::CopyDBClusterParameterGroupRequest& request, const CopyDBClusterParameterGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2262         void CopyDBClusterSnapshotAsyncHelper(const Model::CopyDBClusterSnapshotRequest& request, const CopyDBClusterSnapshotResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2263         void CreateDBClusterAsyncHelper(const Model::CreateDBClusterRequest& request, const CreateDBClusterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2264         void CreateDBClusterParameterGroupAsyncHelper(const Model::CreateDBClusterParameterGroupRequest& request, const CreateDBClusterParameterGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2265         void CreateDBClusterSnapshotAsyncHelper(const Model::CreateDBClusterSnapshotRequest& request, const CreateDBClusterSnapshotResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2266         void CreateDBInstanceAsyncHelper(const Model::CreateDBInstanceRequest& request, const CreateDBInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2267         void CreateDBSubnetGroupAsyncHelper(const Model::CreateDBSubnetGroupRequest& request, const CreateDBSubnetGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2268         void CreateEventSubscriptionAsyncHelper(const Model::CreateEventSubscriptionRequest& request, const CreateEventSubscriptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2269         void CreateGlobalClusterAsyncHelper(const Model::CreateGlobalClusterRequest& request, const CreateGlobalClusterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2270         void DeleteDBClusterAsyncHelper(const Model::DeleteDBClusterRequest& request, const DeleteDBClusterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2271         void DeleteDBClusterParameterGroupAsyncHelper(const Model::DeleteDBClusterParameterGroupRequest& request, const DeleteDBClusterParameterGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2272         void DeleteDBClusterSnapshotAsyncHelper(const Model::DeleteDBClusterSnapshotRequest& request, const DeleteDBClusterSnapshotResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2273         void DeleteDBInstanceAsyncHelper(const Model::DeleteDBInstanceRequest& request, const DeleteDBInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2274         void DeleteDBSubnetGroupAsyncHelper(const Model::DeleteDBSubnetGroupRequest& request, const DeleteDBSubnetGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2275         void DeleteEventSubscriptionAsyncHelper(const Model::DeleteEventSubscriptionRequest& request, const DeleteEventSubscriptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2276         void DeleteGlobalClusterAsyncHelper(const Model::DeleteGlobalClusterRequest& request, const DeleteGlobalClusterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2277         void DescribeCertificatesAsyncHelper(const Model::DescribeCertificatesRequest& request, const DescribeCertificatesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2278         void DescribeDBClusterParameterGroupsAsyncHelper(const Model::DescribeDBClusterParameterGroupsRequest& request, const DescribeDBClusterParameterGroupsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2279         void DescribeDBClusterParametersAsyncHelper(const Model::DescribeDBClusterParametersRequest& request, const DescribeDBClusterParametersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2280         void DescribeDBClusterSnapshotAttributesAsyncHelper(const Model::DescribeDBClusterSnapshotAttributesRequest& request, const DescribeDBClusterSnapshotAttributesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2281         void DescribeDBClusterSnapshotsAsyncHelper(const Model::DescribeDBClusterSnapshotsRequest& request, const DescribeDBClusterSnapshotsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2282         void DescribeDBClustersAsyncHelper(const Model::DescribeDBClustersRequest& request, const DescribeDBClustersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2283         void DescribeDBEngineVersionsAsyncHelper(const Model::DescribeDBEngineVersionsRequest& request, const DescribeDBEngineVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2284         void DescribeDBInstancesAsyncHelper(const Model::DescribeDBInstancesRequest& request, const DescribeDBInstancesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2285         void DescribeDBSubnetGroupsAsyncHelper(const Model::DescribeDBSubnetGroupsRequest& request, const DescribeDBSubnetGroupsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2286         void DescribeEngineDefaultClusterParametersAsyncHelper(const Model::DescribeEngineDefaultClusterParametersRequest& request, const DescribeEngineDefaultClusterParametersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2287         void DescribeEventCategoriesAsyncHelper(const Model::DescribeEventCategoriesRequest& request, const DescribeEventCategoriesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2288         void DescribeEventSubscriptionsAsyncHelper(const Model::DescribeEventSubscriptionsRequest& request, const DescribeEventSubscriptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2289         void DescribeEventsAsyncHelper(const Model::DescribeEventsRequest& request, const DescribeEventsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2290         void DescribeGlobalClustersAsyncHelper(const Model::DescribeGlobalClustersRequest& request, const DescribeGlobalClustersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2291         void DescribeOrderableDBInstanceOptionsAsyncHelper(const Model::DescribeOrderableDBInstanceOptionsRequest& request, const DescribeOrderableDBInstanceOptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2292         void DescribePendingMaintenanceActionsAsyncHelper(const Model::DescribePendingMaintenanceActionsRequest& request, const DescribePendingMaintenanceActionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2293         void FailoverDBClusterAsyncHelper(const Model::FailoverDBClusterRequest& request, const FailoverDBClusterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2294         void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2295         void ModifyDBClusterAsyncHelper(const Model::ModifyDBClusterRequest& request, const ModifyDBClusterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2296         void ModifyDBClusterParameterGroupAsyncHelper(const Model::ModifyDBClusterParameterGroupRequest& request, const ModifyDBClusterParameterGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2297         void ModifyDBClusterSnapshotAttributeAsyncHelper(const Model::ModifyDBClusterSnapshotAttributeRequest& request, const ModifyDBClusterSnapshotAttributeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2298         void ModifyDBInstanceAsyncHelper(const Model::ModifyDBInstanceRequest& request, const ModifyDBInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2299         void ModifyDBSubnetGroupAsyncHelper(const Model::ModifyDBSubnetGroupRequest& request, const ModifyDBSubnetGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2300         void ModifyEventSubscriptionAsyncHelper(const Model::ModifyEventSubscriptionRequest& request, const ModifyEventSubscriptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2301         void ModifyGlobalClusterAsyncHelper(const Model::ModifyGlobalClusterRequest& request, const ModifyGlobalClusterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2302         void RebootDBInstanceAsyncHelper(const Model::RebootDBInstanceRequest& request, const RebootDBInstanceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2303         void RemoveFromGlobalClusterAsyncHelper(const Model::RemoveFromGlobalClusterRequest& request, const RemoveFromGlobalClusterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2304         void RemoveSourceIdentifierFromSubscriptionAsyncHelper(const Model::RemoveSourceIdentifierFromSubscriptionRequest& request, const RemoveSourceIdentifierFromSubscriptionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2305         void RemoveTagsFromResourceAsyncHelper(const Model::RemoveTagsFromResourceRequest& request, const RemoveTagsFromResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2306         void ResetDBClusterParameterGroupAsyncHelper(const Model::ResetDBClusterParameterGroupRequest& request, const ResetDBClusterParameterGroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2307         void RestoreDBClusterFromSnapshotAsyncHelper(const Model::RestoreDBClusterFromSnapshotRequest& request, const RestoreDBClusterFromSnapshotResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2308         void RestoreDBClusterToPointInTimeAsyncHelper(const Model::RestoreDBClusterToPointInTimeRequest& request, const RestoreDBClusterToPointInTimeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2309         void StartDBClusterAsyncHelper(const Model::StartDBClusterRequest& request, const StartDBClusterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2310         void StopDBClusterAsyncHelper(const Model::StopDBClusterRequest& request, const StopDBClusterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2311 
2312         Aws::String m_uri;
2313         Aws::String m_configScheme;
2314         bool m_useDualStack;
2315         std::shared_ptr<Aws::Utils::Threading::Executor> m_executor;
2316   };
2317 
2318 } // namespace DocDB
2319 } // namespace Aws
2320