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/backup/Backup_EXPORTS.h>
8 #include <aws/backup/BackupErrors.h>
9 #include <aws/core/client/AWSError.h>
10 #include <aws/core/client/ClientConfiguration.h>
11 #include <aws/core/client/AWSClient.h>
12 #include <aws/core/utils/memory/stl/AWSString.h>
13 #include <aws/core/utils/json/JsonSerializer.h>
14 #include <aws/backup/model/CreateBackupPlanResult.h>
15 #include <aws/backup/model/CreateBackupSelectionResult.h>
16 #include <aws/backup/model/CreateBackupVaultResult.h>
17 #include <aws/backup/model/CreateFrameworkResult.h>
18 #include <aws/backup/model/CreateReportPlanResult.h>
19 #include <aws/backup/model/DeleteBackupPlanResult.h>
20 #include <aws/backup/model/DescribeBackupJobResult.h>
21 #include <aws/backup/model/DescribeBackupVaultResult.h>
22 #include <aws/backup/model/DescribeCopyJobResult.h>
23 #include <aws/backup/model/DescribeFrameworkResult.h>
24 #include <aws/backup/model/DescribeGlobalSettingsResult.h>
25 #include <aws/backup/model/DescribeProtectedResourceResult.h>
26 #include <aws/backup/model/DescribeRecoveryPointResult.h>
27 #include <aws/backup/model/DescribeRegionSettingsResult.h>
28 #include <aws/backup/model/DescribeReportJobResult.h>
29 #include <aws/backup/model/DescribeReportPlanResult.h>
30 #include <aws/backup/model/DescribeRestoreJobResult.h>
31 #include <aws/backup/model/ExportBackupPlanTemplateResult.h>
32 #include <aws/backup/model/GetBackupPlanResult.h>
33 #include <aws/backup/model/GetBackupPlanFromJSONResult.h>
34 #include <aws/backup/model/GetBackupPlanFromTemplateResult.h>
35 #include <aws/backup/model/GetBackupSelectionResult.h>
36 #include <aws/backup/model/GetBackupVaultAccessPolicyResult.h>
37 #include <aws/backup/model/GetBackupVaultNotificationsResult.h>
38 #include <aws/backup/model/GetRecoveryPointRestoreMetadataResult.h>
39 #include <aws/backup/model/GetSupportedResourceTypesResult.h>
40 #include <aws/backup/model/ListBackupJobsResult.h>
41 #include <aws/backup/model/ListBackupPlanTemplatesResult.h>
42 #include <aws/backup/model/ListBackupPlanVersionsResult.h>
43 #include <aws/backup/model/ListBackupPlansResult.h>
44 #include <aws/backup/model/ListBackupSelectionsResult.h>
45 #include <aws/backup/model/ListBackupVaultsResult.h>
46 #include <aws/backup/model/ListCopyJobsResult.h>
47 #include <aws/backup/model/ListFrameworksResult.h>
48 #include <aws/backup/model/ListProtectedResourcesResult.h>
49 #include <aws/backup/model/ListRecoveryPointsByBackupVaultResult.h>
50 #include <aws/backup/model/ListRecoveryPointsByResourceResult.h>
51 #include <aws/backup/model/ListReportJobsResult.h>
52 #include <aws/backup/model/ListReportPlansResult.h>
53 #include <aws/backup/model/ListRestoreJobsResult.h>
54 #include <aws/backup/model/ListTagsResult.h>
55 #include <aws/backup/model/StartBackupJobResult.h>
56 #include <aws/backup/model/StartCopyJobResult.h>
57 #include <aws/backup/model/StartReportJobResult.h>
58 #include <aws/backup/model/StartRestoreJobResult.h>
59 #include <aws/backup/model/UpdateBackupPlanResult.h>
60 #include <aws/backup/model/UpdateFrameworkResult.h>
61 #include <aws/backup/model/UpdateRecoveryPointLifecycleResult.h>
62 #include <aws/backup/model/UpdateReportPlanResult.h>
63 #include <aws/core/NoResult.h>
64 #include <aws/core/client/AsyncCallerContext.h>
65 #include <aws/core/http/HttpTypes.h>
66 #include <future>
67 #include <functional>
68 
69 namespace Aws
70 {
71 
72 namespace Http
73 {
74   class HttpClient;
75   class HttpClientFactory;
76 } // namespace Http
77 
78 namespace Utils
79 {
80   template< typename R, typename E> class Outcome;
81 namespace Threading
82 {
83   class Executor;
84 } // namespace Threading
85 } // namespace Utils
86 
87 namespace Auth
88 {
89   class AWSCredentials;
90   class AWSCredentialsProvider;
91 } // namespace Auth
92 
93 namespace Client
94 {
95   class RetryStrategy;
96 } // namespace Client
97 
98 namespace Backup
99 {
100 
101 namespace Model
102 {
103         class CreateBackupPlanRequest;
104         class CreateBackupSelectionRequest;
105         class CreateBackupVaultRequest;
106         class CreateFrameworkRequest;
107         class CreateReportPlanRequest;
108         class DeleteBackupPlanRequest;
109         class DeleteBackupSelectionRequest;
110         class DeleteBackupVaultRequest;
111         class DeleteBackupVaultAccessPolicyRequest;
112         class DeleteBackupVaultLockConfigurationRequest;
113         class DeleteBackupVaultNotificationsRequest;
114         class DeleteFrameworkRequest;
115         class DeleteRecoveryPointRequest;
116         class DeleteReportPlanRequest;
117         class DescribeBackupJobRequest;
118         class DescribeBackupVaultRequest;
119         class DescribeCopyJobRequest;
120         class DescribeFrameworkRequest;
121         class DescribeGlobalSettingsRequest;
122         class DescribeProtectedResourceRequest;
123         class DescribeRecoveryPointRequest;
124         class DescribeRegionSettingsRequest;
125         class DescribeReportJobRequest;
126         class DescribeReportPlanRequest;
127         class DescribeRestoreJobRequest;
128         class DisassociateRecoveryPointRequest;
129         class ExportBackupPlanTemplateRequest;
130         class GetBackupPlanRequest;
131         class GetBackupPlanFromJSONRequest;
132         class GetBackupPlanFromTemplateRequest;
133         class GetBackupSelectionRequest;
134         class GetBackupVaultAccessPolicyRequest;
135         class GetBackupVaultNotificationsRequest;
136         class GetRecoveryPointRestoreMetadataRequest;
137         class ListBackupJobsRequest;
138         class ListBackupPlanTemplatesRequest;
139         class ListBackupPlanVersionsRequest;
140         class ListBackupPlansRequest;
141         class ListBackupSelectionsRequest;
142         class ListBackupVaultsRequest;
143         class ListCopyJobsRequest;
144         class ListFrameworksRequest;
145         class ListProtectedResourcesRequest;
146         class ListRecoveryPointsByBackupVaultRequest;
147         class ListRecoveryPointsByResourceRequest;
148         class ListReportJobsRequest;
149         class ListReportPlansRequest;
150         class ListRestoreJobsRequest;
151         class ListTagsRequest;
152         class PutBackupVaultAccessPolicyRequest;
153         class PutBackupVaultLockConfigurationRequest;
154         class PutBackupVaultNotificationsRequest;
155         class StartBackupJobRequest;
156         class StartCopyJobRequest;
157         class StartReportJobRequest;
158         class StartRestoreJobRequest;
159         class StopBackupJobRequest;
160         class TagResourceRequest;
161         class UntagResourceRequest;
162         class UpdateBackupPlanRequest;
163         class UpdateFrameworkRequest;
164         class UpdateGlobalSettingsRequest;
165         class UpdateRecoveryPointLifecycleRequest;
166         class UpdateRegionSettingsRequest;
167         class UpdateReportPlanRequest;
168 
169         typedef Aws::Utils::Outcome<CreateBackupPlanResult, BackupError> CreateBackupPlanOutcome;
170         typedef Aws::Utils::Outcome<CreateBackupSelectionResult, BackupError> CreateBackupSelectionOutcome;
171         typedef Aws::Utils::Outcome<CreateBackupVaultResult, BackupError> CreateBackupVaultOutcome;
172         typedef Aws::Utils::Outcome<CreateFrameworkResult, BackupError> CreateFrameworkOutcome;
173         typedef Aws::Utils::Outcome<CreateReportPlanResult, BackupError> CreateReportPlanOutcome;
174         typedef Aws::Utils::Outcome<DeleteBackupPlanResult, BackupError> DeleteBackupPlanOutcome;
175         typedef Aws::Utils::Outcome<Aws::NoResult, BackupError> DeleteBackupSelectionOutcome;
176         typedef Aws::Utils::Outcome<Aws::NoResult, BackupError> DeleteBackupVaultOutcome;
177         typedef Aws::Utils::Outcome<Aws::NoResult, BackupError> DeleteBackupVaultAccessPolicyOutcome;
178         typedef Aws::Utils::Outcome<Aws::NoResult, BackupError> DeleteBackupVaultLockConfigurationOutcome;
179         typedef Aws::Utils::Outcome<Aws::NoResult, BackupError> DeleteBackupVaultNotificationsOutcome;
180         typedef Aws::Utils::Outcome<Aws::NoResult, BackupError> DeleteFrameworkOutcome;
181         typedef Aws::Utils::Outcome<Aws::NoResult, BackupError> DeleteRecoveryPointOutcome;
182         typedef Aws::Utils::Outcome<Aws::NoResult, BackupError> DeleteReportPlanOutcome;
183         typedef Aws::Utils::Outcome<DescribeBackupJobResult, BackupError> DescribeBackupJobOutcome;
184         typedef Aws::Utils::Outcome<DescribeBackupVaultResult, BackupError> DescribeBackupVaultOutcome;
185         typedef Aws::Utils::Outcome<DescribeCopyJobResult, BackupError> DescribeCopyJobOutcome;
186         typedef Aws::Utils::Outcome<DescribeFrameworkResult, BackupError> DescribeFrameworkOutcome;
187         typedef Aws::Utils::Outcome<DescribeGlobalSettingsResult, BackupError> DescribeGlobalSettingsOutcome;
188         typedef Aws::Utils::Outcome<DescribeProtectedResourceResult, BackupError> DescribeProtectedResourceOutcome;
189         typedef Aws::Utils::Outcome<DescribeRecoveryPointResult, BackupError> DescribeRecoveryPointOutcome;
190         typedef Aws::Utils::Outcome<DescribeRegionSettingsResult, BackupError> DescribeRegionSettingsOutcome;
191         typedef Aws::Utils::Outcome<DescribeReportJobResult, BackupError> DescribeReportJobOutcome;
192         typedef Aws::Utils::Outcome<DescribeReportPlanResult, BackupError> DescribeReportPlanOutcome;
193         typedef Aws::Utils::Outcome<DescribeRestoreJobResult, BackupError> DescribeRestoreJobOutcome;
194         typedef Aws::Utils::Outcome<Aws::NoResult, BackupError> DisassociateRecoveryPointOutcome;
195         typedef Aws::Utils::Outcome<ExportBackupPlanTemplateResult, BackupError> ExportBackupPlanTemplateOutcome;
196         typedef Aws::Utils::Outcome<GetBackupPlanResult, BackupError> GetBackupPlanOutcome;
197         typedef Aws::Utils::Outcome<GetBackupPlanFromJSONResult, BackupError> GetBackupPlanFromJSONOutcome;
198         typedef Aws::Utils::Outcome<GetBackupPlanFromTemplateResult, BackupError> GetBackupPlanFromTemplateOutcome;
199         typedef Aws::Utils::Outcome<GetBackupSelectionResult, BackupError> GetBackupSelectionOutcome;
200         typedef Aws::Utils::Outcome<GetBackupVaultAccessPolicyResult, BackupError> GetBackupVaultAccessPolicyOutcome;
201         typedef Aws::Utils::Outcome<GetBackupVaultNotificationsResult, BackupError> GetBackupVaultNotificationsOutcome;
202         typedef Aws::Utils::Outcome<GetRecoveryPointRestoreMetadataResult, BackupError> GetRecoveryPointRestoreMetadataOutcome;
203         typedef Aws::Utils::Outcome<GetSupportedResourceTypesResult, BackupError> GetSupportedResourceTypesOutcome;
204         typedef Aws::Utils::Outcome<ListBackupJobsResult, BackupError> ListBackupJobsOutcome;
205         typedef Aws::Utils::Outcome<ListBackupPlanTemplatesResult, BackupError> ListBackupPlanTemplatesOutcome;
206         typedef Aws::Utils::Outcome<ListBackupPlanVersionsResult, BackupError> ListBackupPlanVersionsOutcome;
207         typedef Aws::Utils::Outcome<ListBackupPlansResult, BackupError> ListBackupPlansOutcome;
208         typedef Aws::Utils::Outcome<ListBackupSelectionsResult, BackupError> ListBackupSelectionsOutcome;
209         typedef Aws::Utils::Outcome<ListBackupVaultsResult, BackupError> ListBackupVaultsOutcome;
210         typedef Aws::Utils::Outcome<ListCopyJobsResult, BackupError> ListCopyJobsOutcome;
211         typedef Aws::Utils::Outcome<ListFrameworksResult, BackupError> ListFrameworksOutcome;
212         typedef Aws::Utils::Outcome<ListProtectedResourcesResult, BackupError> ListProtectedResourcesOutcome;
213         typedef Aws::Utils::Outcome<ListRecoveryPointsByBackupVaultResult, BackupError> ListRecoveryPointsByBackupVaultOutcome;
214         typedef Aws::Utils::Outcome<ListRecoveryPointsByResourceResult, BackupError> ListRecoveryPointsByResourceOutcome;
215         typedef Aws::Utils::Outcome<ListReportJobsResult, BackupError> ListReportJobsOutcome;
216         typedef Aws::Utils::Outcome<ListReportPlansResult, BackupError> ListReportPlansOutcome;
217         typedef Aws::Utils::Outcome<ListRestoreJobsResult, BackupError> ListRestoreJobsOutcome;
218         typedef Aws::Utils::Outcome<ListTagsResult, BackupError> ListTagsOutcome;
219         typedef Aws::Utils::Outcome<Aws::NoResult, BackupError> PutBackupVaultAccessPolicyOutcome;
220         typedef Aws::Utils::Outcome<Aws::NoResult, BackupError> PutBackupVaultLockConfigurationOutcome;
221         typedef Aws::Utils::Outcome<Aws::NoResult, BackupError> PutBackupVaultNotificationsOutcome;
222         typedef Aws::Utils::Outcome<StartBackupJobResult, BackupError> StartBackupJobOutcome;
223         typedef Aws::Utils::Outcome<StartCopyJobResult, BackupError> StartCopyJobOutcome;
224         typedef Aws::Utils::Outcome<StartReportJobResult, BackupError> StartReportJobOutcome;
225         typedef Aws::Utils::Outcome<StartRestoreJobResult, BackupError> StartRestoreJobOutcome;
226         typedef Aws::Utils::Outcome<Aws::NoResult, BackupError> StopBackupJobOutcome;
227         typedef Aws::Utils::Outcome<Aws::NoResult, BackupError> TagResourceOutcome;
228         typedef Aws::Utils::Outcome<Aws::NoResult, BackupError> UntagResourceOutcome;
229         typedef Aws::Utils::Outcome<UpdateBackupPlanResult, BackupError> UpdateBackupPlanOutcome;
230         typedef Aws::Utils::Outcome<UpdateFrameworkResult, BackupError> UpdateFrameworkOutcome;
231         typedef Aws::Utils::Outcome<Aws::NoResult, BackupError> UpdateGlobalSettingsOutcome;
232         typedef Aws::Utils::Outcome<UpdateRecoveryPointLifecycleResult, BackupError> UpdateRecoveryPointLifecycleOutcome;
233         typedef Aws::Utils::Outcome<Aws::NoResult, BackupError> UpdateRegionSettingsOutcome;
234         typedef Aws::Utils::Outcome<UpdateReportPlanResult, BackupError> UpdateReportPlanOutcome;
235 
236         typedef std::future<CreateBackupPlanOutcome> CreateBackupPlanOutcomeCallable;
237         typedef std::future<CreateBackupSelectionOutcome> CreateBackupSelectionOutcomeCallable;
238         typedef std::future<CreateBackupVaultOutcome> CreateBackupVaultOutcomeCallable;
239         typedef std::future<CreateFrameworkOutcome> CreateFrameworkOutcomeCallable;
240         typedef std::future<CreateReportPlanOutcome> CreateReportPlanOutcomeCallable;
241         typedef std::future<DeleteBackupPlanOutcome> DeleteBackupPlanOutcomeCallable;
242         typedef std::future<DeleteBackupSelectionOutcome> DeleteBackupSelectionOutcomeCallable;
243         typedef std::future<DeleteBackupVaultOutcome> DeleteBackupVaultOutcomeCallable;
244         typedef std::future<DeleteBackupVaultAccessPolicyOutcome> DeleteBackupVaultAccessPolicyOutcomeCallable;
245         typedef std::future<DeleteBackupVaultLockConfigurationOutcome> DeleteBackupVaultLockConfigurationOutcomeCallable;
246         typedef std::future<DeleteBackupVaultNotificationsOutcome> DeleteBackupVaultNotificationsOutcomeCallable;
247         typedef std::future<DeleteFrameworkOutcome> DeleteFrameworkOutcomeCallable;
248         typedef std::future<DeleteRecoveryPointOutcome> DeleteRecoveryPointOutcomeCallable;
249         typedef std::future<DeleteReportPlanOutcome> DeleteReportPlanOutcomeCallable;
250         typedef std::future<DescribeBackupJobOutcome> DescribeBackupJobOutcomeCallable;
251         typedef std::future<DescribeBackupVaultOutcome> DescribeBackupVaultOutcomeCallable;
252         typedef std::future<DescribeCopyJobOutcome> DescribeCopyJobOutcomeCallable;
253         typedef std::future<DescribeFrameworkOutcome> DescribeFrameworkOutcomeCallable;
254         typedef std::future<DescribeGlobalSettingsOutcome> DescribeGlobalSettingsOutcomeCallable;
255         typedef std::future<DescribeProtectedResourceOutcome> DescribeProtectedResourceOutcomeCallable;
256         typedef std::future<DescribeRecoveryPointOutcome> DescribeRecoveryPointOutcomeCallable;
257         typedef std::future<DescribeRegionSettingsOutcome> DescribeRegionSettingsOutcomeCallable;
258         typedef std::future<DescribeReportJobOutcome> DescribeReportJobOutcomeCallable;
259         typedef std::future<DescribeReportPlanOutcome> DescribeReportPlanOutcomeCallable;
260         typedef std::future<DescribeRestoreJobOutcome> DescribeRestoreJobOutcomeCallable;
261         typedef std::future<DisassociateRecoveryPointOutcome> DisassociateRecoveryPointOutcomeCallable;
262         typedef std::future<ExportBackupPlanTemplateOutcome> ExportBackupPlanTemplateOutcomeCallable;
263         typedef std::future<GetBackupPlanOutcome> GetBackupPlanOutcomeCallable;
264         typedef std::future<GetBackupPlanFromJSONOutcome> GetBackupPlanFromJSONOutcomeCallable;
265         typedef std::future<GetBackupPlanFromTemplateOutcome> GetBackupPlanFromTemplateOutcomeCallable;
266         typedef std::future<GetBackupSelectionOutcome> GetBackupSelectionOutcomeCallable;
267         typedef std::future<GetBackupVaultAccessPolicyOutcome> GetBackupVaultAccessPolicyOutcomeCallable;
268         typedef std::future<GetBackupVaultNotificationsOutcome> GetBackupVaultNotificationsOutcomeCallable;
269         typedef std::future<GetRecoveryPointRestoreMetadataOutcome> GetRecoveryPointRestoreMetadataOutcomeCallable;
270         typedef std::future<GetSupportedResourceTypesOutcome> GetSupportedResourceTypesOutcomeCallable;
271         typedef std::future<ListBackupJobsOutcome> ListBackupJobsOutcomeCallable;
272         typedef std::future<ListBackupPlanTemplatesOutcome> ListBackupPlanTemplatesOutcomeCallable;
273         typedef std::future<ListBackupPlanVersionsOutcome> ListBackupPlanVersionsOutcomeCallable;
274         typedef std::future<ListBackupPlansOutcome> ListBackupPlansOutcomeCallable;
275         typedef std::future<ListBackupSelectionsOutcome> ListBackupSelectionsOutcomeCallable;
276         typedef std::future<ListBackupVaultsOutcome> ListBackupVaultsOutcomeCallable;
277         typedef std::future<ListCopyJobsOutcome> ListCopyJobsOutcomeCallable;
278         typedef std::future<ListFrameworksOutcome> ListFrameworksOutcomeCallable;
279         typedef std::future<ListProtectedResourcesOutcome> ListProtectedResourcesOutcomeCallable;
280         typedef std::future<ListRecoveryPointsByBackupVaultOutcome> ListRecoveryPointsByBackupVaultOutcomeCallable;
281         typedef std::future<ListRecoveryPointsByResourceOutcome> ListRecoveryPointsByResourceOutcomeCallable;
282         typedef std::future<ListReportJobsOutcome> ListReportJobsOutcomeCallable;
283         typedef std::future<ListReportPlansOutcome> ListReportPlansOutcomeCallable;
284         typedef std::future<ListRestoreJobsOutcome> ListRestoreJobsOutcomeCallable;
285         typedef std::future<ListTagsOutcome> ListTagsOutcomeCallable;
286         typedef std::future<PutBackupVaultAccessPolicyOutcome> PutBackupVaultAccessPolicyOutcomeCallable;
287         typedef std::future<PutBackupVaultLockConfigurationOutcome> PutBackupVaultLockConfigurationOutcomeCallable;
288         typedef std::future<PutBackupVaultNotificationsOutcome> PutBackupVaultNotificationsOutcomeCallable;
289         typedef std::future<StartBackupJobOutcome> StartBackupJobOutcomeCallable;
290         typedef std::future<StartCopyJobOutcome> StartCopyJobOutcomeCallable;
291         typedef std::future<StartReportJobOutcome> StartReportJobOutcomeCallable;
292         typedef std::future<StartRestoreJobOutcome> StartRestoreJobOutcomeCallable;
293         typedef std::future<StopBackupJobOutcome> StopBackupJobOutcomeCallable;
294         typedef std::future<TagResourceOutcome> TagResourceOutcomeCallable;
295         typedef std::future<UntagResourceOutcome> UntagResourceOutcomeCallable;
296         typedef std::future<UpdateBackupPlanOutcome> UpdateBackupPlanOutcomeCallable;
297         typedef std::future<UpdateFrameworkOutcome> UpdateFrameworkOutcomeCallable;
298         typedef std::future<UpdateGlobalSettingsOutcome> UpdateGlobalSettingsOutcomeCallable;
299         typedef std::future<UpdateRecoveryPointLifecycleOutcome> UpdateRecoveryPointLifecycleOutcomeCallable;
300         typedef std::future<UpdateRegionSettingsOutcome> UpdateRegionSettingsOutcomeCallable;
301         typedef std::future<UpdateReportPlanOutcome> UpdateReportPlanOutcomeCallable;
302 } // namespace Model
303 
304   class BackupClient;
305 
306     typedef std::function<void(const BackupClient*, const Model::CreateBackupPlanRequest&, const Model::CreateBackupPlanOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateBackupPlanResponseReceivedHandler;
307     typedef std::function<void(const BackupClient*, const Model::CreateBackupSelectionRequest&, const Model::CreateBackupSelectionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateBackupSelectionResponseReceivedHandler;
308     typedef std::function<void(const BackupClient*, const Model::CreateBackupVaultRequest&, const Model::CreateBackupVaultOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateBackupVaultResponseReceivedHandler;
309     typedef std::function<void(const BackupClient*, const Model::CreateFrameworkRequest&, const Model::CreateFrameworkOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateFrameworkResponseReceivedHandler;
310     typedef std::function<void(const BackupClient*, const Model::CreateReportPlanRequest&, const Model::CreateReportPlanOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateReportPlanResponseReceivedHandler;
311     typedef std::function<void(const BackupClient*, const Model::DeleteBackupPlanRequest&, const Model::DeleteBackupPlanOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBackupPlanResponseReceivedHandler;
312     typedef std::function<void(const BackupClient*, const Model::DeleteBackupSelectionRequest&, const Model::DeleteBackupSelectionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBackupSelectionResponseReceivedHandler;
313     typedef std::function<void(const BackupClient*, const Model::DeleteBackupVaultRequest&, const Model::DeleteBackupVaultOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBackupVaultResponseReceivedHandler;
314     typedef std::function<void(const BackupClient*, const Model::DeleteBackupVaultAccessPolicyRequest&, const Model::DeleteBackupVaultAccessPolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBackupVaultAccessPolicyResponseReceivedHandler;
315     typedef std::function<void(const BackupClient*, const Model::DeleteBackupVaultLockConfigurationRequest&, const Model::DeleteBackupVaultLockConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBackupVaultLockConfigurationResponseReceivedHandler;
316     typedef std::function<void(const BackupClient*, const Model::DeleteBackupVaultNotificationsRequest&, const Model::DeleteBackupVaultNotificationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteBackupVaultNotificationsResponseReceivedHandler;
317     typedef std::function<void(const BackupClient*, const Model::DeleteFrameworkRequest&, const Model::DeleteFrameworkOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteFrameworkResponseReceivedHandler;
318     typedef std::function<void(const BackupClient*, const Model::DeleteRecoveryPointRequest&, const Model::DeleteRecoveryPointOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteRecoveryPointResponseReceivedHandler;
319     typedef std::function<void(const BackupClient*, const Model::DeleteReportPlanRequest&, const Model::DeleteReportPlanOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteReportPlanResponseReceivedHandler;
320     typedef std::function<void(const BackupClient*, const Model::DescribeBackupJobRequest&, const Model::DescribeBackupJobOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeBackupJobResponseReceivedHandler;
321     typedef std::function<void(const BackupClient*, const Model::DescribeBackupVaultRequest&, const Model::DescribeBackupVaultOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeBackupVaultResponseReceivedHandler;
322     typedef std::function<void(const BackupClient*, const Model::DescribeCopyJobRequest&, const Model::DescribeCopyJobOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeCopyJobResponseReceivedHandler;
323     typedef std::function<void(const BackupClient*, const Model::DescribeFrameworkRequest&, const Model::DescribeFrameworkOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeFrameworkResponseReceivedHandler;
324     typedef std::function<void(const BackupClient*, const Model::DescribeGlobalSettingsRequest&, const Model::DescribeGlobalSettingsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeGlobalSettingsResponseReceivedHandler;
325     typedef std::function<void(const BackupClient*, const Model::DescribeProtectedResourceRequest&, const Model::DescribeProtectedResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeProtectedResourceResponseReceivedHandler;
326     typedef std::function<void(const BackupClient*, const Model::DescribeRecoveryPointRequest&, const Model::DescribeRecoveryPointOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeRecoveryPointResponseReceivedHandler;
327     typedef std::function<void(const BackupClient*, const Model::DescribeRegionSettingsRequest&, const Model::DescribeRegionSettingsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeRegionSettingsResponseReceivedHandler;
328     typedef std::function<void(const BackupClient*, const Model::DescribeReportJobRequest&, const Model::DescribeReportJobOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeReportJobResponseReceivedHandler;
329     typedef std::function<void(const BackupClient*, const Model::DescribeReportPlanRequest&, const Model::DescribeReportPlanOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeReportPlanResponseReceivedHandler;
330     typedef std::function<void(const BackupClient*, const Model::DescribeRestoreJobRequest&, const Model::DescribeRestoreJobOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeRestoreJobResponseReceivedHandler;
331     typedef std::function<void(const BackupClient*, const Model::DisassociateRecoveryPointRequest&, const Model::DisassociateRecoveryPointOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisassociateRecoveryPointResponseReceivedHandler;
332     typedef std::function<void(const BackupClient*, const Model::ExportBackupPlanTemplateRequest&, const Model::ExportBackupPlanTemplateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ExportBackupPlanTemplateResponseReceivedHandler;
333     typedef std::function<void(const BackupClient*, const Model::GetBackupPlanRequest&, const Model::GetBackupPlanOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBackupPlanResponseReceivedHandler;
334     typedef std::function<void(const BackupClient*, const Model::GetBackupPlanFromJSONRequest&, const Model::GetBackupPlanFromJSONOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBackupPlanFromJSONResponseReceivedHandler;
335     typedef std::function<void(const BackupClient*, const Model::GetBackupPlanFromTemplateRequest&, const Model::GetBackupPlanFromTemplateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBackupPlanFromTemplateResponseReceivedHandler;
336     typedef std::function<void(const BackupClient*, const Model::GetBackupSelectionRequest&, const Model::GetBackupSelectionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBackupSelectionResponseReceivedHandler;
337     typedef std::function<void(const BackupClient*, const Model::GetBackupVaultAccessPolicyRequest&, const Model::GetBackupVaultAccessPolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBackupVaultAccessPolicyResponseReceivedHandler;
338     typedef std::function<void(const BackupClient*, const Model::GetBackupVaultNotificationsRequest&, const Model::GetBackupVaultNotificationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetBackupVaultNotificationsResponseReceivedHandler;
339     typedef std::function<void(const BackupClient*, const Model::GetRecoveryPointRestoreMetadataRequest&, const Model::GetRecoveryPointRestoreMetadataOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetRecoveryPointRestoreMetadataResponseReceivedHandler;
340     typedef std::function<void(const BackupClient*, const Model::GetSupportedResourceTypesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetSupportedResourceTypesResponseReceivedHandler;
341     typedef std::function<void(const BackupClient*, const Model::ListBackupJobsRequest&, const Model::ListBackupJobsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListBackupJobsResponseReceivedHandler;
342     typedef std::function<void(const BackupClient*, const Model::ListBackupPlanTemplatesRequest&, const Model::ListBackupPlanTemplatesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListBackupPlanTemplatesResponseReceivedHandler;
343     typedef std::function<void(const BackupClient*, const Model::ListBackupPlanVersionsRequest&, const Model::ListBackupPlanVersionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListBackupPlanVersionsResponseReceivedHandler;
344     typedef std::function<void(const BackupClient*, const Model::ListBackupPlansRequest&, const Model::ListBackupPlansOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListBackupPlansResponseReceivedHandler;
345     typedef std::function<void(const BackupClient*, const Model::ListBackupSelectionsRequest&, const Model::ListBackupSelectionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListBackupSelectionsResponseReceivedHandler;
346     typedef std::function<void(const BackupClient*, const Model::ListBackupVaultsRequest&, const Model::ListBackupVaultsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListBackupVaultsResponseReceivedHandler;
347     typedef std::function<void(const BackupClient*, const Model::ListCopyJobsRequest&, const Model::ListCopyJobsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListCopyJobsResponseReceivedHandler;
348     typedef std::function<void(const BackupClient*, const Model::ListFrameworksRequest&, const Model::ListFrameworksOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListFrameworksResponseReceivedHandler;
349     typedef std::function<void(const BackupClient*, const Model::ListProtectedResourcesRequest&, const Model::ListProtectedResourcesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListProtectedResourcesResponseReceivedHandler;
350     typedef std::function<void(const BackupClient*, const Model::ListRecoveryPointsByBackupVaultRequest&, const Model::ListRecoveryPointsByBackupVaultOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListRecoveryPointsByBackupVaultResponseReceivedHandler;
351     typedef std::function<void(const BackupClient*, const Model::ListRecoveryPointsByResourceRequest&, const Model::ListRecoveryPointsByResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListRecoveryPointsByResourceResponseReceivedHandler;
352     typedef std::function<void(const BackupClient*, const Model::ListReportJobsRequest&, const Model::ListReportJobsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListReportJobsResponseReceivedHandler;
353     typedef std::function<void(const BackupClient*, const Model::ListReportPlansRequest&, const Model::ListReportPlansOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListReportPlansResponseReceivedHandler;
354     typedef std::function<void(const BackupClient*, const Model::ListRestoreJobsRequest&, const Model::ListRestoreJobsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListRestoreJobsResponseReceivedHandler;
355     typedef std::function<void(const BackupClient*, const Model::ListTagsRequest&, const Model::ListTagsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTagsResponseReceivedHandler;
356     typedef std::function<void(const BackupClient*, const Model::PutBackupVaultAccessPolicyRequest&, const Model::PutBackupVaultAccessPolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBackupVaultAccessPolicyResponseReceivedHandler;
357     typedef std::function<void(const BackupClient*, const Model::PutBackupVaultLockConfigurationRequest&, const Model::PutBackupVaultLockConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBackupVaultLockConfigurationResponseReceivedHandler;
358     typedef std::function<void(const BackupClient*, const Model::PutBackupVaultNotificationsRequest&, const Model::PutBackupVaultNotificationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutBackupVaultNotificationsResponseReceivedHandler;
359     typedef std::function<void(const BackupClient*, const Model::StartBackupJobRequest&, const Model::StartBackupJobOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StartBackupJobResponseReceivedHandler;
360     typedef std::function<void(const BackupClient*, const Model::StartCopyJobRequest&, const Model::StartCopyJobOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StartCopyJobResponseReceivedHandler;
361     typedef std::function<void(const BackupClient*, const Model::StartReportJobRequest&, const Model::StartReportJobOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StartReportJobResponseReceivedHandler;
362     typedef std::function<void(const BackupClient*, const Model::StartRestoreJobRequest&, const Model::StartRestoreJobOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StartRestoreJobResponseReceivedHandler;
363     typedef std::function<void(const BackupClient*, const Model::StopBackupJobRequest&, const Model::StopBackupJobOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StopBackupJobResponseReceivedHandler;
364     typedef std::function<void(const BackupClient*, const Model::TagResourceRequest&, const Model::TagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TagResourceResponseReceivedHandler;
365     typedef std::function<void(const BackupClient*, const Model::UntagResourceRequest&, const Model::UntagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UntagResourceResponseReceivedHandler;
366     typedef std::function<void(const BackupClient*, const Model::UpdateBackupPlanRequest&, const Model::UpdateBackupPlanOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateBackupPlanResponseReceivedHandler;
367     typedef std::function<void(const BackupClient*, const Model::UpdateFrameworkRequest&, const Model::UpdateFrameworkOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateFrameworkResponseReceivedHandler;
368     typedef std::function<void(const BackupClient*, const Model::UpdateGlobalSettingsRequest&, const Model::UpdateGlobalSettingsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateGlobalSettingsResponseReceivedHandler;
369     typedef std::function<void(const BackupClient*, const Model::UpdateRecoveryPointLifecycleRequest&, const Model::UpdateRecoveryPointLifecycleOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateRecoveryPointLifecycleResponseReceivedHandler;
370     typedef std::function<void(const BackupClient*, const Model::UpdateRegionSettingsRequest&, const Model::UpdateRegionSettingsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateRegionSettingsResponseReceivedHandler;
371     typedef std::function<void(const BackupClient*, const Model::UpdateReportPlanRequest&, const Model::UpdateReportPlanOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateReportPlanResponseReceivedHandler;
372 
373   /**
374    * <fullname>Backup</fullname> <p>Backup is a unified backup service designed to
375    * protect Amazon Web Services services and their associated data. Backup
376    * simplifies the creation, migration, restoration, and deletion of backups, while
377    * also providing reporting and auditing.</p>
378    */
379   class AWS_BACKUP_API BackupClient : public Aws::Client::AWSJsonClient
380   {
381     public:
382       typedef Aws::Client::AWSJsonClient BASECLASS;
383 
384        /**
385         * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
386         * is not specified, it will be initialized to default values.
387         */
388         BackupClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
389 
390        /**
391         * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
392         * is not specified, it will be initialized to default values.
393         */
394         BackupClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
395 
396        /**
397         * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
398         * the default http client factory will be used
399         */
400         BackupClient(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
401             const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
402 
403         virtual ~BackupClient();
404 
405 
406         /**
407          * <p>Creates a backup plan using a backup plan name and backup rules. A backup
408          * plan is a document that contains information that Backup uses to schedule tasks
409          * that create recovery points for resources.</p> <p>If you call
410          * <code>CreateBackupPlan</code> with a plan that already exists, you receive an
411          * <code>AlreadyExistsException</code> exception.</p><p><h3>See Also:</h3>   <a
412          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/CreateBackupPlan">AWS
413          * API Reference</a></p>
414          */
415         virtual Model::CreateBackupPlanOutcome CreateBackupPlan(const Model::CreateBackupPlanRequest& request) const;
416 
417         /**
418          * <p>Creates a backup plan using a backup plan name and backup rules. A backup
419          * plan is a document that contains information that Backup uses to schedule tasks
420          * that create recovery points for resources.</p> <p>If you call
421          * <code>CreateBackupPlan</code> with a plan that already exists, you receive an
422          * <code>AlreadyExistsException</code> exception.</p><p><h3>See Also:</h3>   <a
423          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/CreateBackupPlan">AWS
424          * API Reference</a></p>
425          *
426          * returns a future to the operation so that it can be executed in parallel to other requests.
427          */
428         virtual Model::CreateBackupPlanOutcomeCallable CreateBackupPlanCallable(const Model::CreateBackupPlanRequest& request) const;
429 
430         /**
431          * <p>Creates a backup plan using a backup plan name and backup rules. A backup
432          * plan is a document that contains information that Backup uses to schedule tasks
433          * that create recovery points for resources.</p> <p>If you call
434          * <code>CreateBackupPlan</code> with a plan that already exists, you receive an
435          * <code>AlreadyExistsException</code> exception.</p><p><h3>See Also:</h3>   <a
436          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/CreateBackupPlan">AWS
437          * API Reference</a></p>
438          *
439          * Queues the request into a thread executor and triggers associated callback when operation has finished.
440          */
441         virtual void CreateBackupPlanAsync(const Model::CreateBackupPlanRequest& request, const CreateBackupPlanResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
442 
443         /**
444          * <p>Creates a JSON document that specifies a set of resources to assign to a
445          * backup plan. Resources can be included by specifying patterns for a
446          * <code>ListOfTags</code> and selected <code>Resources</code>. </p> <p>For
447          * example, consider the following patterns:</p> <ul> <li> <p> <code>Resources:
448          * "arn:aws:ec2:region:account-id:volume/volume-id"</code> </p> </li> <li> <p>
449          * <code>ConditionKey:"department"</code> </p> <p>
450          * <code>ConditionValue:"finance"</code> </p> <p>
451          * <code>ConditionType:"StringEquals"</code> </p> </li> <li> <p>
452          * <code>ConditionKey:"importance"</code> </p> <p>
453          * <code>ConditionValue:"critical"</code> </p> <p>
454          * <code>ConditionType:"StringEquals"</code> </p> </li> </ul> <p>Using these
455          * patterns would back up all Amazon Elastic Block Store (Amazon EBS) volumes that
456          * are tagged as <code>"department=finance"</code>,
457          * <code>"importance=critical"</code>, in addition to an EBS volume with the
458          * specified volume ID.</p> <p>Resources and conditions are additive in that all
459          * resources that match the pattern are selected. This shouldn't be confused with a
460          * logical AND, where all conditions must match. The matching patterns are
461          * logically put together using the OR operator. In other words, all patterns that
462          * match are selected for backup.</p><p><h3>See Also:</h3>   <a
463          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/CreateBackupSelection">AWS
464          * API Reference</a></p>
465          */
466         virtual Model::CreateBackupSelectionOutcome CreateBackupSelection(const Model::CreateBackupSelectionRequest& request) const;
467 
468         /**
469          * <p>Creates a JSON document that specifies a set of resources to assign to a
470          * backup plan. Resources can be included by specifying patterns for a
471          * <code>ListOfTags</code> and selected <code>Resources</code>. </p> <p>For
472          * example, consider the following patterns:</p> <ul> <li> <p> <code>Resources:
473          * "arn:aws:ec2:region:account-id:volume/volume-id"</code> </p> </li> <li> <p>
474          * <code>ConditionKey:"department"</code> </p> <p>
475          * <code>ConditionValue:"finance"</code> </p> <p>
476          * <code>ConditionType:"StringEquals"</code> </p> </li> <li> <p>
477          * <code>ConditionKey:"importance"</code> </p> <p>
478          * <code>ConditionValue:"critical"</code> </p> <p>
479          * <code>ConditionType:"StringEquals"</code> </p> </li> </ul> <p>Using these
480          * patterns would back up all Amazon Elastic Block Store (Amazon EBS) volumes that
481          * are tagged as <code>"department=finance"</code>,
482          * <code>"importance=critical"</code>, in addition to an EBS volume with the
483          * specified volume ID.</p> <p>Resources and conditions are additive in that all
484          * resources that match the pattern are selected. This shouldn't be confused with a
485          * logical AND, where all conditions must match. The matching patterns are
486          * logically put together using the OR operator. In other words, all patterns that
487          * match are selected for backup.</p><p><h3>See Also:</h3>   <a
488          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/CreateBackupSelection">AWS
489          * API Reference</a></p>
490          *
491          * returns a future to the operation so that it can be executed in parallel to other requests.
492          */
493         virtual Model::CreateBackupSelectionOutcomeCallable CreateBackupSelectionCallable(const Model::CreateBackupSelectionRequest& request) const;
494 
495         /**
496          * <p>Creates a JSON document that specifies a set of resources to assign to a
497          * backup plan. Resources can be included by specifying patterns for a
498          * <code>ListOfTags</code> and selected <code>Resources</code>. </p> <p>For
499          * example, consider the following patterns:</p> <ul> <li> <p> <code>Resources:
500          * "arn:aws:ec2:region:account-id:volume/volume-id"</code> </p> </li> <li> <p>
501          * <code>ConditionKey:"department"</code> </p> <p>
502          * <code>ConditionValue:"finance"</code> </p> <p>
503          * <code>ConditionType:"StringEquals"</code> </p> </li> <li> <p>
504          * <code>ConditionKey:"importance"</code> </p> <p>
505          * <code>ConditionValue:"critical"</code> </p> <p>
506          * <code>ConditionType:"StringEquals"</code> </p> </li> </ul> <p>Using these
507          * patterns would back up all Amazon Elastic Block Store (Amazon EBS) volumes that
508          * are tagged as <code>"department=finance"</code>,
509          * <code>"importance=critical"</code>, in addition to an EBS volume with the
510          * specified volume ID.</p> <p>Resources and conditions are additive in that all
511          * resources that match the pattern are selected. This shouldn't be confused with a
512          * logical AND, where all conditions must match. The matching patterns are
513          * logically put together using the OR operator. In other words, all patterns that
514          * match are selected for backup.</p><p><h3>See Also:</h3>   <a
515          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/CreateBackupSelection">AWS
516          * API Reference</a></p>
517          *
518          * Queues the request into a thread executor and triggers associated callback when operation has finished.
519          */
520         virtual void CreateBackupSelectionAsync(const Model::CreateBackupSelectionRequest& request, const CreateBackupSelectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
521 
522         /**
523          * <p>Creates a logical container where backups are stored. A
524          * <code>CreateBackupVault</code> request includes a name, optionally one or more
525          * resource tags, an encryption key, and a request ID.</p>  <p>Do not include
526          * sensitive data, such as passport numbers, in the name of a backup vault.</p>
527          * <p><h3>See Also:</h3>   <a
528          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/CreateBackupVault">AWS
529          * API Reference</a></p>
530          */
531         virtual Model::CreateBackupVaultOutcome CreateBackupVault(const Model::CreateBackupVaultRequest& request) const;
532 
533         /**
534          * <p>Creates a logical container where backups are stored. A
535          * <code>CreateBackupVault</code> request includes a name, optionally one or more
536          * resource tags, an encryption key, and a request ID.</p>  <p>Do not include
537          * sensitive data, such as passport numbers, in the name of a backup vault.</p>
538          * <p><h3>See Also:</h3>   <a
539          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/CreateBackupVault">AWS
540          * API Reference</a></p>
541          *
542          * returns a future to the operation so that it can be executed in parallel to other requests.
543          */
544         virtual Model::CreateBackupVaultOutcomeCallable CreateBackupVaultCallable(const Model::CreateBackupVaultRequest& request) const;
545 
546         /**
547          * <p>Creates a logical container where backups are stored. A
548          * <code>CreateBackupVault</code> request includes a name, optionally one or more
549          * resource tags, an encryption key, and a request ID.</p>  <p>Do not include
550          * sensitive data, such as passport numbers, in the name of a backup vault.</p>
551          * <p><h3>See Also:</h3>   <a
552          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/CreateBackupVault">AWS
553          * API Reference</a></p>
554          *
555          * Queues the request into a thread executor and triggers associated callback when operation has finished.
556          */
557         virtual void CreateBackupVaultAsync(const Model::CreateBackupVaultRequest& request, const CreateBackupVaultResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
558 
559         /**
560          * <p>Creates a framework with one or more controls. A framework is a collection of
561          * controls that you can use to evaluate your backup practices. By using pre-built
562          * customizable controls to define your policies, you can evaluate whether your
563          * backup practices comply with your policies and which resources are not yet in
564          * compliance.</p><p><h3>See Also:</h3>   <a
565          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/CreateFramework">AWS
566          * API Reference</a></p>
567          */
568         virtual Model::CreateFrameworkOutcome CreateFramework(const Model::CreateFrameworkRequest& request) const;
569 
570         /**
571          * <p>Creates a framework with one or more controls. A framework is a collection of
572          * controls that you can use to evaluate your backup practices. By using pre-built
573          * customizable controls to define your policies, you can evaluate whether your
574          * backup practices comply with your policies and which resources are not yet in
575          * compliance.</p><p><h3>See Also:</h3>   <a
576          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/CreateFramework">AWS
577          * API Reference</a></p>
578          *
579          * returns a future to the operation so that it can be executed in parallel to other requests.
580          */
581         virtual Model::CreateFrameworkOutcomeCallable CreateFrameworkCallable(const Model::CreateFrameworkRequest& request) const;
582 
583         /**
584          * <p>Creates a framework with one or more controls. A framework is a collection of
585          * controls that you can use to evaluate your backup practices. By using pre-built
586          * customizable controls to define your policies, you can evaluate whether your
587          * backup practices comply with your policies and which resources are not yet in
588          * compliance.</p><p><h3>See Also:</h3>   <a
589          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/CreateFramework">AWS
590          * API Reference</a></p>
591          *
592          * Queues the request into a thread executor and triggers associated callback when operation has finished.
593          */
594         virtual void CreateFrameworkAsync(const Model::CreateFrameworkRequest& request, const CreateFrameworkResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
595 
596         /**
597          * <p>Creates a report plan. A report plan is a document that contains information
598          * about the contents of the report and where Backup will deliver it.</p> <p>If you
599          * call <code>CreateReportPlan</code> with a plan that already exists, you receive
600          * an <code>AlreadyExistsException</code> exception.</p><p><h3>See Also:</h3>   <a
601          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/CreateReportPlan">AWS
602          * API Reference</a></p>
603          */
604         virtual Model::CreateReportPlanOutcome CreateReportPlan(const Model::CreateReportPlanRequest& request) const;
605 
606         /**
607          * <p>Creates a report plan. A report plan is a document that contains information
608          * about the contents of the report and where Backup will deliver it.</p> <p>If you
609          * call <code>CreateReportPlan</code> with a plan that already exists, you receive
610          * an <code>AlreadyExistsException</code> exception.</p><p><h3>See Also:</h3>   <a
611          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/CreateReportPlan">AWS
612          * API Reference</a></p>
613          *
614          * returns a future to the operation so that it can be executed in parallel to other requests.
615          */
616         virtual Model::CreateReportPlanOutcomeCallable CreateReportPlanCallable(const Model::CreateReportPlanRequest& request) const;
617 
618         /**
619          * <p>Creates a report plan. A report plan is a document that contains information
620          * about the contents of the report and where Backup will deliver it.</p> <p>If you
621          * call <code>CreateReportPlan</code> with a plan that already exists, you receive
622          * an <code>AlreadyExistsException</code> exception.</p><p><h3>See Also:</h3>   <a
623          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/CreateReportPlan">AWS
624          * API Reference</a></p>
625          *
626          * Queues the request into a thread executor and triggers associated callback when operation has finished.
627          */
628         virtual void CreateReportPlanAsync(const Model::CreateReportPlanRequest& request, const CreateReportPlanResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
629 
630         /**
631          * <p>Deletes a backup plan. A backup plan can only be deleted after all associated
632          * selections of resources have been deleted. Deleting a backup plan deletes the
633          * current version of a backup plan. Previous versions, if any, will still
634          * exist.</p><p><h3>See Also:</h3>   <a
635          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupPlan">AWS
636          * API Reference</a></p>
637          */
638         virtual Model::DeleteBackupPlanOutcome DeleteBackupPlan(const Model::DeleteBackupPlanRequest& request) const;
639 
640         /**
641          * <p>Deletes a backup plan. A backup plan can only be deleted after all associated
642          * selections of resources have been deleted. Deleting a backup plan deletes the
643          * current version of a backup plan. Previous versions, if any, will still
644          * exist.</p><p><h3>See Also:</h3>   <a
645          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupPlan">AWS
646          * API Reference</a></p>
647          *
648          * returns a future to the operation so that it can be executed in parallel to other requests.
649          */
650         virtual Model::DeleteBackupPlanOutcomeCallable DeleteBackupPlanCallable(const Model::DeleteBackupPlanRequest& request) const;
651 
652         /**
653          * <p>Deletes a backup plan. A backup plan can only be deleted after all associated
654          * selections of resources have been deleted. Deleting a backup plan deletes the
655          * current version of a backup plan. Previous versions, if any, will still
656          * exist.</p><p><h3>See Also:</h3>   <a
657          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupPlan">AWS
658          * API Reference</a></p>
659          *
660          * Queues the request into a thread executor and triggers associated callback when operation has finished.
661          */
662         virtual void DeleteBackupPlanAsync(const Model::DeleteBackupPlanRequest& request, const DeleteBackupPlanResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
663 
664         /**
665          * <p>Deletes the resource selection associated with a backup plan that is
666          * specified by the <code>SelectionId</code>.</p><p><h3>See Also:</h3>   <a
667          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupSelection">AWS
668          * API Reference</a></p>
669          */
670         virtual Model::DeleteBackupSelectionOutcome DeleteBackupSelection(const Model::DeleteBackupSelectionRequest& request) const;
671 
672         /**
673          * <p>Deletes the resource selection associated with a backup plan that is
674          * specified by the <code>SelectionId</code>.</p><p><h3>See Also:</h3>   <a
675          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupSelection">AWS
676          * API Reference</a></p>
677          *
678          * returns a future to the operation so that it can be executed in parallel to other requests.
679          */
680         virtual Model::DeleteBackupSelectionOutcomeCallable DeleteBackupSelectionCallable(const Model::DeleteBackupSelectionRequest& request) const;
681 
682         /**
683          * <p>Deletes the resource selection associated with a backup plan that is
684          * specified by the <code>SelectionId</code>.</p><p><h3>See Also:</h3>   <a
685          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupSelection">AWS
686          * API Reference</a></p>
687          *
688          * Queues the request into a thread executor and triggers associated callback when operation has finished.
689          */
690         virtual void DeleteBackupSelectionAsync(const Model::DeleteBackupSelectionRequest& request, const DeleteBackupSelectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
691 
692         /**
693          * <p>Deletes the backup vault identified by its name. A vault can be deleted only
694          * if it is empty.</p><p><h3>See Also:</h3>   <a
695          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupVault">AWS
696          * API Reference</a></p>
697          */
698         virtual Model::DeleteBackupVaultOutcome DeleteBackupVault(const Model::DeleteBackupVaultRequest& request) const;
699 
700         /**
701          * <p>Deletes the backup vault identified by its name. A vault can be deleted only
702          * if it is empty.</p><p><h3>See Also:</h3>   <a
703          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupVault">AWS
704          * API Reference</a></p>
705          *
706          * returns a future to the operation so that it can be executed in parallel to other requests.
707          */
708         virtual Model::DeleteBackupVaultOutcomeCallable DeleteBackupVaultCallable(const Model::DeleteBackupVaultRequest& request) const;
709 
710         /**
711          * <p>Deletes the backup vault identified by its name. A vault can be deleted only
712          * if it is empty.</p><p><h3>See Also:</h3>   <a
713          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupVault">AWS
714          * API Reference</a></p>
715          *
716          * Queues the request into a thread executor and triggers associated callback when operation has finished.
717          */
718         virtual void DeleteBackupVaultAsync(const Model::DeleteBackupVaultRequest& request, const DeleteBackupVaultResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
719 
720         /**
721          * <p>Deletes the policy document that manages permissions on a backup
722          * vault.</p><p><h3>See Also:</h3>   <a
723          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupVaultAccessPolicy">AWS
724          * API Reference</a></p>
725          */
726         virtual Model::DeleteBackupVaultAccessPolicyOutcome DeleteBackupVaultAccessPolicy(const Model::DeleteBackupVaultAccessPolicyRequest& request) const;
727 
728         /**
729          * <p>Deletes the policy document that manages permissions on a backup
730          * vault.</p><p><h3>See Also:</h3>   <a
731          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupVaultAccessPolicy">AWS
732          * API Reference</a></p>
733          *
734          * returns a future to the operation so that it can be executed in parallel to other requests.
735          */
736         virtual Model::DeleteBackupVaultAccessPolicyOutcomeCallable DeleteBackupVaultAccessPolicyCallable(const Model::DeleteBackupVaultAccessPolicyRequest& request) const;
737 
738         /**
739          * <p>Deletes the policy document that manages permissions on a backup
740          * vault.</p><p><h3>See Also:</h3>   <a
741          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupVaultAccessPolicy">AWS
742          * API Reference</a></p>
743          *
744          * Queues the request into a thread executor and triggers associated callback when operation has finished.
745          */
746         virtual void DeleteBackupVaultAccessPolicyAsync(const Model::DeleteBackupVaultAccessPolicyRequest& request, const DeleteBackupVaultAccessPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
747 
748         /**
749          * <p>Deletes Backup Vault Lock from a backup vault specified by a backup vault
750          * name.</p> <p>If the Vault Lock configuration is immutable, then you cannot
751          * delete Vault Lock using API operations, and you will receive an
752          * <code>InvalidRequestException</code> if you attempt to do so. For more
753          * information, see <a
754          * href="https://docs.aws.amazon.com/aws-backup/latest/devguide/vault-lock.html">Vault
755          * Lock</a> in the <i>Backup Developer Guide</i>.</p><p><h3>See Also:</h3>   <a
756          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupVaultLockConfiguration">AWS
757          * API Reference</a></p>
758          */
759         virtual Model::DeleteBackupVaultLockConfigurationOutcome DeleteBackupVaultLockConfiguration(const Model::DeleteBackupVaultLockConfigurationRequest& request) const;
760 
761         /**
762          * <p>Deletes Backup Vault Lock from a backup vault specified by a backup vault
763          * name.</p> <p>If the Vault Lock configuration is immutable, then you cannot
764          * delete Vault Lock using API operations, and you will receive an
765          * <code>InvalidRequestException</code> if you attempt to do so. For more
766          * information, see <a
767          * href="https://docs.aws.amazon.com/aws-backup/latest/devguide/vault-lock.html">Vault
768          * Lock</a> in the <i>Backup Developer Guide</i>.</p><p><h3>See Also:</h3>   <a
769          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupVaultLockConfiguration">AWS
770          * API Reference</a></p>
771          *
772          * returns a future to the operation so that it can be executed in parallel to other requests.
773          */
774         virtual Model::DeleteBackupVaultLockConfigurationOutcomeCallable DeleteBackupVaultLockConfigurationCallable(const Model::DeleteBackupVaultLockConfigurationRequest& request) const;
775 
776         /**
777          * <p>Deletes Backup Vault Lock from a backup vault specified by a backup vault
778          * name.</p> <p>If the Vault Lock configuration is immutable, then you cannot
779          * delete Vault Lock using API operations, and you will receive an
780          * <code>InvalidRequestException</code> if you attempt to do so. For more
781          * information, see <a
782          * href="https://docs.aws.amazon.com/aws-backup/latest/devguide/vault-lock.html">Vault
783          * Lock</a> in the <i>Backup Developer Guide</i>.</p><p><h3>See Also:</h3>   <a
784          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupVaultLockConfiguration">AWS
785          * API Reference</a></p>
786          *
787          * Queues the request into a thread executor and triggers associated callback when operation has finished.
788          */
789         virtual void DeleteBackupVaultLockConfigurationAsync(const Model::DeleteBackupVaultLockConfigurationRequest& request, const DeleteBackupVaultLockConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
790 
791         /**
792          * <p>Deletes event notifications for the specified backup vault.</p><p><h3>See
793          * Also:</h3>   <a
794          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupVaultNotifications">AWS
795          * API Reference</a></p>
796          */
797         virtual Model::DeleteBackupVaultNotificationsOutcome DeleteBackupVaultNotifications(const Model::DeleteBackupVaultNotificationsRequest& request) const;
798 
799         /**
800          * <p>Deletes event notifications for the specified backup vault.</p><p><h3>See
801          * Also:</h3>   <a
802          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupVaultNotifications">AWS
803          * API Reference</a></p>
804          *
805          * returns a future to the operation so that it can be executed in parallel to other requests.
806          */
807         virtual Model::DeleteBackupVaultNotificationsOutcomeCallable DeleteBackupVaultNotificationsCallable(const Model::DeleteBackupVaultNotificationsRequest& request) const;
808 
809         /**
810          * <p>Deletes event notifications for the specified backup vault.</p><p><h3>See
811          * Also:</h3>   <a
812          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteBackupVaultNotifications">AWS
813          * API Reference</a></p>
814          *
815          * Queues the request into a thread executor and triggers associated callback when operation has finished.
816          */
817         virtual void DeleteBackupVaultNotificationsAsync(const Model::DeleteBackupVaultNotificationsRequest& request, const DeleteBackupVaultNotificationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
818 
819         /**
820          * <p>Deletes the framework specified by a framework name.</p><p><h3>See Also:</h3>
821          * <a
822          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteFramework">AWS
823          * API Reference</a></p>
824          */
825         virtual Model::DeleteFrameworkOutcome DeleteFramework(const Model::DeleteFrameworkRequest& request) const;
826 
827         /**
828          * <p>Deletes the framework specified by a framework name.</p><p><h3>See Also:</h3>
829          * <a
830          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteFramework">AWS
831          * API Reference</a></p>
832          *
833          * returns a future to the operation so that it can be executed in parallel to other requests.
834          */
835         virtual Model::DeleteFrameworkOutcomeCallable DeleteFrameworkCallable(const Model::DeleteFrameworkRequest& request) const;
836 
837         /**
838          * <p>Deletes the framework specified by a framework name.</p><p><h3>See Also:</h3>
839          * <a
840          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteFramework">AWS
841          * API Reference</a></p>
842          *
843          * Queues the request into a thread executor and triggers associated callback when operation has finished.
844          */
845         virtual void DeleteFrameworkAsync(const Model::DeleteFrameworkRequest& request, const DeleteFrameworkResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
846 
847         /**
848          * <p>Deletes the recovery point specified by a recovery point ID.</p> <p>If the
849          * recovery point ID belongs to a continuous backup, calling this endpoint deletes
850          * the existing continuous backup and stops future continuous backup.</p><p><h3>See
851          * Also:</h3>   <a
852          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteRecoveryPoint">AWS
853          * API Reference</a></p>
854          */
855         virtual Model::DeleteRecoveryPointOutcome DeleteRecoveryPoint(const Model::DeleteRecoveryPointRequest& request) const;
856 
857         /**
858          * <p>Deletes the recovery point specified by a recovery point ID.</p> <p>If the
859          * recovery point ID belongs to a continuous backup, calling this endpoint deletes
860          * the existing continuous backup and stops future continuous backup.</p><p><h3>See
861          * Also:</h3>   <a
862          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteRecoveryPoint">AWS
863          * API Reference</a></p>
864          *
865          * returns a future to the operation so that it can be executed in parallel to other requests.
866          */
867         virtual Model::DeleteRecoveryPointOutcomeCallable DeleteRecoveryPointCallable(const Model::DeleteRecoveryPointRequest& request) const;
868 
869         /**
870          * <p>Deletes the recovery point specified by a recovery point ID.</p> <p>If the
871          * recovery point ID belongs to a continuous backup, calling this endpoint deletes
872          * the existing continuous backup and stops future continuous backup.</p><p><h3>See
873          * Also:</h3>   <a
874          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteRecoveryPoint">AWS
875          * API Reference</a></p>
876          *
877          * Queues the request into a thread executor and triggers associated callback when operation has finished.
878          */
879         virtual void DeleteRecoveryPointAsync(const Model::DeleteRecoveryPointRequest& request, const DeleteRecoveryPointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
880 
881         /**
882          * <p>Deletes the report plan specified by a report plan name.</p><p><h3>See
883          * Also:</h3>   <a
884          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteReportPlan">AWS
885          * API Reference</a></p>
886          */
887         virtual Model::DeleteReportPlanOutcome DeleteReportPlan(const Model::DeleteReportPlanRequest& request) const;
888 
889         /**
890          * <p>Deletes the report plan specified by a report plan name.</p><p><h3>See
891          * Also:</h3>   <a
892          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteReportPlan">AWS
893          * API Reference</a></p>
894          *
895          * returns a future to the operation so that it can be executed in parallel to other requests.
896          */
897         virtual Model::DeleteReportPlanOutcomeCallable DeleteReportPlanCallable(const Model::DeleteReportPlanRequest& request) const;
898 
899         /**
900          * <p>Deletes the report plan specified by a report plan name.</p><p><h3>See
901          * Also:</h3>   <a
902          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DeleteReportPlan">AWS
903          * API Reference</a></p>
904          *
905          * Queues the request into a thread executor and triggers associated callback when operation has finished.
906          */
907         virtual void DeleteReportPlanAsync(const Model::DeleteReportPlanRequest& request, const DeleteReportPlanResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
908 
909         /**
910          * <p>Returns backup job details for the specified
911          * <code>BackupJobId</code>.</p><p><h3>See Also:</h3>   <a
912          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeBackupJob">AWS
913          * API Reference</a></p>
914          */
915         virtual Model::DescribeBackupJobOutcome DescribeBackupJob(const Model::DescribeBackupJobRequest& request) const;
916 
917         /**
918          * <p>Returns backup job details for the specified
919          * <code>BackupJobId</code>.</p><p><h3>See Also:</h3>   <a
920          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeBackupJob">AWS
921          * API Reference</a></p>
922          *
923          * returns a future to the operation so that it can be executed in parallel to other requests.
924          */
925         virtual Model::DescribeBackupJobOutcomeCallable DescribeBackupJobCallable(const Model::DescribeBackupJobRequest& request) const;
926 
927         /**
928          * <p>Returns backup job details for the specified
929          * <code>BackupJobId</code>.</p><p><h3>See Also:</h3>   <a
930          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeBackupJob">AWS
931          * API Reference</a></p>
932          *
933          * Queues the request into a thread executor and triggers associated callback when operation has finished.
934          */
935         virtual void DescribeBackupJobAsync(const Model::DescribeBackupJobRequest& request, const DescribeBackupJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
936 
937         /**
938          * <p>Returns metadata about a backup vault specified by its name.</p><p><h3>See
939          * Also:</h3>   <a
940          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeBackupVault">AWS
941          * API Reference</a></p>
942          */
943         virtual Model::DescribeBackupVaultOutcome DescribeBackupVault(const Model::DescribeBackupVaultRequest& request) const;
944 
945         /**
946          * <p>Returns metadata about a backup vault specified by its name.</p><p><h3>See
947          * Also:</h3>   <a
948          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeBackupVault">AWS
949          * API Reference</a></p>
950          *
951          * returns a future to the operation so that it can be executed in parallel to other requests.
952          */
953         virtual Model::DescribeBackupVaultOutcomeCallable DescribeBackupVaultCallable(const Model::DescribeBackupVaultRequest& request) const;
954 
955         /**
956          * <p>Returns metadata about a backup vault specified by its name.</p><p><h3>See
957          * Also:</h3>   <a
958          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeBackupVault">AWS
959          * API Reference</a></p>
960          *
961          * Queues the request into a thread executor and triggers associated callback when operation has finished.
962          */
963         virtual void DescribeBackupVaultAsync(const Model::DescribeBackupVaultRequest& request, const DescribeBackupVaultResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
964 
965         /**
966          * <p>Returns metadata associated with creating a copy of a resource.</p><p><h3>See
967          * Also:</h3>   <a
968          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeCopyJob">AWS
969          * API Reference</a></p>
970          */
971         virtual Model::DescribeCopyJobOutcome DescribeCopyJob(const Model::DescribeCopyJobRequest& request) const;
972 
973         /**
974          * <p>Returns metadata associated with creating a copy of a resource.</p><p><h3>See
975          * Also:</h3>   <a
976          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeCopyJob">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::DescribeCopyJobOutcomeCallable DescribeCopyJobCallable(const Model::DescribeCopyJobRequest& request) const;
982 
983         /**
984          * <p>Returns metadata associated with creating a copy of a resource.</p><p><h3>See
985          * Also:</h3>   <a
986          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeCopyJob">AWS
987          * API Reference</a></p>
988          *
989          * Queues the request into a thread executor and triggers associated callback when operation has finished.
990          */
991         virtual void DescribeCopyJobAsync(const Model::DescribeCopyJobRequest& request, const DescribeCopyJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
992 
993         /**
994          * <p>Returns the framework details for the specified
995          * <code>FrameworkName</code>.</p><p><h3>See Also:</h3>   <a
996          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeFramework">AWS
997          * API Reference</a></p>
998          */
999         virtual Model::DescribeFrameworkOutcome DescribeFramework(const Model::DescribeFrameworkRequest& request) const;
1000 
1001         /**
1002          * <p>Returns the framework details for the specified
1003          * <code>FrameworkName</code>.</p><p><h3>See Also:</h3>   <a
1004          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeFramework">AWS
1005          * API Reference</a></p>
1006          *
1007          * returns a future to the operation so that it can be executed in parallel to other requests.
1008          */
1009         virtual Model::DescribeFrameworkOutcomeCallable DescribeFrameworkCallable(const Model::DescribeFrameworkRequest& request) const;
1010 
1011         /**
1012          * <p>Returns the framework details for the specified
1013          * <code>FrameworkName</code>.</p><p><h3>See Also:</h3>   <a
1014          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeFramework">AWS
1015          * API Reference</a></p>
1016          *
1017          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1018          */
1019         virtual void DescribeFrameworkAsync(const Model::DescribeFrameworkRequest& request, const DescribeFrameworkResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1020 
1021         /**
1022          * <p>Describes whether the Amazon Web Services account is opted in to
1023          * cross-account backup. Returns an error if the account is not a member of an
1024          * Organizations organization. Example: <code>describe-global-settings --region
1025          * us-west-2</code> </p><p><h3>See Also:</h3>   <a
1026          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeGlobalSettings">AWS
1027          * API Reference</a></p>
1028          */
1029         virtual Model::DescribeGlobalSettingsOutcome DescribeGlobalSettings(const Model::DescribeGlobalSettingsRequest& request) const;
1030 
1031         /**
1032          * <p>Describes whether the Amazon Web Services account is opted in to
1033          * cross-account backup. Returns an error if the account is not a member of an
1034          * Organizations organization. Example: <code>describe-global-settings --region
1035          * us-west-2</code> </p><p><h3>See Also:</h3>   <a
1036          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeGlobalSettings">AWS
1037          * API Reference</a></p>
1038          *
1039          * returns a future to the operation so that it can be executed in parallel to other requests.
1040          */
1041         virtual Model::DescribeGlobalSettingsOutcomeCallable DescribeGlobalSettingsCallable(const Model::DescribeGlobalSettingsRequest& request) const;
1042 
1043         /**
1044          * <p>Describes whether the Amazon Web Services account is opted in to
1045          * cross-account backup. Returns an error if the account is not a member of an
1046          * Organizations organization. Example: <code>describe-global-settings --region
1047          * us-west-2</code> </p><p><h3>See Also:</h3>   <a
1048          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeGlobalSettings">AWS
1049          * API Reference</a></p>
1050          *
1051          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1052          */
1053         virtual void DescribeGlobalSettingsAsync(const Model::DescribeGlobalSettingsRequest& request, const DescribeGlobalSettingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1054 
1055         /**
1056          * <p>Returns information about a saved resource, including the last time it was
1057          * backed up, its Amazon Resource Name (ARN), and the Amazon Web Services service
1058          * type of the saved resource.</p><p><h3>See Also:</h3>   <a
1059          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeProtectedResource">AWS
1060          * API Reference</a></p>
1061          */
1062         virtual Model::DescribeProtectedResourceOutcome DescribeProtectedResource(const Model::DescribeProtectedResourceRequest& request) const;
1063 
1064         /**
1065          * <p>Returns information about a saved resource, including the last time it was
1066          * backed up, its Amazon Resource Name (ARN), and the Amazon Web Services service
1067          * type of the saved resource.</p><p><h3>See Also:</h3>   <a
1068          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeProtectedResource">AWS
1069          * API Reference</a></p>
1070          *
1071          * returns a future to the operation so that it can be executed in parallel to other requests.
1072          */
1073         virtual Model::DescribeProtectedResourceOutcomeCallable DescribeProtectedResourceCallable(const Model::DescribeProtectedResourceRequest& request) const;
1074 
1075         /**
1076          * <p>Returns information about a saved resource, including the last time it was
1077          * backed up, its Amazon Resource Name (ARN), and the Amazon Web Services service
1078          * type of the saved resource.</p><p><h3>See Also:</h3>   <a
1079          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeProtectedResource">AWS
1080          * API Reference</a></p>
1081          *
1082          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1083          */
1084         virtual void DescribeProtectedResourceAsync(const Model::DescribeProtectedResourceRequest& request, const DescribeProtectedResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1085 
1086         /**
1087          * <p>Returns metadata associated with a recovery point, including ID, status,
1088          * encryption, and lifecycle.</p><p><h3>See Also:</h3>   <a
1089          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeRecoveryPoint">AWS
1090          * API Reference</a></p>
1091          */
1092         virtual Model::DescribeRecoveryPointOutcome DescribeRecoveryPoint(const Model::DescribeRecoveryPointRequest& request) const;
1093 
1094         /**
1095          * <p>Returns metadata associated with a recovery point, including ID, status,
1096          * encryption, and lifecycle.</p><p><h3>See Also:</h3>   <a
1097          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeRecoveryPoint">AWS
1098          * API Reference</a></p>
1099          *
1100          * returns a future to the operation so that it can be executed in parallel to other requests.
1101          */
1102         virtual Model::DescribeRecoveryPointOutcomeCallable DescribeRecoveryPointCallable(const Model::DescribeRecoveryPointRequest& request) const;
1103 
1104         /**
1105          * <p>Returns metadata associated with a recovery point, including ID, status,
1106          * encryption, and lifecycle.</p><p><h3>See Also:</h3>   <a
1107          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeRecoveryPoint">AWS
1108          * API Reference</a></p>
1109          *
1110          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1111          */
1112         virtual void DescribeRecoveryPointAsync(const Model::DescribeRecoveryPointRequest& request, const DescribeRecoveryPointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1113 
1114         /**
1115          * <p>Returns the current service opt-in settings for the Region. If service opt-in
1116          * is enabled for a service, Backup tries to protect that service's resources in
1117          * this Region, when the resource is included in an on-demand backup or scheduled
1118          * backup plan. Otherwise, Backup does not try to protect that service's resources
1119          * in this Region.</p><p><h3>See Also:</h3>   <a
1120          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeRegionSettings">AWS
1121          * API Reference</a></p>
1122          */
1123         virtual Model::DescribeRegionSettingsOutcome DescribeRegionSettings(const Model::DescribeRegionSettingsRequest& request) const;
1124 
1125         /**
1126          * <p>Returns the current service opt-in settings for the Region. If service opt-in
1127          * is enabled for a service, Backup tries to protect that service's resources in
1128          * this Region, when the resource is included in an on-demand backup or scheduled
1129          * backup plan. Otherwise, Backup does not try to protect that service's resources
1130          * in this Region.</p><p><h3>See Also:</h3>   <a
1131          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeRegionSettings">AWS
1132          * API Reference</a></p>
1133          *
1134          * returns a future to the operation so that it can be executed in parallel to other requests.
1135          */
1136         virtual Model::DescribeRegionSettingsOutcomeCallable DescribeRegionSettingsCallable(const Model::DescribeRegionSettingsRequest& request) const;
1137 
1138         /**
1139          * <p>Returns the current service opt-in settings for the Region. If service opt-in
1140          * is enabled for a service, Backup tries to protect that service's resources in
1141          * this Region, when the resource is included in an on-demand backup or scheduled
1142          * backup plan. Otherwise, Backup does not try to protect that service's resources
1143          * in this Region.</p><p><h3>See Also:</h3>   <a
1144          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeRegionSettings">AWS
1145          * API Reference</a></p>
1146          *
1147          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1148          */
1149         virtual void DescribeRegionSettingsAsync(const Model::DescribeRegionSettingsRequest& request, const DescribeRegionSettingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1150 
1151         /**
1152          * <p>Returns the details associated with creating a report as specified by its
1153          * <code>ReportJobId</code>.</p><p><h3>See Also:</h3>   <a
1154          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeReportJob">AWS
1155          * API Reference</a></p>
1156          */
1157         virtual Model::DescribeReportJobOutcome DescribeReportJob(const Model::DescribeReportJobRequest& request) const;
1158 
1159         /**
1160          * <p>Returns the details associated with creating a report as specified by its
1161          * <code>ReportJobId</code>.</p><p><h3>See Also:</h3>   <a
1162          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeReportJob">AWS
1163          * API Reference</a></p>
1164          *
1165          * returns a future to the operation so that it can be executed in parallel to other requests.
1166          */
1167         virtual Model::DescribeReportJobOutcomeCallable DescribeReportJobCallable(const Model::DescribeReportJobRequest& request) const;
1168 
1169         /**
1170          * <p>Returns the details associated with creating a report as specified by its
1171          * <code>ReportJobId</code>.</p><p><h3>See Also:</h3>   <a
1172          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeReportJob">AWS
1173          * API Reference</a></p>
1174          *
1175          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1176          */
1177         virtual void DescribeReportJobAsync(const Model::DescribeReportJobRequest& request, const DescribeReportJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1178 
1179         /**
1180          * <p>Returns a list of all report plans for an Amazon Web Services account and
1181          * Amazon Web Services Region.</p><p><h3>See Also:</h3>   <a
1182          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeReportPlan">AWS
1183          * API Reference</a></p>
1184          */
1185         virtual Model::DescribeReportPlanOutcome DescribeReportPlan(const Model::DescribeReportPlanRequest& request) const;
1186 
1187         /**
1188          * <p>Returns a list of all report plans for an Amazon Web Services account and
1189          * Amazon Web Services Region.</p><p><h3>See Also:</h3>   <a
1190          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeReportPlan">AWS
1191          * API Reference</a></p>
1192          *
1193          * returns a future to the operation so that it can be executed in parallel to other requests.
1194          */
1195         virtual Model::DescribeReportPlanOutcomeCallable DescribeReportPlanCallable(const Model::DescribeReportPlanRequest& request) const;
1196 
1197         /**
1198          * <p>Returns a list of all report plans for an Amazon Web Services account and
1199          * Amazon Web Services Region.</p><p><h3>See Also:</h3>   <a
1200          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeReportPlan">AWS
1201          * API Reference</a></p>
1202          *
1203          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1204          */
1205         virtual void DescribeReportPlanAsync(const Model::DescribeReportPlanRequest& request, const DescribeReportPlanResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1206 
1207         /**
1208          * <p>Returns metadata associated with a restore job that is specified by a job
1209          * ID.</p><p><h3>See Also:</h3>   <a
1210          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeRestoreJob">AWS
1211          * API Reference</a></p>
1212          */
1213         virtual Model::DescribeRestoreJobOutcome DescribeRestoreJob(const Model::DescribeRestoreJobRequest& request) const;
1214 
1215         /**
1216          * <p>Returns metadata associated with a restore job that is specified by a job
1217          * ID.</p><p><h3>See Also:</h3>   <a
1218          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeRestoreJob">AWS
1219          * API Reference</a></p>
1220          *
1221          * returns a future to the operation so that it can be executed in parallel to other requests.
1222          */
1223         virtual Model::DescribeRestoreJobOutcomeCallable DescribeRestoreJobCallable(const Model::DescribeRestoreJobRequest& request) const;
1224 
1225         /**
1226          * <p>Returns metadata associated with a restore job that is specified by a job
1227          * ID.</p><p><h3>See Also:</h3>   <a
1228          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DescribeRestoreJob">AWS
1229          * API Reference</a></p>
1230          *
1231          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1232          */
1233         virtual void DescribeRestoreJobAsync(const Model::DescribeRestoreJobRequest& request, const DescribeRestoreJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1234 
1235         /**
1236          * <p>Deletes the specified continuous backup recovery point from Backup and
1237          * releases control of that continuous backup to the source service, such as Amazon
1238          * RDS. The source service will continue to create and retain continuous backups
1239          * using the lifecycle that you specified in your original backup plan.</p> <p>Does
1240          * not support snapshot backup recovery points.</p><p><h3>See Also:</h3>   <a
1241          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DisassociateRecoveryPoint">AWS
1242          * API Reference</a></p>
1243          */
1244         virtual Model::DisassociateRecoveryPointOutcome DisassociateRecoveryPoint(const Model::DisassociateRecoveryPointRequest& request) const;
1245 
1246         /**
1247          * <p>Deletes the specified continuous backup recovery point from Backup and
1248          * releases control of that continuous backup to the source service, such as Amazon
1249          * RDS. The source service will continue to create and retain continuous backups
1250          * using the lifecycle that you specified in your original backup plan.</p> <p>Does
1251          * not support snapshot backup recovery points.</p><p><h3>See Also:</h3>   <a
1252          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DisassociateRecoveryPoint">AWS
1253          * API Reference</a></p>
1254          *
1255          * returns a future to the operation so that it can be executed in parallel to other requests.
1256          */
1257         virtual Model::DisassociateRecoveryPointOutcomeCallable DisassociateRecoveryPointCallable(const Model::DisassociateRecoveryPointRequest& request) const;
1258 
1259         /**
1260          * <p>Deletes the specified continuous backup recovery point from Backup and
1261          * releases control of that continuous backup to the source service, such as Amazon
1262          * RDS. The source service will continue to create and retain continuous backups
1263          * using the lifecycle that you specified in your original backup plan.</p> <p>Does
1264          * not support snapshot backup recovery points.</p><p><h3>See Also:</h3>   <a
1265          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/DisassociateRecoveryPoint">AWS
1266          * API Reference</a></p>
1267          *
1268          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1269          */
1270         virtual void DisassociateRecoveryPointAsync(const Model::DisassociateRecoveryPointRequest& request, const DisassociateRecoveryPointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1271 
1272         /**
1273          * <p>Returns the backup plan that is specified by the plan ID as a backup
1274          * template.</p><p><h3>See Also:</h3>   <a
1275          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ExportBackupPlanTemplate">AWS
1276          * API Reference</a></p>
1277          */
1278         virtual Model::ExportBackupPlanTemplateOutcome ExportBackupPlanTemplate(const Model::ExportBackupPlanTemplateRequest& request) const;
1279 
1280         /**
1281          * <p>Returns the backup plan that is specified by the plan ID as a backup
1282          * template.</p><p><h3>See Also:</h3>   <a
1283          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ExportBackupPlanTemplate">AWS
1284          * API Reference</a></p>
1285          *
1286          * returns a future to the operation so that it can be executed in parallel to other requests.
1287          */
1288         virtual Model::ExportBackupPlanTemplateOutcomeCallable ExportBackupPlanTemplateCallable(const Model::ExportBackupPlanTemplateRequest& request) const;
1289 
1290         /**
1291          * <p>Returns the backup plan that is specified by the plan ID as a backup
1292          * template.</p><p><h3>See Also:</h3>   <a
1293          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ExportBackupPlanTemplate">AWS
1294          * API Reference</a></p>
1295          *
1296          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1297          */
1298         virtual void ExportBackupPlanTemplateAsync(const Model::ExportBackupPlanTemplateRequest& request, const ExportBackupPlanTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1299 
1300         /**
1301          * <p>Returns <code>BackupPlan</code> details for the specified
1302          * <code>BackupPlanId</code>. The details are the body of a backup plan in JSON
1303          * format, in addition to plan metadata.</p><p><h3>See Also:</h3>   <a
1304          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupPlan">AWS
1305          * API Reference</a></p>
1306          */
1307         virtual Model::GetBackupPlanOutcome GetBackupPlan(const Model::GetBackupPlanRequest& request) const;
1308 
1309         /**
1310          * <p>Returns <code>BackupPlan</code> details for the specified
1311          * <code>BackupPlanId</code>. The details are the body of a backup plan in JSON
1312          * format, in addition to plan metadata.</p><p><h3>See Also:</h3>   <a
1313          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupPlan">AWS
1314          * API Reference</a></p>
1315          *
1316          * returns a future to the operation so that it can be executed in parallel to other requests.
1317          */
1318         virtual Model::GetBackupPlanOutcomeCallable GetBackupPlanCallable(const Model::GetBackupPlanRequest& request) const;
1319 
1320         /**
1321          * <p>Returns <code>BackupPlan</code> details for the specified
1322          * <code>BackupPlanId</code>. The details are the body of a backup plan in JSON
1323          * format, in addition to plan metadata.</p><p><h3>See Also:</h3>   <a
1324          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupPlan">AWS
1325          * API Reference</a></p>
1326          *
1327          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1328          */
1329         virtual void GetBackupPlanAsync(const Model::GetBackupPlanRequest& request, const GetBackupPlanResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1330 
1331         /**
1332          * <p>Returns a valid JSON document specifying a backup plan or an
1333          * error.</p><p><h3>See Also:</h3>   <a
1334          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupPlanFromJSON">AWS
1335          * API Reference</a></p>
1336          */
1337         virtual Model::GetBackupPlanFromJSONOutcome GetBackupPlanFromJSON(const Model::GetBackupPlanFromJSONRequest& request) const;
1338 
1339         /**
1340          * <p>Returns a valid JSON document specifying a backup plan or an
1341          * error.</p><p><h3>See Also:</h3>   <a
1342          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupPlanFromJSON">AWS
1343          * API Reference</a></p>
1344          *
1345          * returns a future to the operation so that it can be executed in parallel to other requests.
1346          */
1347         virtual Model::GetBackupPlanFromJSONOutcomeCallable GetBackupPlanFromJSONCallable(const Model::GetBackupPlanFromJSONRequest& request) const;
1348 
1349         /**
1350          * <p>Returns a valid JSON document specifying a backup plan or an
1351          * error.</p><p><h3>See Also:</h3>   <a
1352          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupPlanFromJSON">AWS
1353          * API Reference</a></p>
1354          *
1355          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1356          */
1357         virtual void GetBackupPlanFromJSONAsync(const Model::GetBackupPlanFromJSONRequest& request, const GetBackupPlanFromJSONResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1358 
1359         /**
1360          * <p>Returns the template specified by its <code>templateId</code> as a backup
1361          * plan.</p><p><h3>See Also:</h3>   <a
1362          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupPlanFromTemplate">AWS
1363          * API Reference</a></p>
1364          */
1365         virtual Model::GetBackupPlanFromTemplateOutcome GetBackupPlanFromTemplate(const Model::GetBackupPlanFromTemplateRequest& request) const;
1366 
1367         /**
1368          * <p>Returns the template specified by its <code>templateId</code> as a backup
1369          * plan.</p><p><h3>See Also:</h3>   <a
1370          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupPlanFromTemplate">AWS
1371          * API Reference</a></p>
1372          *
1373          * returns a future to the operation so that it can be executed in parallel to other requests.
1374          */
1375         virtual Model::GetBackupPlanFromTemplateOutcomeCallable GetBackupPlanFromTemplateCallable(const Model::GetBackupPlanFromTemplateRequest& request) const;
1376 
1377         /**
1378          * <p>Returns the template specified by its <code>templateId</code> as a backup
1379          * plan.</p><p><h3>See Also:</h3>   <a
1380          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupPlanFromTemplate">AWS
1381          * API Reference</a></p>
1382          *
1383          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1384          */
1385         virtual void GetBackupPlanFromTemplateAsync(const Model::GetBackupPlanFromTemplateRequest& request, const GetBackupPlanFromTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1386 
1387         /**
1388          * <p>Returns selection metadata and a document in JSON format that specifies a
1389          * list of resources that are associated with a backup plan.</p><p><h3>See
1390          * Also:</h3>   <a
1391          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupSelection">AWS
1392          * API Reference</a></p>
1393          */
1394         virtual Model::GetBackupSelectionOutcome GetBackupSelection(const Model::GetBackupSelectionRequest& request) const;
1395 
1396         /**
1397          * <p>Returns selection metadata and a document in JSON format that specifies a
1398          * list of resources that are associated with a backup plan.</p><p><h3>See
1399          * Also:</h3>   <a
1400          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupSelection">AWS
1401          * API Reference</a></p>
1402          *
1403          * returns a future to the operation so that it can be executed in parallel to other requests.
1404          */
1405         virtual Model::GetBackupSelectionOutcomeCallable GetBackupSelectionCallable(const Model::GetBackupSelectionRequest& request) const;
1406 
1407         /**
1408          * <p>Returns selection metadata and a document in JSON format that specifies a
1409          * list of resources that are associated with a backup plan.</p><p><h3>See
1410          * Also:</h3>   <a
1411          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupSelection">AWS
1412          * API Reference</a></p>
1413          *
1414          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1415          */
1416         virtual void GetBackupSelectionAsync(const Model::GetBackupSelectionRequest& request, const GetBackupSelectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1417 
1418         /**
1419          * <p>Returns the access policy document that is associated with the named backup
1420          * vault.</p><p><h3>See Also:</h3>   <a
1421          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupVaultAccessPolicy">AWS
1422          * API Reference</a></p>
1423          */
1424         virtual Model::GetBackupVaultAccessPolicyOutcome GetBackupVaultAccessPolicy(const Model::GetBackupVaultAccessPolicyRequest& request) const;
1425 
1426         /**
1427          * <p>Returns the access policy document that is associated with the named backup
1428          * vault.</p><p><h3>See Also:</h3>   <a
1429          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupVaultAccessPolicy">AWS
1430          * API Reference</a></p>
1431          *
1432          * returns a future to the operation so that it can be executed in parallel to other requests.
1433          */
1434         virtual Model::GetBackupVaultAccessPolicyOutcomeCallable GetBackupVaultAccessPolicyCallable(const Model::GetBackupVaultAccessPolicyRequest& request) const;
1435 
1436         /**
1437          * <p>Returns the access policy document that is associated with the named backup
1438          * vault.</p><p><h3>See Also:</h3>   <a
1439          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupVaultAccessPolicy">AWS
1440          * API Reference</a></p>
1441          *
1442          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1443          */
1444         virtual void GetBackupVaultAccessPolicyAsync(const Model::GetBackupVaultAccessPolicyRequest& request, const GetBackupVaultAccessPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1445 
1446         /**
1447          * <p>Returns event notifications for the specified backup vault.</p><p><h3>See
1448          * Also:</h3>   <a
1449          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupVaultNotifications">AWS
1450          * API Reference</a></p>
1451          */
1452         virtual Model::GetBackupVaultNotificationsOutcome GetBackupVaultNotifications(const Model::GetBackupVaultNotificationsRequest& request) const;
1453 
1454         /**
1455          * <p>Returns event notifications for the specified backup vault.</p><p><h3>See
1456          * Also:</h3>   <a
1457          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupVaultNotifications">AWS
1458          * API Reference</a></p>
1459          *
1460          * returns a future to the operation so that it can be executed in parallel to other requests.
1461          */
1462         virtual Model::GetBackupVaultNotificationsOutcomeCallable GetBackupVaultNotificationsCallable(const Model::GetBackupVaultNotificationsRequest& request) const;
1463 
1464         /**
1465          * <p>Returns event notifications for the specified backup vault.</p><p><h3>See
1466          * Also:</h3>   <a
1467          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetBackupVaultNotifications">AWS
1468          * API Reference</a></p>
1469          *
1470          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1471          */
1472         virtual void GetBackupVaultNotificationsAsync(const Model::GetBackupVaultNotificationsRequest& request, const GetBackupVaultNotificationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1473 
1474         /**
1475          * <p>Returns a set of metadata key-value pairs that were used to create the
1476          * backup.</p><p><h3>See Also:</h3>   <a
1477          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetRecoveryPointRestoreMetadata">AWS
1478          * API Reference</a></p>
1479          */
1480         virtual Model::GetRecoveryPointRestoreMetadataOutcome GetRecoveryPointRestoreMetadata(const Model::GetRecoveryPointRestoreMetadataRequest& request) const;
1481 
1482         /**
1483          * <p>Returns a set of metadata key-value pairs that were used to create the
1484          * backup.</p><p><h3>See Also:</h3>   <a
1485          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetRecoveryPointRestoreMetadata">AWS
1486          * API Reference</a></p>
1487          *
1488          * returns a future to the operation so that it can be executed in parallel to other requests.
1489          */
1490         virtual Model::GetRecoveryPointRestoreMetadataOutcomeCallable GetRecoveryPointRestoreMetadataCallable(const Model::GetRecoveryPointRestoreMetadataRequest& request) const;
1491 
1492         /**
1493          * <p>Returns a set of metadata key-value pairs that were used to create the
1494          * backup.</p><p><h3>See Also:</h3>   <a
1495          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetRecoveryPointRestoreMetadata">AWS
1496          * API Reference</a></p>
1497          *
1498          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1499          */
1500         virtual void GetRecoveryPointRestoreMetadataAsync(const Model::GetRecoveryPointRestoreMetadataRequest& request, const GetRecoveryPointRestoreMetadataResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1501 
1502         /**
1503          * <p>Returns the Amazon Web Services resource types supported by
1504          * Backup.</p><p><h3>See Also:</h3>   <a
1505          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetSupportedResourceTypes">AWS
1506          * API Reference</a></p>
1507          */
1508         virtual Model::GetSupportedResourceTypesOutcome GetSupportedResourceTypes() const;
1509 
1510         /**
1511          * <p>Returns the Amazon Web Services resource types supported by
1512          * Backup.</p><p><h3>See Also:</h3>   <a
1513          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetSupportedResourceTypes">AWS
1514          * API Reference</a></p>
1515          *
1516          * returns a future to the operation so that it can be executed in parallel to other requests.
1517          */
1518         virtual Model::GetSupportedResourceTypesOutcomeCallable GetSupportedResourceTypesCallable() const;
1519 
1520         /**
1521          * <p>Returns the Amazon Web Services resource types supported by
1522          * Backup.</p><p><h3>See Also:</h3>   <a
1523          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/GetSupportedResourceTypes">AWS
1524          * API Reference</a></p>
1525          *
1526          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1527          */
1528         virtual void GetSupportedResourceTypesAsync(const GetSupportedResourceTypesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1529         /**
1530          * <p>Returns a list of existing backup jobs for an authenticated account for the
1531          * last 30 days. For a longer period of time, consider using these <a
1532          * href="https://docs.aws.amazon.com/aws-backup/latest/devguide/monitoring.html">monitoring
1533          * tools</a>.</p><p><h3>See Also:</h3>   <a
1534          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupJobs">AWS
1535          * API Reference</a></p>
1536          */
1537         virtual Model::ListBackupJobsOutcome ListBackupJobs(const Model::ListBackupJobsRequest& request) const;
1538 
1539         /**
1540          * <p>Returns a list of existing backup jobs for an authenticated account for the
1541          * last 30 days. For a longer period of time, consider using these <a
1542          * href="https://docs.aws.amazon.com/aws-backup/latest/devguide/monitoring.html">monitoring
1543          * tools</a>.</p><p><h3>See Also:</h3>   <a
1544          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupJobs">AWS
1545          * API Reference</a></p>
1546          *
1547          * returns a future to the operation so that it can be executed in parallel to other requests.
1548          */
1549         virtual Model::ListBackupJobsOutcomeCallable ListBackupJobsCallable(const Model::ListBackupJobsRequest& request) const;
1550 
1551         /**
1552          * <p>Returns a list of existing backup jobs for an authenticated account for the
1553          * last 30 days. For a longer period of time, consider using these <a
1554          * href="https://docs.aws.amazon.com/aws-backup/latest/devguide/monitoring.html">monitoring
1555          * tools</a>.</p><p><h3>See Also:</h3>   <a
1556          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupJobs">AWS
1557          * API Reference</a></p>
1558          *
1559          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1560          */
1561         virtual void ListBackupJobsAsync(const Model::ListBackupJobsRequest& request, const ListBackupJobsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1562 
1563         /**
1564          * <p>Returns metadata of your saved backup plan templates, including the template
1565          * ID, name, and the creation and deletion dates.</p><p><h3>See Also:</h3>   <a
1566          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupPlanTemplates">AWS
1567          * API Reference</a></p>
1568          */
1569         virtual Model::ListBackupPlanTemplatesOutcome ListBackupPlanTemplates(const Model::ListBackupPlanTemplatesRequest& request) const;
1570 
1571         /**
1572          * <p>Returns metadata of your saved backup plan templates, including the template
1573          * ID, name, and the creation and deletion dates.</p><p><h3>See Also:</h3>   <a
1574          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupPlanTemplates">AWS
1575          * API Reference</a></p>
1576          *
1577          * returns a future to the operation so that it can be executed in parallel to other requests.
1578          */
1579         virtual Model::ListBackupPlanTemplatesOutcomeCallable ListBackupPlanTemplatesCallable(const Model::ListBackupPlanTemplatesRequest& request) const;
1580 
1581         /**
1582          * <p>Returns metadata of your saved backup plan templates, including the template
1583          * ID, name, and the creation and deletion dates.</p><p><h3>See Also:</h3>   <a
1584          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupPlanTemplates">AWS
1585          * API Reference</a></p>
1586          *
1587          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1588          */
1589         virtual void ListBackupPlanTemplatesAsync(const Model::ListBackupPlanTemplatesRequest& request, const ListBackupPlanTemplatesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1590 
1591         /**
1592          * <p>Returns version metadata of your backup plans, including Amazon Resource
1593          * Names (ARNs), backup plan IDs, creation and deletion dates, plan names, and
1594          * version IDs.</p><p><h3>See Also:</h3>   <a
1595          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupPlanVersions">AWS
1596          * API Reference</a></p>
1597          */
1598         virtual Model::ListBackupPlanVersionsOutcome ListBackupPlanVersions(const Model::ListBackupPlanVersionsRequest& request) const;
1599 
1600         /**
1601          * <p>Returns version metadata of your backup plans, including Amazon Resource
1602          * Names (ARNs), backup plan IDs, creation and deletion dates, plan names, and
1603          * version IDs.</p><p><h3>See Also:</h3>   <a
1604          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupPlanVersions">AWS
1605          * API Reference</a></p>
1606          *
1607          * returns a future to the operation so that it can be executed in parallel to other requests.
1608          */
1609         virtual Model::ListBackupPlanVersionsOutcomeCallable ListBackupPlanVersionsCallable(const Model::ListBackupPlanVersionsRequest& request) const;
1610 
1611         /**
1612          * <p>Returns version metadata of your backup plans, including Amazon Resource
1613          * Names (ARNs), backup plan IDs, creation and deletion dates, plan names, and
1614          * version IDs.</p><p><h3>See Also:</h3>   <a
1615          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupPlanVersions">AWS
1616          * API Reference</a></p>
1617          *
1618          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1619          */
1620         virtual void ListBackupPlanVersionsAsync(const Model::ListBackupPlanVersionsRequest& request, const ListBackupPlanVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1621 
1622         /**
1623          * <p>Returns a list of all active backup plans for an authenticated account. The
1624          * list contains information such as Amazon Resource Names (ARNs), plan IDs,
1625          * creation and deletion dates, version IDs, plan names, and creator request
1626          * IDs.</p><p><h3>See Also:</h3>   <a
1627          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupPlans">AWS
1628          * API Reference</a></p>
1629          */
1630         virtual Model::ListBackupPlansOutcome ListBackupPlans(const Model::ListBackupPlansRequest& request) const;
1631 
1632         /**
1633          * <p>Returns a list of all active backup plans for an authenticated account. The
1634          * list contains information such as Amazon Resource Names (ARNs), plan IDs,
1635          * creation and deletion dates, version IDs, plan names, and creator request
1636          * IDs.</p><p><h3>See Also:</h3>   <a
1637          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupPlans">AWS
1638          * API Reference</a></p>
1639          *
1640          * returns a future to the operation so that it can be executed in parallel to other requests.
1641          */
1642         virtual Model::ListBackupPlansOutcomeCallable ListBackupPlansCallable(const Model::ListBackupPlansRequest& request) const;
1643 
1644         /**
1645          * <p>Returns a list of all active backup plans for an authenticated account. The
1646          * list contains information such as Amazon Resource Names (ARNs), plan IDs,
1647          * creation and deletion dates, version IDs, plan names, and creator request
1648          * IDs.</p><p><h3>See Also:</h3>   <a
1649          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupPlans">AWS
1650          * API Reference</a></p>
1651          *
1652          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1653          */
1654         virtual void ListBackupPlansAsync(const Model::ListBackupPlansRequest& request, const ListBackupPlansResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1655 
1656         /**
1657          * <p>Returns an array containing metadata of the resources associated with the
1658          * target backup plan.</p><p><h3>See Also:</h3>   <a
1659          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupSelections">AWS
1660          * API Reference</a></p>
1661          */
1662         virtual Model::ListBackupSelectionsOutcome ListBackupSelections(const Model::ListBackupSelectionsRequest& request) const;
1663 
1664         /**
1665          * <p>Returns an array containing metadata of the resources associated with the
1666          * target backup plan.</p><p><h3>See Also:</h3>   <a
1667          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupSelections">AWS
1668          * API Reference</a></p>
1669          *
1670          * returns a future to the operation so that it can be executed in parallel to other requests.
1671          */
1672         virtual Model::ListBackupSelectionsOutcomeCallable ListBackupSelectionsCallable(const Model::ListBackupSelectionsRequest& request) const;
1673 
1674         /**
1675          * <p>Returns an array containing metadata of the resources associated with the
1676          * target backup plan.</p><p><h3>See Also:</h3>   <a
1677          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupSelections">AWS
1678          * API Reference</a></p>
1679          *
1680          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1681          */
1682         virtual void ListBackupSelectionsAsync(const Model::ListBackupSelectionsRequest& request, const ListBackupSelectionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1683 
1684         /**
1685          * <p>Returns a list of recovery point storage containers along with information
1686          * about them.</p><p><h3>See Also:</h3>   <a
1687          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupVaults">AWS
1688          * API Reference</a></p>
1689          */
1690         virtual Model::ListBackupVaultsOutcome ListBackupVaults(const Model::ListBackupVaultsRequest& request) const;
1691 
1692         /**
1693          * <p>Returns a list of recovery point storage containers along with information
1694          * about them.</p><p><h3>See Also:</h3>   <a
1695          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupVaults">AWS
1696          * API Reference</a></p>
1697          *
1698          * returns a future to the operation so that it can be executed in parallel to other requests.
1699          */
1700         virtual Model::ListBackupVaultsOutcomeCallable ListBackupVaultsCallable(const Model::ListBackupVaultsRequest& request) const;
1701 
1702         /**
1703          * <p>Returns a list of recovery point storage containers along with information
1704          * about them.</p><p><h3>See Also:</h3>   <a
1705          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListBackupVaults">AWS
1706          * API Reference</a></p>
1707          *
1708          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1709          */
1710         virtual void ListBackupVaultsAsync(const Model::ListBackupVaultsRequest& request, const ListBackupVaultsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1711 
1712         /**
1713          * <p>Returns metadata about your copy jobs.</p><p><h3>See Also:</h3>   <a
1714          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListCopyJobs">AWS
1715          * API Reference</a></p>
1716          */
1717         virtual Model::ListCopyJobsOutcome ListCopyJobs(const Model::ListCopyJobsRequest& request) const;
1718 
1719         /**
1720          * <p>Returns metadata about your copy jobs.</p><p><h3>See Also:</h3>   <a
1721          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListCopyJobs">AWS
1722          * API Reference</a></p>
1723          *
1724          * returns a future to the operation so that it can be executed in parallel to other requests.
1725          */
1726         virtual Model::ListCopyJobsOutcomeCallable ListCopyJobsCallable(const Model::ListCopyJobsRequest& request) const;
1727 
1728         /**
1729          * <p>Returns metadata about your copy jobs.</p><p><h3>See Also:</h3>   <a
1730          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListCopyJobs">AWS
1731          * API Reference</a></p>
1732          *
1733          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1734          */
1735         virtual void ListCopyJobsAsync(const Model::ListCopyJobsRequest& request, const ListCopyJobsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1736 
1737         /**
1738          * <p>Returns a list of all frameworks for an Amazon Web Services account and
1739          * Amazon Web Services Region.</p><p><h3>See Also:</h3>   <a
1740          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListFrameworks">AWS
1741          * API Reference</a></p>
1742          */
1743         virtual Model::ListFrameworksOutcome ListFrameworks(const Model::ListFrameworksRequest& request) const;
1744 
1745         /**
1746          * <p>Returns a list of all frameworks for an Amazon Web Services account and
1747          * Amazon Web Services Region.</p><p><h3>See Also:</h3>   <a
1748          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListFrameworks">AWS
1749          * API Reference</a></p>
1750          *
1751          * returns a future to the operation so that it can be executed in parallel to other requests.
1752          */
1753         virtual Model::ListFrameworksOutcomeCallable ListFrameworksCallable(const Model::ListFrameworksRequest& request) const;
1754 
1755         /**
1756          * <p>Returns a list of all frameworks for an Amazon Web Services account and
1757          * Amazon Web Services Region.</p><p><h3>See Also:</h3>   <a
1758          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListFrameworks">AWS
1759          * API Reference</a></p>
1760          *
1761          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1762          */
1763         virtual void ListFrameworksAsync(const Model::ListFrameworksRequest& request, const ListFrameworksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1764 
1765         /**
1766          * <p>Returns an array of resources successfully backed up by Backup, including the
1767          * time the resource was saved, an Amazon Resource Name (ARN) of the resource, and
1768          * a resource type.</p><p><h3>See Also:</h3>   <a
1769          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListProtectedResources">AWS
1770          * API Reference</a></p>
1771          */
1772         virtual Model::ListProtectedResourcesOutcome ListProtectedResources(const Model::ListProtectedResourcesRequest& request) const;
1773 
1774         /**
1775          * <p>Returns an array of resources successfully backed up by Backup, including the
1776          * time the resource was saved, an Amazon Resource Name (ARN) of the resource, and
1777          * a resource type.</p><p><h3>See Also:</h3>   <a
1778          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListProtectedResources">AWS
1779          * API Reference</a></p>
1780          *
1781          * returns a future to the operation so that it can be executed in parallel to other requests.
1782          */
1783         virtual Model::ListProtectedResourcesOutcomeCallable ListProtectedResourcesCallable(const Model::ListProtectedResourcesRequest& request) const;
1784 
1785         /**
1786          * <p>Returns an array of resources successfully backed up by Backup, including the
1787          * time the resource was saved, an Amazon Resource Name (ARN) of the resource, and
1788          * a resource type.</p><p><h3>See Also:</h3>   <a
1789          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListProtectedResources">AWS
1790          * API Reference</a></p>
1791          *
1792          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1793          */
1794         virtual void ListProtectedResourcesAsync(const Model::ListProtectedResourcesRequest& request, const ListProtectedResourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1795 
1796         /**
1797          * <p>Returns detailed information about the recovery points stored in a backup
1798          * vault.</p><p><h3>See Also:</h3>   <a
1799          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListRecoveryPointsByBackupVault">AWS
1800          * API Reference</a></p>
1801          */
1802         virtual Model::ListRecoveryPointsByBackupVaultOutcome ListRecoveryPointsByBackupVault(const Model::ListRecoveryPointsByBackupVaultRequest& request) const;
1803 
1804         /**
1805          * <p>Returns detailed information about the recovery points stored in a backup
1806          * vault.</p><p><h3>See Also:</h3>   <a
1807          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListRecoveryPointsByBackupVault">AWS
1808          * API Reference</a></p>
1809          *
1810          * returns a future to the operation so that it can be executed in parallel to other requests.
1811          */
1812         virtual Model::ListRecoveryPointsByBackupVaultOutcomeCallable ListRecoveryPointsByBackupVaultCallable(const Model::ListRecoveryPointsByBackupVaultRequest& request) const;
1813 
1814         /**
1815          * <p>Returns detailed information about the recovery points stored in a backup
1816          * vault.</p><p><h3>See Also:</h3>   <a
1817          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListRecoveryPointsByBackupVault">AWS
1818          * API Reference</a></p>
1819          *
1820          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1821          */
1822         virtual void ListRecoveryPointsByBackupVaultAsync(const Model::ListRecoveryPointsByBackupVaultRequest& request, const ListRecoveryPointsByBackupVaultResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1823 
1824         /**
1825          * <p>Returns detailed information about all the recovery points of the type
1826          * specified by a resource Amazon Resource Name (ARN).</p>  <p>For Amazon EFS
1827          * and Amazon EC2, this action only lists recovery points created by Backup.</p>
1828          * <p><h3>See Also:</h3>   <a
1829          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListRecoveryPointsByResource">AWS
1830          * API Reference</a></p>
1831          */
1832         virtual Model::ListRecoveryPointsByResourceOutcome ListRecoveryPointsByResource(const Model::ListRecoveryPointsByResourceRequest& request) const;
1833 
1834         /**
1835          * <p>Returns detailed information about all the recovery points of the type
1836          * specified by a resource Amazon Resource Name (ARN).</p>  <p>For Amazon EFS
1837          * and Amazon EC2, this action only lists recovery points created by Backup.</p>
1838          * <p><h3>See Also:</h3>   <a
1839          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListRecoveryPointsByResource">AWS
1840          * API Reference</a></p>
1841          *
1842          * returns a future to the operation so that it can be executed in parallel to other requests.
1843          */
1844         virtual Model::ListRecoveryPointsByResourceOutcomeCallable ListRecoveryPointsByResourceCallable(const Model::ListRecoveryPointsByResourceRequest& request) const;
1845 
1846         /**
1847          * <p>Returns detailed information about all the recovery points of the type
1848          * specified by a resource Amazon Resource Name (ARN).</p>  <p>For Amazon EFS
1849          * and Amazon EC2, this action only lists recovery points created by Backup.</p>
1850          * <p><h3>See Also:</h3>   <a
1851          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListRecoveryPointsByResource">AWS
1852          * API Reference</a></p>
1853          *
1854          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1855          */
1856         virtual void ListRecoveryPointsByResourceAsync(const Model::ListRecoveryPointsByResourceRequest& request, const ListRecoveryPointsByResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1857 
1858         /**
1859          * <p>Returns details about your report jobs.</p><p><h3>See Also:</h3>   <a
1860          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListReportJobs">AWS
1861          * API Reference</a></p>
1862          */
1863         virtual Model::ListReportJobsOutcome ListReportJobs(const Model::ListReportJobsRequest& request) const;
1864 
1865         /**
1866          * <p>Returns details about your report jobs.</p><p><h3>See Also:</h3>   <a
1867          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListReportJobs">AWS
1868          * API Reference</a></p>
1869          *
1870          * returns a future to the operation so that it can be executed in parallel to other requests.
1871          */
1872         virtual Model::ListReportJobsOutcomeCallable ListReportJobsCallable(const Model::ListReportJobsRequest& request) const;
1873 
1874         /**
1875          * <p>Returns details about your report jobs.</p><p><h3>See Also:</h3>   <a
1876          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListReportJobs">AWS
1877          * API Reference</a></p>
1878          *
1879          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1880          */
1881         virtual void ListReportJobsAsync(const Model::ListReportJobsRequest& request, const ListReportJobsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1882 
1883         /**
1884          * <p>Returns a list of your report plans. For detailed information about a single
1885          * report plan, use <code>DescribeReportPlan</code>.</p><p><h3>See Also:</h3>   <a
1886          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListReportPlans">AWS
1887          * API Reference</a></p>
1888          */
1889         virtual Model::ListReportPlansOutcome ListReportPlans(const Model::ListReportPlansRequest& request) const;
1890 
1891         /**
1892          * <p>Returns a list of your report plans. For detailed information about a single
1893          * report plan, use <code>DescribeReportPlan</code>.</p><p><h3>See Also:</h3>   <a
1894          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListReportPlans">AWS
1895          * API Reference</a></p>
1896          *
1897          * returns a future to the operation so that it can be executed in parallel to other requests.
1898          */
1899         virtual Model::ListReportPlansOutcomeCallable ListReportPlansCallable(const Model::ListReportPlansRequest& request) const;
1900 
1901         /**
1902          * <p>Returns a list of your report plans. For detailed information about a single
1903          * report plan, use <code>DescribeReportPlan</code>.</p><p><h3>See Also:</h3>   <a
1904          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListReportPlans">AWS
1905          * API Reference</a></p>
1906          *
1907          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1908          */
1909         virtual void ListReportPlansAsync(const Model::ListReportPlansRequest& request, const ListReportPlansResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1910 
1911         /**
1912          * <p>Returns a list of jobs that Backup initiated to restore a saved resource,
1913          * including details about the recovery process.</p><p><h3>See Also:</h3>   <a
1914          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListRestoreJobs">AWS
1915          * API Reference</a></p>
1916          */
1917         virtual Model::ListRestoreJobsOutcome ListRestoreJobs(const Model::ListRestoreJobsRequest& request) const;
1918 
1919         /**
1920          * <p>Returns a list of jobs that Backup initiated to restore a saved resource,
1921          * including details about the recovery process.</p><p><h3>See Also:</h3>   <a
1922          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListRestoreJobs">AWS
1923          * API Reference</a></p>
1924          *
1925          * returns a future to the operation so that it can be executed in parallel to other requests.
1926          */
1927         virtual Model::ListRestoreJobsOutcomeCallable ListRestoreJobsCallable(const Model::ListRestoreJobsRequest& request) const;
1928 
1929         /**
1930          * <p>Returns a list of jobs that Backup initiated to restore a saved resource,
1931          * including details about the recovery process.</p><p><h3>See Also:</h3>   <a
1932          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListRestoreJobs">AWS
1933          * API Reference</a></p>
1934          *
1935          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1936          */
1937         virtual void ListRestoreJobsAsync(const Model::ListRestoreJobsRequest& request, const ListRestoreJobsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1938 
1939         /**
1940          * <p>Returns a list of key-value pairs assigned to a target recovery point, backup
1941          * plan, or backup vault.</p>  <p> <code>ListTags</code> are currently only
1942          * supported with Amazon EFS backups.</p> <p><h3>See Also:</h3>   <a
1943          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListTags">AWS API
1944          * Reference</a></p>
1945          */
1946         virtual Model::ListTagsOutcome ListTags(const Model::ListTagsRequest& request) const;
1947 
1948         /**
1949          * <p>Returns a list of key-value pairs assigned to a target recovery point, backup
1950          * plan, or backup vault.</p>  <p> <code>ListTags</code> are currently only
1951          * supported with Amazon EFS backups.</p> <p><h3>See Also:</h3>   <a
1952          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListTags">AWS API
1953          * Reference</a></p>
1954          *
1955          * returns a future to the operation so that it can be executed in parallel to other requests.
1956          */
1957         virtual Model::ListTagsOutcomeCallable ListTagsCallable(const Model::ListTagsRequest& request) const;
1958 
1959         /**
1960          * <p>Returns a list of key-value pairs assigned to a target recovery point, backup
1961          * plan, or backup vault.</p>  <p> <code>ListTags</code> are currently only
1962          * supported with Amazon EFS backups.</p> <p><h3>See Also:</h3>   <a
1963          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/ListTags">AWS API
1964          * Reference</a></p>
1965          *
1966          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1967          */
1968         virtual void ListTagsAsync(const Model::ListTagsRequest& request, const ListTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1969 
1970         /**
1971          * <p>Sets a resource-based policy that is used to manage access permissions on the
1972          * target backup vault. Requires a backup vault name and an access policy document
1973          * in JSON format.</p><p><h3>See Also:</h3>   <a
1974          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/PutBackupVaultAccessPolicy">AWS
1975          * API Reference</a></p>
1976          */
1977         virtual Model::PutBackupVaultAccessPolicyOutcome PutBackupVaultAccessPolicy(const Model::PutBackupVaultAccessPolicyRequest& request) const;
1978 
1979         /**
1980          * <p>Sets a resource-based policy that is used to manage access permissions on the
1981          * target backup vault. Requires a backup vault name and an access policy document
1982          * in JSON format.</p><p><h3>See Also:</h3>   <a
1983          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/PutBackupVaultAccessPolicy">AWS
1984          * API Reference</a></p>
1985          *
1986          * returns a future to the operation so that it can be executed in parallel to other requests.
1987          */
1988         virtual Model::PutBackupVaultAccessPolicyOutcomeCallable PutBackupVaultAccessPolicyCallable(const Model::PutBackupVaultAccessPolicyRequest& request) const;
1989 
1990         /**
1991          * <p>Sets a resource-based policy that is used to manage access permissions on the
1992          * target backup vault. Requires a backup vault name and an access policy document
1993          * in JSON format.</p><p><h3>See Also:</h3>   <a
1994          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/PutBackupVaultAccessPolicy">AWS
1995          * API Reference</a></p>
1996          *
1997          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1998          */
1999         virtual void PutBackupVaultAccessPolicyAsync(const Model::PutBackupVaultAccessPolicyRequest& request, const PutBackupVaultAccessPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2000 
2001         /**
2002          * <p>Applies Backup Vault Lock to a backup vault, preventing attempts to delete
2003          * any recovery point stored in or created in a backup vault. Vault Lock also
2004          * prevents attempts to update the lifecycle policy that controls the retention
2005          * period of any recovery point currently stored in a backup vault. If specified,
2006          * Vault Lock enforces a minimum and maximum retention period for future backup and
2007          * copy jobs that target a backup vault.</p><p><h3>See Also:</h3>   <a
2008          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/PutBackupVaultLockConfiguration">AWS
2009          * API Reference</a></p>
2010          */
2011         virtual Model::PutBackupVaultLockConfigurationOutcome PutBackupVaultLockConfiguration(const Model::PutBackupVaultLockConfigurationRequest& request) const;
2012 
2013         /**
2014          * <p>Applies Backup Vault Lock to a backup vault, preventing attempts to delete
2015          * any recovery point stored in or created in a backup vault. Vault Lock also
2016          * prevents attempts to update the lifecycle policy that controls the retention
2017          * period of any recovery point currently stored in a backup vault. If specified,
2018          * Vault Lock enforces a minimum and maximum retention period for future backup and
2019          * copy jobs that target a backup vault.</p><p><h3>See Also:</h3>   <a
2020          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/PutBackupVaultLockConfiguration">AWS
2021          * API Reference</a></p>
2022          *
2023          * returns a future to the operation so that it can be executed in parallel to other requests.
2024          */
2025         virtual Model::PutBackupVaultLockConfigurationOutcomeCallable PutBackupVaultLockConfigurationCallable(const Model::PutBackupVaultLockConfigurationRequest& request) const;
2026 
2027         /**
2028          * <p>Applies Backup Vault Lock to a backup vault, preventing attempts to delete
2029          * any recovery point stored in or created in a backup vault. Vault Lock also
2030          * prevents attempts to update the lifecycle policy that controls the retention
2031          * period of any recovery point currently stored in a backup vault. If specified,
2032          * Vault Lock enforces a minimum and maximum retention period for future backup and
2033          * copy jobs that target a backup vault.</p><p><h3>See Also:</h3>   <a
2034          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/PutBackupVaultLockConfiguration">AWS
2035          * API Reference</a></p>
2036          *
2037          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2038          */
2039         virtual void PutBackupVaultLockConfigurationAsync(const Model::PutBackupVaultLockConfigurationRequest& request, const PutBackupVaultLockConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2040 
2041         /**
2042          * <p>Turns on notifications on a backup vault for the specified topic and
2043          * events.</p><p><h3>See Also:</h3>   <a
2044          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/PutBackupVaultNotifications">AWS
2045          * API Reference</a></p>
2046          */
2047         virtual Model::PutBackupVaultNotificationsOutcome PutBackupVaultNotifications(const Model::PutBackupVaultNotificationsRequest& request) const;
2048 
2049         /**
2050          * <p>Turns on notifications on a backup vault for the specified topic and
2051          * events.</p><p><h3>See Also:</h3>   <a
2052          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/PutBackupVaultNotifications">AWS
2053          * API Reference</a></p>
2054          *
2055          * returns a future to the operation so that it can be executed in parallel to other requests.
2056          */
2057         virtual Model::PutBackupVaultNotificationsOutcomeCallable PutBackupVaultNotificationsCallable(const Model::PutBackupVaultNotificationsRequest& request) const;
2058 
2059         /**
2060          * <p>Turns on notifications on a backup vault for the specified topic and
2061          * events.</p><p><h3>See Also:</h3>   <a
2062          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/PutBackupVaultNotifications">AWS
2063          * API Reference</a></p>
2064          *
2065          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2066          */
2067         virtual void PutBackupVaultNotificationsAsync(const Model::PutBackupVaultNotificationsRequest& request, const PutBackupVaultNotificationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2068 
2069         /**
2070          * <p>Starts an on-demand backup job for the specified resource.</p><p><h3>See
2071          * Also:</h3>   <a
2072          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/StartBackupJob">AWS
2073          * API Reference</a></p>
2074          */
2075         virtual Model::StartBackupJobOutcome StartBackupJob(const Model::StartBackupJobRequest& request) const;
2076 
2077         /**
2078          * <p>Starts an on-demand backup job for the specified resource.</p><p><h3>See
2079          * Also:</h3>   <a
2080          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/StartBackupJob">AWS
2081          * API Reference</a></p>
2082          *
2083          * returns a future to the operation so that it can be executed in parallel to other requests.
2084          */
2085         virtual Model::StartBackupJobOutcomeCallable StartBackupJobCallable(const Model::StartBackupJobRequest& request) const;
2086 
2087         /**
2088          * <p>Starts an on-demand backup job for the specified resource.</p><p><h3>See
2089          * Also:</h3>   <a
2090          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/StartBackupJob">AWS
2091          * API Reference</a></p>
2092          *
2093          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2094          */
2095         virtual void StartBackupJobAsync(const Model::StartBackupJobRequest& request, const StartBackupJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2096 
2097         /**
2098          * <p>Starts a job to create a one-time copy of the specified resource.</p> <p>Does
2099          * not support continuous backups.</p><p><h3>See Also:</h3>   <a
2100          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/StartCopyJob">AWS
2101          * API Reference</a></p>
2102          */
2103         virtual Model::StartCopyJobOutcome StartCopyJob(const Model::StartCopyJobRequest& request) const;
2104 
2105         /**
2106          * <p>Starts a job to create a one-time copy of the specified resource.</p> <p>Does
2107          * not support continuous backups.</p><p><h3>See Also:</h3>   <a
2108          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/StartCopyJob">AWS
2109          * API Reference</a></p>
2110          *
2111          * returns a future to the operation so that it can be executed in parallel to other requests.
2112          */
2113         virtual Model::StartCopyJobOutcomeCallable StartCopyJobCallable(const Model::StartCopyJobRequest& request) const;
2114 
2115         /**
2116          * <p>Starts a job to create a one-time copy of the specified resource.</p> <p>Does
2117          * not support continuous backups.</p><p><h3>See Also:</h3>   <a
2118          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/StartCopyJob">AWS
2119          * API Reference</a></p>
2120          *
2121          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2122          */
2123         virtual void StartCopyJobAsync(const Model::StartCopyJobRequest& request, const StartCopyJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2124 
2125         /**
2126          * <p>Starts an on-demand report job for the specified report plan.</p><p><h3>See
2127          * Also:</h3>   <a
2128          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/StartReportJob">AWS
2129          * API Reference</a></p>
2130          */
2131         virtual Model::StartReportJobOutcome StartReportJob(const Model::StartReportJobRequest& request) const;
2132 
2133         /**
2134          * <p>Starts an on-demand report job for the specified report plan.</p><p><h3>See
2135          * Also:</h3>   <a
2136          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/StartReportJob">AWS
2137          * API Reference</a></p>
2138          *
2139          * returns a future to the operation so that it can be executed in parallel to other requests.
2140          */
2141         virtual Model::StartReportJobOutcomeCallable StartReportJobCallable(const Model::StartReportJobRequest& request) const;
2142 
2143         /**
2144          * <p>Starts an on-demand report job for the specified report plan.</p><p><h3>See
2145          * Also:</h3>   <a
2146          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/StartReportJob">AWS
2147          * API Reference</a></p>
2148          *
2149          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2150          */
2151         virtual void StartReportJobAsync(const Model::StartReportJobRequest& request, const StartReportJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2152 
2153         /**
2154          * <p>Recovers the saved resource identified by an Amazon Resource Name
2155          * (ARN).</p><p><h3>See Also:</h3>   <a
2156          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/StartRestoreJob">AWS
2157          * API Reference</a></p>
2158          */
2159         virtual Model::StartRestoreJobOutcome StartRestoreJob(const Model::StartRestoreJobRequest& request) const;
2160 
2161         /**
2162          * <p>Recovers the saved resource identified by an Amazon Resource Name
2163          * (ARN).</p><p><h3>See Also:</h3>   <a
2164          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/StartRestoreJob">AWS
2165          * API Reference</a></p>
2166          *
2167          * returns a future to the operation so that it can be executed in parallel to other requests.
2168          */
2169         virtual Model::StartRestoreJobOutcomeCallable StartRestoreJobCallable(const Model::StartRestoreJobRequest& request) const;
2170 
2171         /**
2172          * <p>Recovers the saved resource identified by an Amazon Resource Name
2173          * (ARN).</p><p><h3>See Also:</h3>   <a
2174          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/StartRestoreJob">AWS
2175          * API Reference</a></p>
2176          *
2177          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2178          */
2179         virtual void StartRestoreJobAsync(const Model::StartRestoreJobRequest& request, const StartRestoreJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2180 
2181         /**
2182          * <p>Attempts to cancel a job to create a one-time backup of a
2183          * resource.</p><p><h3>See Also:</h3>   <a
2184          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/StopBackupJob">AWS
2185          * API Reference</a></p>
2186          */
2187         virtual Model::StopBackupJobOutcome StopBackupJob(const Model::StopBackupJobRequest& request) const;
2188 
2189         /**
2190          * <p>Attempts to cancel a job to create a one-time backup of a
2191          * resource.</p><p><h3>See Also:</h3>   <a
2192          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/StopBackupJob">AWS
2193          * API Reference</a></p>
2194          *
2195          * returns a future to the operation so that it can be executed in parallel to other requests.
2196          */
2197         virtual Model::StopBackupJobOutcomeCallable StopBackupJobCallable(const Model::StopBackupJobRequest& request) const;
2198 
2199         /**
2200          * <p>Attempts to cancel a job to create a one-time backup of a
2201          * resource.</p><p><h3>See Also:</h3>   <a
2202          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/StopBackupJob">AWS
2203          * API Reference</a></p>
2204          *
2205          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2206          */
2207         virtual void StopBackupJobAsync(const Model::StopBackupJobRequest& request, const StopBackupJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2208 
2209         /**
2210          * <p>Assigns a set of key-value pairs to a recovery point, backup plan, or backup
2211          * vault identified by an Amazon Resource Name (ARN).</p><p><h3>See Also:</h3>   <a
2212          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/TagResource">AWS
2213          * API Reference</a></p>
2214          */
2215         virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const;
2216 
2217         /**
2218          * <p>Assigns a set of key-value pairs to a recovery point, backup plan, or backup
2219          * vault identified by an Amazon Resource Name (ARN).</p><p><h3>See Also:</h3>   <a
2220          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/TagResource">AWS
2221          * API Reference</a></p>
2222          *
2223          * returns a future to the operation so that it can be executed in parallel to other requests.
2224          */
2225         virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const;
2226 
2227         /**
2228          * <p>Assigns a set of key-value pairs to a recovery point, backup plan, or backup
2229          * vault identified by an Amazon Resource Name (ARN).</p><p><h3>See Also:</h3>   <a
2230          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/TagResource">AWS
2231          * API Reference</a></p>
2232          *
2233          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2234          */
2235         virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2236 
2237         /**
2238          * <p>Removes a set of key-value pairs from a recovery point, backup plan, or
2239          * backup vault identified by an Amazon Resource Name (ARN)</p><p><h3>See
2240          * Also:</h3>   <a
2241          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UntagResource">AWS
2242          * API Reference</a></p>
2243          */
2244         virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const;
2245 
2246         /**
2247          * <p>Removes a set of key-value pairs from a recovery point, backup plan, or
2248          * backup vault identified by an Amazon Resource Name (ARN)</p><p><h3>See
2249          * Also:</h3>   <a
2250          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UntagResource">AWS
2251          * API Reference</a></p>
2252          *
2253          * returns a future to the operation so that it can be executed in parallel to other requests.
2254          */
2255         virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const;
2256 
2257         /**
2258          * <p>Removes a set of key-value pairs from a recovery point, backup plan, or
2259          * backup vault identified by an Amazon Resource Name (ARN)</p><p><h3>See
2260          * Also:</h3>   <a
2261          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UntagResource">AWS
2262          * API Reference</a></p>
2263          *
2264          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2265          */
2266         virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2267 
2268         /**
2269          * <p>Updates an existing backup plan identified by its <code>backupPlanId</code>
2270          * with the input document in JSON format. The new version is uniquely identified
2271          * by a <code>VersionId</code>.</p><p><h3>See Also:</h3>   <a
2272          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateBackupPlan">AWS
2273          * API Reference</a></p>
2274          */
2275         virtual Model::UpdateBackupPlanOutcome UpdateBackupPlan(const Model::UpdateBackupPlanRequest& request) const;
2276 
2277         /**
2278          * <p>Updates an existing backup plan identified by its <code>backupPlanId</code>
2279          * with the input document in JSON format. The new version is uniquely identified
2280          * by a <code>VersionId</code>.</p><p><h3>See Also:</h3>   <a
2281          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateBackupPlan">AWS
2282          * API Reference</a></p>
2283          *
2284          * returns a future to the operation so that it can be executed in parallel to other requests.
2285          */
2286         virtual Model::UpdateBackupPlanOutcomeCallable UpdateBackupPlanCallable(const Model::UpdateBackupPlanRequest& request) const;
2287 
2288         /**
2289          * <p>Updates an existing backup plan identified by its <code>backupPlanId</code>
2290          * with the input document in JSON format. The new version is uniquely identified
2291          * by a <code>VersionId</code>.</p><p><h3>See Also:</h3>   <a
2292          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateBackupPlan">AWS
2293          * API Reference</a></p>
2294          *
2295          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2296          */
2297         virtual void UpdateBackupPlanAsync(const Model::UpdateBackupPlanRequest& request, const UpdateBackupPlanResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2298 
2299         /**
2300          * <p>Updates an existing framework identified by its <code>FrameworkName</code>
2301          * with the input document in JSON format.</p><p><h3>See Also:</h3>   <a
2302          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateFramework">AWS
2303          * API Reference</a></p>
2304          */
2305         virtual Model::UpdateFrameworkOutcome UpdateFramework(const Model::UpdateFrameworkRequest& request) const;
2306 
2307         /**
2308          * <p>Updates an existing framework identified by its <code>FrameworkName</code>
2309          * with the input document in JSON format.</p><p><h3>See Also:</h3>   <a
2310          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateFramework">AWS
2311          * API Reference</a></p>
2312          *
2313          * returns a future to the operation so that it can be executed in parallel to other requests.
2314          */
2315         virtual Model::UpdateFrameworkOutcomeCallable UpdateFrameworkCallable(const Model::UpdateFrameworkRequest& request) const;
2316 
2317         /**
2318          * <p>Updates an existing framework identified by its <code>FrameworkName</code>
2319          * with the input document in JSON format.</p><p><h3>See Also:</h3>   <a
2320          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateFramework">AWS
2321          * API Reference</a></p>
2322          *
2323          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2324          */
2325         virtual void UpdateFrameworkAsync(const Model::UpdateFrameworkRequest& request, const UpdateFrameworkResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2326 
2327         /**
2328          * <p>Updates whether the Amazon Web Services account is opted in to cross-account
2329          * backup. Returns an error if the account is not an Organizations management
2330          * account. Use the <code>DescribeGlobalSettings</code> API to determine the
2331          * current settings.</p><p><h3>See Also:</h3>   <a
2332          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateGlobalSettings">AWS
2333          * API Reference</a></p>
2334          */
2335         virtual Model::UpdateGlobalSettingsOutcome UpdateGlobalSettings(const Model::UpdateGlobalSettingsRequest& request) const;
2336 
2337         /**
2338          * <p>Updates whether the Amazon Web Services account is opted in to cross-account
2339          * backup. Returns an error if the account is not an Organizations management
2340          * account. Use the <code>DescribeGlobalSettings</code> API to determine the
2341          * current settings.</p><p><h3>See Also:</h3>   <a
2342          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateGlobalSettings">AWS
2343          * API Reference</a></p>
2344          *
2345          * returns a future to the operation so that it can be executed in parallel to other requests.
2346          */
2347         virtual Model::UpdateGlobalSettingsOutcomeCallable UpdateGlobalSettingsCallable(const Model::UpdateGlobalSettingsRequest& request) const;
2348 
2349         /**
2350          * <p>Updates whether the Amazon Web Services account is opted in to cross-account
2351          * backup. Returns an error if the account is not an Organizations management
2352          * account. Use the <code>DescribeGlobalSettings</code> API to determine the
2353          * current settings.</p><p><h3>See Also:</h3>   <a
2354          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateGlobalSettings">AWS
2355          * API Reference</a></p>
2356          *
2357          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2358          */
2359         virtual void UpdateGlobalSettingsAsync(const Model::UpdateGlobalSettingsRequest& request, const UpdateGlobalSettingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2360 
2361         /**
2362          * <p>Sets the transition lifecycle of a recovery point.</p> <p>The lifecycle
2363          * defines when a protected resource is transitioned to cold storage and when it
2364          * expires. Backup transitions and expires backups automatically according to the
2365          * lifecycle that you define.</p> <p>Backups transitioned to cold storage must be
2366          * stored in cold storage for a minimum of 90 days. Therefore, the “expire after
2367          * days” setting must be 90 days greater than the “transition to cold after days”
2368          * setting. The “transition to cold after days” setting cannot be changed after a
2369          * backup has been transitioned to cold.</p> <p>Only Amazon EFS file system backups
2370          * can be transitioned to cold storage.</p> <p>Does not support continuous
2371          * backups.</p><p><h3>See Also:</h3>   <a
2372          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateRecoveryPointLifecycle">AWS
2373          * API Reference</a></p>
2374          */
2375         virtual Model::UpdateRecoveryPointLifecycleOutcome UpdateRecoveryPointLifecycle(const Model::UpdateRecoveryPointLifecycleRequest& request) const;
2376 
2377         /**
2378          * <p>Sets the transition lifecycle of a recovery point.</p> <p>The lifecycle
2379          * defines when a protected resource is transitioned to cold storage and when it
2380          * expires. Backup transitions and expires backups automatically according to the
2381          * lifecycle that you define.</p> <p>Backups transitioned to cold storage must be
2382          * stored in cold storage for a minimum of 90 days. Therefore, the “expire after
2383          * days” setting must be 90 days greater than the “transition to cold after days”
2384          * setting. The “transition to cold after days” setting cannot be changed after a
2385          * backup has been transitioned to cold.</p> <p>Only Amazon EFS file system backups
2386          * can be transitioned to cold storage.</p> <p>Does not support continuous
2387          * backups.</p><p><h3>See Also:</h3>   <a
2388          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateRecoveryPointLifecycle">AWS
2389          * API Reference</a></p>
2390          *
2391          * returns a future to the operation so that it can be executed in parallel to other requests.
2392          */
2393         virtual Model::UpdateRecoveryPointLifecycleOutcomeCallable UpdateRecoveryPointLifecycleCallable(const Model::UpdateRecoveryPointLifecycleRequest& request) const;
2394 
2395         /**
2396          * <p>Sets the transition lifecycle of a recovery point.</p> <p>The lifecycle
2397          * defines when a protected resource is transitioned to cold storage and when it
2398          * expires. Backup transitions and expires backups automatically according to the
2399          * lifecycle that you define.</p> <p>Backups transitioned to cold storage must be
2400          * stored in cold storage for a minimum of 90 days. Therefore, the “expire after
2401          * days” setting must be 90 days greater than the “transition to cold after days”
2402          * setting. The “transition to cold after days” setting cannot be changed after a
2403          * backup has been transitioned to cold.</p> <p>Only Amazon EFS file system backups
2404          * can be transitioned to cold storage.</p> <p>Does not support continuous
2405          * backups.</p><p><h3>See Also:</h3>   <a
2406          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateRecoveryPointLifecycle">AWS
2407          * API Reference</a></p>
2408          *
2409          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2410          */
2411         virtual void UpdateRecoveryPointLifecycleAsync(const Model::UpdateRecoveryPointLifecycleRequest& request, const UpdateRecoveryPointLifecycleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2412 
2413         /**
2414          * <p>Updates the current service opt-in settings for the Region. If service-opt-in
2415          * is enabled for a service, Backup tries to protect that service's resources in
2416          * this Region, when the resource is included in an on-demand backup or scheduled
2417          * backup plan. Otherwise, Backup does not try to protect that service's resources
2418          * in this Region. Use the <code>DescribeRegionSettings</code> API to determine the
2419          * resource types that are supported.</p><p><h3>See Also:</h3>   <a
2420          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateRegionSettings">AWS
2421          * API Reference</a></p>
2422          */
2423         virtual Model::UpdateRegionSettingsOutcome UpdateRegionSettings(const Model::UpdateRegionSettingsRequest& request) const;
2424 
2425         /**
2426          * <p>Updates the current service opt-in settings for the Region. If service-opt-in
2427          * is enabled for a service, Backup tries to protect that service's resources in
2428          * this Region, when the resource is included in an on-demand backup or scheduled
2429          * backup plan. Otherwise, Backup does not try to protect that service's resources
2430          * in this Region. Use the <code>DescribeRegionSettings</code> API to determine the
2431          * resource types that are supported.</p><p><h3>See Also:</h3>   <a
2432          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateRegionSettings">AWS
2433          * API Reference</a></p>
2434          *
2435          * returns a future to the operation so that it can be executed in parallel to other requests.
2436          */
2437         virtual Model::UpdateRegionSettingsOutcomeCallable UpdateRegionSettingsCallable(const Model::UpdateRegionSettingsRequest& request) const;
2438 
2439         /**
2440          * <p>Updates the current service opt-in settings for the Region. If service-opt-in
2441          * is enabled for a service, Backup tries to protect that service's resources in
2442          * this Region, when the resource is included in an on-demand backup or scheduled
2443          * backup plan. Otherwise, Backup does not try to protect that service's resources
2444          * in this Region. Use the <code>DescribeRegionSettings</code> API to determine the
2445          * resource types that are supported.</p><p><h3>See Also:</h3>   <a
2446          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateRegionSettings">AWS
2447          * API Reference</a></p>
2448          *
2449          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2450          */
2451         virtual void UpdateRegionSettingsAsync(const Model::UpdateRegionSettingsRequest& request, const UpdateRegionSettingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2452 
2453         /**
2454          * <p>Updates an existing report plan identified by its <code>ReportPlanName</code>
2455          * with the input document in JSON format.</p><p><h3>See Also:</h3>   <a
2456          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateReportPlan">AWS
2457          * API Reference</a></p>
2458          */
2459         virtual Model::UpdateReportPlanOutcome UpdateReportPlan(const Model::UpdateReportPlanRequest& request) const;
2460 
2461         /**
2462          * <p>Updates an existing report plan identified by its <code>ReportPlanName</code>
2463          * with the input document in JSON format.</p><p><h3>See Also:</h3>   <a
2464          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateReportPlan">AWS
2465          * API Reference</a></p>
2466          *
2467          * returns a future to the operation so that it can be executed in parallel to other requests.
2468          */
2469         virtual Model::UpdateReportPlanOutcomeCallable UpdateReportPlanCallable(const Model::UpdateReportPlanRequest& request) const;
2470 
2471         /**
2472          * <p>Updates an existing report plan identified by its <code>ReportPlanName</code>
2473          * with the input document in JSON format.</p><p><h3>See Also:</h3>   <a
2474          * href="http://docs.aws.amazon.com/goto/WebAPI/backup-2018-11-15/UpdateReportPlan">AWS
2475          * API Reference</a></p>
2476          *
2477          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2478          */
2479         virtual void UpdateReportPlanAsync(const Model::UpdateReportPlanRequest& request, const UpdateReportPlanResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2480 
2481 
2482       void OverrideEndpoint(const Aws::String& endpoint);
2483     private:
2484       void init(const Aws::Client::ClientConfiguration& clientConfiguration);
2485         void CreateBackupPlanAsyncHelper(const Model::CreateBackupPlanRequest& request, const CreateBackupPlanResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2486         void CreateBackupSelectionAsyncHelper(const Model::CreateBackupSelectionRequest& request, const CreateBackupSelectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2487         void CreateBackupVaultAsyncHelper(const Model::CreateBackupVaultRequest& request, const CreateBackupVaultResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2488         void CreateFrameworkAsyncHelper(const Model::CreateFrameworkRequest& request, const CreateFrameworkResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2489         void CreateReportPlanAsyncHelper(const Model::CreateReportPlanRequest& request, const CreateReportPlanResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2490         void DeleteBackupPlanAsyncHelper(const Model::DeleteBackupPlanRequest& request, const DeleteBackupPlanResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2491         void DeleteBackupSelectionAsyncHelper(const Model::DeleteBackupSelectionRequest& request, const DeleteBackupSelectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2492         void DeleteBackupVaultAsyncHelper(const Model::DeleteBackupVaultRequest& request, const DeleteBackupVaultResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2493         void DeleteBackupVaultAccessPolicyAsyncHelper(const Model::DeleteBackupVaultAccessPolicyRequest& request, const DeleteBackupVaultAccessPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2494         void DeleteBackupVaultLockConfigurationAsyncHelper(const Model::DeleteBackupVaultLockConfigurationRequest& request, const DeleteBackupVaultLockConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2495         void DeleteBackupVaultNotificationsAsyncHelper(const Model::DeleteBackupVaultNotificationsRequest& request, const DeleteBackupVaultNotificationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2496         void DeleteFrameworkAsyncHelper(const Model::DeleteFrameworkRequest& request, const DeleteFrameworkResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2497         void DeleteRecoveryPointAsyncHelper(const Model::DeleteRecoveryPointRequest& request, const DeleteRecoveryPointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2498         void DeleteReportPlanAsyncHelper(const Model::DeleteReportPlanRequest& request, const DeleteReportPlanResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2499         void DescribeBackupJobAsyncHelper(const Model::DescribeBackupJobRequest& request, const DescribeBackupJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2500         void DescribeBackupVaultAsyncHelper(const Model::DescribeBackupVaultRequest& request, const DescribeBackupVaultResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2501         void DescribeCopyJobAsyncHelper(const Model::DescribeCopyJobRequest& request, const DescribeCopyJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2502         void DescribeFrameworkAsyncHelper(const Model::DescribeFrameworkRequest& request, const DescribeFrameworkResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2503         void DescribeGlobalSettingsAsyncHelper(const Model::DescribeGlobalSettingsRequest& request, const DescribeGlobalSettingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2504         void DescribeProtectedResourceAsyncHelper(const Model::DescribeProtectedResourceRequest& request, const DescribeProtectedResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2505         void DescribeRecoveryPointAsyncHelper(const Model::DescribeRecoveryPointRequest& request, const DescribeRecoveryPointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2506         void DescribeRegionSettingsAsyncHelper(const Model::DescribeRegionSettingsRequest& request, const DescribeRegionSettingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2507         void DescribeReportJobAsyncHelper(const Model::DescribeReportJobRequest& request, const DescribeReportJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2508         void DescribeReportPlanAsyncHelper(const Model::DescribeReportPlanRequest& request, const DescribeReportPlanResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2509         void DescribeRestoreJobAsyncHelper(const Model::DescribeRestoreJobRequest& request, const DescribeRestoreJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2510         void DisassociateRecoveryPointAsyncHelper(const Model::DisassociateRecoveryPointRequest& request, const DisassociateRecoveryPointResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2511         void ExportBackupPlanTemplateAsyncHelper(const Model::ExportBackupPlanTemplateRequest& request, const ExportBackupPlanTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2512         void GetBackupPlanAsyncHelper(const Model::GetBackupPlanRequest& request, const GetBackupPlanResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2513         void GetBackupPlanFromJSONAsyncHelper(const Model::GetBackupPlanFromJSONRequest& request, const GetBackupPlanFromJSONResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2514         void GetBackupPlanFromTemplateAsyncHelper(const Model::GetBackupPlanFromTemplateRequest& request, const GetBackupPlanFromTemplateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2515         void GetBackupSelectionAsyncHelper(const Model::GetBackupSelectionRequest& request, const GetBackupSelectionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2516         void GetBackupVaultAccessPolicyAsyncHelper(const Model::GetBackupVaultAccessPolicyRequest& request, const GetBackupVaultAccessPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2517         void GetBackupVaultNotificationsAsyncHelper(const Model::GetBackupVaultNotificationsRequest& request, const GetBackupVaultNotificationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2518         void GetRecoveryPointRestoreMetadataAsyncHelper(const Model::GetRecoveryPointRestoreMetadataRequest& request, const GetRecoveryPointRestoreMetadataResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2519         void GetSupportedResourceTypesAsyncHelper(const GetSupportedResourceTypesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2520         void ListBackupJobsAsyncHelper(const Model::ListBackupJobsRequest& request, const ListBackupJobsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2521         void ListBackupPlanTemplatesAsyncHelper(const Model::ListBackupPlanTemplatesRequest& request, const ListBackupPlanTemplatesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2522         void ListBackupPlanVersionsAsyncHelper(const Model::ListBackupPlanVersionsRequest& request, const ListBackupPlanVersionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2523         void ListBackupPlansAsyncHelper(const Model::ListBackupPlansRequest& request, const ListBackupPlansResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2524         void ListBackupSelectionsAsyncHelper(const Model::ListBackupSelectionsRequest& request, const ListBackupSelectionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2525         void ListBackupVaultsAsyncHelper(const Model::ListBackupVaultsRequest& request, const ListBackupVaultsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2526         void ListCopyJobsAsyncHelper(const Model::ListCopyJobsRequest& request, const ListCopyJobsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2527         void ListFrameworksAsyncHelper(const Model::ListFrameworksRequest& request, const ListFrameworksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2528         void ListProtectedResourcesAsyncHelper(const Model::ListProtectedResourcesRequest& request, const ListProtectedResourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2529         void ListRecoveryPointsByBackupVaultAsyncHelper(const Model::ListRecoveryPointsByBackupVaultRequest& request, const ListRecoveryPointsByBackupVaultResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2530         void ListRecoveryPointsByResourceAsyncHelper(const Model::ListRecoveryPointsByResourceRequest& request, const ListRecoveryPointsByResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2531         void ListReportJobsAsyncHelper(const Model::ListReportJobsRequest& request, const ListReportJobsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2532         void ListReportPlansAsyncHelper(const Model::ListReportPlansRequest& request, const ListReportPlansResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2533         void ListRestoreJobsAsyncHelper(const Model::ListRestoreJobsRequest& request, const ListRestoreJobsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2534         void ListTagsAsyncHelper(const Model::ListTagsRequest& request, const ListTagsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2535         void PutBackupVaultAccessPolicyAsyncHelper(const Model::PutBackupVaultAccessPolicyRequest& request, const PutBackupVaultAccessPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2536         void PutBackupVaultLockConfigurationAsyncHelper(const Model::PutBackupVaultLockConfigurationRequest& request, const PutBackupVaultLockConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2537         void PutBackupVaultNotificationsAsyncHelper(const Model::PutBackupVaultNotificationsRequest& request, const PutBackupVaultNotificationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2538         void StartBackupJobAsyncHelper(const Model::StartBackupJobRequest& request, const StartBackupJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2539         void StartCopyJobAsyncHelper(const Model::StartCopyJobRequest& request, const StartCopyJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2540         void StartReportJobAsyncHelper(const Model::StartReportJobRequest& request, const StartReportJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2541         void StartRestoreJobAsyncHelper(const Model::StartRestoreJobRequest& request, const StartRestoreJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2542         void StopBackupJobAsyncHelper(const Model::StopBackupJobRequest& request, const StopBackupJobResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2543         void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2544         void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2545         void UpdateBackupPlanAsyncHelper(const Model::UpdateBackupPlanRequest& request, const UpdateBackupPlanResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2546         void UpdateFrameworkAsyncHelper(const Model::UpdateFrameworkRequest& request, const UpdateFrameworkResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2547         void UpdateGlobalSettingsAsyncHelper(const Model::UpdateGlobalSettingsRequest& request, const UpdateGlobalSettingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2548         void UpdateRecoveryPointLifecycleAsyncHelper(const Model::UpdateRecoveryPointLifecycleRequest& request, const UpdateRecoveryPointLifecycleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2549         void UpdateRegionSettingsAsyncHelper(const Model::UpdateRegionSettingsRequest& request, const UpdateRegionSettingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2550         void UpdateReportPlanAsyncHelper(const Model::UpdateReportPlanRequest& request, const UpdateReportPlanResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2551 
2552       Aws::String m_uri;
2553       Aws::String m_configScheme;
2554       std::shared_ptr<Aws::Utils::Threading::Executor> m_executor;
2555   };
2556 
2557 } // namespace Backup
2558 } // namespace Aws
2559