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/config/ConfigService_EXPORTS.h>
8 #include <aws/config/ConfigServiceErrors.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/config/model/BatchGetAggregateResourceConfigResult.h>
15 #include <aws/config/model/BatchGetResourceConfigResult.h>
16 #include <aws/config/model/DeleteEvaluationResultsResult.h>
17 #include <aws/config/model/DeleteRemediationConfigurationResult.h>
18 #include <aws/config/model/DeleteRemediationExceptionsResult.h>
19 #include <aws/config/model/DeleteStoredQueryResult.h>
20 #include <aws/config/model/DeliverConfigSnapshotResult.h>
21 #include <aws/config/model/DescribeAggregateComplianceByConfigRulesResult.h>
22 #include <aws/config/model/DescribeAggregateComplianceByConformancePacksResult.h>
23 #include <aws/config/model/DescribeAggregationAuthorizationsResult.h>
24 #include <aws/config/model/DescribeComplianceByConfigRuleResult.h>
25 #include <aws/config/model/DescribeComplianceByResourceResult.h>
26 #include <aws/config/model/DescribeConfigRuleEvaluationStatusResult.h>
27 #include <aws/config/model/DescribeConfigRulesResult.h>
28 #include <aws/config/model/DescribeConfigurationAggregatorSourcesStatusResult.h>
29 #include <aws/config/model/DescribeConfigurationAggregatorsResult.h>
30 #include <aws/config/model/DescribeConfigurationRecorderStatusResult.h>
31 #include <aws/config/model/DescribeConfigurationRecordersResult.h>
32 #include <aws/config/model/DescribeConformancePackComplianceResult.h>
33 #include <aws/config/model/DescribeConformancePackStatusResult.h>
34 #include <aws/config/model/DescribeConformancePacksResult.h>
35 #include <aws/config/model/DescribeDeliveryChannelStatusResult.h>
36 #include <aws/config/model/DescribeDeliveryChannelsResult.h>
37 #include <aws/config/model/DescribeOrganizationConfigRuleStatusesResult.h>
38 #include <aws/config/model/DescribeOrganizationConfigRulesResult.h>
39 #include <aws/config/model/DescribeOrganizationConformancePackStatusesResult.h>
40 #include <aws/config/model/DescribeOrganizationConformancePacksResult.h>
41 #include <aws/config/model/DescribePendingAggregationRequestsResult.h>
42 #include <aws/config/model/DescribeRemediationConfigurationsResult.h>
43 #include <aws/config/model/DescribeRemediationExceptionsResult.h>
44 #include <aws/config/model/DescribeRemediationExecutionStatusResult.h>
45 #include <aws/config/model/DescribeRetentionConfigurationsResult.h>
46 #include <aws/config/model/GetAggregateComplianceDetailsByConfigRuleResult.h>
47 #include <aws/config/model/GetAggregateConfigRuleComplianceSummaryResult.h>
48 #include <aws/config/model/GetAggregateConformancePackComplianceSummaryResult.h>
49 #include <aws/config/model/GetAggregateDiscoveredResourceCountsResult.h>
50 #include <aws/config/model/GetAggregateResourceConfigResult.h>
51 #include <aws/config/model/GetComplianceDetailsByConfigRuleResult.h>
52 #include <aws/config/model/GetComplianceDetailsByResourceResult.h>
53 #include <aws/config/model/GetComplianceSummaryByConfigRuleResult.h>
54 #include <aws/config/model/GetComplianceSummaryByResourceTypeResult.h>
55 #include <aws/config/model/GetConformancePackComplianceDetailsResult.h>
56 #include <aws/config/model/GetConformancePackComplianceSummaryResult.h>
57 #include <aws/config/model/GetDiscoveredResourceCountsResult.h>
58 #include <aws/config/model/GetOrganizationConfigRuleDetailedStatusResult.h>
59 #include <aws/config/model/GetOrganizationConformancePackDetailedStatusResult.h>
60 #include <aws/config/model/GetResourceConfigHistoryResult.h>
61 #include <aws/config/model/GetStoredQueryResult.h>
62 #include <aws/config/model/ListAggregateDiscoveredResourcesResult.h>
63 #include <aws/config/model/ListDiscoveredResourcesResult.h>
64 #include <aws/config/model/ListStoredQueriesResult.h>
65 #include <aws/config/model/ListTagsForResourceResult.h>
66 #include <aws/config/model/PutAggregationAuthorizationResult.h>
67 #include <aws/config/model/PutConfigurationAggregatorResult.h>
68 #include <aws/config/model/PutConformancePackResult.h>
69 #include <aws/config/model/PutEvaluationsResult.h>
70 #include <aws/config/model/PutExternalEvaluationResult.h>
71 #include <aws/config/model/PutOrganizationConfigRuleResult.h>
72 #include <aws/config/model/PutOrganizationConformancePackResult.h>
73 #include <aws/config/model/PutRemediationConfigurationsResult.h>
74 #include <aws/config/model/PutRemediationExceptionsResult.h>
75 #include <aws/config/model/PutRetentionConfigurationResult.h>
76 #include <aws/config/model/PutStoredQueryResult.h>
77 #include <aws/config/model/SelectAggregateResourceConfigResult.h>
78 #include <aws/config/model/SelectResourceConfigResult.h>
79 #include <aws/config/model/StartConfigRulesEvaluationResult.h>
80 #include <aws/config/model/StartRemediationExecutionResult.h>
81 #include <aws/core/NoResult.h>
82 #include <aws/core/client/AsyncCallerContext.h>
83 #include <aws/core/http/HttpTypes.h>
84 #include <future>
85 #include <functional>
86 
87 namespace Aws
88 {
89 
90 namespace Http
91 {
92   class HttpClient;
93   class HttpClientFactory;
94 } // namespace Http
95 
96 namespace Utils
97 {
98   template< typename R, typename E> class Outcome;
99 namespace Threading
100 {
101   class Executor;
102 } // namespace Threading
103 } // namespace Utils
104 
105 namespace Auth
106 {
107   class AWSCredentials;
108   class AWSCredentialsProvider;
109 } // namespace Auth
110 
111 namespace Client
112 {
113   class RetryStrategy;
114 } // namespace Client
115 
116 namespace ConfigService
117 {
118 
119 namespace Model
120 {
121         class BatchGetAggregateResourceConfigRequest;
122         class BatchGetResourceConfigRequest;
123         class DeleteAggregationAuthorizationRequest;
124         class DeleteConfigRuleRequest;
125         class DeleteConfigurationAggregatorRequest;
126         class DeleteConfigurationRecorderRequest;
127         class DeleteConformancePackRequest;
128         class DeleteDeliveryChannelRequest;
129         class DeleteEvaluationResultsRequest;
130         class DeleteOrganizationConfigRuleRequest;
131         class DeleteOrganizationConformancePackRequest;
132         class DeletePendingAggregationRequestRequest;
133         class DeleteRemediationConfigurationRequest;
134         class DeleteRemediationExceptionsRequest;
135         class DeleteResourceConfigRequest;
136         class DeleteRetentionConfigurationRequest;
137         class DeleteStoredQueryRequest;
138         class DeliverConfigSnapshotRequest;
139         class DescribeAggregateComplianceByConfigRulesRequest;
140         class DescribeAggregateComplianceByConformancePacksRequest;
141         class DescribeAggregationAuthorizationsRequest;
142         class DescribeComplianceByConfigRuleRequest;
143         class DescribeComplianceByResourceRequest;
144         class DescribeConfigRuleEvaluationStatusRequest;
145         class DescribeConfigRulesRequest;
146         class DescribeConfigurationAggregatorSourcesStatusRequest;
147         class DescribeConfigurationAggregatorsRequest;
148         class DescribeConfigurationRecorderStatusRequest;
149         class DescribeConfigurationRecordersRequest;
150         class DescribeConformancePackComplianceRequest;
151         class DescribeConformancePackStatusRequest;
152         class DescribeConformancePacksRequest;
153         class DescribeDeliveryChannelStatusRequest;
154         class DescribeDeliveryChannelsRequest;
155         class DescribeOrganizationConfigRuleStatusesRequest;
156         class DescribeOrganizationConfigRulesRequest;
157         class DescribeOrganizationConformancePackStatusesRequest;
158         class DescribeOrganizationConformancePacksRequest;
159         class DescribePendingAggregationRequestsRequest;
160         class DescribeRemediationConfigurationsRequest;
161         class DescribeRemediationExceptionsRequest;
162         class DescribeRemediationExecutionStatusRequest;
163         class DescribeRetentionConfigurationsRequest;
164         class GetAggregateComplianceDetailsByConfigRuleRequest;
165         class GetAggregateConfigRuleComplianceSummaryRequest;
166         class GetAggregateConformancePackComplianceSummaryRequest;
167         class GetAggregateDiscoveredResourceCountsRequest;
168         class GetAggregateResourceConfigRequest;
169         class GetComplianceDetailsByConfigRuleRequest;
170         class GetComplianceDetailsByResourceRequest;
171         class GetComplianceSummaryByResourceTypeRequest;
172         class GetConformancePackComplianceDetailsRequest;
173         class GetConformancePackComplianceSummaryRequest;
174         class GetDiscoveredResourceCountsRequest;
175         class GetOrganizationConfigRuleDetailedStatusRequest;
176         class GetOrganizationConformancePackDetailedStatusRequest;
177         class GetResourceConfigHistoryRequest;
178         class GetStoredQueryRequest;
179         class ListAggregateDiscoveredResourcesRequest;
180         class ListDiscoveredResourcesRequest;
181         class ListStoredQueriesRequest;
182         class ListTagsForResourceRequest;
183         class PutAggregationAuthorizationRequest;
184         class PutConfigRuleRequest;
185         class PutConfigurationAggregatorRequest;
186         class PutConfigurationRecorderRequest;
187         class PutConformancePackRequest;
188         class PutDeliveryChannelRequest;
189         class PutEvaluationsRequest;
190         class PutExternalEvaluationRequest;
191         class PutOrganizationConfigRuleRequest;
192         class PutOrganizationConformancePackRequest;
193         class PutRemediationConfigurationsRequest;
194         class PutRemediationExceptionsRequest;
195         class PutResourceConfigRequest;
196         class PutRetentionConfigurationRequest;
197         class PutStoredQueryRequest;
198         class SelectAggregateResourceConfigRequest;
199         class SelectResourceConfigRequest;
200         class StartConfigRulesEvaluationRequest;
201         class StartConfigurationRecorderRequest;
202         class StartRemediationExecutionRequest;
203         class StopConfigurationRecorderRequest;
204         class TagResourceRequest;
205         class UntagResourceRequest;
206 
207         typedef Aws::Utils::Outcome<BatchGetAggregateResourceConfigResult, ConfigServiceError> BatchGetAggregateResourceConfigOutcome;
208         typedef Aws::Utils::Outcome<BatchGetResourceConfigResult, ConfigServiceError> BatchGetResourceConfigOutcome;
209         typedef Aws::Utils::Outcome<Aws::NoResult, ConfigServiceError> DeleteAggregationAuthorizationOutcome;
210         typedef Aws::Utils::Outcome<Aws::NoResult, ConfigServiceError> DeleteConfigRuleOutcome;
211         typedef Aws::Utils::Outcome<Aws::NoResult, ConfigServiceError> DeleteConfigurationAggregatorOutcome;
212         typedef Aws::Utils::Outcome<Aws::NoResult, ConfigServiceError> DeleteConfigurationRecorderOutcome;
213         typedef Aws::Utils::Outcome<Aws::NoResult, ConfigServiceError> DeleteConformancePackOutcome;
214         typedef Aws::Utils::Outcome<Aws::NoResult, ConfigServiceError> DeleteDeliveryChannelOutcome;
215         typedef Aws::Utils::Outcome<DeleteEvaluationResultsResult, ConfigServiceError> DeleteEvaluationResultsOutcome;
216         typedef Aws::Utils::Outcome<Aws::NoResult, ConfigServiceError> DeleteOrganizationConfigRuleOutcome;
217         typedef Aws::Utils::Outcome<Aws::NoResult, ConfigServiceError> DeleteOrganizationConformancePackOutcome;
218         typedef Aws::Utils::Outcome<Aws::NoResult, ConfigServiceError> DeletePendingAggregationRequestOutcome;
219         typedef Aws::Utils::Outcome<DeleteRemediationConfigurationResult, ConfigServiceError> DeleteRemediationConfigurationOutcome;
220         typedef Aws::Utils::Outcome<DeleteRemediationExceptionsResult, ConfigServiceError> DeleteRemediationExceptionsOutcome;
221         typedef Aws::Utils::Outcome<Aws::NoResult, ConfigServiceError> DeleteResourceConfigOutcome;
222         typedef Aws::Utils::Outcome<Aws::NoResult, ConfigServiceError> DeleteRetentionConfigurationOutcome;
223         typedef Aws::Utils::Outcome<DeleteStoredQueryResult, ConfigServiceError> DeleteStoredQueryOutcome;
224         typedef Aws::Utils::Outcome<DeliverConfigSnapshotResult, ConfigServiceError> DeliverConfigSnapshotOutcome;
225         typedef Aws::Utils::Outcome<DescribeAggregateComplianceByConfigRulesResult, ConfigServiceError> DescribeAggregateComplianceByConfigRulesOutcome;
226         typedef Aws::Utils::Outcome<DescribeAggregateComplianceByConformancePacksResult, ConfigServiceError> DescribeAggregateComplianceByConformancePacksOutcome;
227         typedef Aws::Utils::Outcome<DescribeAggregationAuthorizationsResult, ConfigServiceError> DescribeAggregationAuthorizationsOutcome;
228         typedef Aws::Utils::Outcome<DescribeComplianceByConfigRuleResult, ConfigServiceError> DescribeComplianceByConfigRuleOutcome;
229         typedef Aws::Utils::Outcome<DescribeComplianceByResourceResult, ConfigServiceError> DescribeComplianceByResourceOutcome;
230         typedef Aws::Utils::Outcome<DescribeConfigRuleEvaluationStatusResult, ConfigServiceError> DescribeConfigRuleEvaluationStatusOutcome;
231         typedef Aws::Utils::Outcome<DescribeConfigRulesResult, ConfigServiceError> DescribeConfigRulesOutcome;
232         typedef Aws::Utils::Outcome<DescribeConfigurationAggregatorSourcesStatusResult, ConfigServiceError> DescribeConfigurationAggregatorSourcesStatusOutcome;
233         typedef Aws::Utils::Outcome<DescribeConfigurationAggregatorsResult, ConfigServiceError> DescribeConfigurationAggregatorsOutcome;
234         typedef Aws::Utils::Outcome<DescribeConfigurationRecorderStatusResult, ConfigServiceError> DescribeConfigurationRecorderStatusOutcome;
235         typedef Aws::Utils::Outcome<DescribeConfigurationRecordersResult, ConfigServiceError> DescribeConfigurationRecordersOutcome;
236         typedef Aws::Utils::Outcome<DescribeConformancePackComplianceResult, ConfigServiceError> DescribeConformancePackComplianceOutcome;
237         typedef Aws::Utils::Outcome<DescribeConformancePackStatusResult, ConfigServiceError> DescribeConformancePackStatusOutcome;
238         typedef Aws::Utils::Outcome<DescribeConformancePacksResult, ConfigServiceError> DescribeConformancePacksOutcome;
239         typedef Aws::Utils::Outcome<DescribeDeliveryChannelStatusResult, ConfigServiceError> DescribeDeliveryChannelStatusOutcome;
240         typedef Aws::Utils::Outcome<DescribeDeliveryChannelsResult, ConfigServiceError> DescribeDeliveryChannelsOutcome;
241         typedef Aws::Utils::Outcome<DescribeOrganizationConfigRuleStatusesResult, ConfigServiceError> DescribeOrganizationConfigRuleStatusesOutcome;
242         typedef Aws::Utils::Outcome<DescribeOrganizationConfigRulesResult, ConfigServiceError> DescribeOrganizationConfigRulesOutcome;
243         typedef Aws::Utils::Outcome<DescribeOrganizationConformancePackStatusesResult, ConfigServiceError> DescribeOrganizationConformancePackStatusesOutcome;
244         typedef Aws::Utils::Outcome<DescribeOrganizationConformancePacksResult, ConfigServiceError> DescribeOrganizationConformancePacksOutcome;
245         typedef Aws::Utils::Outcome<DescribePendingAggregationRequestsResult, ConfigServiceError> DescribePendingAggregationRequestsOutcome;
246         typedef Aws::Utils::Outcome<DescribeRemediationConfigurationsResult, ConfigServiceError> DescribeRemediationConfigurationsOutcome;
247         typedef Aws::Utils::Outcome<DescribeRemediationExceptionsResult, ConfigServiceError> DescribeRemediationExceptionsOutcome;
248         typedef Aws::Utils::Outcome<DescribeRemediationExecutionStatusResult, ConfigServiceError> DescribeRemediationExecutionStatusOutcome;
249         typedef Aws::Utils::Outcome<DescribeRetentionConfigurationsResult, ConfigServiceError> DescribeRetentionConfigurationsOutcome;
250         typedef Aws::Utils::Outcome<GetAggregateComplianceDetailsByConfigRuleResult, ConfigServiceError> GetAggregateComplianceDetailsByConfigRuleOutcome;
251         typedef Aws::Utils::Outcome<GetAggregateConfigRuleComplianceSummaryResult, ConfigServiceError> GetAggregateConfigRuleComplianceSummaryOutcome;
252         typedef Aws::Utils::Outcome<GetAggregateConformancePackComplianceSummaryResult, ConfigServiceError> GetAggregateConformancePackComplianceSummaryOutcome;
253         typedef Aws::Utils::Outcome<GetAggregateDiscoveredResourceCountsResult, ConfigServiceError> GetAggregateDiscoveredResourceCountsOutcome;
254         typedef Aws::Utils::Outcome<GetAggregateResourceConfigResult, ConfigServiceError> GetAggregateResourceConfigOutcome;
255         typedef Aws::Utils::Outcome<GetComplianceDetailsByConfigRuleResult, ConfigServiceError> GetComplianceDetailsByConfigRuleOutcome;
256         typedef Aws::Utils::Outcome<GetComplianceDetailsByResourceResult, ConfigServiceError> GetComplianceDetailsByResourceOutcome;
257         typedef Aws::Utils::Outcome<GetComplianceSummaryByConfigRuleResult, ConfigServiceError> GetComplianceSummaryByConfigRuleOutcome;
258         typedef Aws::Utils::Outcome<GetComplianceSummaryByResourceTypeResult, ConfigServiceError> GetComplianceSummaryByResourceTypeOutcome;
259         typedef Aws::Utils::Outcome<GetConformancePackComplianceDetailsResult, ConfigServiceError> GetConformancePackComplianceDetailsOutcome;
260         typedef Aws::Utils::Outcome<GetConformancePackComplianceSummaryResult, ConfigServiceError> GetConformancePackComplianceSummaryOutcome;
261         typedef Aws::Utils::Outcome<GetDiscoveredResourceCountsResult, ConfigServiceError> GetDiscoveredResourceCountsOutcome;
262         typedef Aws::Utils::Outcome<GetOrganizationConfigRuleDetailedStatusResult, ConfigServiceError> GetOrganizationConfigRuleDetailedStatusOutcome;
263         typedef Aws::Utils::Outcome<GetOrganizationConformancePackDetailedStatusResult, ConfigServiceError> GetOrganizationConformancePackDetailedStatusOutcome;
264         typedef Aws::Utils::Outcome<GetResourceConfigHistoryResult, ConfigServiceError> GetResourceConfigHistoryOutcome;
265         typedef Aws::Utils::Outcome<GetStoredQueryResult, ConfigServiceError> GetStoredQueryOutcome;
266         typedef Aws::Utils::Outcome<ListAggregateDiscoveredResourcesResult, ConfigServiceError> ListAggregateDiscoveredResourcesOutcome;
267         typedef Aws::Utils::Outcome<ListDiscoveredResourcesResult, ConfigServiceError> ListDiscoveredResourcesOutcome;
268         typedef Aws::Utils::Outcome<ListStoredQueriesResult, ConfigServiceError> ListStoredQueriesOutcome;
269         typedef Aws::Utils::Outcome<ListTagsForResourceResult, ConfigServiceError> ListTagsForResourceOutcome;
270         typedef Aws::Utils::Outcome<PutAggregationAuthorizationResult, ConfigServiceError> PutAggregationAuthorizationOutcome;
271         typedef Aws::Utils::Outcome<Aws::NoResult, ConfigServiceError> PutConfigRuleOutcome;
272         typedef Aws::Utils::Outcome<PutConfigurationAggregatorResult, ConfigServiceError> PutConfigurationAggregatorOutcome;
273         typedef Aws::Utils::Outcome<Aws::NoResult, ConfigServiceError> PutConfigurationRecorderOutcome;
274         typedef Aws::Utils::Outcome<PutConformancePackResult, ConfigServiceError> PutConformancePackOutcome;
275         typedef Aws::Utils::Outcome<Aws::NoResult, ConfigServiceError> PutDeliveryChannelOutcome;
276         typedef Aws::Utils::Outcome<PutEvaluationsResult, ConfigServiceError> PutEvaluationsOutcome;
277         typedef Aws::Utils::Outcome<PutExternalEvaluationResult, ConfigServiceError> PutExternalEvaluationOutcome;
278         typedef Aws::Utils::Outcome<PutOrganizationConfigRuleResult, ConfigServiceError> PutOrganizationConfigRuleOutcome;
279         typedef Aws::Utils::Outcome<PutOrganizationConformancePackResult, ConfigServiceError> PutOrganizationConformancePackOutcome;
280         typedef Aws::Utils::Outcome<PutRemediationConfigurationsResult, ConfigServiceError> PutRemediationConfigurationsOutcome;
281         typedef Aws::Utils::Outcome<PutRemediationExceptionsResult, ConfigServiceError> PutRemediationExceptionsOutcome;
282         typedef Aws::Utils::Outcome<Aws::NoResult, ConfigServiceError> PutResourceConfigOutcome;
283         typedef Aws::Utils::Outcome<PutRetentionConfigurationResult, ConfigServiceError> PutRetentionConfigurationOutcome;
284         typedef Aws::Utils::Outcome<PutStoredQueryResult, ConfigServiceError> PutStoredQueryOutcome;
285         typedef Aws::Utils::Outcome<SelectAggregateResourceConfigResult, ConfigServiceError> SelectAggregateResourceConfigOutcome;
286         typedef Aws::Utils::Outcome<SelectResourceConfigResult, ConfigServiceError> SelectResourceConfigOutcome;
287         typedef Aws::Utils::Outcome<StartConfigRulesEvaluationResult, ConfigServiceError> StartConfigRulesEvaluationOutcome;
288         typedef Aws::Utils::Outcome<Aws::NoResult, ConfigServiceError> StartConfigurationRecorderOutcome;
289         typedef Aws::Utils::Outcome<StartRemediationExecutionResult, ConfigServiceError> StartRemediationExecutionOutcome;
290         typedef Aws::Utils::Outcome<Aws::NoResult, ConfigServiceError> StopConfigurationRecorderOutcome;
291         typedef Aws::Utils::Outcome<Aws::NoResult, ConfigServiceError> TagResourceOutcome;
292         typedef Aws::Utils::Outcome<Aws::NoResult, ConfigServiceError> UntagResourceOutcome;
293 
294         typedef std::future<BatchGetAggregateResourceConfigOutcome> BatchGetAggregateResourceConfigOutcomeCallable;
295         typedef std::future<BatchGetResourceConfigOutcome> BatchGetResourceConfigOutcomeCallable;
296         typedef std::future<DeleteAggregationAuthorizationOutcome> DeleteAggregationAuthorizationOutcomeCallable;
297         typedef std::future<DeleteConfigRuleOutcome> DeleteConfigRuleOutcomeCallable;
298         typedef std::future<DeleteConfigurationAggregatorOutcome> DeleteConfigurationAggregatorOutcomeCallable;
299         typedef std::future<DeleteConfigurationRecorderOutcome> DeleteConfigurationRecorderOutcomeCallable;
300         typedef std::future<DeleteConformancePackOutcome> DeleteConformancePackOutcomeCallable;
301         typedef std::future<DeleteDeliveryChannelOutcome> DeleteDeliveryChannelOutcomeCallable;
302         typedef std::future<DeleteEvaluationResultsOutcome> DeleteEvaluationResultsOutcomeCallable;
303         typedef std::future<DeleteOrganizationConfigRuleOutcome> DeleteOrganizationConfigRuleOutcomeCallable;
304         typedef std::future<DeleteOrganizationConformancePackOutcome> DeleteOrganizationConformancePackOutcomeCallable;
305         typedef std::future<DeletePendingAggregationRequestOutcome> DeletePendingAggregationRequestOutcomeCallable;
306         typedef std::future<DeleteRemediationConfigurationOutcome> DeleteRemediationConfigurationOutcomeCallable;
307         typedef std::future<DeleteRemediationExceptionsOutcome> DeleteRemediationExceptionsOutcomeCallable;
308         typedef std::future<DeleteResourceConfigOutcome> DeleteResourceConfigOutcomeCallable;
309         typedef std::future<DeleteRetentionConfigurationOutcome> DeleteRetentionConfigurationOutcomeCallable;
310         typedef std::future<DeleteStoredQueryOutcome> DeleteStoredQueryOutcomeCallable;
311         typedef std::future<DeliverConfigSnapshotOutcome> DeliverConfigSnapshotOutcomeCallable;
312         typedef std::future<DescribeAggregateComplianceByConfigRulesOutcome> DescribeAggregateComplianceByConfigRulesOutcomeCallable;
313         typedef std::future<DescribeAggregateComplianceByConformancePacksOutcome> DescribeAggregateComplianceByConformancePacksOutcomeCallable;
314         typedef std::future<DescribeAggregationAuthorizationsOutcome> DescribeAggregationAuthorizationsOutcomeCallable;
315         typedef std::future<DescribeComplianceByConfigRuleOutcome> DescribeComplianceByConfigRuleOutcomeCallable;
316         typedef std::future<DescribeComplianceByResourceOutcome> DescribeComplianceByResourceOutcomeCallable;
317         typedef std::future<DescribeConfigRuleEvaluationStatusOutcome> DescribeConfigRuleEvaluationStatusOutcomeCallable;
318         typedef std::future<DescribeConfigRulesOutcome> DescribeConfigRulesOutcomeCallable;
319         typedef std::future<DescribeConfigurationAggregatorSourcesStatusOutcome> DescribeConfigurationAggregatorSourcesStatusOutcomeCallable;
320         typedef std::future<DescribeConfigurationAggregatorsOutcome> DescribeConfigurationAggregatorsOutcomeCallable;
321         typedef std::future<DescribeConfigurationRecorderStatusOutcome> DescribeConfigurationRecorderStatusOutcomeCallable;
322         typedef std::future<DescribeConfigurationRecordersOutcome> DescribeConfigurationRecordersOutcomeCallable;
323         typedef std::future<DescribeConformancePackComplianceOutcome> DescribeConformancePackComplianceOutcomeCallable;
324         typedef std::future<DescribeConformancePackStatusOutcome> DescribeConformancePackStatusOutcomeCallable;
325         typedef std::future<DescribeConformancePacksOutcome> DescribeConformancePacksOutcomeCallable;
326         typedef std::future<DescribeDeliveryChannelStatusOutcome> DescribeDeliveryChannelStatusOutcomeCallable;
327         typedef std::future<DescribeDeliveryChannelsOutcome> DescribeDeliveryChannelsOutcomeCallable;
328         typedef std::future<DescribeOrganizationConfigRuleStatusesOutcome> DescribeOrganizationConfigRuleStatusesOutcomeCallable;
329         typedef std::future<DescribeOrganizationConfigRulesOutcome> DescribeOrganizationConfigRulesOutcomeCallable;
330         typedef std::future<DescribeOrganizationConformancePackStatusesOutcome> DescribeOrganizationConformancePackStatusesOutcomeCallable;
331         typedef std::future<DescribeOrganizationConformancePacksOutcome> DescribeOrganizationConformancePacksOutcomeCallable;
332         typedef std::future<DescribePendingAggregationRequestsOutcome> DescribePendingAggregationRequestsOutcomeCallable;
333         typedef std::future<DescribeRemediationConfigurationsOutcome> DescribeRemediationConfigurationsOutcomeCallable;
334         typedef std::future<DescribeRemediationExceptionsOutcome> DescribeRemediationExceptionsOutcomeCallable;
335         typedef std::future<DescribeRemediationExecutionStatusOutcome> DescribeRemediationExecutionStatusOutcomeCallable;
336         typedef std::future<DescribeRetentionConfigurationsOutcome> DescribeRetentionConfigurationsOutcomeCallable;
337         typedef std::future<GetAggregateComplianceDetailsByConfigRuleOutcome> GetAggregateComplianceDetailsByConfigRuleOutcomeCallable;
338         typedef std::future<GetAggregateConfigRuleComplianceSummaryOutcome> GetAggregateConfigRuleComplianceSummaryOutcomeCallable;
339         typedef std::future<GetAggregateConformancePackComplianceSummaryOutcome> GetAggregateConformancePackComplianceSummaryOutcomeCallable;
340         typedef std::future<GetAggregateDiscoveredResourceCountsOutcome> GetAggregateDiscoveredResourceCountsOutcomeCallable;
341         typedef std::future<GetAggregateResourceConfigOutcome> GetAggregateResourceConfigOutcomeCallable;
342         typedef std::future<GetComplianceDetailsByConfigRuleOutcome> GetComplianceDetailsByConfigRuleOutcomeCallable;
343         typedef std::future<GetComplianceDetailsByResourceOutcome> GetComplianceDetailsByResourceOutcomeCallable;
344         typedef std::future<GetComplianceSummaryByConfigRuleOutcome> GetComplianceSummaryByConfigRuleOutcomeCallable;
345         typedef std::future<GetComplianceSummaryByResourceTypeOutcome> GetComplianceSummaryByResourceTypeOutcomeCallable;
346         typedef std::future<GetConformancePackComplianceDetailsOutcome> GetConformancePackComplianceDetailsOutcomeCallable;
347         typedef std::future<GetConformancePackComplianceSummaryOutcome> GetConformancePackComplianceSummaryOutcomeCallable;
348         typedef std::future<GetDiscoveredResourceCountsOutcome> GetDiscoveredResourceCountsOutcomeCallable;
349         typedef std::future<GetOrganizationConfigRuleDetailedStatusOutcome> GetOrganizationConfigRuleDetailedStatusOutcomeCallable;
350         typedef std::future<GetOrganizationConformancePackDetailedStatusOutcome> GetOrganizationConformancePackDetailedStatusOutcomeCallable;
351         typedef std::future<GetResourceConfigHistoryOutcome> GetResourceConfigHistoryOutcomeCallable;
352         typedef std::future<GetStoredQueryOutcome> GetStoredQueryOutcomeCallable;
353         typedef std::future<ListAggregateDiscoveredResourcesOutcome> ListAggregateDiscoveredResourcesOutcomeCallable;
354         typedef std::future<ListDiscoveredResourcesOutcome> ListDiscoveredResourcesOutcomeCallable;
355         typedef std::future<ListStoredQueriesOutcome> ListStoredQueriesOutcomeCallable;
356         typedef std::future<ListTagsForResourceOutcome> ListTagsForResourceOutcomeCallable;
357         typedef std::future<PutAggregationAuthorizationOutcome> PutAggregationAuthorizationOutcomeCallable;
358         typedef std::future<PutConfigRuleOutcome> PutConfigRuleOutcomeCallable;
359         typedef std::future<PutConfigurationAggregatorOutcome> PutConfigurationAggregatorOutcomeCallable;
360         typedef std::future<PutConfigurationRecorderOutcome> PutConfigurationRecorderOutcomeCallable;
361         typedef std::future<PutConformancePackOutcome> PutConformancePackOutcomeCallable;
362         typedef std::future<PutDeliveryChannelOutcome> PutDeliveryChannelOutcomeCallable;
363         typedef std::future<PutEvaluationsOutcome> PutEvaluationsOutcomeCallable;
364         typedef std::future<PutExternalEvaluationOutcome> PutExternalEvaluationOutcomeCallable;
365         typedef std::future<PutOrganizationConfigRuleOutcome> PutOrganizationConfigRuleOutcomeCallable;
366         typedef std::future<PutOrganizationConformancePackOutcome> PutOrganizationConformancePackOutcomeCallable;
367         typedef std::future<PutRemediationConfigurationsOutcome> PutRemediationConfigurationsOutcomeCallable;
368         typedef std::future<PutRemediationExceptionsOutcome> PutRemediationExceptionsOutcomeCallable;
369         typedef std::future<PutResourceConfigOutcome> PutResourceConfigOutcomeCallable;
370         typedef std::future<PutRetentionConfigurationOutcome> PutRetentionConfigurationOutcomeCallable;
371         typedef std::future<PutStoredQueryOutcome> PutStoredQueryOutcomeCallable;
372         typedef std::future<SelectAggregateResourceConfigOutcome> SelectAggregateResourceConfigOutcomeCallable;
373         typedef std::future<SelectResourceConfigOutcome> SelectResourceConfigOutcomeCallable;
374         typedef std::future<StartConfigRulesEvaluationOutcome> StartConfigRulesEvaluationOutcomeCallable;
375         typedef std::future<StartConfigurationRecorderOutcome> StartConfigurationRecorderOutcomeCallable;
376         typedef std::future<StartRemediationExecutionOutcome> StartRemediationExecutionOutcomeCallable;
377         typedef std::future<StopConfigurationRecorderOutcome> StopConfigurationRecorderOutcomeCallable;
378         typedef std::future<TagResourceOutcome> TagResourceOutcomeCallable;
379         typedef std::future<UntagResourceOutcome> UntagResourceOutcomeCallable;
380 } // namespace Model
381 
382   class ConfigServiceClient;
383 
384     typedef std::function<void(const ConfigServiceClient*, const Model::BatchGetAggregateResourceConfigRequest&, const Model::BatchGetAggregateResourceConfigOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > BatchGetAggregateResourceConfigResponseReceivedHandler;
385     typedef std::function<void(const ConfigServiceClient*, const Model::BatchGetResourceConfigRequest&, const Model::BatchGetResourceConfigOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > BatchGetResourceConfigResponseReceivedHandler;
386     typedef std::function<void(const ConfigServiceClient*, const Model::DeleteAggregationAuthorizationRequest&, const Model::DeleteAggregationAuthorizationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteAggregationAuthorizationResponseReceivedHandler;
387     typedef std::function<void(const ConfigServiceClient*, const Model::DeleteConfigRuleRequest&, const Model::DeleteConfigRuleOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteConfigRuleResponseReceivedHandler;
388     typedef std::function<void(const ConfigServiceClient*, const Model::DeleteConfigurationAggregatorRequest&, const Model::DeleteConfigurationAggregatorOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteConfigurationAggregatorResponseReceivedHandler;
389     typedef std::function<void(const ConfigServiceClient*, const Model::DeleteConfigurationRecorderRequest&, const Model::DeleteConfigurationRecorderOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteConfigurationRecorderResponseReceivedHandler;
390     typedef std::function<void(const ConfigServiceClient*, const Model::DeleteConformancePackRequest&, const Model::DeleteConformancePackOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteConformancePackResponseReceivedHandler;
391     typedef std::function<void(const ConfigServiceClient*, const Model::DeleteDeliveryChannelRequest&, const Model::DeleteDeliveryChannelOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteDeliveryChannelResponseReceivedHandler;
392     typedef std::function<void(const ConfigServiceClient*, const Model::DeleteEvaluationResultsRequest&, const Model::DeleteEvaluationResultsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteEvaluationResultsResponseReceivedHandler;
393     typedef std::function<void(const ConfigServiceClient*, const Model::DeleteOrganizationConfigRuleRequest&, const Model::DeleteOrganizationConfigRuleOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteOrganizationConfigRuleResponseReceivedHandler;
394     typedef std::function<void(const ConfigServiceClient*, const Model::DeleteOrganizationConformancePackRequest&, const Model::DeleteOrganizationConformancePackOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteOrganizationConformancePackResponseReceivedHandler;
395     typedef std::function<void(const ConfigServiceClient*, const Model::DeletePendingAggregationRequestRequest&, const Model::DeletePendingAggregationRequestOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeletePendingAggregationRequestResponseReceivedHandler;
396     typedef std::function<void(const ConfigServiceClient*, const Model::DeleteRemediationConfigurationRequest&, const Model::DeleteRemediationConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteRemediationConfigurationResponseReceivedHandler;
397     typedef std::function<void(const ConfigServiceClient*, const Model::DeleteRemediationExceptionsRequest&, const Model::DeleteRemediationExceptionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteRemediationExceptionsResponseReceivedHandler;
398     typedef std::function<void(const ConfigServiceClient*, const Model::DeleteResourceConfigRequest&, const Model::DeleteResourceConfigOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteResourceConfigResponseReceivedHandler;
399     typedef std::function<void(const ConfigServiceClient*, const Model::DeleteRetentionConfigurationRequest&, const Model::DeleteRetentionConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteRetentionConfigurationResponseReceivedHandler;
400     typedef std::function<void(const ConfigServiceClient*, const Model::DeleteStoredQueryRequest&, const Model::DeleteStoredQueryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteStoredQueryResponseReceivedHandler;
401     typedef std::function<void(const ConfigServiceClient*, const Model::DeliverConfigSnapshotRequest&, const Model::DeliverConfigSnapshotOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeliverConfigSnapshotResponseReceivedHandler;
402     typedef std::function<void(const ConfigServiceClient*, const Model::DescribeAggregateComplianceByConfigRulesRequest&, const Model::DescribeAggregateComplianceByConfigRulesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeAggregateComplianceByConfigRulesResponseReceivedHandler;
403     typedef std::function<void(const ConfigServiceClient*, const Model::DescribeAggregateComplianceByConformancePacksRequest&, const Model::DescribeAggregateComplianceByConformancePacksOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeAggregateComplianceByConformancePacksResponseReceivedHandler;
404     typedef std::function<void(const ConfigServiceClient*, const Model::DescribeAggregationAuthorizationsRequest&, const Model::DescribeAggregationAuthorizationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeAggregationAuthorizationsResponseReceivedHandler;
405     typedef std::function<void(const ConfigServiceClient*, const Model::DescribeComplianceByConfigRuleRequest&, const Model::DescribeComplianceByConfigRuleOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeComplianceByConfigRuleResponseReceivedHandler;
406     typedef std::function<void(const ConfigServiceClient*, const Model::DescribeComplianceByResourceRequest&, const Model::DescribeComplianceByResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeComplianceByResourceResponseReceivedHandler;
407     typedef std::function<void(const ConfigServiceClient*, const Model::DescribeConfigRuleEvaluationStatusRequest&, const Model::DescribeConfigRuleEvaluationStatusOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeConfigRuleEvaluationStatusResponseReceivedHandler;
408     typedef std::function<void(const ConfigServiceClient*, const Model::DescribeConfigRulesRequest&, const Model::DescribeConfigRulesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeConfigRulesResponseReceivedHandler;
409     typedef std::function<void(const ConfigServiceClient*, const Model::DescribeConfigurationAggregatorSourcesStatusRequest&, const Model::DescribeConfigurationAggregatorSourcesStatusOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeConfigurationAggregatorSourcesStatusResponseReceivedHandler;
410     typedef std::function<void(const ConfigServiceClient*, const Model::DescribeConfigurationAggregatorsRequest&, const Model::DescribeConfigurationAggregatorsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeConfigurationAggregatorsResponseReceivedHandler;
411     typedef std::function<void(const ConfigServiceClient*, const Model::DescribeConfigurationRecorderStatusRequest&, const Model::DescribeConfigurationRecorderStatusOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeConfigurationRecorderStatusResponseReceivedHandler;
412     typedef std::function<void(const ConfigServiceClient*, const Model::DescribeConfigurationRecordersRequest&, const Model::DescribeConfigurationRecordersOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeConfigurationRecordersResponseReceivedHandler;
413     typedef std::function<void(const ConfigServiceClient*, const Model::DescribeConformancePackComplianceRequest&, const Model::DescribeConformancePackComplianceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeConformancePackComplianceResponseReceivedHandler;
414     typedef std::function<void(const ConfigServiceClient*, const Model::DescribeConformancePackStatusRequest&, const Model::DescribeConformancePackStatusOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeConformancePackStatusResponseReceivedHandler;
415     typedef std::function<void(const ConfigServiceClient*, const Model::DescribeConformancePacksRequest&, const Model::DescribeConformancePacksOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeConformancePacksResponseReceivedHandler;
416     typedef std::function<void(const ConfigServiceClient*, const Model::DescribeDeliveryChannelStatusRequest&, const Model::DescribeDeliveryChannelStatusOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeDeliveryChannelStatusResponseReceivedHandler;
417     typedef std::function<void(const ConfigServiceClient*, const Model::DescribeDeliveryChannelsRequest&, const Model::DescribeDeliveryChannelsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeDeliveryChannelsResponseReceivedHandler;
418     typedef std::function<void(const ConfigServiceClient*, const Model::DescribeOrganizationConfigRuleStatusesRequest&, const Model::DescribeOrganizationConfigRuleStatusesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeOrganizationConfigRuleStatusesResponseReceivedHandler;
419     typedef std::function<void(const ConfigServiceClient*, const Model::DescribeOrganizationConfigRulesRequest&, const Model::DescribeOrganizationConfigRulesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeOrganizationConfigRulesResponseReceivedHandler;
420     typedef std::function<void(const ConfigServiceClient*, const Model::DescribeOrganizationConformancePackStatusesRequest&, const Model::DescribeOrganizationConformancePackStatusesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeOrganizationConformancePackStatusesResponseReceivedHandler;
421     typedef std::function<void(const ConfigServiceClient*, const Model::DescribeOrganizationConformancePacksRequest&, const Model::DescribeOrganizationConformancePacksOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeOrganizationConformancePacksResponseReceivedHandler;
422     typedef std::function<void(const ConfigServiceClient*, const Model::DescribePendingAggregationRequestsRequest&, const Model::DescribePendingAggregationRequestsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribePendingAggregationRequestsResponseReceivedHandler;
423     typedef std::function<void(const ConfigServiceClient*, const Model::DescribeRemediationConfigurationsRequest&, const Model::DescribeRemediationConfigurationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeRemediationConfigurationsResponseReceivedHandler;
424     typedef std::function<void(const ConfigServiceClient*, const Model::DescribeRemediationExceptionsRequest&, const Model::DescribeRemediationExceptionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeRemediationExceptionsResponseReceivedHandler;
425     typedef std::function<void(const ConfigServiceClient*, const Model::DescribeRemediationExecutionStatusRequest&, const Model::DescribeRemediationExecutionStatusOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeRemediationExecutionStatusResponseReceivedHandler;
426     typedef std::function<void(const ConfigServiceClient*, const Model::DescribeRetentionConfigurationsRequest&, const Model::DescribeRetentionConfigurationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeRetentionConfigurationsResponseReceivedHandler;
427     typedef std::function<void(const ConfigServiceClient*, const Model::GetAggregateComplianceDetailsByConfigRuleRequest&, const Model::GetAggregateComplianceDetailsByConfigRuleOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetAggregateComplianceDetailsByConfigRuleResponseReceivedHandler;
428     typedef std::function<void(const ConfigServiceClient*, const Model::GetAggregateConfigRuleComplianceSummaryRequest&, const Model::GetAggregateConfigRuleComplianceSummaryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetAggregateConfigRuleComplianceSummaryResponseReceivedHandler;
429     typedef std::function<void(const ConfigServiceClient*, const Model::GetAggregateConformancePackComplianceSummaryRequest&, const Model::GetAggregateConformancePackComplianceSummaryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetAggregateConformancePackComplianceSummaryResponseReceivedHandler;
430     typedef std::function<void(const ConfigServiceClient*, const Model::GetAggregateDiscoveredResourceCountsRequest&, const Model::GetAggregateDiscoveredResourceCountsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetAggregateDiscoveredResourceCountsResponseReceivedHandler;
431     typedef std::function<void(const ConfigServiceClient*, const Model::GetAggregateResourceConfigRequest&, const Model::GetAggregateResourceConfigOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetAggregateResourceConfigResponseReceivedHandler;
432     typedef std::function<void(const ConfigServiceClient*, const Model::GetComplianceDetailsByConfigRuleRequest&, const Model::GetComplianceDetailsByConfigRuleOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetComplianceDetailsByConfigRuleResponseReceivedHandler;
433     typedef std::function<void(const ConfigServiceClient*, const Model::GetComplianceDetailsByResourceRequest&, const Model::GetComplianceDetailsByResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetComplianceDetailsByResourceResponseReceivedHandler;
434     typedef std::function<void(const ConfigServiceClient*, const Model::GetComplianceSummaryByConfigRuleOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetComplianceSummaryByConfigRuleResponseReceivedHandler;
435     typedef std::function<void(const ConfigServiceClient*, const Model::GetComplianceSummaryByResourceTypeRequest&, const Model::GetComplianceSummaryByResourceTypeOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetComplianceSummaryByResourceTypeResponseReceivedHandler;
436     typedef std::function<void(const ConfigServiceClient*, const Model::GetConformancePackComplianceDetailsRequest&, const Model::GetConformancePackComplianceDetailsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetConformancePackComplianceDetailsResponseReceivedHandler;
437     typedef std::function<void(const ConfigServiceClient*, const Model::GetConformancePackComplianceSummaryRequest&, const Model::GetConformancePackComplianceSummaryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetConformancePackComplianceSummaryResponseReceivedHandler;
438     typedef std::function<void(const ConfigServiceClient*, const Model::GetDiscoveredResourceCountsRequest&, const Model::GetDiscoveredResourceCountsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetDiscoveredResourceCountsResponseReceivedHandler;
439     typedef std::function<void(const ConfigServiceClient*, const Model::GetOrganizationConfigRuleDetailedStatusRequest&, const Model::GetOrganizationConfigRuleDetailedStatusOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetOrganizationConfigRuleDetailedStatusResponseReceivedHandler;
440     typedef std::function<void(const ConfigServiceClient*, const Model::GetOrganizationConformancePackDetailedStatusRequest&, const Model::GetOrganizationConformancePackDetailedStatusOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetOrganizationConformancePackDetailedStatusResponseReceivedHandler;
441     typedef std::function<void(const ConfigServiceClient*, const Model::GetResourceConfigHistoryRequest&, const Model::GetResourceConfigHistoryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetResourceConfigHistoryResponseReceivedHandler;
442     typedef std::function<void(const ConfigServiceClient*, const Model::GetStoredQueryRequest&, const Model::GetStoredQueryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetStoredQueryResponseReceivedHandler;
443     typedef std::function<void(const ConfigServiceClient*, const Model::ListAggregateDiscoveredResourcesRequest&, const Model::ListAggregateDiscoveredResourcesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListAggregateDiscoveredResourcesResponseReceivedHandler;
444     typedef std::function<void(const ConfigServiceClient*, const Model::ListDiscoveredResourcesRequest&, const Model::ListDiscoveredResourcesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListDiscoveredResourcesResponseReceivedHandler;
445     typedef std::function<void(const ConfigServiceClient*, const Model::ListStoredQueriesRequest&, const Model::ListStoredQueriesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListStoredQueriesResponseReceivedHandler;
446     typedef std::function<void(const ConfigServiceClient*, const Model::ListTagsForResourceRequest&, const Model::ListTagsForResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTagsForResourceResponseReceivedHandler;
447     typedef std::function<void(const ConfigServiceClient*, const Model::PutAggregationAuthorizationRequest&, const Model::PutAggregationAuthorizationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutAggregationAuthorizationResponseReceivedHandler;
448     typedef std::function<void(const ConfigServiceClient*, const Model::PutConfigRuleRequest&, const Model::PutConfigRuleOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutConfigRuleResponseReceivedHandler;
449     typedef std::function<void(const ConfigServiceClient*, const Model::PutConfigurationAggregatorRequest&, const Model::PutConfigurationAggregatorOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutConfigurationAggregatorResponseReceivedHandler;
450     typedef std::function<void(const ConfigServiceClient*, const Model::PutConfigurationRecorderRequest&, const Model::PutConfigurationRecorderOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutConfigurationRecorderResponseReceivedHandler;
451     typedef std::function<void(const ConfigServiceClient*, const Model::PutConformancePackRequest&, const Model::PutConformancePackOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutConformancePackResponseReceivedHandler;
452     typedef std::function<void(const ConfigServiceClient*, const Model::PutDeliveryChannelRequest&, const Model::PutDeliveryChannelOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutDeliveryChannelResponseReceivedHandler;
453     typedef std::function<void(const ConfigServiceClient*, const Model::PutEvaluationsRequest&, const Model::PutEvaluationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutEvaluationsResponseReceivedHandler;
454     typedef std::function<void(const ConfigServiceClient*, const Model::PutExternalEvaluationRequest&, const Model::PutExternalEvaluationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutExternalEvaluationResponseReceivedHandler;
455     typedef std::function<void(const ConfigServiceClient*, const Model::PutOrganizationConfigRuleRequest&, const Model::PutOrganizationConfigRuleOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutOrganizationConfigRuleResponseReceivedHandler;
456     typedef std::function<void(const ConfigServiceClient*, const Model::PutOrganizationConformancePackRequest&, const Model::PutOrganizationConformancePackOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutOrganizationConformancePackResponseReceivedHandler;
457     typedef std::function<void(const ConfigServiceClient*, const Model::PutRemediationConfigurationsRequest&, const Model::PutRemediationConfigurationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutRemediationConfigurationsResponseReceivedHandler;
458     typedef std::function<void(const ConfigServiceClient*, const Model::PutRemediationExceptionsRequest&, const Model::PutRemediationExceptionsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutRemediationExceptionsResponseReceivedHandler;
459     typedef std::function<void(const ConfigServiceClient*, const Model::PutResourceConfigRequest&, const Model::PutResourceConfigOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutResourceConfigResponseReceivedHandler;
460     typedef std::function<void(const ConfigServiceClient*, const Model::PutRetentionConfigurationRequest&, const Model::PutRetentionConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutRetentionConfigurationResponseReceivedHandler;
461     typedef std::function<void(const ConfigServiceClient*, const Model::PutStoredQueryRequest&, const Model::PutStoredQueryOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutStoredQueryResponseReceivedHandler;
462     typedef std::function<void(const ConfigServiceClient*, const Model::SelectAggregateResourceConfigRequest&, const Model::SelectAggregateResourceConfigOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > SelectAggregateResourceConfigResponseReceivedHandler;
463     typedef std::function<void(const ConfigServiceClient*, const Model::SelectResourceConfigRequest&, const Model::SelectResourceConfigOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > SelectResourceConfigResponseReceivedHandler;
464     typedef std::function<void(const ConfigServiceClient*, const Model::StartConfigRulesEvaluationRequest&, const Model::StartConfigRulesEvaluationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StartConfigRulesEvaluationResponseReceivedHandler;
465     typedef std::function<void(const ConfigServiceClient*, const Model::StartConfigurationRecorderRequest&, const Model::StartConfigurationRecorderOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StartConfigurationRecorderResponseReceivedHandler;
466     typedef std::function<void(const ConfigServiceClient*, const Model::StartRemediationExecutionRequest&, const Model::StartRemediationExecutionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StartRemediationExecutionResponseReceivedHandler;
467     typedef std::function<void(const ConfigServiceClient*, const Model::StopConfigurationRecorderRequest&, const Model::StopConfigurationRecorderOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > StopConfigurationRecorderResponseReceivedHandler;
468     typedef std::function<void(const ConfigServiceClient*, const Model::TagResourceRequest&, const Model::TagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TagResourceResponseReceivedHandler;
469     typedef std::function<void(const ConfigServiceClient*, const Model::UntagResourceRequest&, const Model::UntagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UntagResourceResponseReceivedHandler;
470 
471   /**
472    * <fullname>Config</fullname> <p>Config provides a way to keep track of the
473    * configurations of all the Amazon Web Services resources associated with your
474    * Amazon Web Services account. You can use Config to get the current and
475    * historical configurations of each Amazon Web Services resource and also to get
476    * information about the relationship between the resources. An Amazon Web Services
477    * resource can be an Amazon Compute Cloud (Amazon EC2) instance, an Elastic Block
478    * Store (EBS) volume, an elastic network Interface (ENI), or a security group. For
479    * a complete list of resources currently supported by Config, see <a
480    * href="https://docs.aws.amazon.com/config/latest/developerguide/resource-config-reference.html#supported-resources">Supported
481    * Amazon Web Services resources</a>.</p> <p>You can access and manage Config
482    * through the Amazon Web Services Management Console, the Amazon Web Services
483    * Command Line Interface (Amazon Web Services CLI), the Config API, or the Amazon
484    * Web Services SDKs for Config. This reference guide contains documentation for
485    * the Config API and the Amazon Web Services CLI commands that you can use to
486    * manage Config. The Config API uses the Signature Version 4 protocol for signing
487    * requests. For more information about how to sign a request with this protocol,
488    * see <a
489    * href="https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html">Signature
490    * Version 4 Signing Process</a>. For detailed information about Config features
491    * and their associated actions or commands, as well as how to work with Amazon Web
492    * Services Management Console, see <a
493    * href="https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html">What
494    * Is Config</a> in the <i>Config Developer Guide</i>.</p>
495    */
496   class AWS_CONFIGSERVICE_API ConfigServiceClient : public Aws::Client::AWSJsonClient
497   {
498     public:
499       typedef Aws::Client::AWSJsonClient BASECLASS;
500 
501        /**
502         * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
503         * is not specified, it will be initialized to default values.
504         */
505         ConfigServiceClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
506 
507        /**
508         * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
509         * is not specified, it will be initialized to default values.
510         */
511         ConfigServiceClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
512 
513        /**
514         * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
515         * the default http client factory will be used
516         */
517         ConfigServiceClient(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
518             const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
519 
520         virtual ~ConfigServiceClient();
521 
522 
523         /**
524          * <p>Returns the current configuration items for resources that are present in
525          * your Config aggregator. The operation also returns a list of resources that are
526          * not processed in the current request. If there are no unprocessed resources, the
527          * operation returns an empty <code>unprocessedResourceIdentifiers</code> list.
528          * </p>  <ul> <li> <p>The API does not return results for deleted
529          * resources.</p> </li> <li> <p> The API does not return tags and
530          * relationships.</p> </li> </ul> <p><h3>See Also:</h3>   <a
531          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/BatchGetAggregateResourceConfig">AWS
532          * API Reference</a></p>
533          */
534         virtual Model::BatchGetAggregateResourceConfigOutcome BatchGetAggregateResourceConfig(const Model::BatchGetAggregateResourceConfigRequest& request) const;
535 
536         /**
537          * <p>Returns the current configuration items for resources that are present in
538          * your Config aggregator. The operation also returns a list of resources that are
539          * not processed in the current request. If there are no unprocessed resources, the
540          * operation returns an empty <code>unprocessedResourceIdentifiers</code> list.
541          * </p>  <ul> <li> <p>The API does not return results for deleted
542          * resources.</p> </li> <li> <p> The API does not return tags and
543          * relationships.</p> </li> </ul> <p><h3>See Also:</h3>   <a
544          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/BatchGetAggregateResourceConfig">AWS
545          * API Reference</a></p>
546          *
547          * returns a future to the operation so that it can be executed in parallel to other requests.
548          */
549         virtual Model::BatchGetAggregateResourceConfigOutcomeCallable BatchGetAggregateResourceConfigCallable(const Model::BatchGetAggregateResourceConfigRequest& request) const;
550 
551         /**
552          * <p>Returns the current configuration items for resources that are present in
553          * your Config aggregator. The operation also returns a list of resources that are
554          * not processed in the current request. If there are no unprocessed resources, the
555          * operation returns an empty <code>unprocessedResourceIdentifiers</code> list.
556          * </p>  <ul> <li> <p>The API does not return results for deleted
557          * resources.</p> </li> <li> <p> The API does not return tags and
558          * relationships.</p> </li> </ul> <p><h3>See Also:</h3>   <a
559          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/BatchGetAggregateResourceConfig">AWS
560          * API Reference</a></p>
561          *
562          * Queues the request into a thread executor and triggers associated callback when operation has finished.
563          */
564         virtual void BatchGetAggregateResourceConfigAsync(const Model::BatchGetAggregateResourceConfigRequest& request, const BatchGetAggregateResourceConfigResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
565 
566         /**
567          * <p>Returns the <code>BaseConfigurationItem</code> for one or more requested
568          * resources. The operation also returns a list of resources that are not processed
569          * in the current request. If there are no unprocessed resources, the operation
570          * returns an empty unprocessedResourceKeys list. </p>  <ul> <li> <p>The API
571          * does not return results for deleted resources.</p> </li> <li> <p> The API does
572          * not return any tags for the requested resources. This information is filtered
573          * out of the supplementaryConfiguration section of the API response.</p> </li>
574          * </ul> <p><h3>See Also:</h3>   <a
575          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/BatchGetResourceConfig">AWS
576          * API Reference</a></p>
577          */
578         virtual Model::BatchGetResourceConfigOutcome BatchGetResourceConfig(const Model::BatchGetResourceConfigRequest& request) const;
579 
580         /**
581          * <p>Returns the <code>BaseConfigurationItem</code> for one or more requested
582          * resources. The operation also returns a list of resources that are not processed
583          * in the current request. If there are no unprocessed resources, the operation
584          * returns an empty unprocessedResourceKeys list. </p>  <ul> <li> <p>The API
585          * does not return results for deleted resources.</p> </li> <li> <p> The API does
586          * not return any tags for the requested resources. This information is filtered
587          * out of the supplementaryConfiguration section of the API response.</p> </li>
588          * </ul> <p><h3>See Also:</h3>   <a
589          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/BatchGetResourceConfig">AWS
590          * API Reference</a></p>
591          *
592          * returns a future to the operation so that it can be executed in parallel to other requests.
593          */
594         virtual Model::BatchGetResourceConfigOutcomeCallable BatchGetResourceConfigCallable(const Model::BatchGetResourceConfigRequest& request) const;
595 
596         /**
597          * <p>Returns the <code>BaseConfigurationItem</code> for one or more requested
598          * resources. The operation also returns a list of resources that are not processed
599          * in the current request. If there are no unprocessed resources, the operation
600          * returns an empty unprocessedResourceKeys list. </p>  <ul> <li> <p>The API
601          * does not return results for deleted resources.</p> </li> <li> <p> The API does
602          * not return any tags for the requested resources. This information is filtered
603          * out of the supplementaryConfiguration section of the API response.</p> </li>
604          * </ul> <p><h3>See Also:</h3>   <a
605          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/BatchGetResourceConfig">AWS
606          * API Reference</a></p>
607          *
608          * Queues the request into a thread executor and triggers associated callback when operation has finished.
609          */
610         virtual void BatchGetResourceConfigAsync(const Model::BatchGetResourceConfigRequest& request, const BatchGetResourceConfigResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
611 
612         /**
613          * <p>Deletes the authorization granted to the specified configuration aggregator
614          * account in a specified region.</p><p><h3>See Also:</h3>   <a
615          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteAggregationAuthorization">AWS
616          * API Reference</a></p>
617          */
618         virtual Model::DeleteAggregationAuthorizationOutcome DeleteAggregationAuthorization(const Model::DeleteAggregationAuthorizationRequest& request) const;
619 
620         /**
621          * <p>Deletes the authorization granted to the specified configuration aggregator
622          * account in a specified region.</p><p><h3>See Also:</h3>   <a
623          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteAggregationAuthorization">AWS
624          * API Reference</a></p>
625          *
626          * returns a future to the operation so that it can be executed in parallel to other requests.
627          */
628         virtual Model::DeleteAggregationAuthorizationOutcomeCallable DeleteAggregationAuthorizationCallable(const Model::DeleteAggregationAuthorizationRequest& request) const;
629 
630         /**
631          * <p>Deletes the authorization granted to the specified configuration aggregator
632          * account in a specified region.</p><p><h3>See Also:</h3>   <a
633          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteAggregationAuthorization">AWS
634          * API Reference</a></p>
635          *
636          * Queues the request into a thread executor and triggers associated callback when operation has finished.
637          */
638         virtual void DeleteAggregationAuthorizationAsync(const Model::DeleteAggregationAuthorizationRequest& request, const DeleteAggregationAuthorizationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
639 
640         /**
641          * <p>Deletes the specified Config rule and all of its evaluation results.</p>
642          * <p>Config sets the state of a rule to <code>DELETING</code> until the deletion
643          * is complete. You cannot update a rule while it is in this state. If you make a
644          * <code>PutConfigRule</code> or <code>DeleteConfigRule</code> request for the
645          * rule, you will receive a <code>ResourceInUseException</code>.</p> <p>You can
646          * check the state of a rule by using the <code>DescribeConfigRules</code>
647          * request.</p><p><h3>See Also:</h3>   <a
648          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteConfigRule">AWS
649          * API Reference</a></p>
650          */
651         virtual Model::DeleteConfigRuleOutcome DeleteConfigRule(const Model::DeleteConfigRuleRequest& request) const;
652 
653         /**
654          * <p>Deletes the specified Config rule and all of its evaluation results.</p>
655          * <p>Config sets the state of a rule to <code>DELETING</code> until the deletion
656          * is complete. You cannot update a rule while it is in this state. If you make a
657          * <code>PutConfigRule</code> or <code>DeleteConfigRule</code> request for the
658          * rule, you will receive a <code>ResourceInUseException</code>.</p> <p>You can
659          * check the state of a rule by using the <code>DescribeConfigRules</code>
660          * request.</p><p><h3>See Also:</h3>   <a
661          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteConfigRule">AWS
662          * API Reference</a></p>
663          *
664          * returns a future to the operation so that it can be executed in parallel to other requests.
665          */
666         virtual Model::DeleteConfigRuleOutcomeCallable DeleteConfigRuleCallable(const Model::DeleteConfigRuleRequest& request) const;
667 
668         /**
669          * <p>Deletes the specified Config rule and all of its evaluation results.</p>
670          * <p>Config sets the state of a rule to <code>DELETING</code> until the deletion
671          * is complete. You cannot update a rule while it is in this state. If you make a
672          * <code>PutConfigRule</code> or <code>DeleteConfigRule</code> request for the
673          * rule, you will receive a <code>ResourceInUseException</code>.</p> <p>You can
674          * check the state of a rule by using the <code>DescribeConfigRules</code>
675          * request.</p><p><h3>See Also:</h3>   <a
676          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteConfigRule">AWS
677          * API Reference</a></p>
678          *
679          * Queues the request into a thread executor and triggers associated callback when operation has finished.
680          */
681         virtual void DeleteConfigRuleAsync(const Model::DeleteConfigRuleRequest& request, const DeleteConfigRuleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
682 
683         /**
684          * <p>Deletes the specified configuration aggregator and the aggregated data
685          * associated with the aggregator.</p><p><h3>See Also:</h3>   <a
686          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteConfigurationAggregator">AWS
687          * API Reference</a></p>
688          */
689         virtual Model::DeleteConfigurationAggregatorOutcome DeleteConfigurationAggregator(const Model::DeleteConfigurationAggregatorRequest& request) const;
690 
691         /**
692          * <p>Deletes the specified configuration aggregator and the aggregated data
693          * associated with the aggregator.</p><p><h3>See Also:</h3>   <a
694          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteConfigurationAggregator">AWS
695          * API Reference</a></p>
696          *
697          * returns a future to the operation so that it can be executed in parallel to other requests.
698          */
699         virtual Model::DeleteConfigurationAggregatorOutcomeCallable DeleteConfigurationAggregatorCallable(const Model::DeleteConfigurationAggregatorRequest& request) const;
700 
701         /**
702          * <p>Deletes the specified configuration aggregator and the aggregated data
703          * associated with the aggregator.</p><p><h3>See Also:</h3>   <a
704          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteConfigurationAggregator">AWS
705          * API Reference</a></p>
706          *
707          * Queues the request into a thread executor and triggers associated callback when operation has finished.
708          */
709         virtual void DeleteConfigurationAggregatorAsync(const Model::DeleteConfigurationAggregatorRequest& request, const DeleteConfigurationAggregatorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
710 
711         /**
712          * <p>Deletes the configuration recorder.</p> <p>After the configuration recorder
713          * is deleted, Config will not record resource configuration changes until you
714          * create a new configuration recorder.</p> <p>This action does not delete the
715          * configuration information that was previously recorded. You will be able to
716          * access the previously recorded information by using the
717          * <code>GetResourceConfigHistory</code> action, but you will not be able to access
718          * this information in the Config console until you create a new configuration
719          * recorder.</p><p><h3>See Also:</h3>   <a
720          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteConfigurationRecorder">AWS
721          * API Reference</a></p>
722          */
723         virtual Model::DeleteConfigurationRecorderOutcome DeleteConfigurationRecorder(const Model::DeleteConfigurationRecorderRequest& request) const;
724 
725         /**
726          * <p>Deletes the configuration recorder.</p> <p>After the configuration recorder
727          * is deleted, Config will not record resource configuration changes until you
728          * create a new configuration recorder.</p> <p>This action does not delete the
729          * configuration information that was previously recorded. You will be able to
730          * access the previously recorded information by using the
731          * <code>GetResourceConfigHistory</code> action, but you will not be able to access
732          * this information in the Config console until you create a new configuration
733          * recorder.</p><p><h3>See Also:</h3>   <a
734          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteConfigurationRecorder">AWS
735          * API Reference</a></p>
736          *
737          * returns a future to the operation so that it can be executed in parallel to other requests.
738          */
739         virtual Model::DeleteConfigurationRecorderOutcomeCallable DeleteConfigurationRecorderCallable(const Model::DeleteConfigurationRecorderRequest& request) const;
740 
741         /**
742          * <p>Deletes the configuration recorder.</p> <p>After the configuration recorder
743          * is deleted, Config will not record resource configuration changes until you
744          * create a new configuration recorder.</p> <p>This action does not delete the
745          * configuration information that was previously recorded. You will be able to
746          * access the previously recorded information by using the
747          * <code>GetResourceConfigHistory</code> action, but you will not be able to access
748          * this information in the Config console until you create a new configuration
749          * recorder.</p><p><h3>See Also:</h3>   <a
750          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteConfigurationRecorder">AWS
751          * API Reference</a></p>
752          *
753          * Queues the request into a thread executor and triggers associated callback when operation has finished.
754          */
755         virtual void DeleteConfigurationRecorderAsync(const Model::DeleteConfigurationRecorderRequest& request, const DeleteConfigurationRecorderResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
756 
757         /**
758          * <p>Deletes the specified conformance pack and all the Config rules, remediation
759          * actions, and all evaluation results within that conformance pack.</p> <p>Config
760          * sets the conformance pack to <code>DELETE_IN_PROGRESS</code> until the deletion
761          * is complete. You cannot update a conformance pack while it is in this
762          * state.</p><p><h3>See Also:</h3>   <a
763          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteConformancePack">AWS
764          * API Reference</a></p>
765          */
766         virtual Model::DeleteConformancePackOutcome DeleteConformancePack(const Model::DeleteConformancePackRequest& request) const;
767 
768         /**
769          * <p>Deletes the specified conformance pack and all the Config rules, remediation
770          * actions, and all evaluation results within that conformance pack.</p> <p>Config
771          * sets the conformance pack to <code>DELETE_IN_PROGRESS</code> until the deletion
772          * is complete. You cannot update a conformance pack while it is in this
773          * state.</p><p><h3>See Also:</h3>   <a
774          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteConformancePack">AWS
775          * API Reference</a></p>
776          *
777          * returns a future to the operation so that it can be executed in parallel to other requests.
778          */
779         virtual Model::DeleteConformancePackOutcomeCallable DeleteConformancePackCallable(const Model::DeleteConformancePackRequest& request) const;
780 
781         /**
782          * <p>Deletes the specified conformance pack and all the Config rules, remediation
783          * actions, and all evaluation results within that conformance pack.</p> <p>Config
784          * sets the conformance pack to <code>DELETE_IN_PROGRESS</code> until the deletion
785          * is complete. You cannot update a conformance pack while it is in this
786          * state.</p><p><h3>See Also:</h3>   <a
787          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteConformancePack">AWS
788          * API Reference</a></p>
789          *
790          * Queues the request into a thread executor and triggers associated callback when operation has finished.
791          */
792         virtual void DeleteConformancePackAsync(const Model::DeleteConformancePackRequest& request, const DeleteConformancePackResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
793 
794         /**
795          * <p>Deletes the delivery channel.</p> <p>Before you can delete the delivery
796          * channel, you must stop the configuration recorder by using the
797          * <a>StopConfigurationRecorder</a> action.</p><p><h3>See Also:</h3>   <a
798          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteDeliveryChannel">AWS
799          * API Reference</a></p>
800          */
801         virtual Model::DeleteDeliveryChannelOutcome DeleteDeliveryChannel(const Model::DeleteDeliveryChannelRequest& request) const;
802 
803         /**
804          * <p>Deletes the delivery channel.</p> <p>Before you can delete the delivery
805          * channel, you must stop the configuration recorder by using the
806          * <a>StopConfigurationRecorder</a> action.</p><p><h3>See Also:</h3>   <a
807          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteDeliveryChannel">AWS
808          * API Reference</a></p>
809          *
810          * returns a future to the operation so that it can be executed in parallel to other requests.
811          */
812         virtual Model::DeleteDeliveryChannelOutcomeCallable DeleteDeliveryChannelCallable(const Model::DeleteDeliveryChannelRequest& request) const;
813 
814         /**
815          * <p>Deletes the delivery channel.</p> <p>Before you can delete the delivery
816          * channel, you must stop the configuration recorder by using the
817          * <a>StopConfigurationRecorder</a> action.</p><p><h3>See Also:</h3>   <a
818          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteDeliveryChannel">AWS
819          * API Reference</a></p>
820          *
821          * Queues the request into a thread executor and triggers associated callback when operation has finished.
822          */
823         virtual void DeleteDeliveryChannelAsync(const Model::DeleteDeliveryChannelRequest& request, const DeleteDeliveryChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
824 
825         /**
826          * <p>Deletes the evaluation results for the specified Config rule. You can specify
827          * one Config rule per request. After you delete the evaluation results, you can
828          * call the <a>StartConfigRulesEvaluation</a> API to start evaluating your Amazon
829          * Web Services resources against the rule.</p><p><h3>See Also:</h3>   <a
830          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteEvaluationResults">AWS
831          * API Reference</a></p>
832          */
833         virtual Model::DeleteEvaluationResultsOutcome DeleteEvaluationResults(const Model::DeleteEvaluationResultsRequest& request) const;
834 
835         /**
836          * <p>Deletes the evaluation results for the specified Config rule. You can specify
837          * one Config rule per request. After you delete the evaluation results, you can
838          * call the <a>StartConfigRulesEvaluation</a> API to start evaluating your Amazon
839          * Web Services resources against the rule.</p><p><h3>See Also:</h3>   <a
840          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteEvaluationResults">AWS
841          * API Reference</a></p>
842          *
843          * returns a future to the operation so that it can be executed in parallel to other requests.
844          */
845         virtual Model::DeleteEvaluationResultsOutcomeCallable DeleteEvaluationResultsCallable(const Model::DeleteEvaluationResultsRequest& request) const;
846 
847         /**
848          * <p>Deletes the evaluation results for the specified Config rule. You can specify
849          * one Config rule per request. After you delete the evaluation results, you can
850          * call the <a>StartConfigRulesEvaluation</a> API to start evaluating your Amazon
851          * Web Services resources against the rule.</p><p><h3>See Also:</h3>   <a
852          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteEvaluationResults">AWS
853          * API Reference</a></p>
854          *
855          * Queues the request into a thread executor and triggers associated callback when operation has finished.
856          */
857         virtual void DeleteEvaluationResultsAsync(const Model::DeleteEvaluationResultsRequest& request, const DeleteEvaluationResultsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
858 
859         /**
860          * <p>Deletes the specified organization config rule and all of its evaluation
861          * results from all member accounts in that organization. </p> <p>Only a master
862          * account and a delegated administrator account can delete an organization config
863          * rule. When calling this API with a delegated administrator, you must ensure
864          * Organizations <code>ListDelegatedAdministrator</code> permissions are added.</p>
865          * <p>Config sets the state of a rule to DELETE_IN_PROGRESS until the deletion is
866          * complete. You cannot update a rule while it is in this state.</p><p><h3>See
867          * Also:</h3>   <a
868          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteOrganizationConfigRule">AWS
869          * API Reference</a></p>
870          */
871         virtual Model::DeleteOrganizationConfigRuleOutcome DeleteOrganizationConfigRule(const Model::DeleteOrganizationConfigRuleRequest& request) const;
872 
873         /**
874          * <p>Deletes the specified organization config rule and all of its evaluation
875          * results from all member accounts in that organization. </p> <p>Only a master
876          * account and a delegated administrator account can delete an organization config
877          * rule. When calling this API with a delegated administrator, you must ensure
878          * Organizations <code>ListDelegatedAdministrator</code> permissions are added.</p>
879          * <p>Config sets the state of a rule to DELETE_IN_PROGRESS until the deletion is
880          * complete. You cannot update a rule while it is in this state.</p><p><h3>See
881          * Also:</h3>   <a
882          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteOrganizationConfigRule">AWS
883          * API Reference</a></p>
884          *
885          * returns a future to the operation so that it can be executed in parallel to other requests.
886          */
887         virtual Model::DeleteOrganizationConfigRuleOutcomeCallable DeleteOrganizationConfigRuleCallable(const Model::DeleteOrganizationConfigRuleRequest& request) const;
888 
889         /**
890          * <p>Deletes the specified organization config rule and all of its evaluation
891          * results from all member accounts in that organization. </p> <p>Only a master
892          * account and a delegated administrator account can delete an organization config
893          * rule. When calling this API with a delegated administrator, you must ensure
894          * Organizations <code>ListDelegatedAdministrator</code> permissions are added.</p>
895          * <p>Config sets the state of a rule to DELETE_IN_PROGRESS until the deletion is
896          * complete. You cannot update a rule while it is in this state.</p><p><h3>See
897          * Also:</h3>   <a
898          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteOrganizationConfigRule">AWS
899          * API Reference</a></p>
900          *
901          * Queues the request into a thread executor and triggers associated callback when operation has finished.
902          */
903         virtual void DeleteOrganizationConfigRuleAsync(const Model::DeleteOrganizationConfigRuleRequest& request, const DeleteOrganizationConfigRuleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
904 
905         /**
906          * <p>Deletes the specified organization conformance pack and all of the config
907          * rules and remediation actions from all member accounts in that organization.
908          * </p> <p> Only a master account or a delegated administrator account can delete
909          * an organization conformance pack. When calling this API with a delegated
910          * administrator, you must ensure Organizations
911          * <code>ListDelegatedAdministrator</code> permissions are added.</p> <p>Config
912          * sets the state of a conformance pack to DELETE_IN_PROGRESS until the deletion is
913          * complete. You cannot update a conformance pack while it is in this state.
914          * </p><p><h3>See Also:</h3>   <a
915          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteOrganizationConformancePack">AWS
916          * API Reference</a></p>
917          */
918         virtual Model::DeleteOrganizationConformancePackOutcome DeleteOrganizationConformancePack(const Model::DeleteOrganizationConformancePackRequest& request) const;
919 
920         /**
921          * <p>Deletes the specified organization conformance pack and all of the config
922          * rules and remediation actions from all member accounts in that organization.
923          * </p> <p> Only a master account or a delegated administrator account can delete
924          * an organization conformance pack. When calling this API with a delegated
925          * administrator, you must ensure Organizations
926          * <code>ListDelegatedAdministrator</code> permissions are added.</p> <p>Config
927          * sets the state of a conformance pack to DELETE_IN_PROGRESS until the deletion is
928          * complete. You cannot update a conformance pack while it is in this state.
929          * </p><p><h3>See Also:</h3>   <a
930          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteOrganizationConformancePack">AWS
931          * API Reference</a></p>
932          *
933          * returns a future to the operation so that it can be executed in parallel to other requests.
934          */
935         virtual Model::DeleteOrganizationConformancePackOutcomeCallable DeleteOrganizationConformancePackCallable(const Model::DeleteOrganizationConformancePackRequest& request) const;
936 
937         /**
938          * <p>Deletes the specified organization conformance pack and all of the config
939          * rules and remediation actions from all member accounts in that organization.
940          * </p> <p> Only a master account or a delegated administrator account can delete
941          * an organization conformance pack. When calling this API with a delegated
942          * administrator, you must ensure Organizations
943          * <code>ListDelegatedAdministrator</code> permissions are added.</p> <p>Config
944          * sets the state of a conformance pack to DELETE_IN_PROGRESS until the deletion is
945          * complete. You cannot update a conformance pack while it is in this state.
946          * </p><p><h3>See Also:</h3>   <a
947          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteOrganizationConformancePack">AWS
948          * API Reference</a></p>
949          *
950          * Queues the request into a thread executor and triggers associated callback when operation has finished.
951          */
952         virtual void DeleteOrganizationConformancePackAsync(const Model::DeleteOrganizationConformancePackRequest& request, const DeleteOrganizationConformancePackResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
953 
954         /**
955          * <p>Deletes pending authorization requests for a specified aggregator account in
956          * a specified region.</p><p><h3>See Also:</h3>   <a
957          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeletePendingAggregationRequest">AWS
958          * API Reference</a></p>
959          */
960         virtual Model::DeletePendingAggregationRequestOutcome DeletePendingAggregationRequest(const Model::DeletePendingAggregationRequestRequest& request) const;
961 
962         /**
963          * <p>Deletes pending authorization requests for a specified aggregator account in
964          * a specified region.</p><p><h3>See Also:</h3>   <a
965          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeletePendingAggregationRequest">AWS
966          * API Reference</a></p>
967          *
968          * returns a future to the operation so that it can be executed in parallel to other requests.
969          */
970         virtual Model::DeletePendingAggregationRequestOutcomeCallable DeletePendingAggregationRequestCallable(const Model::DeletePendingAggregationRequestRequest& request) const;
971 
972         /**
973          * <p>Deletes pending authorization requests for a specified aggregator account in
974          * a specified region.</p><p><h3>See Also:</h3>   <a
975          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeletePendingAggregationRequest">AWS
976          * API Reference</a></p>
977          *
978          * Queues the request into a thread executor and triggers associated callback when operation has finished.
979          */
980         virtual void DeletePendingAggregationRequestAsync(const Model::DeletePendingAggregationRequestRequest& request, const DeletePendingAggregationRequestResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
981 
982         /**
983          * <p>Deletes the remediation configuration.</p><p><h3>See Also:</h3>   <a
984          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteRemediationConfiguration">AWS
985          * API Reference</a></p>
986          */
987         virtual Model::DeleteRemediationConfigurationOutcome DeleteRemediationConfiguration(const Model::DeleteRemediationConfigurationRequest& request) const;
988 
989         /**
990          * <p>Deletes the remediation configuration.</p><p><h3>See Also:</h3>   <a
991          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteRemediationConfiguration">AWS
992          * API Reference</a></p>
993          *
994          * returns a future to the operation so that it can be executed in parallel to other requests.
995          */
996         virtual Model::DeleteRemediationConfigurationOutcomeCallable DeleteRemediationConfigurationCallable(const Model::DeleteRemediationConfigurationRequest& request) const;
997 
998         /**
999          * <p>Deletes the remediation configuration.</p><p><h3>See Also:</h3>   <a
1000          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteRemediationConfiguration">AWS
1001          * API Reference</a></p>
1002          *
1003          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1004          */
1005         virtual void DeleteRemediationConfigurationAsync(const Model::DeleteRemediationConfigurationRequest& request, const DeleteRemediationConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1006 
1007         /**
1008          * <p>Deletes one or more remediation exceptions mentioned in the resource
1009          * keys.</p>  <p>Config generates a remediation exception when a problem
1010          * occurs executing a remediation action to a specific resource. Remediation
1011          * exceptions blocks auto-remediation until the exception is cleared.</p>
1012          * <p><h3>See Also:</h3>   <a
1013          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteRemediationExceptions">AWS
1014          * API Reference</a></p>
1015          */
1016         virtual Model::DeleteRemediationExceptionsOutcome DeleteRemediationExceptions(const Model::DeleteRemediationExceptionsRequest& request) const;
1017 
1018         /**
1019          * <p>Deletes one or more remediation exceptions mentioned in the resource
1020          * keys.</p>  <p>Config generates a remediation exception when a problem
1021          * occurs executing a remediation action to a specific resource. Remediation
1022          * exceptions blocks auto-remediation until the exception is cleared.</p>
1023          * <p><h3>See Also:</h3>   <a
1024          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteRemediationExceptions">AWS
1025          * API Reference</a></p>
1026          *
1027          * returns a future to the operation so that it can be executed in parallel to other requests.
1028          */
1029         virtual Model::DeleteRemediationExceptionsOutcomeCallable DeleteRemediationExceptionsCallable(const Model::DeleteRemediationExceptionsRequest& request) const;
1030 
1031         /**
1032          * <p>Deletes one or more remediation exceptions mentioned in the resource
1033          * keys.</p>  <p>Config generates a remediation exception when a problem
1034          * occurs executing a remediation action to a specific resource. Remediation
1035          * exceptions blocks auto-remediation until the exception is cleared.</p>
1036          * <p><h3>See Also:</h3>   <a
1037          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteRemediationExceptions">AWS
1038          * API Reference</a></p>
1039          *
1040          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1041          */
1042         virtual void DeleteRemediationExceptionsAsync(const Model::DeleteRemediationExceptionsRequest& request, const DeleteRemediationExceptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1043 
1044         /**
1045          * <p>Records the configuration state for a custom resource that has been deleted.
1046          * This API records a new ConfigurationItem with a ResourceDeleted status. You can
1047          * retrieve the ConfigurationItems recorded for this resource in your Config
1048          * History. </p><p><h3>See Also:</h3>   <a
1049          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteResourceConfig">AWS
1050          * API Reference</a></p>
1051          */
1052         virtual Model::DeleteResourceConfigOutcome DeleteResourceConfig(const Model::DeleteResourceConfigRequest& request) const;
1053 
1054         /**
1055          * <p>Records the configuration state for a custom resource that has been deleted.
1056          * This API records a new ConfigurationItem with a ResourceDeleted status. You can
1057          * retrieve the ConfigurationItems recorded for this resource in your Config
1058          * History. </p><p><h3>See Also:</h3>   <a
1059          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteResourceConfig">AWS
1060          * API Reference</a></p>
1061          *
1062          * returns a future to the operation so that it can be executed in parallel to other requests.
1063          */
1064         virtual Model::DeleteResourceConfigOutcomeCallable DeleteResourceConfigCallable(const Model::DeleteResourceConfigRequest& request) const;
1065 
1066         /**
1067          * <p>Records the configuration state for a custom resource that has been deleted.
1068          * This API records a new ConfigurationItem with a ResourceDeleted status. You can
1069          * retrieve the ConfigurationItems recorded for this resource in your Config
1070          * History. </p><p><h3>See Also:</h3>   <a
1071          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteResourceConfig">AWS
1072          * API Reference</a></p>
1073          *
1074          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1075          */
1076         virtual void DeleteResourceConfigAsync(const Model::DeleteResourceConfigRequest& request, const DeleteResourceConfigResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1077 
1078         /**
1079          * <p>Deletes the retention configuration.</p><p><h3>See Also:</h3>   <a
1080          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteRetentionConfiguration">AWS
1081          * API Reference</a></p>
1082          */
1083         virtual Model::DeleteRetentionConfigurationOutcome DeleteRetentionConfiguration(const Model::DeleteRetentionConfigurationRequest& request) const;
1084 
1085         /**
1086          * <p>Deletes the retention configuration.</p><p><h3>See Also:</h3>   <a
1087          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteRetentionConfiguration">AWS
1088          * API Reference</a></p>
1089          *
1090          * returns a future to the operation so that it can be executed in parallel to other requests.
1091          */
1092         virtual Model::DeleteRetentionConfigurationOutcomeCallable DeleteRetentionConfigurationCallable(const Model::DeleteRetentionConfigurationRequest& request) const;
1093 
1094         /**
1095          * <p>Deletes the retention configuration.</p><p><h3>See Also:</h3>   <a
1096          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteRetentionConfiguration">AWS
1097          * API Reference</a></p>
1098          *
1099          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1100          */
1101         virtual void DeleteRetentionConfigurationAsync(const Model::DeleteRetentionConfigurationRequest& request, const DeleteRetentionConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1102 
1103         /**
1104          * <p>Deletes the stored query for a single Amazon Web Services account and a
1105          * single Amazon Web Services Region.</p><p><h3>See Also:</h3>   <a
1106          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteStoredQuery">AWS
1107          * API Reference</a></p>
1108          */
1109         virtual Model::DeleteStoredQueryOutcome DeleteStoredQuery(const Model::DeleteStoredQueryRequest& request) const;
1110 
1111         /**
1112          * <p>Deletes the stored query for a single Amazon Web Services account and a
1113          * single Amazon Web Services Region.</p><p><h3>See Also:</h3>   <a
1114          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteStoredQuery">AWS
1115          * API Reference</a></p>
1116          *
1117          * returns a future to the operation so that it can be executed in parallel to other requests.
1118          */
1119         virtual Model::DeleteStoredQueryOutcomeCallable DeleteStoredQueryCallable(const Model::DeleteStoredQueryRequest& request) const;
1120 
1121         /**
1122          * <p>Deletes the stored query for a single Amazon Web Services account and a
1123          * single Amazon Web Services Region.</p><p><h3>See Also:</h3>   <a
1124          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeleteStoredQuery">AWS
1125          * API Reference</a></p>
1126          *
1127          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1128          */
1129         virtual void DeleteStoredQueryAsync(const Model::DeleteStoredQueryRequest& request, const DeleteStoredQueryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1130 
1131         /**
1132          * <p>Schedules delivery of a configuration snapshot to the Amazon S3 bucket in the
1133          * specified delivery channel. After the delivery has started, Config sends the
1134          * following notifications using an Amazon SNS topic that you have specified.</p>
1135          * <ul> <li> <p>Notification of the start of the delivery.</p> </li> <li>
1136          * <p>Notification of the completion of the delivery, if the delivery was
1137          * successfully completed.</p> </li> <li> <p>Notification of delivery failure, if
1138          * the delivery failed.</p> </li> </ul><p><h3>See Also:</h3>   <a
1139          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeliverConfigSnapshot">AWS
1140          * API Reference</a></p>
1141          */
1142         virtual Model::DeliverConfigSnapshotOutcome DeliverConfigSnapshot(const Model::DeliverConfigSnapshotRequest& request) const;
1143 
1144         /**
1145          * <p>Schedules delivery of a configuration snapshot to the Amazon S3 bucket in the
1146          * specified delivery channel. After the delivery has started, Config sends the
1147          * following notifications using an Amazon SNS topic that you have specified.</p>
1148          * <ul> <li> <p>Notification of the start of the delivery.</p> </li> <li>
1149          * <p>Notification of the completion of the delivery, if the delivery was
1150          * successfully completed.</p> </li> <li> <p>Notification of delivery failure, if
1151          * the delivery failed.</p> </li> </ul><p><h3>See Also:</h3>   <a
1152          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeliverConfigSnapshot">AWS
1153          * API Reference</a></p>
1154          *
1155          * returns a future to the operation so that it can be executed in parallel to other requests.
1156          */
1157         virtual Model::DeliverConfigSnapshotOutcomeCallable DeliverConfigSnapshotCallable(const Model::DeliverConfigSnapshotRequest& request) const;
1158 
1159         /**
1160          * <p>Schedules delivery of a configuration snapshot to the Amazon S3 bucket in the
1161          * specified delivery channel. After the delivery has started, Config sends the
1162          * following notifications using an Amazon SNS topic that you have specified.</p>
1163          * <ul> <li> <p>Notification of the start of the delivery.</p> </li> <li>
1164          * <p>Notification of the completion of the delivery, if the delivery was
1165          * successfully completed.</p> </li> <li> <p>Notification of delivery failure, if
1166          * the delivery failed.</p> </li> </ul><p><h3>See Also:</h3>   <a
1167          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DeliverConfigSnapshot">AWS
1168          * API Reference</a></p>
1169          *
1170          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1171          */
1172         virtual void DeliverConfigSnapshotAsync(const Model::DeliverConfigSnapshotRequest& request, const DeliverConfigSnapshotResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1173 
1174         /**
1175          * <p>Returns a list of compliant and noncompliant rules with the number of
1176          * resources for compliant and noncompliant rules. Does not display rules that do
1177          * not have compliance results. </p>  <p>The results can return an empty
1178          * result page, but if you have a <code>nextToken</code>, the results are displayed
1179          * on the next page.</p> <p><h3>See Also:</h3>   <a
1180          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeAggregateComplianceByConfigRules">AWS
1181          * API Reference</a></p>
1182          */
1183         virtual Model::DescribeAggregateComplianceByConfigRulesOutcome DescribeAggregateComplianceByConfigRules(const Model::DescribeAggregateComplianceByConfigRulesRequest& request) const;
1184 
1185         /**
1186          * <p>Returns a list of compliant and noncompliant rules with the number of
1187          * resources for compliant and noncompliant rules. Does not display rules that do
1188          * not have compliance results. </p>  <p>The results can return an empty
1189          * result page, but if you have a <code>nextToken</code>, the results are displayed
1190          * on the next page.</p> <p><h3>See Also:</h3>   <a
1191          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeAggregateComplianceByConfigRules">AWS
1192          * API Reference</a></p>
1193          *
1194          * returns a future to the operation so that it can be executed in parallel to other requests.
1195          */
1196         virtual Model::DescribeAggregateComplianceByConfigRulesOutcomeCallable DescribeAggregateComplianceByConfigRulesCallable(const Model::DescribeAggregateComplianceByConfigRulesRequest& request) const;
1197 
1198         /**
1199          * <p>Returns a list of compliant and noncompliant rules with the number of
1200          * resources for compliant and noncompliant rules. Does not display rules that do
1201          * not have compliance results. </p>  <p>The results can return an empty
1202          * result page, but if you have a <code>nextToken</code>, the results are displayed
1203          * on the next page.</p> <p><h3>See Also:</h3>   <a
1204          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeAggregateComplianceByConfigRules">AWS
1205          * API Reference</a></p>
1206          *
1207          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1208          */
1209         virtual void DescribeAggregateComplianceByConfigRulesAsync(const Model::DescribeAggregateComplianceByConfigRulesRequest& request, const DescribeAggregateComplianceByConfigRulesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1210 
1211         /**
1212          * <p>Returns a list of the conformance packs and their associated compliance
1213          * status with the count of compliant and noncompliant Config rules within each
1214          * conformance pack. Also returns the total rule count which includes compliant
1215          * rules, noncompliant rules, and rules that cannot be evaluated due to
1216          * insufficient data.</p>  <p>The results can return an empty result page,
1217          * but if you have a <code>nextToken</code>, the results are displayed on the next
1218          * page.</p> <p><h3>See Also:</h3>   <a
1219          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeAggregateComplianceByConformancePacks">AWS
1220          * API Reference</a></p>
1221          */
1222         virtual Model::DescribeAggregateComplianceByConformancePacksOutcome DescribeAggregateComplianceByConformancePacks(const Model::DescribeAggregateComplianceByConformancePacksRequest& request) const;
1223 
1224         /**
1225          * <p>Returns a list of the conformance packs and their associated compliance
1226          * status with the count of compliant and noncompliant Config rules within each
1227          * conformance pack. Also returns the total rule count which includes compliant
1228          * rules, noncompliant rules, and rules that cannot be evaluated due to
1229          * insufficient data.</p>  <p>The results can return an empty result page,
1230          * but if you have a <code>nextToken</code>, the results are displayed on the next
1231          * page.</p> <p><h3>See Also:</h3>   <a
1232          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeAggregateComplianceByConformancePacks">AWS
1233          * API Reference</a></p>
1234          *
1235          * returns a future to the operation so that it can be executed in parallel to other requests.
1236          */
1237         virtual Model::DescribeAggregateComplianceByConformancePacksOutcomeCallable DescribeAggregateComplianceByConformancePacksCallable(const Model::DescribeAggregateComplianceByConformancePacksRequest& request) const;
1238 
1239         /**
1240          * <p>Returns a list of the conformance packs and their associated compliance
1241          * status with the count of compliant and noncompliant Config rules within each
1242          * conformance pack. Also returns the total rule count which includes compliant
1243          * rules, noncompliant rules, and rules that cannot be evaluated due to
1244          * insufficient data.</p>  <p>The results can return an empty result page,
1245          * but if you have a <code>nextToken</code>, the results are displayed on the next
1246          * page.</p> <p><h3>See Also:</h3>   <a
1247          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeAggregateComplianceByConformancePacks">AWS
1248          * API Reference</a></p>
1249          *
1250          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1251          */
1252         virtual void DescribeAggregateComplianceByConformancePacksAsync(const Model::DescribeAggregateComplianceByConformancePacksRequest& request, const DescribeAggregateComplianceByConformancePacksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1253 
1254         /**
1255          * <p>Returns a list of authorizations granted to various aggregator accounts and
1256          * regions.</p><p><h3>See Also:</h3>   <a
1257          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeAggregationAuthorizations">AWS
1258          * API Reference</a></p>
1259          */
1260         virtual Model::DescribeAggregationAuthorizationsOutcome DescribeAggregationAuthorizations(const Model::DescribeAggregationAuthorizationsRequest& request) const;
1261 
1262         /**
1263          * <p>Returns a list of authorizations granted to various aggregator accounts and
1264          * regions.</p><p><h3>See Also:</h3>   <a
1265          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeAggregationAuthorizations">AWS
1266          * API Reference</a></p>
1267          *
1268          * returns a future to the operation so that it can be executed in parallel to other requests.
1269          */
1270         virtual Model::DescribeAggregationAuthorizationsOutcomeCallable DescribeAggregationAuthorizationsCallable(const Model::DescribeAggregationAuthorizationsRequest& request) const;
1271 
1272         /**
1273          * <p>Returns a list of authorizations granted to various aggregator accounts and
1274          * regions.</p><p><h3>See Also:</h3>   <a
1275          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeAggregationAuthorizations">AWS
1276          * API Reference</a></p>
1277          *
1278          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1279          */
1280         virtual void DescribeAggregationAuthorizationsAsync(const Model::DescribeAggregationAuthorizationsRequest& request, const DescribeAggregationAuthorizationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1281 
1282         /**
1283          * <p>Indicates whether the specified Config rules are compliant. If a rule is
1284          * noncompliant, this action returns the number of Amazon Web Services resources
1285          * that do not comply with the rule.</p> <p>A rule is compliant if all of the
1286          * evaluated resources comply with it. It is noncompliant if any of these resources
1287          * do not comply.</p> <p>If Config has no current evaluation results for the rule,
1288          * it returns <code>INSUFFICIENT_DATA</code>. This result might indicate one of the
1289          * following conditions:</p> <ul> <li> <p>Config has never invoked an evaluation
1290          * for the rule. To check whether it has, use the
1291          * <code>DescribeConfigRuleEvaluationStatus</code> action to get the
1292          * <code>LastSuccessfulInvocationTime</code> and
1293          * <code>LastFailedInvocationTime</code>.</p> </li> <li> <p>The rule's Lambda
1294          * function is failing to send evaluation results to Config. Verify that the role
1295          * you assigned to your configuration recorder includes the
1296          * <code>config:PutEvaluations</code> permission. If the rule is a custom rule,
1297          * verify that the Lambda execution role includes the
1298          * <code>config:PutEvaluations</code> permission.</p> </li> <li> <p>The rule's
1299          * Lambda function has returned <code>NOT_APPLICABLE</code> for all evaluation
1300          * results. This can occur if the resources were deleted or removed from the rule's
1301          * scope.</p> </li> </ul><p><h3>See Also:</h3>   <a
1302          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeComplianceByConfigRule">AWS
1303          * API Reference</a></p>
1304          */
1305         virtual Model::DescribeComplianceByConfigRuleOutcome DescribeComplianceByConfigRule(const Model::DescribeComplianceByConfigRuleRequest& request) const;
1306 
1307         /**
1308          * <p>Indicates whether the specified Config rules are compliant. If a rule is
1309          * noncompliant, this action returns the number of Amazon Web Services resources
1310          * that do not comply with the rule.</p> <p>A rule is compliant if all of the
1311          * evaluated resources comply with it. It is noncompliant if any of these resources
1312          * do not comply.</p> <p>If Config has no current evaluation results for the rule,
1313          * it returns <code>INSUFFICIENT_DATA</code>. This result might indicate one of the
1314          * following conditions:</p> <ul> <li> <p>Config has never invoked an evaluation
1315          * for the rule. To check whether it has, use the
1316          * <code>DescribeConfigRuleEvaluationStatus</code> action to get the
1317          * <code>LastSuccessfulInvocationTime</code> and
1318          * <code>LastFailedInvocationTime</code>.</p> </li> <li> <p>The rule's Lambda
1319          * function is failing to send evaluation results to Config. Verify that the role
1320          * you assigned to your configuration recorder includes the
1321          * <code>config:PutEvaluations</code> permission. If the rule is a custom rule,
1322          * verify that the Lambda execution role includes the
1323          * <code>config:PutEvaluations</code> permission.</p> </li> <li> <p>The rule's
1324          * Lambda function has returned <code>NOT_APPLICABLE</code> for all evaluation
1325          * results. This can occur if the resources were deleted or removed from the rule's
1326          * scope.</p> </li> </ul><p><h3>See Also:</h3>   <a
1327          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeComplianceByConfigRule">AWS
1328          * API Reference</a></p>
1329          *
1330          * returns a future to the operation so that it can be executed in parallel to other requests.
1331          */
1332         virtual Model::DescribeComplianceByConfigRuleOutcomeCallable DescribeComplianceByConfigRuleCallable(const Model::DescribeComplianceByConfigRuleRequest& request) const;
1333 
1334         /**
1335          * <p>Indicates whether the specified Config rules are compliant. If a rule is
1336          * noncompliant, this action returns the number of Amazon Web Services resources
1337          * that do not comply with the rule.</p> <p>A rule is compliant if all of the
1338          * evaluated resources comply with it. It is noncompliant if any of these resources
1339          * do not comply.</p> <p>If Config has no current evaluation results for the rule,
1340          * it returns <code>INSUFFICIENT_DATA</code>. This result might indicate one of the
1341          * following conditions:</p> <ul> <li> <p>Config has never invoked an evaluation
1342          * for the rule. To check whether it has, use the
1343          * <code>DescribeConfigRuleEvaluationStatus</code> action to get the
1344          * <code>LastSuccessfulInvocationTime</code> and
1345          * <code>LastFailedInvocationTime</code>.</p> </li> <li> <p>The rule's Lambda
1346          * function is failing to send evaluation results to Config. Verify that the role
1347          * you assigned to your configuration recorder includes the
1348          * <code>config:PutEvaluations</code> permission. If the rule is a custom rule,
1349          * verify that the Lambda execution role includes the
1350          * <code>config:PutEvaluations</code> permission.</p> </li> <li> <p>The rule's
1351          * Lambda function has returned <code>NOT_APPLICABLE</code> for all evaluation
1352          * results. This can occur if the resources were deleted or removed from the rule's
1353          * scope.</p> </li> </ul><p><h3>See Also:</h3>   <a
1354          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeComplianceByConfigRule">AWS
1355          * API Reference</a></p>
1356          *
1357          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1358          */
1359         virtual void DescribeComplianceByConfigRuleAsync(const Model::DescribeComplianceByConfigRuleRequest& request, const DescribeComplianceByConfigRuleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1360 
1361         /**
1362          * <p>Indicates whether the specified Amazon Web Services resources are compliant.
1363          * If a resource is noncompliant, this action returns the number of Config rules
1364          * that the resource does not comply with.</p> <p>A resource is compliant if it
1365          * complies with all the Config rules that evaluate it. It is noncompliant if it
1366          * does not comply with one or more of these rules.</p> <p>If Config has no current
1367          * evaluation results for the resource, it returns <code>INSUFFICIENT_DATA</code>.
1368          * This result might indicate one of the following conditions about the rules that
1369          * evaluate the resource:</p> <ul> <li> <p>Config has never invoked an evaluation
1370          * for the rule. To check whether it has, use the
1371          * <code>DescribeConfigRuleEvaluationStatus</code> action to get the
1372          * <code>LastSuccessfulInvocationTime</code> and
1373          * <code>LastFailedInvocationTime</code>.</p> </li> <li> <p>The rule's Lambda
1374          * function is failing to send evaluation results to Config. Verify that the role
1375          * that you assigned to your configuration recorder includes the
1376          * <code>config:PutEvaluations</code> permission. If the rule is a custom rule,
1377          * verify that the Lambda execution role includes the
1378          * <code>config:PutEvaluations</code> permission.</p> </li> <li> <p>The rule's
1379          * Lambda function has returned <code>NOT_APPLICABLE</code> for all evaluation
1380          * results. This can occur if the resources were deleted or removed from the rule's
1381          * scope.</p> </li> </ul><p><h3>See Also:</h3>   <a
1382          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeComplianceByResource">AWS
1383          * API Reference</a></p>
1384          */
1385         virtual Model::DescribeComplianceByResourceOutcome DescribeComplianceByResource(const Model::DescribeComplianceByResourceRequest& request) const;
1386 
1387         /**
1388          * <p>Indicates whether the specified Amazon Web Services resources are compliant.
1389          * If a resource is noncompliant, this action returns the number of Config rules
1390          * that the resource does not comply with.</p> <p>A resource is compliant if it
1391          * complies with all the Config rules that evaluate it. It is noncompliant if it
1392          * does not comply with one or more of these rules.</p> <p>If Config has no current
1393          * evaluation results for the resource, it returns <code>INSUFFICIENT_DATA</code>.
1394          * This result might indicate one of the following conditions about the rules that
1395          * evaluate the resource:</p> <ul> <li> <p>Config has never invoked an evaluation
1396          * for the rule. To check whether it has, use the
1397          * <code>DescribeConfigRuleEvaluationStatus</code> action to get the
1398          * <code>LastSuccessfulInvocationTime</code> and
1399          * <code>LastFailedInvocationTime</code>.</p> </li> <li> <p>The rule's Lambda
1400          * function is failing to send evaluation results to Config. Verify that the role
1401          * that you assigned to your configuration recorder includes the
1402          * <code>config:PutEvaluations</code> permission. If the rule is a custom rule,
1403          * verify that the Lambda execution role includes the
1404          * <code>config:PutEvaluations</code> permission.</p> </li> <li> <p>The rule's
1405          * Lambda function has returned <code>NOT_APPLICABLE</code> for all evaluation
1406          * results. This can occur if the resources were deleted or removed from the rule's
1407          * scope.</p> </li> </ul><p><h3>See Also:</h3>   <a
1408          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeComplianceByResource">AWS
1409          * API Reference</a></p>
1410          *
1411          * returns a future to the operation so that it can be executed in parallel to other requests.
1412          */
1413         virtual Model::DescribeComplianceByResourceOutcomeCallable DescribeComplianceByResourceCallable(const Model::DescribeComplianceByResourceRequest& request) const;
1414 
1415         /**
1416          * <p>Indicates whether the specified Amazon Web Services resources are compliant.
1417          * If a resource is noncompliant, this action returns the number of Config rules
1418          * that the resource does not comply with.</p> <p>A resource is compliant if it
1419          * complies with all the Config rules that evaluate it. It is noncompliant if it
1420          * does not comply with one or more of these rules.</p> <p>If Config has no current
1421          * evaluation results for the resource, it returns <code>INSUFFICIENT_DATA</code>.
1422          * This result might indicate one of the following conditions about the rules that
1423          * evaluate the resource:</p> <ul> <li> <p>Config has never invoked an evaluation
1424          * for the rule. To check whether it has, use the
1425          * <code>DescribeConfigRuleEvaluationStatus</code> action to get the
1426          * <code>LastSuccessfulInvocationTime</code> and
1427          * <code>LastFailedInvocationTime</code>.</p> </li> <li> <p>The rule's Lambda
1428          * function is failing to send evaluation results to Config. Verify that the role
1429          * that you assigned to your configuration recorder includes the
1430          * <code>config:PutEvaluations</code> permission. If the rule is a custom rule,
1431          * verify that the Lambda execution role includes the
1432          * <code>config:PutEvaluations</code> permission.</p> </li> <li> <p>The rule's
1433          * Lambda function has returned <code>NOT_APPLICABLE</code> for all evaluation
1434          * results. This can occur if the resources were deleted or removed from the rule's
1435          * scope.</p> </li> </ul><p><h3>See Also:</h3>   <a
1436          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeComplianceByResource">AWS
1437          * API Reference</a></p>
1438          *
1439          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1440          */
1441         virtual void DescribeComplianceByResourceAsync(const Model::DescribeComplianceByResourceRequest& request, const DescribeComplianceByResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1442 
1443         /**
1444          * <p>Returns status information for each of your Config managed rules. The status
1445          * includes information such as the last time Config invoked the rule, the last
1446          * time Config failed to invoke the rule, and the related error for the last
1447          * failure.</p><p><h3>See Also:</h3>   <a
1448          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigRuleEvaluationStatus">AWS
1449          * API Reference</a></p>
1450          */
1451         virtual Model::DescribeConfigRuleEvaluationStatusOutcome DescribeConfigRuleEvaluationStatus(const Model::DescribeConfigRuleEvaluationStatusRequest& request) const;
1452 
1453         /**
1454          * <p>Returns status information for each of your Config managed rules. The status
1455          * includes information such as the last time Config invoked the rule, the last
1456          * time Config failed to invoke the rule, and the related error for the last
1457          * failure.</p><p><h3>See Also:</h3>   <a
1458          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigRuleEvaluationStatus">AWS
1459          * API Reference</a></p>
1460          *
1461          * returns a future to the operation so that it can be executed in parallel to other requests.
1462          */
1463         virtual Model::DescribeConfigRuleEvaluationStatusOutcomeCallable DescribeConfigRuleEvaluationStatusCallable(const Model::DescribeConfigRuleEvaluationStatusRequest& request) const;
1464 
1465         /**
1466          * <p>Returns status information for each of your Config managed rules. The status
1467          * includes information such as the last time Config invoked the rule, the last
1468          * time Config failed to invoke the rule, and the related error for the last
1469          * failure.</p><p><h3>See Also:</h3>   <a
1470          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigRuleEvaluationStatus">AWS
1471          * API Reference</a></p>
1472          *
1473          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1474          */
1475         virtual void DescribeConfigRuleEvaluationStatusAsync(const Model::DescribeConfigRuleEvaluationStatusRequest& request, const DescribeConfigRuleEvaluationStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1476 
1477         /**
1478          * <p>Returns details about your Config rules.</p><p><h3>See Also:</h3>   <a
1479          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigRules">AWS
1480          * API Reference</a></p>
1481          */
1482         virtual Model::DescribeConfigRulesOutcome DescribeConfigRules(const Model::DescribeConfigRulesRequest& request) const;
1483 
1484         /**
1485          * <p>Returns details about your Config rules.</p><p><h3>See Also:</h3>   <a
1486          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigRules">AWS
1487          * API Reference</a></p>
1488          *
1489          * returns a future to the operation so that it can be executed in parallel to other requests.
1490          */
1491         virtual Model::DescribeConfigRulesOutcomeCallable DescribeConfigRulesCallable(const Model::DescribeConfigRulesRequest& request) const;
1492 
1493         /**
1494          * <p>Returns details about your Config rules.</p><p><h3>See Also:</h3>   <a
1495          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigRules">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 DescribeConfigRulesAsync(const Model::DescribeConfigRulesRequest& request, const DescribeConfigRulesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1501 
1502         /**
1503          * <p>Returns status information for sources within an aggregator. The status
1504          * includes information about the last time Config verified authorization between
1505          * the source account and an aggregator account. In case of a failure, the status
1506          * contains the related error code or message. </p><p><h3>See Also:</h3>   <a
1507          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigurationAggregatorSourcesStatus">AWS
1508          * API Reference</a></p>
1509          */
1510         virtual Model::DescribeConfigurationAggregatorSourcesStatusOutcome DescribeConfigurationAggregatorSourcesStatus(const Model::DescribeConfigurationAggregatorSourcesStatusRequest& request) const;
1511 
1512         /**
1513          * <p>Returns status information for sources within an aggregator. The status
1514          * includes information about the last time Config verified authorization between
1515          * the source account and an aggregator account. In case of a failure, the status
1516          * contains the related error code or message. </p><p><h3>See Also:</h3>   <a
1517          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigurationAggregatorSourcesStatus">AWS
1518          * API Reference</a></p>
1519          *
1520          * returns a future to the operation so that it can be executed in parallel to other requests.
1521          */
1522         virtual Model::DescribeConfigurationAggregatorSourcesStatusOutcomeCallable DescribeConfigurationAggregatorSourcesStatusCallable(const Model::DescribeConfigurationAggregatorSourcesStatusRequest& request) const;
1523 
1524         /**
1525          * <p>Returns status information for sources within an aggregator. The status
1526          * includes information about the last time Config verified authorization between
1527          * the source account and an aggregator account. In case of a failure, the status
1528          * contains the related error code or message. </p><p><h3>See Also:</h3>   <a
1529          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigurationAggregatorSourcesStatus">AWS
1530          * API Reference</a></p>
1531          *
1532          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1533          */
1534         virtual void DescribeConfigurationAggregatorSourcesStatusAsync(const Model::DescribeConfigurationAggregatorSourcesStatusRequest& request, const DescribeConfigurationAggregatorSourcesStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1535 
1536         /**
1537          * <p>Returns the details of one or more configuration aggregators. If the
1538          * configuration aggregator is not specified, this action returns the details for
1539          * all the configuration aggregators associated with the account. </p><p><h3>See
1540          * Also:</h3>   <a
1541          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigurationAggregators">AWS
1542          * API Reference</a></p>
1543          */
1544         virtual Model::DescribeConfigurationAggregatorsOutcome DescribeConfigurationAggregators(const Model::DescribeConfigurationAggregatorsRequest& request) const;
1545 
1546         /**
1547          * <p>Returns the details of one or more configuration aggregators. If the
1548          * configuration aggregator is not specified, this action returns the details for
1549          * all the configuration aggregators associated with the account. </p><p><h3>See
1550          * Also:</h3>   <a
1551          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigurationAggregators">AWS
1552          * API Reference</a></p>
1553          *
1554          * returns a future to the operation so that it can be executed in parallel to other requests.
1555          */
1556         virtual Model::DescribeConfigurationAggregatorsOutcomeCallable DescribeConfigurationAggregatorsCallable(const Model::DescribeConfigurationAggregatorsRequest& request) const;
1557 
1558         /**
1559          * <p>Returns the details of one or more configuration aggregators. If the
1560          * configuration aggregator is not specified, this action returns the details for
1561          * all the configuration aggregators associated with the account. </p><p><h3>See
1562          * Also:</h3>   <a
1563          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigurationAggregators">AWS
1564          * API Reference</a></p>
1565          *
1566          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1567          */
1568         virtual void DescribeConfigurationAggregatorsAsync(const Model::DescribeConfigurationAggregatorsRequest& request, const DescribeConfigurationAggregatorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1569 
1570         /**
1571          * <p>Returns the current status of the specified configuration recorder. If a
1572          * configuration recorder is not specified, this action returns the status of all
1573          * configuration recorders associated with the account.</p>  <p>Currently,
1574          * you can specify only one configuration recorder per region in your account.</p>
1575          * <p><h3>See Also:</h3>   <a
1576          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigurationRecorderStatus">AWS
1577          * API Reference</a></p>
1578          */
1579         virtual Model::DescribeConfigurationRecorderStatusOutcome DescribeConfigurationRecorderStatus(const Model::DescribeConfigurationRecorderStatusRequest& request) const;
1580 
1581         /**
1582          * <p>Returns the current status of the specified configuration recorder. If a
1583          * configuration recorder is not specified, this action returns the status of all
1584          * configuration recorders associated with the account.</p>  <p>Currently,
1585          * you can specify only one configuration recorder per region in your account.</p>
1586          * <p><h3>See Also:</h3>   <a
1587          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigurationRecorderStatus">AWS
1588          * API Reference</a></p>
1589          *
1590          * returns a future to the operation so that it can be executed in parallel to other requests.
1591          */
1592         virtual Model::DescribeConfigurationRecorderStatusOutcomeCallable DescribeConfigurationRecorderStatusCallable(const Model::DescribeConfigurationRecorderStatusRequest& request) const;
1593 
1594         /**
1595          * <p>Returns the current status of the specified configuration recorder. If a
1596          * configuration recorder is not specified, this action returns the status of all
1597          * configuration recorders associated with the account.</p>  <p>Currently,
1598          * you can specify only one configuration recorder per region in your account.</p>
1599          * <p><h3>See Also:</h3>   <a
1600          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigurationRecorderStatus">AWS
1601          * API Reference</a></p>
1602          *
1603          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1604          */
1605         virtual void DescribeConfigurationRecorderStatusAsync(const Model::DescribeConfigurationRecorderStatusRequest& request, const DescribeConfigurationRecorderStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1606 
1607         /**
1608          * <p>Returns the details for the specified configuration recorders. If the
1609          * configuration recorder is not specified, this action returns the details for all
1610          * configuration recorders associated with the account.</p>  <p>Currently,
1611          * you can specify only one configuration recorder per region in your account.</p>
1612          * <p><h3>See Also:</h3>   <a
1613          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigurationRecorders">AWS
1614          * API Reference</a></p>
1615          */
1616         virtual Model::DescribeConfigurationRecordersOutcome DescribeConfigurationRecorders(const Model::DescribeConfigurationRecordersRequest& request) const;
1617 
1618         /**
1619          * <p>Returns the details for the specified configuration recorders. If the
1620          * configuration recorder is not specified, this action returns the details for all
1621          * configuration recorders associated with the account.</p>  <p>Currently,
1622          * you can specify only one configuration recorder per region in your account.</p>
1623          * <p><h3>See Also:</h3>   <a
1624          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigurationRecorders">AWS
1625          * API Reference</a></p>
1626          *
1627          * returns a future to the operation so that it can be executed in parallel to other requests.
1628          */
1629         virtual Model::DescribeConfigurationRecordersOutcomeCallable DescribeConfigurationRecordersCallable(const Model::DescribeConfigurationRecordersRequest& request) const;
1630 
1631         /**
1632          * <p>Returns the details for the specified configuration recorders. If the
1633          * configuration recorder is not specified, this action returns the details for all
1634          * configuration recorders associated with the account.</p>  <p>Currently,
1635          * you can specify only one configuration recorder per region in your account.</p>
1636          * <p><h3>See Also:</h3>   <a
1637          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConfigurationRecorders">AWS
1638          * API Reference</a></p>
1639          *
1640          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1641          */
1642         virtual void DescribeConfigurationRecordersAsync(const Model::DescribeConfigurationRecordersRequest& request, const DescribeConfigurationRecordersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1643 
1644         /**
1645          * <p>Returns compliance details for each rule in that conformance pack.</p>
1646          * <p>You must provide exact rule names.</p> <p><h3>See Also:</h3>   <a
1647          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConformancePackCompliance">AWS
1648          * API Reference</a></p>
1649          */
1650         virtual Model::DescribeConformancePackComplianceOutcome DescribeConformancePackCompliance(const Model::DescribeConformancePackComplianceRequest& request) const;
1651 
1652         /**
1653          * <p>Returns compliance details for each rule in that conformance pack.</p>
1654          * <p>You must provide exact rule names.</p> <p><h3>See Also:</h3>   <a
1655          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConformancePackCompliance">AWS
1656          * API Reference</a></p>
1657          *
1658          * returns a future to the operation so that it can be executed in parallel to other requests.
1659          */
1660         virtual Model::DescribeConformancePackComplianceOutcomeCallable DescribeConformancePackComplianceCallable(const Model::DescribeConformancePackComplianceRequest& request) const;
1661 
1662         /**
1663          * <p>Returns compliance details for each rule in that conformance pack.</p>
1664          * <p>You must provide exact rule names.</p> <p><h3>See Also:</h3>   <a
1665          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConformancePackCompliance">AWS
1666          * API Reference</a></p>
1667          *
1668          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1669          */
1670         virtual void DescribeConformancePackComplianceAsync(const Model::DescribeConformancePackComplianceRequest& request, const DescribeConformancePackComplianceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1671 
1672         /**
1673          * <p>Provides one or more conformance packs deployment status.</p>  <p>If
1674          * there are no conformance packs then you will see an empty result.</p>
1675          * <p><h3>See Also:</h3>   <a
1676          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConformancePackStatus">AWS
1677          * API Reference</a></p>
1678          */
1679         virtual Model::DescribeConformancePackStatusOutcome DescribeConformancePackStatus(const Model::DescribeConformancePackStatusRequest& request) const;
1680 
1681         /**
1682          * <p>Provides one or more conformance packs deployment status.</p>  <p>If
1683          * there are no conformance packs then you will see an empty result.</p>
1684          * <p><h3>See Also:</h3>   <a
1685          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConformancePackStatus">AWS
1686          * API Reference</a></p>
1687          *
1688          * returns a future to the operation so that it can be executed in parallel to other requests.
1689          */
1690         virtual Model::DescribeConformancePackStatusOutcomeCallable DescribeConformancePackStatusCallable(const Model::DescribeConformancePackStatusRequest& request) const;
1691 
1692         /**
1693          * <p>Provides one or more conformance packs deployment status.</p>  <p>If
1694          * there are no conformance packs then you will see an empty result.</p>
1695          * <p><h3>See Also:</h3>   <a
1696          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConformancePackStatus">AWS
1697          * API Reference</a></p>
1698          *
1699          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1700          */
1701         virtual void DescribeConformancePackStatusAsync(const Model::DescribeConformancePackStatusRequest& request, const DescribeConformancePackStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1702 
1703         /**
1704          * <p>Returns a list of one or more conformance packs.</p><p><h3>See Also:</h3>
1705          * <a
1706          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConformancePacks">AWS
1707          * API Reference</a></p>
1708          */
1709         virtual Model::DescribeConformancePacksOutcome DescribeConformancePacks(const Model::DescribeConformancePacksRequest& request) const;
1710 
1711         /**
1712          * <p>Returns a list of one or more conformance packs.</p><p><h3>See Also:</h3>
1713          * <a
1714          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConformancePacks">AWS
1715          * API Reference</a></p>
1716          *
1717          * returns a future to the operation so that it can be executed in parallel to other requests.
1718          */
1719         virtual Model::DescribeConformancePacksOutcomeCallable DescribeConformancePacksCallable(const Model::DescribeConformancePacksRequest& request) const;
1720 
1721         /**
1722          * <p>Returns a list of one or more conformance packs.</p><p><h3>See Also:</h3>
1723          * <a
1724          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeConformancePacks">AWS
1725          * API Reference</a></p>
1726          *
1727          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1728          */
1729         virtual void DescribeConformancePacksAsync(const Model::DescribeConformancePacksRequest& request, const DescribeConformancePacksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1730 
1731         /**
1732          * <p>Returns the current status of the specified delivery channel. If a delivery
1733          * channel is not specified, this action returns the current status of all delivery
1734          * channels associated with the account.</p>  <p>Currently, you can specify
1735          * only one delivery channel per region in your account.</p> <p><h3>See
1736          * Also:</h3>   <a
1737          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeDeliveryChannelStatus">AWS
1738          * API Reference</a></p>
1739          */
1740         virtual Model::DescribeDeliveryChannelStatusOutcome DescribeDeliveryChannelStatus(const Model::DescribeDeliveryChannelStatusRequest& request) const;
1741 
1742         /**
1743          * <p>Returns the current status of the specified delivery channel. If a delivery
1744          * channel is not specified, this action returns the current status of all delivery
1745          * channels associated with the account.</p>  <p>Currently, you can specify
1746          * only one delivery channel per region in your account.</p> <p><h3>See
1747          * Also:</h3>   <a
1748          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeDeliveryChannelStatus">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::DescribeDeliveryChannelStatusOutcomeCallable DescribeDeliveryChannelStatusCallable(const Model::DescribeDeliveryChannelStatusRequest& request) const;
1754 
1755         /**
1756          * <p>Returns the current status of the specified delivery channel. If a delivery
1757          * channel is not specified, this action returns the current status of all delivery
1758          * channels associated with the account.</p>  <p>Currently, you can specify
1759          * only one delivery channel per region in your account.</p> <p><h3>See
1760          * Also:</h3>   <a
1761          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeDeliveryChannelStatus">AWS
1762          * API Reference</a></p>
1763          *
1764          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1765          */
1766         virtual void DescribeDeliveryChannelStatusAsync(const Model::DescribeDeliveryChannelStatusRequest& request, const DescribeDeliveryChannelStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1767 
1768         /**
1769          * <p>Returns details about the specified delivery channel. If a delivery channel
1770          * is not specified, this action returns the details of all delivery channels
1771          * associated with the account.</p>  <p>Currently, you can specify only one
1772          * delivery channel per region in your account.</p> <p><h3>See Also:</h3>
1773          * <a
1774          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeDeliveryChannels">AWS
1775          * API Reference</a></p>
1776          */
1777         virtual Model::DescribeDeliveryChannelsOutcome DescribeDeliveryChannels(const Model::DescribeDeliveryChannelsRequest& request) const;
1778 
1779         /**
1780          * <p>Returns details about the specified delivery channel. If a delivery channel
1781          * is not specified, this action returns the details of all delivery channels
1782          * associated with the account.</p>  <p>Currently, you can specify only one
1783          * delivery channel per region in your account.</p> <p><h3>See Also:</h3>
1784          * <a
1785          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeDeliveryChannels">AWS
1786          * API Reference</a></p>
1787          *
1788          * returns a future to the operation so that it can be executed in parallel to other requests.
1789          */
1790         virtual Model::DescribeDeliveryChannelsOutcomeCallable DescribeDeliveryChannelsCallable(const Model::DescribeDeliveryChannelsRequest& request) const;
1791 
1792         /**
1793          * <p>Returns details about the specified delivery channel. If a delivery channel
1794          * is not specified, this action returns the details of all delivery channels
1795          * associated with the account.</p>  <p>Currently, you can specify only one
1796          * delivery channel per region in your account.</p> <p><h3>See Also:</h3>
1797          * <a
1798          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeDeliveryChannels">AWS
1799          * API Reference</a></p>
1800          *
1801          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1802          */
1803         virtual void DescribeDeliveryChannelsAsync(const Model::DescribeDeliveryChannelsRequest& request, const DescribeDeliveryChannelsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1804 
1805         /**
1806          * <p>Provides organization config rule deployment status for an organization.</p>
1807          *  <p>The status is not considered successful until organization config rule
1808          * is successfully deployed in all the member accounts with an exception of
1809          * excluded accounts.</p> <p>When you specify the limit and the next token, you
1810          * receive a paginated response. Limit and next token are not applicable if you
1811          * specify organization config rule names. It is only applicable, when you request
1812          * all the organization config rules.</p> <p><h3>See Also:</h3>   <a
1813          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeOrganizationConfigRuleStatuses">AWS
1814          * API Reference</a></p>
1815          */
1816         virtual Model::DescribeOrganizationConfigRuleStatusesOutcome DescribeOrganizationConfigRuleStatuses(const Model::DescribeOrganizationConfigRuleStatusesRequest& request) const;
1817 
1818         /**
1819          * <p>Provides organization config rule deployment status for an organization.</p>
1820          *  <p>The status is not considered successful until organization config rule
1821          * is successfully deployed in all the member accounts with an exception of
1822          * excluded accounts.</p> <p>When you specify the limit and the next token, you
1823          * receive a paginated response. Limit and next token are not applicable if you
1824          * specify organization config rule names. It is only applicable, when you request
1825          * all the organization config rules.</p> <p><h3>See Also:</h3>   <a
1826          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeOrganizationConfigRuleStatuses">AWS
1827          * API Reference</a></p>
1828          *
1829          * returns a future to the operation so that it can be executed in parallel to other requests.
1830          */
1831         virtual Model::DescribeOrganizationConfigRuleStatusesOutcomeCallable DescribeOrganizationConfigRuleStatusesCallable(const Model::DescribeOrganizationConfigRuleStatusesRequest& request) const;
1832 
1833         /**
1834          * <p>Provides organization config rule deployment status for an organization.</p>
1835          *  <p>The status is not considered successful until organization config rule
1836          * is successfully deployed in all the member accounts with an exception of
1837          * excluded accounts.</p> <p>When you specify the limit and the next token, you
1838          * receive a paginated response. Limit and next token are not applicable if you
1839          * specify organization config rule names. It is only applicable, when you request
1840          * all the organization config rules.</p> <p><h3>See Also:</h3>   <a
1841          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeOrganizationConfigRuleStatuses">AWS
1842          * API Reference</a></p>
1843          *
1844          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1845          */
1846         virtual void DescribeOrganizationConfigRuleStatusesAsync(const Model::DescribeOrganizationConfigRuleStatusesRequest& request, const DescribeOrganizationConfigRuleStatusesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1847 
1848         /**
1849          * <p>Returns a list of organization config rules. </p>  <p>When you specify
1850          * the limit and the next token, you receive a paginated response. Limit and next
1851          * token are not applicable if you specify organization config rule names. It is
1852          * only applicable, when you request all the organization config rules.</p>
1853          * <p><h3>See Also:</h3>   <a
1854          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeOrganizationConfigRules">AWS
1855          * API Reference</a></p>
1856          */
1857         virtual Model::DescribeOrganizationConfigRulesOutcome DescribeOrganizationConfigRules(const Model::DescribeOrganizationConfigRulesRequest& request) const;
1858 
1859         /**
1860          * <p>Returns a list of organization config rules. </p>  <p>When you specify
1861          * the limit and the next token, you receive a paginated response. Limit and next
1862          * token are not applicable if you specify organization config rule names. It is
1863          * only applicable, when you request all the organization config rules.</p>
1864          * <p><h3>See Also:</h3>   <a
1865          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeOrganizationConfigRules">AWS
1866          * API Reference</a></p>
1867          *
1868          * returns a future to the operation so that it can be executed in parallel to other requests.
1869          */
1870         virtual Model::DescribeOrganizationConfigRulesOutcomeCallable DescribeOrganizationConfigRulesCallable(const Model::DescribeOrganizationConfigRulesRequest& request) const;
1871 
1872         /**
1873          * <p>Returns a list of organization config rules. </p>  <p>When you specify
1874          * the limit and the next token, you receive a paginated response. Limit and next
1875          * token are not applicable if you specify organization config rule names. It is
1876          * only applicable, when you request all the organization config rules.</p>
1877          * <p><h3>See Also:</h3>   <a
1878          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeOrganizationConfigRules">AWS
1879          * API Reference</a></p>
1880          *
1881          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1882          */
1883         virtual void DescribeOrganizationConfigRulesAsync(const Model::DescribeOrganizationConfigRulesRequest& request, const DescribeOrganizationConfigRulesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1884 
1885         /**
1886          * <p>Provides organization conformance pack deployment status for an organization.
1887          * </p>  <p>The status is not considered successful until organization
1888          * conformance pack is successfully deployed in all the member accounts with an
1889          * exception of excluded accounts.</p> <p>When you specify the limit and the next
1890          * token, you receive a paginated response. Limit and next token are not applicable
1891          * if you specify organization conformance pack names. They are only applicable,
1892          * when you request all the organization conformance packs.</p> <p><h3>See
1893          * Also:</h3>   <a
1894          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeOrganizationConformancePackStatuses">AWS
1895          * API Reference</a></p>
1896          */
1897         virtual Model::DescribeOrganizationConformancePackStatusesOutcome DescribeOrganizationConformancePackStatuses(const Model::DescribeOrganizationConformancePackStatusesRequest& request) const;
1898 
1899         /**
1900          * <p>Provides organization conformance pack deployment status for an organization.
1901          * </p>  <p>The status is not considered successful until organization
1902          * conformance pack is successfully deployed in all the member accounts with an
1903          * exception of excluded accounts.</p> <p>When you specify the limit and the next
1904          * token, you receive a paginated response. Limit and next token are not applicable
1905          * if you specify organization conformance pack names. They are only applicable,
1906          * when you request all the organization conformance packs.</p> <p><h3>See
1907          * Also:</h3>   <a
1908          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeOrganizationConformancePackStatuses">AWS
1909          * API Reference</a></p>
1910          *
1911          * returns a future to the operation so that it can be executed in parallel to other requests.
1912          */
1913         virtual Model::DescribeOrganizationConformancePackStatusesOutcomeCallable DescribeOrganizationConformancePackStatusesCallable(const Model::DescribeOrganizationConformancePackStatusesRequest& request) const;
1914 
1915         /**
1916          * <p>Provides organization conformance pack deployment status for an organization.
1917          * </p>  <p>The status is not considered successful until organization
1918          * conformance pack is successfully deployed in all the member accounts with an
1919          * exception of excluded accounts.</p> <p>When you specify the limit and the next
1920          * token, you receive a paginated response. Limit and next token are not applicable
1921          * if you specify organization conformance pack names. They are only applicable,
1922          * when you request all the organization conformance packs.</p> <p><h3>See
1923          * Also:</h3>   <a
1924          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeOrganizationConformancePackStatuses">AWS
1925          * API Reference</a></p>
1926          *
1927          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1928          */
1929         virtual void DescribeOrganizationConformancePackStatusesAsync(const Model::DescribeOrganizationConformancePackStatusesRequest& request, const DescribeOrganizationConformancePackStatusesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1930 
1931         /**
1932          * <p>Returns a list of organization conformance packs. </p>  <p>When you
1933          * specify the limit and the next token, you receive a paginated response. </p>
1934          * <p>Limit and next token are not applicable if you specify organization
1935          * conformance packs names. They are only applicable, when you request all the
1936          * organization conformance packs. </p> <p><h3>See Also:</h3>   <a
1937          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeOrganizationConformancePacks">AWS
1938          * API Reference</a></p>
1939          */
1940         virtual Model::DescribeOrganizationConformancePacksOutcome DescribeOrganizationConformancePacks(const Model::DescribeOrganizationConformancePacksRequest& request) const;
1941 
1942         /**
1943          * <p>Returns a list of organization conformance packs. </p>  <p>When you
1944          * specify the limit and the next token, you receive a paginated response. </p>
1945          * <p>Limit and next token are not applicable if you specify organization
1946          * conformance packs names. They are only applicable, when you request all the
1947          * organization conformance packs. </p> <p><h3>See Also:</h3>   <a
1948          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeOrganizationConformancePacks">AWS
1949          * API Reference</a></p>
1950          *
1951          * returns a future to the operation so that it can be executed in parallel to other requests.
1952          */
1953         virtual Model::DescribeOrganizationConformancePacksOutcomeCallable DescribeOrganizationConformancePacksCallable(const Model::DescribeOrganizationConformancePacksRequest& request) const;
1954 
1955         /**
1956          * <p>Returns a list of organization conformance packs. </p>  <p>When you
1957          * specify the limit and the next token, you receive a paginated response. </p>
1958          * <p>Limit and next token are not applicable if you specify organization
1959          * conformance packs names. They are only applicable, when you request all the
1960          * organization conformance packs. </p> <p><h3>See Also:</h3>   <a
1961          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeOrganizationConformancePacks">AWS
1962          * API Reference</a></p>
1963          *
1964          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1965          */
1966         virtual void DescribeOrganizationConformancePacksAsync(const Model::DescribeOrganizationConformancePacksRequest& request, const DescribeOrganizationConformancePacksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1967 
1968         /**
1969          * <p>Returns a list of all pending aggregation requests.</p><p><h3>See Also:</h3>
1970          * <a
1971          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribePendingAggregationRequests">AWS
1972          * API Reference</a></p>
1973          */
1974         virtual Model::DescribePendingAggregationRequestsOutcome DescribePendingAggregationRequests(const Model::DescribePendingAggregationRequestsRequest& request) const;
1975 
1976         /**
1977          * <p>Returns a list of all pending aggregation requests.</p><p><h3>See Also:</h3>
1978          * <a
1979          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribePendingAggregationRequests">AWS
1980          * API Reference</a></p>
1981          *
1982          * returns a future to the operation so that it can be executed in parallel to other requests.
1983          */
1984         virtual Model::DescribePendingAggregationRequestsOutcomeCallable DescribePendingAggregationRequestsCallable(const Model::DescribePendingAggregationRequestsRequest& request) const;
1985 
1986         /**
1987          * <p>Returns a list of all pending aggregation requests.</p><p><h3>See Also:</h3>
1988          * <a
1989          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribePendingAggregationRequests">AWS
1990          * API Reference</a></p>
1991          *
1992          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1993          */
1994         virtual void DescribePendingAggregationRequestsAsync(const Model::DescribePendingAggregationRequestsRequest& request, const DescribePendingAggregationRequestsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1995 
1996         /**
1997          * <p>Returns the details of one or more remediation configurations.</p><p><h3>See
1998          * Also:</h3>   <a
1999          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeRemediationConfigurations">AWS
2000          * API Reference</a></p>
2001          */
2002         virtual Model::DescribeRemediationConfigurationsOutcome DescribeRemediationConfigurations(const Model::DescribeRemediationConfigurationsRequest& request) const;
2003 
2004         /**
2005          * <p>Returns the details of one or more remediation configurations.</p><p><h3>See
2006          * Also:</h3>   <a
2007          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeRemediationConfigurations">AWS
2008          * API Reference</a></p>
2009          *
2010          * returns a future to the operation so that it can be executed in parallel to other requests.
2011          */
2012         virtual Model::DescribeRemediationConfigurationsOutcomeCallable DescribeRemediationConfigurationsCallable(const Model::DescribeRemediationConfigurationsRequest& request) const;
2013 
2014         /**
2015          * <p>Returns the details of one or more remediation configurations.</p><p><h3>See
2016          * Also:</h3>   <a
2017          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeRemediationConfigurations">AWS
2018          * API Reference</a></p>
2019          *
2020          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2021          */
2022         virtual void DescribeRemediationConfigurationsAsync(const Model::DescribeRemediationConfigurationsRequest& request, const DescribeRemediationConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2023 
2024         /**
2025          * <p>Returns the details of one or more remediation exceptions. A detailed view of
2026          * a remediation exception for a set of resources that includes an explanation of
2027          * an exception and the time when the exception will be deleted. When you specify
2028          * the limit and the next token, you receive a paginated response. </p>
2029          * <p>Config generates a remediation exception when a problem occurs executing a
2030          * remediation action to a specific resource. Remediation exceptions blocks
2031          * auto-remediation until the exception is cleared.</p> <p>When you specify the
2032          * limit and the next token, you receive a paginated response. </p> <p>Limit and
2033          * next token are not applicable if you request resources in batch. It is only
2034          * applicable, when you request all resources.</p> <p><h3>See Also:</h3>
2035          * <a
2036          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeRemediationExceptions">AWS
2037          * API Reference</a></p>
2038          */
2039         virtual Model::DescribeRemediationExceptionsOutcome DescribeRemediationExceptions(const Model::DescribeRemediationExceptionsRequest& request) const;
2040 
2041         /**
2042          * <p>Returns the details of one or more remediation exceptions. A detailed view of
2043          * a remediation exception for a set of resources that includes an explanation of
2044          * an exception and the time when the exception will be deleted. When you specify
2045          * the limit and the next token, you receive a paginated response. </p>
2046          * <p>Config generates a remediation exception when a problem occurs executing a
2047          * remediation action to a specific resource. Remediation exceptions blocks
2048          * auto-remediation until the exception is cleared.</p> <p>When you specify the
2049          * limit and the next token, you receive a paginated response. </p> <p>Limit and
2050          * next token are not applicable if you request resources in batch. It is only
2051          * applicable, when you request all resources.</p> <p><h3>See Also:</h3>
2052          * <a
2053          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeRemediationExceptions">AWS
2054          * API Reference</a></p>
2055          *
2056          * returns a future to the operation so that it can be executed in parallel to other requests.
2057          */
2058         virtual Model::DescribeRemediationExceptionsOutcomeCallable DescribeRemediationExceptionsCallable(const Model::DescribeRemediationExceptionsRequest& request) const;
2059 
2060         /**
2061          * <p>Returns the details of one or more remediation exceptions. A detailed view of
2062          * a remediation exception for a set of resources that includes an explanation of
2063          * an exception and the time when the exception will be deleted. When you specify
2064          * the limit and the next token, you receive a paginated response. </p>
2065          * <p>Config generates a remediation exception when a problem occurs executing a
2066          * remediation action to a specific resource. Remediation exceptions blocks
2067          * auto-remediation until the exception is cleared.</p> <p>When you specify the
2068          * limit and the next token, you receive a paginated response. </p> <p>Limit and
2069          * next token are not applicable if you request resources in batch. It is only
2070          * applicable, when you request all resources.</p> <p><h3>See Also:</h3>
2071          * <a
2072          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeRemediationExceptions">AWS
2073          * API Reference</a></p>
2074          *
2075          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2076          */
2077         virtual void DescribeRemediationExceptionsAsync(const Model::DescribeRemediationExceptionsRequest& request, const DescribeRemediationExceptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2078 
2079         /**
2080          * <p>Provides a detailed view of a Remediation Execution for a set of resources
2081          * including state, timestamps for when steps for the remediation execution occur,
2082          * and any error messages for steps that have failed. When you specify the limit
2083          * and the next token, you receive a paginated response.</p><p><h3>See Also:</h3>
2084          * <a
2085          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeRemediationExecutionStatus">AWS
2086          * API Reference</a></p>
2087          */
2088         virtual Model::DescribeRemediationExecutionStatusOutcome DescribeRemediationExecutionStatus(const Model::DescribeRemediationExecutionStatusRequest& request) const;
2089 
2090         /**
2091          * <p>Provides a detailed view of a Remediation Execution for a set of resources
2092          * including state, timestamps for when steps for the remediation execution occur,
2093          * and any error messages for steps that have failed. When you specify the limit
2094          * and the next token, you receive a paginated response.</p><p><h3>See Also:</h3>
2095          * <a
2096          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeRemediationExecutionStatus">AWS
2097          * API Reference</a></p>
2098          *
2099          * returns a future to the operation so that it can be executed in parallel to other requests.
2100          */
2101         virtual Model::DescribeRemediationExecutionStatusOutcomeCallable DescribeRemediationExecutionStatusCallable(const Model::DescribeRemediationExecutionStatusRequest& request) const;
2102 
2103         /**
2104          * <p>Provides a detailed view of a Remediation Execution for a set of resources
2105          * including state, timestamps for when steps for the remediation execution occur,
2106          * and any error messages for steps that have failed. When you specify the limit
2107          * and the next token, you receive a paginated response.</p><p><h3>See Also:</h3>
2108          * <a
2109          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeRemediationExecutionStatus">AWS
2110          * API Reference</a></p>
2111          *
2112          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2113          */
2114         virtual void DescribeRemediationExecutionStatusAsync(const Model::DescribeRemediationExecutionStatusRequest& request, const DescribeRemediationExecutionStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2115 
2116         /**
2117          * <p>Returns the details of one or more retention configurations. If the retention
2118          * configuration name is not specified, this action returns the details for all the
2119          * retention configurations for that account.</p>  <p>Currently, Config
2120          * supports only one retention configuration per region in your account.</p>
2121          * <p><h3>See Also:</h3>   <a
2122          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeRetentionConfigurations">AWS
2123          * API Reference</a></p>
2124          */
2125         virtual Model::DescribeRetentionConfigurationsOutcome DescribeRetentionConfigurations(const Model::DescribeRetentionConfigurationsRequest& request) const;
2126 
2127         /**
2128          * <p>Returns the details of one or more retention configurations. If the retention
2129          * configuration name is not specified, this action returns the details for all the
2130          * retention configurations for that account.</p>  <p>Currently, Config
2131          * supports only one retention configuration per region in your account.</p>
2132          * <p><h3>See Also:</h3>   <a
2133          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeRetentionConfigurations">AWS
2134          * API Reference</a></p>
2135          *
2136          * returns a future to the operation so that it can be executed in parallel to other requests.
2137          */
2138         virtual Model::DescribeRetentionConfigurationsOutcomeCallable DescribeRetentionConfigurationsCallable(const Model::DescribeRetentionConfigurationsRequest& request) const;
2139 
2140         /**
2141          * <p>Returns the details of one or more retention configurations. If the retention
2142          * configuration name is not specified, this action returns the details for all the
2143          * retention configurations for that account.</p>  <p>Currently, Config
2144          * supports only one retention configuration per region in your account.</p>
2145          * <p><h3>See Also:</h3>   <a
2146          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/DescribeRetentionConfigurations">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 DescribeRetentionConfigurationsAsync(const Model::DescribeRetentionConfigurationsRequest& request, const DescribeRetentionConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2152 
2153         /**
2154          * <p>Returns the evaluation results for the specified Config rule for a specific
2155          * resource in a rule. The results indicate which Amazon Web Services resources
2156          * were evaluated by the rule, when each resource was last evaluated, and whether
2157          * each resource complies with the rule. </p>  <p>The results can return an
2158          * empty result page. But if you have a <code>nextToken</code>, the results are
2159          * displayed on the next page.</p> <p><h3>See Also:</h3>   <a
2160          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetAggregateComplianceDetailsByConfigRule">AWS
2161          * API Reference</a></p>
2162          */
2163         virtual Model::GetAggregateComplianceDetailsByConfigRuleOutcome GetAggregateComplianceDetailsByConfigRule(const Model::GetAggregateComplianceDetailsByConfigRuleRequest& request) const;
2164 
2165         /**
2166          * <p>Returns the evaluation results for the specified Config rule for a specific
2167          * resource in a rule. The results indicate which Amazon Web Services resources
2168          * were evaluated by the rule, when each resource was last evaluated, and whether
2169          * each resource complies with the rule. </p>  <p>The results can return an
2170          * empty result page. But if you have a <code>nextToken</code>, the results are
2171          * displayed on the next page.</p> <p><h3>See Also:</h3>   <a
2172          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetAggregateComplianceDetailsByConfigRule">AWS
2173          * API Reference</a></p>
2174          *
2175          * returns a future to the operation so that it can be executed in parallel to other requests.
2176          */
2177         virtual Model::GetAggregateComplianceDetailsByConfigRuleOutcomeCallable GetAggregateComplianceDetailsByConfigRuleCallable(const Model::GetAggregateComplianceDetailsByConfigRuleRequest& request) const;
2178 
2179         /**
2180          * <p>Returns the evaluation results for the specified Config rule for a specific
2181          * resource in a rule. The results indicate which Amazon Web Services resources
2182          * were evaluated by the rule, when each resource was last evaluated, and whether
2183          * each resource complies with the rule. </p>  <p>The results can return an
2184          * empty result page. But if you have a <code>nextToken</code>, the results are
2185          * displayed on the next page.</p> <p><h3>See Also:</h3>   <a
2186          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetAggregateComplianceDetailsByConfigRule">AWS
2187          * API Reference</a></p>
2188          *
2189          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2190          */
2191         virtual void GetAggregateComplianceDetailsByConfigRuleAsync(const Model::GetAggregateComplianceDetailsByConfigRuleRequest& request, const GetAggregateComplianceDetailsByConfigRuleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2192 
2193         /**
2194          * <p>Returns the number of compliant and noncompliant rules for one or more
2195          * accounts and regions in an aggregator.</p>  <p>The results can return an
2196          * empty result page, but if you have a nextToken, the results are displayed on the
2197          * next page.</p> <p><h3>See Also:</h3>   <a
2198          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetAggregateConfigRuleComplianceSummary">AWS
2199          * API Reference</a></p>
2200          */
2201         virtual Model::GetAggregateConfigRuleComplianceSummaryOutcome GetAggregateConfigRuleComplianceSummary(const Model::GetAggregateConfigRuleComplianceSummaryRequest& request) const;
2202 
2203         /**
2204          * <p>Returns the number of compliant and noncompliant rules for one or more
2205          * accounts and regions in an aggregator.</p>  <p>The results can return an
2206          * empty result page, but if you have a nextToken, the results are displayed on the
2207          * next page.</p> <p><h3>See Also:</h3>   <a
2208          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetAggregateConfigRuleComplianceSummary">AWS
2209          * API Reference</a></p>
2210          *
2211          * returns a future to the operation so that it can be executed in parallel to other requests.
2212          */
2213         virtual Model::GetAggregateConfigRuleComplianceSummaryOutcomeCallable GetAggregateConfigRuleComplianceSummaryCallable(const Model::GetAggregateConfigRuleComplianceSummaryRequest& request) const;
2214 
2215         /**
2216          * <p>Returns the number of compliant and noncompliant rules for one or more
2217          * accounts and regions in an aggregator.</p>  <p>The results can return an
2218          * empty result page, but if you have a nextToken, the results are displayed on the
2219          * next page.</p> <p><h3>See Also:</h3>   <a
2220          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetAggregateConfigRuleComplianceSummary">AWS
2221          * API Reference</a></p>
2222          *
2223          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2224          */
2225         virtual void GetAggregateConfigRuleComplianceSummaryAsync(const Model::GetAggregateConfigRuleComplianceSummaryRequest& request, const GetAggregateConfigRuleComplianceSummaryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2226 
2227         /**
2228          * <p>Returns the count of compliant and noncompliant conformance packs across all
2229          * Amazon Web Services accounts and Amazon Web Services Regions in an aggregator.
2230          * You can filter based on Amazon Web Services account ID or Amazon Web Services
2231          * Region.</p>  <p>The results can return an empty result page, but if you
2232          * have a nextToken, the results are displayed on the next page.</p>
2233          * <p><h3>See Also:</h3>   <a
2234          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetAggregateConformancePackComplianceSummary">AWS
2235          * API Reference</a></p>
2236          */
2237         virtual Model::GetAggregateConformancePackComplianceSummaryOutcome GetAggregateConformancePackComplianceSummary(const Model::GetAggregateConformancePackComplianceSummaryRequest& request) const;
2238 
2239         /**
2240          * <p>Returns the count of compliant and noncompliant conformance packs across all
2241          * Amazon Web Services accounts and Amazon Web Services Regions in an aggregator.
2242          * You can filter based on Amazon Web Services account ID or Amazon Web Services
2243          * Region.</p>  <p>The results can return an empty result page, but if you
2244          * have a nextToken, the results are displayed on the next page.</p>
2245          * <p><h3>See Also:</h3>   <a
2246          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetAggregateConformancePackComplianceSummary">AWS
2247          * API Reference</a></p>
2248          *
2249          * returns a future to the operation so that it can be executed in parallel to other requests.
2250          */
2251         virtual Model::GetAggregateConformancePackComplianceSummaryOutcomeCallable GetAggregateConformancePackComplianceSummaryCallable(const Model::GetAggregateConformancePackComplianceSummaryRequest& request) const;
2252 
2253         /**
2254          * <p>Returns the count of compliant and noncompliant conformance packs across all
2255          * Amazon Web Services accounts and Amazon Web Services Regions in an aggregator.
2256          * You can filter based on Amazon Web Services account ID or Amazon Web Services
2257          * Region.</p>  <p>The results can return an empty result page, but if you
2258          * have a nextToken, the results are displayed on the next page.</p>
2259          * <p><h3>See Also:</h3>   <a
2260          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetAggregateConformancePackComplianceSummary">AWS
2261          * API Reference</a></p>
2262          *
2263          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2264          */
2265         virtual void GetAggregateConformancePackComplianceSummaryAsync(const Model::GetAggregateConformancePackComplianceSummaryRequest& request, const GetAggregateConformancePackComplianceSummaryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2266 
2267         /**
2268          * <p>Returns the resource counts across accounts and regions that are present in
2269          * your Config aggregator. You can request the resource counts by providing filters
2270          * and GroupByKey.</p> <p>For example, if the input contains accountID 12345678910
2271          * and region us-east-1 in filters, the API returns the count of resources in
2272          * account ID 12345678910 and region us-east-1. If the input contains ACCOUNT_ID as
2273          * a GroupByKey, the API returns resource counts for all source accounts that are
2274          * present in your aggregator.</p><p><h3>See Also:</h3>   <a
2275          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetAggregateDiscoveredResourceCounts">AWS
2276          * API Reference</a></p>
2277          */
2278         virtual Model::GetAggregateDiscoveredResourceCountsOutcome GetAggregateDiscoveredResourceCounts(const Model::GetAggregateDiscoveredResourceCountsRequest& request) const;
2279 
2280         /**
2281          * <p>Returns the resource counts across accounts and regions that are present in
2282          * your Config aggregator. You can request the resource counts by providing filters
2283          * and GroupByKey.</p> <p>For example, if the input contains accountID 12345678910
2284          * and region us-east-1 in filters, the API returns the count of resources in
2285          * account ID 12345678910 and region us-east-1. If the input contains ACCOUNT_ID as
2286          * a GroupByKey, the API returns resource counts for all source accounts that are
2287          * present in your aggregator.</p><p><h3>See Also:</h3>   <a
2288          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetAggregateDiscoveredResourceCounts">AWS
2289          * API Reference</a></p>
2290          *
2291          * returns a future to the operation so that it can be executed in parallel to other requests.
2292          */
2293         virtual Model::GetAggregateDiscoveredResourceCountsOutcomeCallable GetAggregateDiscoveredResourceCountsCallable(const Model::GetAggregateDiscoveredResourceCountsRequest& request) const;
2294 
2295         /**
2296          * <p>Returns the resource counts across accounts and regions that are present in
2297          * your Config aggregator. You can request the resource counts by providing filters
2298          * and GroupByKey.</p> <p>For example, if the input contains accountID 12345678910
2299          * and region us-east-1 in filters, the API returns the count of resources in
2300          * account ID 12345678910 and region us-east-1. If the input contains ACCOUNT_ID as
2301          * a GroupByKey, the API returns resource counts for all source accounts that are
2302          * present in your aggregator.</p><p><h3>See Also:</h3>   <a
2303          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetAggregateDiscoveredResourceCounts">AWS
2304          * API Reference</a></p>
2305          *
2306          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2307          */
2308         virtual void GetAggregateDiscoveredResourceCountsAsync(const Model::GetAggregateDiscoveredResourceCountsRequest& request, const GetAggregateDiscoveredResourceCountsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2309 
2310         /**
2311          * <p>Returns configuration item that is aggregated for your specific resource in a
2312          * specific source account and region.</p><p><h3>See Also:</h3>   <a
2313          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetAggregateResourceConfig">AWS
2314          * API Reference</a></p>
2315          */
2316         virtual Model::GetAggregateResourceConfigOutcome GetAggregateResourceConfig(const Model::GetAggregateResourceConfigRequest& request) const;
2317 
2318         /**
2319          * <p>Returns configuration item that is aggregated for your specific resource in a
2320          * specific source account and region.</p><p><h3>See Also:</h3>   <a
2321          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetAggregateResourceConfig">AWS
2322          * API Reference</a></p>
2323          *
2324          * returns a future to the operation so that it can be executed in parallel to other requests.
2325          */
2326         virtual Model::GetAggregateResourceConfigOutcomeCallable GetAggregateResourceConfigCallable(const Model::GetAggregateResourceConfigRequest& request) const;
2327 
2328         /**
2329          * <p>Returns configuration item that is aggregated for your specific resource in a
2330          * specific source account and region.</p><p><h3>See Also:</h3>   <a
2331          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetAggregateResourceConfig">AWS
2332          * API Reference</a></p>
2333          *
2334          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2335          */
2336         virtual void GetAggregateResourceConfigAsync(const Model::GetAggregateResourceConfigRequest& request, const GetAggregateResourceConfigResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2337 
2338         /**
2339          * <p>Returns the evaluation results for the specified Config rule. The results
2340          * indicate which Amazon Web Services resources were evaluated by the rule, when
2341          * each resource was last evaluated, and whether each resource complies with the
2342          * rule.</p><p><h3>See Also:</h3>   <a
2343          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetComplianceDetailsByConfigRule">AWS
2344          * API Reference</a></p>
2345          */
2346         virtual Model::GetComplianceDetailsByConfigRuleOutcome GetComplianceDetailsByConfigRule(const Model::GetComplianceDetailsByConfigRuleRequest& request) const;
2347 
2348         /**
2349          * <p>Returns the evaluation results for the specified Config rule. The results
2350          * indicate which Amazon Web Services resources were evaluated by the rule, when
2351          * each resource was last evaluated, and whether each resource complies with the
2352          * rule.</p><p><h3>See Also:</h3>   <a
2353          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetComplianceDetailsByConfigRule">AWS
2354          * API Reference</a></p>
2355          *
2356          * returns a future to the operation so that it can be executed in parallel to other requests.
2357          */
2358         virtual Model::GetComplianceDetailsByConfigRuleOutcomeCallable GetComplianceDetailsByConfigRuleCallable(const Model::GetComplianceDetailsByConfigRuleRequest& request) const;
2359 
2360         /**
2361          * <p>Returns the evaluation results for the specified Config rule. The results
2362          * indicate which Amazon Web Services resources were evaluated by the rule, when
2363          * each resource was last evaluated, and whether each resource complies with the
2364          * rule.</p><p><h3>See Also:</h3>   <a
2365          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetComplianceDetailsByConfigRule">AWS
2366          * API Reference</a></p>
2367          *
2368          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2369          */
2370         virtual void GetComplianceDetailsByConfigRuleAsync(const Model::GetComplianceDetailsByConfigRuleRequest& request, const GetComplianceDetailsByConfigRuleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2371 
2372         /**
2373          * <p>Returns the evaluation results for the specified Amazon Web Services
2374          * resource. The results indicate which Config rules were used to evaluate the
2375          * resource, when each rule was last used, and whether the resource complies with
2376          * each rule.</p><p><h3>See Also:</h3>   <a
2377          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetComplianceDetailsByResource">AWS
2378          * API Reference</a></p>
2379          */
2380         virtual Model::GetComplianceDetailsByResourceOutcome GetComplianceDetailsByResource(const Model::GetComplianceDetailsByResourceRequest& request) const;
2381 
2382         /**
2383          * <p>Returns the evaluation results for the specified Amazon Web Services
2384          * resource. The results indicate which Config rules were used to evaluate the
2385          * resource, when each rule was last used, and whether the resource complies with
2386          * each rule.</p><p><h3>See Also:</h3>   <a
2387          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetComplianceDetailsByResource">AWS
2388          * API Reference</a></p>
2389          *
2390          * returns a future to the operation so that it can be executed in parallel to other requests.
2391          */
2392         virtual Model::GetComplianceDetailsByResourceOutcomeCallable GetComplianceDetailsByResourceCallable(const Model::GetComplianceDetailsByResourceRequest& request) const;
2393 
2394         /**
2395          * <p>Returns the evaluation results for the specified Amazon Web Services
2396          * resource. The results indicate which Config rules were used to evaluate the
2397          * resource, when each rule was last used, and whether the resource complies with
2398          * each rule.</p><p><h3>See Also:</h3>   <a
2399          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetComplianceDetailsByResource">AWS
2400          * API Reference</a></p>
2401          *
2402          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2403          */
2404         virtual void GetComplianceDetailsByResourceAsync(const Model::GetComplianceDetailsByResourceRequest& request, const GetComplianceDetailsByResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2405 
2406         /**
2407          * <p>Returns the number of Config rules that are compliant and noncompliant, up to
2408          * a maximum of 25 for each.</p><p><h3>See Also:</h3>   <a
2409          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetComplianceSummaryByConfigRule">AWS
2410          * API Reference</a></p>
2411          */
2412         virtual Model::GetComplianceSummaryByConfigRuleOutcome GetComplianceSummaryByConfigRule() const;
2413 
2414         /**
2415          * <p>Returns the number of Config rules that are compliant and noncompliant, up to
2416          * a maximum of 25 for each.</p><p><h3>See Also:</h3>   <a
2417          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetComplianceSummaryByConfigRule">AWS
2418          * API Reference</a></p>
2419          *
2420          * returns a future to the operation so that it can be executed in parallel to other requests.
2421          */
2422         virtual Model::GetComplianceSummaryByConfigRuleOutcomeCallable GetComplianceSummaryByConfigRuleCallable() const;
2423 
2424         /**
2425          * <p>Returns the number of Config rules that are compliant and noncompliant, up to
2426          * a maximum of 25 for each.</p><p><h3>See Also:</h3>   <a
2427          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetComplianceSummaryByConfigRule">AWS
2428          * API Reference</a></p>
2429          *
2430          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2431          */
2432         virtual void GetComplianceSummaryByConfigRuleAsync(const GetComplianceSummaryByConfigRuleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2433         /**
2434          * <p>Returns the number of resources that are compliant and the number that are
2435          * noncompliant. You can specify one or more resource types to get these numbers
2436          * for each resource type. The maximum number returned is 100.</p><p><h3>See
2437          * Also:</h3>   <a
2438          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetComplianceSummaryByResourceType">AWS
2439          * API Reference</a></p>
2440          */
2441         virtual Model::GetComplianceSummaryByResourceTypeOutcome GetComplianceSummaryByResourceType(const Model::GetComplianceSummaryByResourceTypeRequest& request) const;
2442 
2443         /**
2444          * <p>Returns the number of resources that are compliant and the number that are
2445          * noncompliant. You can specify one or more resource types to get these numbers
2446          * for each resource type. The maximum number returned is 100.</p><p><h3>See
2447          * Also:</h3>   <a
2448          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetComplianceSummaryByResourceType">AWS
2449          * API Reference</a></p>
2450          *
2451          * returns a future to the operation so that it can be executed in parallel to other requests.
2452          */
2453         virtual Model::GetComplianceSummaryByResourceTypeOutcomeCallable GetComplianceSummaryByResourceTypeCallable(const Model::GetComplianceSummaryByResourceTypeRequest& request) const;
2454 
2455         /**
2456          * <p>Returns the number of resources that are compliant and the number that are
2457          * noncompliant. You can specify one or more resource types to get these numbers
2458          * for each resource type. The maximum number returned is 100.</p><p><h3>See
2459          * Also:</h3>   <a
2460          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetComplianceSummaryByResourceType">AWS
2461          * API Reference</a></p>
2462          *
2463          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2464          */
2465         virtual void GetComplianceSummaryByResourceTypeAsync(const Model::GetComplianceSummaryByResourceTypeRequest& request, const GetComplianceSummaryByResourceTypeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2466 
2467         /**
2468          * <p>Returns compliance details of a conformance pack for all Amazon Web Services
2469          * resources that are monitered by conformance pack.</p><p><h3>See Also:</h3>   <a
2470          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetConformancePackComplianceDetails">AWS
2471          * API Reference</a></p>
2472          */
2473         virtual Model::GetConformancePackComplianceDetailsOutcome GetConformancePackComplianceDetails(const Model::GetConformancePackComplianceDetailsRequest& request) const;
2474 
2475         /**
2476          * <p>Returns compliance details of a conformance pack for all Amazon Web Services
2477          * resources that are monitered by conformance pack.</p><p><h3>See Also:</h3>   <a
2478          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetConformancePackComplianceDetails">AWS
2479          * API Reference</a></p>
2480          *
2481          * returns a future to the operation so that it can be executed in parallel to other requests.
2482          */
2483         virtual Model::GetConformancePackComplianceDetailsOutcomeCallable GetConformancePackComplianceDetailsCallable(const Model::GetConformancePackComplianceDetailsRequest& request) const;
2484 
2485         /**
2486          * <p>Returns compliance details of a conformance pack for all Amazon Web Services
2487          * resources that are monitered by conformance pack.</p><p><h3>See Also:</h3>   <a
2488          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetConformancePackComplianceDetails">AWS
2489          * API Reference</a></p>
2490          *
2491          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2492          */
2493         virtual void GetConformancePackComplianceDetailsAsync(const Model::GetConformancePackComplianceDetailsRequest& request, const GetConformancePackComplianceDetailsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2494 
2495         /**
2496          * <p>Returns compliance details for the conformance pack based on the cumulative
2497          * compliance results of all the rules in that conformance pack.</p><p><h3>See
2498          * Also:</h3>   <a
2499          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetConformancePackComplianceSummary">AWS
2500          * API Reference</a></p>
2501          */
2502         virtual Model::GetConformancePackComplianceSummaryOutcome GetConformancePackComplianceSummary(const Model::GetConformancePackComplianceSummaryRequest& request) const;
2503 
2504         /**
2505          * <p>Returns compliance details for the conformance pack based on the cumulative
2506          * compliance results of all the rules in that conformance pack.</p><p><h3>See
2507          * Also:</h3>   <a
2508          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetConformancePackComplianceSummary">AWS
2509          * API Reference</a></p>
2510          *
2511          * returns a future to the operation so that it can be executed in parallel to other requests.
2512          */
2513         virtual Model::GetConformancePackComplianceSummaryOutcomeCallable GetConformancePackComplianceSummaryCallable(const Model::GetConformancePackComplianceSummaryRequest& request) const;
2514 
2515         /**
2516          * <p>Returns compliance details for the conformance pack based on the cumulative
2517          * compliance results of all the rules in that conformance pack.</p><p><h3>See
2518          * Also:</h3>   <a
2519          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetConformancePackComplianceSummary">AWS
2520          * API Reference</a></p>
2521          *
2522          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2523          */
2524         virtual void GetConformancePackComplianceSummaryAsync(const Model::GetConformancePackComplianceSummaryRequest& request, const GetConformancePackComplianceSummaryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2525 
2526         /**
2527          * <p>Returns the resource types, the number of each resource type, and the total
2528          * number of resources that Config is recording in this region for your Amazon Web
2529          * Services account. </p> <p class="title"> <b>Example</b> </p> <ol> <li> <p>Config
2530          * is recording three resource types in the US East (Ohio) Region for your account:
2531          * 25 EC2 instances, 20 IAM users, and 15 S3 buckets.</p> </li> <li> <p>You make a
2532          * call to the <code>GetDiscoveredResourceCounts</code> action and specify that you
2533          * want all resource types. </p> </li> <li> <p>Config returns the following:</p>
2534          * <ul> <li> <p>The resource types (EC2 instances, IAM users, and S3 buckets).</p>
2535          * </li> <li> <p>The number of each resource type (25, 20, and 15).</p> </li> <li>
2536          * <p>The total number of all resources (60).</p> </li> </ul> </li> </ol> <p>The
2537          * response is paginated. By default, Config lists 100 <a>ResourceCount</a> objects
2538          * on each page. You can customize this number with the <code>limit</code>
2539          * parameter. The response includes a <code>nextToken</code> string. To get the
2540          * next page of results, run the request again and specify the string for the
2541          * <code>nextToken</code> parameter.</p>  <p>If you make a call to the
2542          * <a>GetDiscoveredResourceCounts</a> action, you might not immediately receive
2543          * resource counts in the following situations:</p> <ul> <li> <p>You are a new
2544          * Config customer.</p> </li> <li> <p>You just enabled resource recording.</p>
2545          * </li> </ul> <p>It might take a few minutes for Config to record and count your
2546          * resources. Wait a few minutes and then retry the
2547          * <a>GetDiscoveredResourceCounts</a> action. </p> <p><h3>See Also:</h3>
2548          * <a
2549          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetDiscoveredResourceCounts">AWS
2550          * API Reference</a></p>
2551          */
2552         virtual Model::GetDiscoveredResourceCountsOutcome GetDiscoveredResourceCounts(const Model::GetDiscoveredResourceCountsRequest& request) const;
2553 
2554         /**
2555          * <p>Returns the resource types, the number of each resource type, and the total
2556          * number of resources that Config is recording in this region for your Amazon Web
2557          * Services account. </p> <p class="title"> <b>Example</b> </p> <ol> <li> <p>Config
2558          * is recording three resource types in the US East (Ohio) Region for your account:
2559          * 25 EC2 instances, 20 IAM users, and 15 S3 buckets.</p> </li> <li> <p>You make a
2560          * call to the <code>GetDiscoveredResourceCounts</code> action and specify that you
2561          * want all resource types. </p> </li> <li> <p>Config returns the following:</p>
2562          * <ul> <li> <p>The resource types (EC2 instances, IAM users, and S3 buckets).</p>
2563          * </li> <li> <p>The number of each resource type (25, 20, and 15).</p> </li> <li>
2564          * <p>The total number of all resources (60).</p> </li> </ul> </li> </ol> <p>The
2565          * response is paginated. By default, Config lists 100 <a>ResourceCount</a> objects
2566          * on each page. You can customize this number with the <code>limit</code>
2567          * parameter. The response includes a <code>nextToken</code> string. To get the
2568          * next page of results, run the request again and specify the string for the
2569          * <code>nextToken</code> parameter.</p>  <p>If you make a call to the
2570          * <a>GetDiscoveredResourceCounts</a> action, you might not immediately receive
2571          * resource counts in the following situations:</p> <ul> <li> <p>You are a new
2572          * Config customer.</p> </li> <li> <p>You just enabled resource recording.</p>
2573          * </li> </ul> <p>It might take a few minutes for Config to record and count your
2574          * resources. Wait a few minutes and then retry the
2575          * <a>GetDiscoveredResourceCounts</a> action. </p> <p><h3>See Also:</h3>
2576          * <a
2577          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetDiscoveredResourceCounts">AWS
2578          * API Reference</a></p>
2579          *
2580          * returns a future to the operation so that it can be executed in parallel to other requests.
2581          */
2582         virtual Model::GetDiscoveredResourceCountsOutcomeCallable GetDiscoveredResourceCountsCallable(const Model::GetDiscoveredResourceCountsRequest& request) const;
2583 
2584         /**
2585          * <p>Returns the resource types, the number of each resource type, and the total
2586          * number of resources that Config is recording in this region for your Amazon Web
2587          * Services account. </p> <p class="title"> <b>Example</b> </p> <ol> <li> <p>Config
2588          * is recording three resource types in the US East (Ohio) Region for your account:
2589          * 25 EC2 instances, 20 IAM users, and 15 S3 buckets.</p> </li> <li> <p>You make a
2590          * call to the <code>GetDiscoveredResourceCounts</code> action and specify that you
2591          * want all resource types. </p> </li> <li> <p>Config returns the following:</p>
2592          * <ul> <li> <p>The resource types (EC2 instances, IAM users, and S3 buckets).</p>
2593          * </li> <li> <p>The number of each resource type (25, 20, and 15).</p> </li> <li>
2594          * <p>The total number of all resources (60).</p> </li> </ul> </li> </ol> <p>The
2595          * response is paginated. By default, Config lists 100 <a>ResourceCount</a> objects
2596          * on each page. You can customize this number with the <code>limit</code>
2597          * parameter. The response includes a <code>nextToken</code> string. To get the
2598          * next page of results, run the request again and specify the string for the
2599          * <code>nextToken</code> parameter.</p>  <p>If you make a call to the
2600          * <a>GetDiscoveredResourceCounts</a> action, you might not immediately receive
2601          * resource counts in the following situations:</p> <ul> <li> <p>You are a new
2602          * Config customer.</p> </li> <li> <p>You just enabled resource recording.</p>
2603          * </li> </ul> <p>It might take a few minutes for Config to record and count your
2604          * resources. Wait a few minutes and then retry the
2605          * <a>GetDiscoveredResourceCounts</a> action. </p> <p><h3>See Also:</h3>
2606          * <a
2607          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetDiscoveredResourceCounts">AWS
2608          * API Reference</a></p>
2609          *
2610          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2611          */
2612         virtual void GetDiscoveredResourceCountsAsync(const Model::GetDiscoveredResourceCountsRequest& request, const GetDiscoveredResourceCountsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2613 
2614         /**
2615          * <p>Returns detailed status for each member account within an organization for a
2616          * given organization config rule.</p><p><h3>See Also:</h3>   <a
2617          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetOrganizationConfigRuleDetailedStatus">AWS
2618          * API Reference</a></p>
2619          */
2620         virtual Model::GetOrganizationConfigRuleDetailedStatusOutcome GetOrganizationConfigRuleDetailedStatus(const Model::GetOrganizationConfigRuleDetailedStatusRequest& request) const;
2621 
2622         /**
2623          * <p>Returns detailed status for each member account within an organization for a
2624          * given organization config rule.</p><p><h3>See Also:</h3>   <a
2625          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetOrganizationConfigRuleDetailedStatus">AWS
2626          * API Reference</a></p>
2627          *
2628          * returns a future to the operation so that it can be executed in parallel to other requests.
2629          */
2630         virtual Model::GetOrganizationConfigRuleDetailedStatusOutcomeCallable GetOrganizationConfigRuleDetailedStatusCallable(const Model::GetOrganizationConfigRuleDetailedStatusRequest& request) const;
2631 
2632         /**
2633          * <p>Returns detailed status for each member account within an organization for a
2634          * given organization config rule.</p><p><h3>See Also:</h3>   <a
2635          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetOrganizationConfigRuleDetailedStatus">AWS
2636          * API Reference</a></p>
2637          *
2638          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2639          */
2640         virtual void GetOrganizationConfigRuleDetailedStatusAsync(const Model::GetOrganizationConfigRuleDetailedStatusRequest& request, const GetOrganizationConfigRuleDetailedStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2641 
2642         /**
2643          * <p>Returns detailed status for each member account within an organization for a
2644          * given organization conformance pack.</p><p><h3>See Also:</h3>   <a
2645          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetOrganizationConformancePackDetailedStatus">AWS
2646          * API Reference</a></p>
2647          */
2648         virtual Model::GetOrganizationConformancePackDetailedStatusOutcome GetOrganizationConformancePackDetailedStatus(const Model::GetOrganizationConformancePackDetailedStatusRequest& request) const;
2649 
2650         /**
2651          * <p>Returns detailed status for each member account within an organization for a
2652          * given organization conformance pack.</p><p><h3>See Also:</h3>   <a
2653          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetOrganizationConformancePackDetailedStatus">AWS
2654          * API Reference</a></p>
2655          *
2656          * returns a future to the operation so that it can be executed in parallel to other requests.
2657          */
2658         virtual Model::GetOrganizationConformancePackDetailedStatusOutcomeCallable GetOrganizationConformancePackDetailedStatusCallable(const Model::GetOrganizationConformancePackDetailedStatusRequest& request) const;
2659 
2660         /**
2661          * <p>Returns detailed status for each member account within an organization for a
2662          * given organization conformance pack.</p><p><h3>See Also:</h3>   <a
2663          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetOrganizationConformancePackDetailedStatus">AWS
2664          * API Reference</a></p>
2665          *
2666          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2667          */
2668         virtual void GetOrganizationConformancePackDetailedStatusAsync(const Model::GetOrganizationConformancePackDetailedStatusRequest& request, const GetOrganizationConformancePackDetailedStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2669 
2670         /**
2671          * <p>Returns a list of <code>ConfigurationItems</code> for the specified resource.
2672          * The list contains details about each state of the resource during the specified
2673          * time interval. If you specified a retention period to retain your
2674          * <code>ConfigurationItems</code> between a minimum of 30 days and a maximum of 7
2675          * years (2557 days), Config returns the <code>ConfigurationItems</code> for the
2676          * specified retention period. </p> <p>The response is paginated. By default,
2677          * Config returns a limit of 10 configuration items per page. You can customize
2678          * this number with the <code>limit</code> parameter. The response includes a
2679          * <code>nextToken</code> string. To get the next page of results, run the request
2680          * again and specify the string for the <code>nextToken</code> parameter.</p>
2681          *  <p>Each call to the API is limited to span a duration of seven days. It
2682          * is likely that the number of records returned is smaller than the specified
2683          * <code>limit</code>. In such cases, you can make another call, using the
2684          * <code>nextToken</code>.</p> <p><h3>See Also:</h3>   <a
2685          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetResourceConfigHistory">AWS
2686          * API Reference</a></p>
2687          */
2688         virtual Model::GetResourceConfigHistoryOutcome GetResourceConfigHistory(const Model::GetResourceConfigHistoryRequest& request) const;
2689 
2690         /**
2691          * <p>Returns a list of <code>ConfigurationItems</code> for the specified resource.
2692          * The list contains details about each state of the resource during the specified
2693          * time interval. If you specified a retention period to retain your
2694          * <code>ConfigurationItems</code> between a minimum of 30 days and a maximum of 7
2695          * years (2557 days), Config returns the <code>ConfigurationItems</code> for the
2696          * specified retention period. </p> <p>The response is paginated. By default,
2697          * Config returns a limit of 10 configuration items per page. You can customize
2698          * this number with the <code>limit</code> parameter. The response includes a
2699          * <code>nextToken</code> string. To get the next page of results, run the request
2700          * again and specify the string for the <code>nextToken</code> parameter.</p>
2701          *  <p>Each call to the API is limited to span a duration of seven days. It
2702          * is likely that the number of records returned is smaller than the specified
2703          * <code>limit</code>. In such cases, you can make another call, using the
2704          * <code>nextToken</code>.</p> <p><h3>See Also:</h3>   <a
2705          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetResourceConfigHistory">AWS
2706          * API Reference</a></p>
2707          *
2708          * returns a future to the operation so that it can be executed in parallel to other requests.
2709          */
2710         virtual Model::GetResourceConfigHistoryOutcomeCallable GetResourceConfigHistoryCallable(const Model::GetResourceConfigHistoryRequest& request) const;
2711 
2712         /**
2713          * <p>Returns a list of <code>ConfigurationItems</code> for the specified resource.
2714          * The list contains details about each state of the resource during the specified
2715          * time interval. If you specified a retention period to retain your
2716          * <code>ConfigurationItems</code> between a minimum of 30 days and a maximum of 7
2717          * years (2557 days), Config returns the <code>ConfigurationItems</code> for the
2718          * specified retention period. </p> <p>The response is paginated. By default,
2719          * Config returns a limit of 10 configuration items per page. You can customize
2720          * this number with the <code>limit</code> parameter. The response includes a
2721          * <code>nextToken</code> string. To get the next page of results, run the request
2722          * again and specify the string for the <code>nextToken</code> parameter.</p>
2723          *  <p>Each call to the API is limited to span a duration of seven days. It
2724          * is likely that the number of records returned is smaller than the specified
2725          * <code>limit</code>. In such cases, you can make another call, using the
2726          * <code>nextToken</code>.</p> <p><h3>See Also:</h3>   <a
2727          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetResourceConfigHistory">AWS
2728          * API Reference</a></p>
2729          *
2730          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2731          */
2732         virtual void GetResourceConfigHistoryAsync(const Model::GetResourceConfigHistoryRequest& request, const GetResourceConfigHistoryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2733 
2734         /**
2735          * <p>Returns the details of a specific stored query.</p><p><h3>See Also:</h3>   <a
2736          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetStoredQuery">AWS
2737          * API Reference</a></p>
2738          */
2739         virtual Model::GetStoredQueryOutcome GetStoredQuery(const Model::GetStoredQueryRequest& request) const;
2740 
2741         /**
2742          * <p>Returns the details of a specific stored query.</p><p><h3>See Also:</h3>   <a
2743          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetStoredQuery">AWS
2744          * API Reference</a></p>
2745          *
2746          * returns a future to the operation so that it can be executed in parallel to other requests.
2747          */
2748         virtual Model::GetStoredQueryOutcomeCallable GetStoredQueryCallable(const Model::GetStoredQueryRequest& request) const;
2749 
2750         /**
2751          * <p>Returns the details of a specific stored query.</p><p><h3>See Also:</h3>   <a
2752          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/GetStoredQuery">AWS
2753          * API Reference</a></p>
2754          *
2755          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2756          */
2757         virtual void GetStoredQueryAsync(const Model::GetStoredQueryRequest& request, const GetStoredQueryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2758 
2759         /**
2760          * <p>Accepts a resource type and returns a list of resource identifiers that are
2761          * aggregated for a specific resource type across accounts and regions. A resource
2762          * identifier includes the resource type, ID, (if available) the custom resource
2763          * name, source account, and source region. You can narrow the results to include
2764          * only resources that have specific resource IDs, or a resource name, or source
2765          * account ID, or source region.</p> <p>For example, if the input consists of
2766          * accountID 12345678910 and the region is us-east-1 for resource type
2767          * <code>AWS::EC2::Instance</code> then the API returns all the EC2 instance
2768          * identifiers of accountID 12345678910 and region us-east-1.</p><p><h3>See
2769          * Also:</h3>   <a
2770          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ListAggregateDiscoveredResources">AWS
2771          * API Reference</a></p>
2772          */
2773         virtual Model::ListAggregateDiscoveredResourcesOutcome ListAggregateDiscoveredResources(const Model::ListAggregateDiscoveredResourcesRequest& request) const;
2774 
2775         /**
2776          * <p>Accepts a resource type and returns a list of resource identifiers that are
2777          * aggregated for a specific resource type across accounts and regions. A resource
2778          * identifier includes the resource type, ID, (if available) the custom resource
2779          * name, source account, and source region. You can narrow the results to include
2780          * only resources that have specific resource IDs, or a resource name, or source
2781          * account ID, or source region.</p> <p>For example, if the input consists of
2782          * accountID 12345678910 and the region is us-east-1 for resource type
2783          * <code>AWS::EC2::Instance</code> then the API returns all the EC2 instance
2784          * identifiers of accountID 12345678910 and region us-east-1.</p><p><h3>See
2785          * Also:</h3>   <a
2786          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ListAggregateDiscoveredResources">AWS
2787          * API Reference</a></p>
2788          *
2789          * returns a future to the operation so that it can be executed in parallel to other requests.
2790          */
2791         virtual Model::ListAggregateDiscoveredResourcesOutcomeCallable ListAggregateDiscoveredResourcesCallable(const Model::ListAggregateDiscoveredResourcesRequest& request) const;
2792 
2793         /**
2794          * <p>Accepts a resource type and returns a list of resource identifiers that are
2795          * aggregated for a specific resource type across accounts and regions. A resource
2796          * identifier includes the resource type, ID, (if available) the custom resource
2797          * name, source account, and source region. You can narrow the results to include
2798          * only resources that have specific resource IDs, or a resource name, or source
2799          * account ID, or source region.</p> <p>For example, if the input consists of
2800          * accountID 12345678910 and the region is us-east-1 for resource type
2801          * <code>AWS::EC2::Instance</code> then the API returns all the EC2 instance
2802          * identifiers of accountID 12345678910 and region us-east-1.</p><p><h3>See
2803          * Also:</h3>   <a
2804          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ListAggregateDiscoveredResources">AWS
2805          * API Reference</a></p>
2806          *
2807          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2808          */
2809         virtual void ListAggregateDiscoveredResourcesAsync(const Model::ListAggregateDiscoveredResourcesRequest& request, const ListAggregateDiscoveredResourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2810 
2811         /**
2812          * <p>Accepts a resource type and returns a list of resource identifiers for the
2813          * resources of that type. A resource identifier includes the resource type, ID,
2814          * and (if available) the custom resource name. The results consist of resources
2815          * that Config has discovered, including those that Config is not currently
2816          * recording. You can narrow the results to include only resources that have
2817          * specific resource IDs or a resource name.</p>  <p>You can specify either
2818          * resource IDs or a resource name, but not both, in the same request.</p>
2819          * <p>The response is paginated. By default, Config lists 100 resource identifiers
2820          * on each page. You can customize this number with the <code>limit</code>
2821          * parameter. The response includes a <code>nextToken</code> string. To get the
2822          * next page of results, run the request again and specify the string for the
2823          * <code>nextToken</code> parameter.</p><p><h3>See Also:</h3>   <a
2824          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ListDiscoveredResources">AWS
2825          * API Reference</a></p>
2826          */
2827         virtual Model::ListDiscoveredResourcesOutcome ListDiscoveredResources(const Model::ListDiscoveredResourcesRequest& request) const;
2828 
2829         /**
2830          * <p>Accepts a resource type and returns a list of resource identifiers for the
2831          * resources of that type. A resource identifier includes the resource type, ID,
2832          * and (if available) the custom resource name. The results consist of resources
2833          * that Config has discovered, including those that Config is not currently
2834          * recording. You can narrow the results to include only resources that have
2835          * specific resource IDs or a resource name.</p>  <p>You can specify either
2836          * resource IDs or a resource name, but not both, in the same request.</p>
2837          * <p>The response is paginated. By default, Config lists 100 resource identifiers
2838          * on each page. You can customize this number with the <code>limit</code>
2839          * parameter. The response includes a <code>nextToken</code> string. To get the
2840          * next page of results, run the request again and specify the string for the
2841          * <code>nextToken</code> parameter.</p><p><h3>See Also:</h3>   <a
2842          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ListDiscoveredResources">AWS
2843          * API Reference</a></p>
2844          *
2845          * returns a future to the operation so that it can be executed in parallel to other requests.
2846          */
2847         virtual Model::ListDiscoveredResourcesOutcomeCallable ListDiscoveredResourcesCallable(const Model::ListDiscoveredResourcesRequest& request) const;
2848 
2849         /**
2850          * <p>Accepts a resource type and returns a list of resource identifiers for the
2851          * resources of that type. A resource identifier includes the resource type, ID,
2852          * and (if available) the custom resource name. The results consist of resources
2853          * that Config has discovered, including those that Config is not currently
2854          * recording. You can narrow the results to include only resources that have
2855          * specific resource IDs or a resource name.</p>  <p>You can specify either
2856          * resource IDs or a resource name, but not both, in the same request.</p>
2857          * <p>The response is paginated. By default, Config lists 100 resource identifiers
2858          * on each page. You can customize this number with the <code>limit</code>
2859          * parameter. The response includes a <code>nextToken</code> string. To get the
2860          * next page of results, run the request again and specify the string for the
2861          * <code>nextToken</code> parameter.</p><p><h3>See Also:</h3>   <a
2862          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ListDiscoveredResources">AWS
2863          * API Reference</a></p>
2864          *
2865          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2866          */
2867         virtual void ListDiscoveredResourcesAsync(const Model::ListDiscoveredResourcesRequest& request, const ListDiscoveredResourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2868 
2869         /**
2870          * <p>Lists the stored queries for a single Amazon Web Services account and a
2871          * single Amazon Web Services Region. The default is 100. </p><p><h3>See Also:</h3>
2872          * <a
2873          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ListStoredQueries">AWS
2874          * API Reference</a></p>
2875          */
2876         virtual Model::ListStoredQueriesOutcome ListStoredQueries(const Model::ListStoredQueriesRequest& request) const;
2877 
2878         /**
2879          * <p>Lists the stored queries for a single Amazon Web Services account and a
2880          * single Amazon Web Services Region. The default is 100. </p><p><h3>See Also:</h3>
2881          * <a
2882          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ListStoredQueries">AWS
2883          * API Reference</a></p>
2884          *
2885          * returns a future to the operation so that it can be executed in parallel to other requests.
2886          */
2887         virtual Model::ListStoredQueriesOutcomeCallable ListStoredQueriesCallable(const Model::ListStoredQueriesRequest& request) const;
2888 
2889         /**
2890          * <p>Lists the stored queries for a single Amazon Web Services account and a
2891          * single Amazon Web Services Region. The default is 100. </p><p><h3>See Also:</h3>
2892          * <a
2893          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ListStoredQueries">AWS
2894          * API Reference</a></p>
2895          *
2896          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2897          */
2898         virtual void ListStoredQueriesAsync(const Model::ListStoredQueriesRequest& request, const ListStoredQueriesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2899 
2900         /**
2901          * <p>List the tags for Config resource.</p><p><h3>See Also:</h3>   <a
2902          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ListTagsForResource">AWS
2903          * API Reference</a></p>
2904          */
2905         virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const;
2906 
2907         /**
2908          * <p>List the tags for Config resource.</p><p><h3>See Also:</h3>   <a
2909          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ListTagsForResource">AWS
2910          * API Reference</a></p>
2911          *
2912          * returns a future to the operation so that it can be executed in parallel to other requests.
2913          */
2914         virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const;
2915 
2916         /**
2917          * <p>List the tags for Config resource.</p><p><h3>See Also:</h3>   <a
2918          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/ListTagsForResource">AWS
2919          * API Reference</a></p>
2920          *
2921          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2922          */
2923         virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2924 
2925         /**
2926          * <p>Authorizes the aggregator account and region to collect data from the source
2927          * account and region. </p><p><h3>See Also:</h3>   <a
2928          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutAggregationAuthorization">AWS
2929          * API Reference</a></p>
2930          */
2931         virtual Model::PutAggregationAuthorizationOutcome PutAggregationAuthorization(const Model::PutAggregationAuthorizationRequest& request) const;
2932 
2933         /**
2934          * <p>Authorizes the aggregator account and region to collect data from the source
2935          * account and region. </p><p><h3>See Also:</h3>   <a
2936          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutAggregationAuthorization">AWS
2937          * API Reference</a></p>
2938          *
2939          * returns a future to the operation so that it can be executed in parallel to other requests.
2940          */
2941         virtual Model::PutAggregationAuthorizationOutcomeCallable PutAggregationAuthorizationCallable(const Model::PutAggregationAuthorizationRequest& request) const;
2942 
2943         /**
2944          * <p>Authorizes the aggregator account and region to collect data from the source
2945          * account and region. </p><p><h3>See Also:</h3>   <a
2946          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutAggregationAuthorization">AWS
2947          * API Reference</a></p>
2948          *
2949          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2950          */
2951         virtual void PutAggregationAuthorizationAsync(const Model::PutAggregationAuthorizationRequest& request, const PutAggregationAuthorizationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2952 
2953         /**
2954          * <p>Adds or updates an Config rule for evaluating whether your Amazon Web
2955          * Services resources comply with your desired configurations.</p> <p>You can use
2956          * this action for custom Config rules and Config managed rules. A custom Config
2957          * rule is a rule that you develop and maintain. An Config managed rule is a
2958          * customizable, predefined rule that Config provides.</p> <p>If you are adding a
2959          * new custom Config rule, you must first create the Lambda function that the rule
2960          * invokes to evaluate your resources. When you use the <code>PutConfigRule</code>
2961          * action to add the rule to Config, you must specify the Amazon Resource Name
2962          * (ARN) that Lambda assigns to the function. Specify the ARN for the
2963          * <code>SourceIdentifier</code> key. This key is part of the <code>Source</code>
2964          * object, which is part of the <code>ConfigRule</code> object. </p> <p>If you are
2965          * adding an Config managed rule, specify the rule's identifier for the
2966          * <code>SourceIdentifier</code> key. To reference Config managed rule identifiers,
2967          * see <a
2968          * href="https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html">About
2969          * Config managed rules</a>.</p> <p>For any new rule that you add, specify the
2970          * <code>ConfigRuleName</code> in the <code>ConfigRule</code> object. Do not
2971          * specify the <code>ConfigRuleArn</code> or the <code>ConfigRuleId</code>. These
2972          * values are generated by Config for new rules.</p> <p>If you are updating a rule
2973          * that you added previously, you can specify the rule by
2974          * <code>ConfigRuleName</code>, <code>ConfigRuleId</code>, or
2975          * <code>ConfigRuleArn</code> in the <code>ConfigRule</code> data type that you use
2976          * in this request.</p> <p>The maximum number of rules that Config supports is
2977          * 150.</p> <p>For information about requesting a rule limit increase, see <a
2978          * href="http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_config">Config
2979          * Limits</a> in the <i>Amazon Web Services General Reference Guide</i>.</p> <p>For
2980          * more information about developing and using Config rules, see <a
2981          * href="https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html">Evaluating
2982          * Amazon Web Services resource Configurations with Config</a> in the <i>Config
2983          * Developer Guide</i>.</p><p><h3>See Also:</h3>   <a
2984          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutConfigRule">AWS
2985          * API Reference</a></p>
2986          */
2987         virtual Model::PutConfigRuleOutcome PutConfigRule(const Model::PutConfigRuleRequest& request) const;
2988 
2989         /**
2990          * <p>Adds or updates an Config rule for evaluating whether your Amazon Web
2991          * Services resources comply with your desired configurations.</p> <p>You can use
2992          * this action for custom Config rules and Config managed rules. A custom Config
2993          * rule is a rule that you develop and maintain. An Config managed rule is a
2994          * customizable, predefined rule that Config provides.</p> <p>If you are adding a
2995          * new custom Config rule, you must first create the Lambda function that the rule
2996          * invokes to evaluate your resources. When you use the <code>PutConfigRule</code>
2997          * action to add the rule to Config, you must specify the Amazon Resource Name
2998          * (ARN) that Lambda assigns to the function. Specify the ARN for the
2999          * <code>SourceIdentifier</code> key. This key is part of the <code>Source</code>
3000          * object, which is part of the <code>ConfigRule</code> object. </p> <p>If you are
3001          * adding an Config managed rule, specify the rule's identifier for the
3002          * <code>SourceIdentifier</code> key. To reference Config managed rule identifiers,
3003          * see <a
3004          * href="https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html">About
3005          * Config managed rules</a>.</p> <p>For any new rule that you add, specify the
3006          * <code>ConfigRuleName</code> in the <code>ConfigRule</code> object. Do not
3007          * specify the <code>ConfigRuleArn</code> or the <code>ConfigRuleId</code>. These
3008          * values are generated by Config for new rules.</p> <p>If you are updating a rule
3009          * that you added previously, you can specify the rule by
3010          * <code>ConfigRuleName</code>, <code>ConfigRuleId</code>, or
3011          * <code>ConfigRuleArn</code> in the <code>ConfigRule</code> data type that you use
3012          * in this request.</p> <p>The maximum number of rules that Config supports is
3013          * 150.</p> <p>For information about requesting a rule limit increase, see <a
3014          * href="http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_config">Config
3015          * Limits</a> in the <i>Amazon Web Services General Reference Guide</i>.</p> <p>For
3016          * more information about developing and using Config rules, see <a
3017          * href="https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html">Evaluating
3018          * Amazon Web Services resource Configurations with Config</a> in the <i>Config
3019          * Developer Guide</i>.</p><p><h3>See Also:</h3>   <a
3020          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutConfigRule">AWS
3021          * API Reference</a></p>
3022          *
3023          * returns a future to the operation so that it can be executed in parallel to other requests.
3024          */
3025         virtual Model::PutConfigRuleOutcomeCallable PutConfigRuleCallable(const Model::PutConfigRuleRequest& request) const;
3026 
3027         /**
3028          * <p>Adds or updates an Config rule for evaluating whether your Amazon Web
3029          * Services resources comply with your desired configurations.</p> <p>You can use
3030          * this action for custom Config rules and Config managed rules. A custom Config
3031          * rule is a rule that you develop and maintain. An Config managed rule is a
3032          * customizable, predefined rule that Config provides.</p> <p>If you are adding a
3033          * new custom Config rule, you must first create the Lambda function that the rule
3034          * invokes to evaluate your resources. When you use the <code>PutConfigRule</code>
3035          * action to add the rule to Config, you must specify the Amazon Resource Name
3036          * (ARN) that Lambda assigns to the function. Specify the ARN for the
3037          * <code>SourceIdentifier</code> key. This key is part of the <code>Source</code>
3038          * object, which is part of the <code>ConfigRule</code> object. </p> <p>If you are
3039          * adding an Config managed rule, specify the rule's identifier for the
3040          * <code>SourceIdentifier</code> key. To reference Config managed rule identifiers,
3041          * see <a
3042          * href="https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_use-managed-rules.html">About
3043          * Config managed rules</a>.</p> <p>For any new rule that you add, specify the
3044          * <code>ConfigRuleName</code> in the <code>ConfigRule</code> object. Do not
3045          * specify the <code>ConfigRuleArn</code> or the <code>ConfigRuleId</code>. These
3046          * values are generated by Config for new rules.</p> <p>If you are updating a rule
3047          * that you added previously, you can specify the rule by
3048          * <code>ConfigRuleName</code>, <code>ConfigRuleId</code>, or
3049          * <code>ConfigRuleArn</code> in the <code>ConfigRule</code> data type that you use
3050          * in this request.</p> <p>The maximum number of rules that Config supports is
3051          * 150.</p> <p>For information about requesting a rule limit increase, see <a
3052          * href="http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_config">Config
3053          * Limits</a> in the <i>Amazon Web Services General Reference Guide</i>.</p> <p>For
3054          * more information about developing and using Config rules, see <a
3055          * href="https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config.html">Evaluating
3056          * Amazon Web Services resource Configurations with Config</a> in the <i>Config
3057          * Developer Guide</i>.</p><p><h3>See Also:</h3>   <a
3058          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutConfigRule">AWS
3059          * API Reference</a></p>
3060          *
3061          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3062          */
3063         virtual void PutConfigRuleAsync(const Model::PutConfigRuleRequest& request, const PutConfigRuleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3064 
3065         /**
3066          * <p>Creates and updates the configuration aggregator with the selected source
3067          * accounts and regions. The source account can be individual account(s) or an
3068          * organization.</p> <p> <code>accountIds</code> that are passed will be replaced
3069          * with existing accounts. If you want to add additional accounts into the
3070          * aggregator, call <code>DescribeAggregator</code> to get the previous accounts
3071          * and then append new ones.</p>  <p>Config should be enabled in source
3072          * accounts and regions you want to aggregate.</p> <p>If your source type is an
3073          * organization, you must be signed in to the management account or a registered
3074          * delegated administrator and all the features must be enabled in your
3075          * organization. If the caller is a management account, Config calls
3076          * <code>EnableAwsServiceAccess</code> API to enable integration between Config and
3077          * Organizations. If the caller is a registered delegated administrator, Config
3078          * calls <code>ListDelegatedAdministrators</code> API to verify whether the caller
3079          * is a valid delegated administrator.</p> <p>To register a delegated
3080          * administrator, see <a
3081          * href="https://docs.aws.amazon.com/config/latest/developerguide/set-up-aggregator-cli.html#register-a-delegated-administrator-cli">Register
3082          * a Delegated Administrator</a> in the Config developer guide. </p>
3083          * <p><h3>See Also:</h3>   <a
3084          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutConfigurationAggregator">AWS
3085          * API Reference</a></p>
3086          */
3087         virtual Model::PutConfigurationAggregatorOutcome PutConfigurationAggregator(const Model::PutConfigurationAggregatorRequest& request) const;
3088 
3089         /**
3090          * <p>Creates and updates the configuration aggregator with the selected source
3091          * accounts and regions. The source account can be individual account(s) or an
3092          * organization.</p> <p> <code>accountIds</code> that are passed will be replaced
3093          * with existing accounts. If you want to add additional accounts into the
3094          * aggregator, call <code>DescribeAggregator</code> to get the previous accounts
3095          * and then append new ones.</p>  <p>Config should be enabled in source
3096          * accounts and regions you want to aggregate.</p> <p>If your source type is an
3097          * organization, you must be signed in to the management account or a registered
3098          * delegated administrator and all the features must be enabled in your
3099          * organization. If the caller is a management account, Config calls
3100          * <code>EnableAwsServiceAccess</code> API to enable integration between Config and
3101          * Organizations. If the caller is a registered delegated administrator, Config
3102          * calls <code>ListDelegatedAdministrators</code> API to verify whether the caller
3103          * is a valid delegated administrator.</p> <p>To register a delegated
3104          * administrator, see <a
3105          * href="https://docs.aws.amazon.com/config/latest/developerguide/set-up-aggregator-cli.html#register-a-delegated-administrator-cli">Register
3106          * a Delegated Administrator</a> in the Config developer guide. </p>
3107          * <p><h3>See Also:</h3>   <a
3108          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutConfigurationAggregator">AWS
3109          * API Reference</a></p>
3110          *
3111          * returns a future to the operation so that it can be executed in parallel to other requests.
3112          */
3113         virtual Model::PutConfigurationAggregatorOutcomeCallable PutConfigurationAggregatorCallable(const Model::PutConfigurationAggregatorRequest& request) const;
3114 
3115         /**
3116          * <p>Creates and updates the configuration aggregator with the selected source
3117          * accounts and regions. The source account can be individual account(s) or an
3118          * organization.</p> <p> <code>accountIds</code> that are passed will be replaced
3119          * with existing accounts. If you want to add additional accounts into the
3120          * aggregator, call <code>DescribeAggregator</code> to get the previous accounts
3121          * and then append new ones.</p>  <p>Config should be enabled in source
3122          * accounts and regions you want to aggregate.</p> <p>If your source type is an
3123          * organization, you must be signed in to the management account or a registered
3124          * delegated administrator and all the features must be enabled in your
3125          * organization. If the caller is a management account, Config calls
3126          * <code>EnableAwsServiceAccess</code> API to enable integration between Config and
3127          * Organizations. If the caller is a registered delegated administrator, Config
3128          * calls <code>ListDelegatedAdministrators</code> API to verify whether the caller
3129          * is a valid delegated administrator.</p> <p>To register a delegated
3130          * administrator, see <a
3131          * href="https://docs.aws.amazon.com/config/latest/developerguide/set-up-aggregator-cli.html#register-a-delegated-administrator-cli">Register
3132          * a Delegated Administrator</a> in the Config developer guide. </p>
3133          * <p><h3>See Also:</h3>   <a
3134          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutConfigurationAggregator">AWS
3135          * API Reference</a></p>
3136          *
3137          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3138          */
3139         virtual void PutConfigurationAggregatorAsync(const Model::PutConfigurationAggregatorRequest& request, const PutConfigurationAggregatorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3140 
3141         /**
3142          * <p>Creates a new configuration recorder to record the selected resource
3143          * configurations.</p> <p>You can use this action to change the role
3144          * <code>roleARN</code> or the <code>recordingGroup</code> of an existing recorder.
3145          * To change the role, call the action on the existing configuration recorder and
3146          * specify a role.</p>  <p>Currently, you can specify only one configuration
3147          * recorder per region in your account.</p> <p>If
3148          * <code>ConfigurationRecorder</code> does not have the <b>recordingGroup</b>
3149          * parameter specified, the default is to record all supported resource types.</p>
3150          * <p><h3>See Also:</h3>   <a
3151          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutConfigurationRecorder">AWS
3152          * API Reference</a></p>
3153          */
3154         virtual Model::PutConfigurationRecorderOutcome PutConfigurationRecorder(const Model::PutConfigurationRecorderRequest& request) const;
3155 
3156         /**
3157          * <p>Creates a new configuration recorder to record the selected resource
3158          * configurations.</p> <p>You can use this action to change the role
3159          * <code>roleARN</code> or the <code>recordingGroup</code> of an existing recorder.
3160          * To change the role, call the action on the existing configuration recorder and
3161          * specify a role.</p>  <p>Currently, you can specify only one configuration
3162          * recorder per region in your account.</p> <p>If
3163          * <code>ConfigurationRecorder</code> does not have the <b>recordingGroup</b>
3164          * parameter specified, the default is to record all supported resource types.</p>
3165          * <p><h3>See Also:</h3>   <a
3166          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutConfigurationRecorder">AWS
3167          * API Reference</a></p>
3168          *
3169          * returns a future to the operation so that it can be executed in parallel to other requests.
3170          */
3171         virtual Model::PutConfigurationRecorderOutcomeCallable PutConfigurationRecorderCallable(const Model::PutConfigurationRecorderRequest& request) const;
3172 
3173         /**
3174          * <p>Creates a new configuration recorder to record the selected resource
3175          * configurations.</p> <p>You can use this action to change the role
3176          * <code>roleARN</code> or the <code>recordingGroup</code> of an existing recorder.
3177          * To change the role, call the action on the existing configuration recorder and
3178          * specify a role.</p>  <p>Currently, you can specify only one configuration
3179          * recorder per region in your account.</p> <p>If
3180          * <code>ConfigurationRecorder</code> does not have the <b>recordingGroup</b>
3181          * parameter specified, the default is to record all supported resource types.</p>
3182          * <p><h3>See Also:</h3>   <a
3183          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutConfigurationRecorder">AWS
3184          * API Reference</a></p>
3185          *
3186          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3187          */
3188         virtual void PutConfigurationRecorderAsync(const Model::PutConfigurationRecorderRequest& request, const PutConfigurationRecorderResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3189 
3190         /**
3191          * <p>Creates or updates a conformance pack. A conformance pack is a collection of
3192          * Config rules that can be easily deployed in an account and a region and across
3193          * Amazon Web Services Organization.</p> <p>This API creates a service linked role
3194          * <code>AWSServiceRoleForConfigConforms</code> in your account. The service linked
3195          * role is created only when the role does not exist in your account. </p>
3196          * <p>You must specify either the <code>TemplateS3Uri</code> or the
3197          * <code>TemplateBody</code> parameter, but not both. If you provide both Config
3198          * uses the <code>TemplateS3Uri</code> parameter and ignores the
3199          * <code>TemplateBody</code> parameter.</p> <p><h3>See Also:</h3>   <a
3200          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutConformancePack">AWS
3201          * API Reference</a></p>
3202          */
3203         virtual Model::PutConformancePackOutcome PutConformancePack(const Model::PutConformancePackRequest& request) const;
3204 
3205         /**
3206          * <p>Creates or updates a conformance pack. A conformance pack is a collection of
3207          * Config rules that can be easily deployed in an account and a region and across
3208          * Amazon Web Services Organization.</p> <p>This API creates a service linked role
3209          * <code>AWSServiceRoleForConfigConforms</code> in your account. The service linked
3210          * role is created only when the role does not exist in your account. </p>
3211          * <p>You must specify either the <code>TemplateS3Uri</code> or the
3212          * <code>TemplateBody</code> parameter, but not both. If you provide both Config
3213          * uses the <code>TemplateS3Uri</code> parameter and ignores the
3214          * <code>TemplateBody</code> parameter.</p> <p><h3>See Also:</h3>   <a
3215          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutConformancePack">AWS
3216          * API Reference</a></p>
3217          *
3218          * returns a future to the operation so that it can be executed in parallel to other requests.
3219          */
3220         virtual Model::PutConformancePackOutcomeCallable PutConformancePackCallable(const Model::PutConformancePackRequest& request) const;
3221 
3222         /**
3223          * <p>Creates or updates a conformance pack. A conformance pack is a collection of
3224          * Config rules that can be easily deployed in an account and a region and across
3225          * Amazon Web Services Organization.</p> <p>This API creates a service linked role
3226          * <code>AWSServiceRoleForConfigConforms</code> in your account. The service linked
3227          * role is created only when the role does not exist in your account. </p>
3228          * <p>You must specify either the <code>TemplateS3Uri</code> or the
3229          * <code>TemplateBody</code> parameter, but not both. If you provide both Config
3230          * uses the <code>TemplateS3Uri</code> parameter and ignores the
3231          * <code>TemplateBody</code> parameter.</p> <p><h3>See Also:</h3>   <a
3232          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutConformancePack">AWS
3233          * API Reference</a></p>
3234          *
3235          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3236          */
3237         virtual void PutConformancePackAsync(const Model::PutConformancePackRequest& request, const PutConformancePackResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3238 
3239         /**
3240          * <p>Creates a delivery channel object to deliver configuration information to an
3241          * Amazon S3 bucket and Amazon SNS topic.</p> <p>Before you can create a delivery
3242          * channel, you must create a configuration recorder.</p> <p>You can use this
3243          * action to change the Amazon S3 bucket or an Amazon SNS topic of the existing
3244          * delivery channel. To change the Amazon S3 bucket or an Amazon SNS topic, call
3245          * this action and specify the changed values for the S3 bucket and the SNS topic.
3246          * If you specify a different value for either the S3 bucket or the SNS topic, this
3247          * action will keep the existing value for the parameter that is not changed.</p>
3248          *  <p>You can have only one delivery channel per region in your account.</p>
3249          * <p><h3>See Also:</h3>   <a
3250          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutDeliveryChannel">AWS
3251          * API Reference</a></p>
3252          */
3253         virtual Model::PutDeliveryChannelOutcome PutDeliveryChannel(const Model::PutDeliveryChannelRequest& request) const;
3254 
3255         /**
3256          * <p>Creates a delivery channel object to deliver configuration information to an
3257          * Amazon S3 bucket and Amazon SNS topic.</p> <p>Before you can create a delivery
3258          * channel, you must create a configuration recorder.</p> <p>You can use this
3259          * action to change the Amazon S3 bucket or an Amazon SNS topic of the existing
3260          * delivery channel. To change the Amazon S3 bucket or an Amazon SNS topic, call
3261          * this action and specify the changed values for the S3 bucket and the SNS topic.
3262          * If you specify a different value for either the S3 bucket or the SNS topic, this
3263          * action will keep the existing value for the parameter that is not changed.</p>
3264          *  <p>You can have only one delivery channel per region in your account.</p>
3265          * <p><h3>See Also:</h3>   <a
3266          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutDeliveryChannel">AWS
3267          * API Reference</a></p>
3268          *
3269          * returns a future to the operation so that it can be executed in parallel to other requests.
3270          */
3271         virtual Model::PutDeliveryChannelOutcomeCallable PutDeliveryChannelCallable(const Model::PutDeliveryChannelRequest& request) const;
3272 
3273         /**
3274          * <p>Creates a delivery channel object to deliver configuration information to an
3275          * Amazon S3 bucket and Amazon SNS topic.</p> <p>Before you can create a delivery
3276          * channel, you must create a configuration recorder.</p> <p>You can use this
3277          * action to change the Amazon S3 bucket or an Amazon SNS topic of the existing
3278          * delivery channel. To change the Amazon S3 bucket or an Amazon SNS topic, call
3279          * this action and specify the changed values for the S3 bucket and the SNS topic.
3280          * If you specify a different value for either the S3 bucket or the SNS topic, this
3281          * action will keep the existing value for the parameter that is not changed.</p>
3282          *  <p>You can have only one delivery channel per region in your account.</p>
3283          * <p><h3>See Also:</h3>   <a
3284          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutDeliveryChannel">AWS
3285          * API Reference</a></p>
3286          *
3287          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3288          */
3289         virtual void PutDeliveryChannelAsync(const Model::PutDeliveryChannelRequest& request, const PutDeliveryChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3290 
3291         /**
3292          * <p>Used by an Lambda function to deliver evaluation results to Config. This
3293          * action is required in every Lambda function that is invoked by an Config
3294          * rule.</p><p><h3>See Also:</h3>   <a
3295          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutEvaluations">AWS
3296          * API Reference</a></p>
3297          */
3298         virtual Model::PutEvaluationsOutcome PutEvaluations(const Model::PutEvaluationsRequest& request) const;
3299 
3300         /**
3301          * <p>Used by an Lambda function to deliver evaluation results to Config. This
3302          * action is required in every Lambda function that is invoked by an Config
3303          * rule.</p><p><h3>See Also:</h3>   <a
3304          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutEvaluations">AWS
3305          * API Reference</a></p>
3306          *
3307          * returns a future to the operation so that it can be executed in parallel to other requests.
3308          */
3309         virtual Model::PutEvaluationsOutcomeCallable PutEvaluationsCallable(const Model::PutEvaluationsRequest& request) const;
3310 
3311         /**
3312          * <p>Used by an Lambda function to deliver evaluation results to Config. This
3313          * action is required in every Lambda function that is invoked by an Config
3314          * rule.</p><p><h3>See Also:</h3>   <a
3315          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutEvaluations">AWS
3316          * API Reference</a></p>
3317          *
3318          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3319          */
3320         virtual void PutEvaluationsAsync(const Model::PutEvaluationsRequest& request, const PutEvaluationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3321 
3322         /**
3323          * <p>Add or updates the evaluations for process checks. This API checks if the
3324          * rule is a process check when the name of the Config rule is
3325          * provided.</p><p><h3>See Also:</h3>   <a
3326          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutExternalEvaluation">AWS
3327          * API Reference</a></p>
3328          */
3329         virtual Model::PutExternalEvaluationOutcome PutExternalEvaluation(const Model::PutExternalEvaluationRequest& request) const;
3330 
3331         /**
3332          * <p>Add or updates the evaluations for process checks. This API checks if the
3333          * rule is a process check when the name of the Config rule is
3334          * provided.</p><p><h3>See Also:</h3>   <a
3335          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutExternalEvaluation">AWS
3336          * API Reference</a></p>
3337          *
3338          * returns a future to the operation so that it can be executed in parallel to other requests.
3339          */
3340         virtual Model::PutExternalEvaluationOutcomeCallable PutExternalEvaluationCallable(const Model::PutExternalEvaluationRequest& request) const;
3341 
3342         /**
3343          * <p>Add or updates the evaluations for process checks. This API checks if the
3344          * rule is a process check when the name of the Config rule is
3345          * provided.</p><p><h3>See Also:</h3>   <a
3346          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutExternalEvaluation">AWS
3347          * API Reference</a></p>
3348          *
3349          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3350          */
3351         virtual void PutExternalEvaluationAsync(const Model::PutExternalEvaluationRequest& request, const PutExternalEvaluationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3352 
3353         /**
3354          * <p>Adds or updates organization config rule for your entire organization
3355          * evaluating whether your Amazon Web Services resources comply with your desired
3356          * configurations.</p> <p> Only a master account and a delegated administrator can
3357          * create or update an organization config rule. When calling this API with a
3358          * delegated administrator, you must ensure Organizations
3359          * <code>ListDelegatedAdministrator</code> permissions are added. </p> <p>This API
3360          * enables organization service access through the
3361          * <code>EnableAWSServiceAccess</code> action and creates a service linked role
3362          * <code>AWSServiceRoleForConfigMultiAccountSetup</code> in the master or delegated
3363          * administrator account of your organization. The service linked role is created
3364          * only when the role does not exist in the caller account. Config verifies the
3365          * existence of role with <code>GetRole</code> action.</p> <p>To use this API with
3366          * delegated administrator, register a delegated administrator by calling Amazon
3367          * Web Services Organization <code>register-delegated-administrator</code> for
3368          * <code>config-multiaccountsetup.amazonaws.com</code>. </p> <p>You can use this
3369          * action to create both custom Config rules and Config managed rules. If you are
3370          * adding a new custom Config rule, you must first create Lambda function in the
3371          * master account or a delegated administrator that the rule invokes to evaluate
3372          * your resources. You also need to create an IAM role in the managed-account that
3373          * can be assumed by the Lambda function. When you use the
3374          * <code>PutOrganizationConfigRule</code> action to add the rule to Config, you
3375          * must specify the Amazon Resource Name (ARN) that Lambda assigns to the function.
3376          * If you are adding an Config managed rule, specify the rule's identifier for the
3377          * <code>RuleIdentifier</code> key.</p> <p>The maximum number of organization
3378          * config rules that Config supports is 150 and 3 delegated administrator per
3379          * organization. </p>  <p>Prerequisite: Ensure you call
3380          * <code>EnableAllFeatures</code> API to enable all features in an
3381          * organization.</p> <p>Specify either <code>OrganizationCustomRuleMetadata</code>
3382          * or <code>OrganizationManagedRuleMetadata</code>.</p> <p><h3>See
3383          * Also:</h3>   <a
3384          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutOrganizationConfigRule">AWS
3385          * API Reference</a></p>
3386          */
3387         virtual Model::PutOrganizationConfigRuleOutcome PutOrganizationConfigRule(const Model::PutOrganizationConfigRuleRequest& request) const;
3388 
3389         /**
3390          * <p>Adds or updates organization config rule for your entire organization
3391          * evaluating whether your Amazon Web Services resources comply with your desired
3392          * configurations.</p> <p> Only a master account and a delegated administrator can
3393          * create or update an organization config rule. When calling this API with a
3394          * delegated administrator, you must ensure Organizations
3395          * <code>ListDelegatedAdministrator</code> permissions are added. </p> <p>This API
3396          * enables organization service access through the
3397          * <code>EnableAWSServiceAccess</code> action and creates a service linked role
3398          * <code>AWSServiceRoleForConfigMultiAccountSetup</code> in the master or delegated
3399          * administrator account of your organization. The service linked role is created
3400          * only when the role does not exist in the caller account. Config verifies the
3401          * existence of role with <code>GetRole</code> action.</p> <p>To use this API with
3402          * delegated administrator, register a delegated administrator by calling Amazon
3403          * Web Services Organization <code>register-delegated-administrator</code> for
3404          * <code>config-multiaccountsetup.amazonaws.com</code>. </p> <p>You can use this
3405          * action to create both custom Config rules and Config managed rules. If you are
3406          * adding a new custom Config rule, you must first create Lambda function in the
3407          * master account or a delegated administrator that the rule invokes to evaluate
3408          * your resources. You also need to create an IAM role in the managed-account that
3409          * can be assumed by the Lambda function. When you use the
3410          * <code>PutOrganizationConfigRule</code> action to add the rule to Config, you
3411          * must specify the Amazon Resource Name (ARN) that Lambda assigns to the function.
3412          * If you are adding an Config managed rule, specify the rule's identifier for the
3413          * <code>RuleIdentifier</code> key.</p> <p>The maximum number of organization
3414          * config rules that Config supports is 150 and 3 delegated administrator per
3415          * organization. </p>  <p>Prerequisite: Ensure you call
3416          * <code>EnableAllFeatures</code> API to enable all features in an
3417          * organization.</p> <p>Specify either <code>OrganizationCustomRuleMetadata</code>
3418          * or <code>OrganizationManagedRuleMetadata</code>.</p> <p><h3>See
3419          * Also:</h3>   <a
3420          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutOrganizationConfigRule">AWS
3421          * API Reference</a></p>
3422          *
3423          * returns a future to the operation so that it can be executed in parallel to other requests.
3424          */
3425         virtual Model::PutOrganizationConfigRuleOutcomeCallable PutOrganizationConfigRuleCallable(const Model::PutOrganizationConfigRuleRequest& request) const;
3426 
3427         /**
3428          * <p>Adds or updates organization config rule for your entire organization
3429          * evaluating whether your Amazon Web Services resources comply with your desired
3430          * configurations.</p> <p> Only a master account and a delegated administrator can
3431          * create or update an organization config rule. When calling this API with a
3432          * delegated administrator, you must ensure Organizations
3433          * <code>ListDelegatedAdministrator</code> permissions are added. </p> <p>This API
3434          * enables organization service access through the
3435          * <code>EnableAWSServiceAccess</code> action and creates a service linked role
3436          * <code>AWSServiceRoleForConfigMultiAccountSetup</code> in the master or delegated
3437          * administrator account of your organization. The service linked role is created
3438          * only when the role does not exist in the caller account. Config verifies the
3439          * existence of role with <code>GetRole</code> action.</p> <p>To use this API with
3440          * delegated administrator, register a delegated administrator by calling Amazon
3441          * Web Services Organization <code>register-delegated-administrator</code> for
3442          * <code>config-multiaccountsetup.amazonaws.com</code>. </p> <p>You can use this
3443          * action to create both custom Config rules and Config managed rules. If you are
3444          * adding a new custom Config rule, you must first create Lambda function in the
3445          * master account or a delegated administrator that the rule invokes to evaluate
3446          * your resources. You also need to create an IAM role in the managed-account that
3447          * can be assumed by the Lambda function. When you use the
3448          * <code>PutOrganizationConfigRule</code> action to add the rule to Config, you
3449          * must specify the Amazon Resource Name (ARN) that Lambda assigns to the function.
3450          * If you are adding an Config managed rule, specify the rule's identifier for the
3451          * <code>RuleIdentifier</code> key.</p> <p>The maximum number of organization
3452          * config rules that Config supports is 150 and 3 delegated administrator per
3453          * organization. </p>  <p>Prerequisite: Ensure you call
3454          * <code>EnableAllFeatures</code> API to enable all features in an
3455          * organization.</p> <p>Specify either <code>OrganizationCustomRuleMetadata</code>
3456          * or <code>OrganizationManagedRuleMetadata</code>.</p> <p><h3>See
3457          * Also:</h3>   <a
3458          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutOrganizationConfigRule">AWS
3459          * API Reference</a></p>
3460          *
3461          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3462          */
3463         virtual void PutOrganizationConfigRuleAsync(const Model::PutOrganizationConfigRuleRequest& request, const PutOrganizationConfigRuleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3464 
3465         /**
3466          * <p>Deploys conformance packs across member accounts in an Amazon Web Services
3467          * Organization.</p> <p>Only a master account and a delegated administrator can
3468          * call this API. When calling this API with a delegated administrator, you must
3469          * ensure Organizations <code>ListDelegatedAdministrator</code> permissions are
3470          * added.</p> <p>This API enables organization service access for
3471          * <code>config-multiaccountsetup.amazonaws.com</code> through the
3472          * <code>EnableAWSServiceAccess</code> action and creates a service linked role
3473          * <code>AWSServiceRoleForConfigMultiAccountSetup</code> in the master or delegated
3474          * administrator account of your organization. The service linked role is created
3475          * only when the role does not exist in the caller account. To use this API with
3476          * delegated administrator, register a delegated administrator by calling Amazon
3477          * Web Services Organization <code>register-delegate-admin</code> for
3478          * <code>config-multiaccountsetup.amazonaws.com</code>.</p>  <p>Prerequisite:
3479          * Ensure you call <code>EnableAllFeatures</code> API to enable all features in an
3480          * organization.</p> <p>You must specify either the <code>TemplateS3Uri</code> or
3481          * the <code>TemplateBody</code> parameter, but not both. If you provide both
3482          * Config uses the <code>TemplateS3Uri</code> parameter and ignores the
3483          * <code>TemplateBody</code> parameter.</p> <p>Config sets the state of a
3484          * conformance pack to CREATE_IN_PROGRESS and UPDATE_IN_PROGRESS until the
3485          * conformance pack is created or updated. You cannot update a conformance pack
3486          * while it is in this state.</p> <p>You can create 50 conformance packs with 25
3487          * Config rules in each pack and 3 delegated administrator per organization. </p>
3488          * <p><h3>See Also:</h3>   <a
3489          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutOrganizationConformancePack">AWS
3490          * API Reference</a></p>
3491          */
3492         virtual Model::PutOrganizationConformancePackOutcome PutOrganizationConformancePack(const Model::PutOrganizationConformancePackRequest& request) const;
3493 
3494         /**
3495          * <p>Deploys conformance packs across member accounts in an Amazon Web Services
3496          * Organization.</p> <p>Only a master account and a delegated administrator can
3497          * call this API. When calling this API with a delegated administrator, you must
3498          * ensure Organizations <code>ListDelegatedAdministrator</code> permissions are
3499          * added.</p> <p>This API enables organization service access for
3500          * <code>config-multiaccountsetup.amazonaws.com</code> through the
3501          * <code>EnableAWSServiceAccess</code> action and creates a service linked role
3502          * <code>AWSServiceRoleForConfigMultiAccountSetup</code> in the master or delegated
3503          * administrator account of your organization. The service linked role is created
3504          * only when the role does not exist in the caller account. To use this API with
3505          * delegated administrator, register a delegated administrator by calling Amazon
3506          * Web Services Organization <code>register-delegate-admin</code> for
3507          * <code>config-multiaccountsetup.amazonaws.com</code>.</p>  <p>Prerequisite:
3508          * Ensure you call <code>EnableAllFeatures</code> API to enable all features in an
3509          * organization.</p> <p>You must specify either the <code>TemplateS3Uri</code> or
3510          * the <code>TemplateBody</code> parameter, but not both. If you provide both
3511          * Config uses the <code>TemplateS3Uri</code> parameter and ignores the
3512          * <code>TemplateBody</code> parameter.</p> <p>Config sets the state of a
3513          * conformance pack to CREATE_IN_PROGRESS and UPDATE_IN_PROGRESS until the
3514          * conformance pack is created or updated. You cannot update a conformance pack
3515          * while it is in this state.</p> <p>You can create 50 conformance packs with 25
3516          * Config rules in each pack and 3 delegated administrator per organization. </p>
3517          * <p><h3>See Also:</h3>   <a
3518          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutOrganizationConformancePack">AWS
3519          * API Reference</a></p>
3520          *
3521          * returns a future to the operation so that it can be executed in parallel to other requests.
3522          */
3523         virtual Model::PutOrganizationConformancePackOutcomeCallable PutOrganizationConformancePackCallable(const Model::PutOrganizationConformancePackRequest& request) const;
3524 
3525         /**
3526          * <p>Deploys conformance packs across member accounts in an Amazon Web Services
3527          * Organization.</p> <p>Only a master account and a delegated administrator can
3528          * call this API. When calling this API with a delegated administrator, you must
3529          * ensure Organizations <code>ListDelegatedAdministrator</code> permissions are
3530          * added.</p> <p>This API enables organization service access for
3531          * <code>config-multiaccountsetup.amazonaws.com</code> through the
3532          * <code>EnableAWSServiceAccess</code> action and creates a service linked role
3533          * <code>AWSServiceRoleForConfigMultiAccountSetup</code> in the master or delegated
3534          * administrator account of your organization. The service linked role is created
3535          * only when the role does not exist in the caller account. To use this API with
3536          * delegated administrator, register a delegated administrator by calling Amazon
3537          * Web Services Organization <code>register-delegate-admin</code> for
3538          * <code>config-multiaccountsetup.amazonaws.com</code>.</p>  <p>Prerequisite:
3539          * Ensure you call <code>EnableAllFeatures</code> API to enable all features in an
3540          * organization.</p> <p>You must specify either the <code>TemplateS3Uri</code> or
3541          * the <code>TemplateBody</code> parameter, but not both. If you provide both
3542          * Config uses the <code>TemplateS3Uri</code> parameter and ignores the
3543          * <code>TemplateBody</code> parameter.</p> <p>Config sets the state of a
3544          * conformance pack to CREATE_IN_PROGRESS and UPDATE_IN_PROGRESS until the
3545          * conformance pack is created or updated. You cannot update a conformance pack
3546          * while it is in this state.</p> <p>You can create 50 conformance packs with 25
3547          * Config rules in each pack and 3 delegated administrator per organization. </p>
3548          * <p><h3>See Also:</h3>   <a
3549          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutOrganizationConformancePack">AWS
3550          * API Reference</a></p>
3551          *
3552          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3553          */
3554         virtual void PutOrganizationConformancePackAsync(const Model::PutOrganizationConformancePackRequest& request, const PutOrganizationConformancePackResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3555 
3556         /**
3557          * <p>Adds or updates the remediation configuration with a specific Config rule
3558          * with the selected target or action. The API creates the
3559          * <code>RemediationConfiguration</code> object for the Config rule. The Config
3560          * rule must already exist for you to add a remediation configuration. The target
3561          * (SSM document) must exist and have permissions to use the target. </p>
3562          * <p>If you make backward incompatible changes to the SSM document, you must call
3563          * this again to ensure the remediations can run.</p> <p>This API does not support
3564          * adding remediation configurations for service-linked Config Rules such as
3565          * Organization Config rules, the rules deployed by conformance packs, and rules
3566          * deployed by Amazon Web Services Security Hub.</p> <p><h3>See Also:</h3>
3567          * <a
3568          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutRemediationConfigurations">AWS
3569          * API Reference</a></p>
3570          */
3571         virtual Model::PutRemediationConfigurationsOutcome PutRemediationConfigurations(const Model::PutRemediationConfigurationsRequest& request) const;
3572 
3573         /**
3574          * <p>Adds or updates the remediation configuration with a specific Config rule
3575          * with the selected target or action. The API creates the
3576          * <code>RemediationConfiguration</code> object for the Config rule. The Config
3577          * rule must already exist for you to add a remediation configuration. The target
3578          * (SSM document) must exist and have permissions to use the target. </p>
3579          * <p>If you make backward incompatible changes to the SSM document, you must call
3580          * this again to ensure the remediations can run.</p> <p>This API does not support
3581          * adding remediation configurations for service-linked Config Rules such as
3582          * Organization Config rules, the rules deployed by conformance packs, and rules
3583          * deployed by Amazon Web Services Security Hub.</p> <p><h3>See Also:</h3>
3584          * <a
3585          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutRemediationConfigurations">AWS
3586          * API Reference</a></p>
3587          *
3588          * returns a future to the operation so that it can be executed in parallel to other requests.
3589          */
3590         virtual Model::PutRemediationConfigurationsOutcomeCallable PutRemediationConfigurationsCallable(const Model::PutRemediationConfigurationsRequest& request) const;
3591 
3592         /**
3593          * <p>Adds or updates the remediation configuration with a specific Config rule
3594          * with the selected target or action. The API creates the
3595          * <code>RemediationConfiguration</code> object for the Config rule. The Config
3596          * rule must already exist for you to add a remediation configuration. The target
3597          * (SSM document) must exist and have permissions to use the target. </p>
3598          * <p>If you make backward incompatible changes to the SSM document, you must call
3599          * this again to ensure the remediations can run.</p> <p>This API does not support
3600          * adding remediation configurations for service-linked Config Rules such as
3601          * Organization Config rules, the rules deployed by conformance packs, and rules
3602          * deployed by Amazon Web Services Security Hub.</p> <p><h3>See Also:</h3>
3603          * <a
3604          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutRemediationConfigurations">AWS
3605          * API Reference</a></p>
3606          *
3607          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3608          */
3609         virtual void PutRemediationConfigurationsAsync(const Model::PutRemediationConfigurationsRequest& request, const PutRemediationConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3610 
3611         /**
3612          * <p>A remediation exception is when a specific resource is no longer considered
3613          * for auto-remediation. This API adds a new exception or updates an existing
3614          * exception for a specific resource with a specific Config rule. </p>
3615          * <p>Config generates a remediation exception when a problem occurs executing a
3616          * remediation action to a specific resource. Remediation exceptions blocks
3617          * auto-remediation until the exception is cleared.</p> <p><h3>See
3618          * Also:</h3>   <a
3619          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutRemediationExceptions">AWS
3620          * API Reference</a></p>
3621          */
3622         virtual Model::PutRemediationExceptionsOutcome PutRemediationExceptions(const Model::PutRemediationExceptionsRequest& request) const;
3623 
3624         /**
3625          * <p>A remediation exception is when a specific resource is no longer considered
3626          * for auto-remediation. This API adds a new exception or updates an existing
3627          * exception for a specific resource with a specific Config rule. </p>
3628          * <p>Config generates a remediation exception when a problem occurs executing a
3629          * remediation action to a specific resource. Remediation exceptions blocks
3630          * auto-remediation until the exception is cleared.</p> <p><h3>See
3631          * Also:</h3>   <a
3632          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutRemediationExceptions">AWS
3633          * API Reference</a></p>
3634          *
3635          * returns a future to the operation so that it can be executed in parallel to other requests.
3636          */
3637         virtual Model::PutRemediationExceptionsOutcomeCallable PutRemediationExceptionsCallable(const Model::PutRemediationExceptionsRequest& request) const;
3638 
3639         /**
3640          * <p>A remediation exception is when a specific resource is no longer considered
3641          * for auto-remediation. This API adds a new exception or updates an existing
3642          * exception for a specific resource with a specific Config rule. </p>
3643          * <p>Config generates a remediation exception when a problem occurs executing a
3644          * remediation action to a specific resource. Remediation exceptions blocks
3645          * auto-remediation until the exception is cleared.</p> <p><h3>See
3646          * Also:</h3>   <a
3647          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutRemediationExceptions">AWS
3648          * API Reference</a></p>
3649          *
3650          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3651          */
3652         virtual void PutRemediationExceptionsAsync(const Model::PutRemediationExceptionsRequest& request, const PutRemediationExceptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3653 
3654         /**
3655          * <p>Records the configuration state for the resource provided in the request. The
3656          * configuration state of a resource is represented in Config as Configuration
3657          * Items. Once this API records the configuration item, you can retrieve the list
3658          * of configuration items for the custom resource type using existing Config APIs.
3659          * </p>  <p>The custom resource type must be registered with CloudFormation.
3660          * This API accepts the configuration item registered with CloudFormation.</p>
3661          * <p>When you call this API, Config only stores configuration state of the
3662          * resource provided in the request. This API does not change or remediate the
3663          * configuration of the resource. </p> <p>Write-only schema properites are not
3664          * recorded as part of the published configuration item.</p> <p><h3>See
3665          * Also:</h3>   <a
3666          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutResourceConfig">AWS
3667          * API Reference</a></p>
3668          */
3669         virtual Model::PutResourceConfigOutcome PutResourceConfig(const Model::PutResourceConfigRequest& request) const;
3670 
3671         /**
3672          * <p>Records the configuration state for the resource provided in the request. The
3673          * configuration state of a resource is represented in Config as Configuration
3674          * Items. Once this API records the configuration item, you can retrieve the list
3675          * of configuration items for the custom resource type using existing Config APIs.
3676          * </p>  <p>The custom resource type must be registered with CloudFormation.
3677          * This API accepts the configuration item registered with CloudFormation.</p>
3678          * <p>When you call this API, Config only stores configuration state of the
3679          * resource provided in the request. This API does not change or remediate the
3680          * configuration of the resource. </p> <p>Write-only schema properites are not
3681          * recorded as part of the published configuration item.</p> <p><h3>See
3682          * Also:</h3>   <a
3683          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutResourceConfig">AWS
3684          * API Reference</a></p>
3685          *
3686          * returns a future to the operation so that it can be executed in parallel to other requests.
3687          */
3688         virtual Model::PutResourceConfigOutcomeCallable PutResourceConfigCallable(const Model::PutResourceConfigRequest& request) const;
3689 
3690         /**
3691          * <p>Records the configuration state for the resource provided in the request. The
3692          * configuration state of a resource is represented in Config as Configuration
3693          * Items. Once this API records the configuration item, you can retrieve the list
3694          * of configuration items for the custom resource type using existing Config APIs.
3695          * </p>  <p>The custom resource type must be registered with CloudFormation.
3696          * This API accepts the configuration item registered with CloudFormation.</p>
3697          * <p>When you call this API, Config only stores configuration state of the
3698          * resource provided in the request. This API does not change or remediate the
3699          * configuration of the resource. </p> <p>Write-only schema properites are not
3700          * recorded as part of the published configuration item.</p> <p><h3>See
3701          * Also:</h3>   <a
3702          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutResourceConfig">AWS
3703          * API Reference</a></p>
3704          *
3705          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3706          */
3707         virtual void PutResourceConfigAsync(const Model::PutResourceConfigRequest& request, const PutResourceConfigResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3708 
3709         /**
3710          * <p>Creates and updates the retention configuration with details about retention
3711          * period (number of days) that Config stores your historical information. The API
3712          * creates the <code>RetentionConfiguration</code> object and names the object as
3713          * <b>default</b>. When you have a <code>RetentionConfiguration</code> object named
3714          * <b>default</b>, calling the API modifies the default object. </p>
3715          * <p>Currently, Config supports only one retention configuration per region in
3716          * your account.</p> <p><h3>See Also:</h3>   <a
3717          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutRetentionConfiguration">AWS
3718          * API Reference</a></p>
3719          */
3720         virtual Model::PutRetentionConfigurationOutcome PutRetentionConfiguration(const Model::PutRetentionConfigurationRequest& request) const;
3721 
3722         /**
3723          * <p>Creates and updates the retention configuration with details about retention
3724          * period (number of days) that Config stores your historical information. The API
3725          * creates the <code>RetentionConfiguration</code> object and names the object as
3726          * <b>default</b>. When you have a <code>RetentionConfiguration</code> object named
3727          * <b>default</b>, calling the API modifies the default object. </p>
3728          * <p>Currently, Config supports only one retention configuration per region in
3729          * your account.</p> <p><h3>See Also:</h3>   <a
3730          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutRetentionConfiguration">AWS
3731          * API Reference</a></p>
3732          *
3733          * returns a future to the operation so that it can be executed in parallel to other requests.
3734          */
3735         virtual Model::PutRetentionConfigurationOutcomeCallable PutRetentionConfigurationCallable(const Model::PutRetentionConfigurationRequest& request) const;
3736 
3737         /**
3738          * <p>Creates and updates the retention configuration with details about retention
3739          * period (number of days) that Config stores your historical information. The API
3740          * creates the <code>RetentionConfiguration</code> object and names the object as
3741          * <b>default</b>. When you have a <code>RetentionConfiguration</code> object named
3742          * <b>default</b>, calling the API modifies the default object. </p>
3743          * <p>Currently, Config supports only one retention configuration per region in
3744          * your account.</p> <p><h3>See Also:</h3>   <a
3745          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutRetentionConfiguration">AWS
3746          * API Reference</a></p>
3747          *
3748          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3749          */
3750         virtual void PutRetentionConfigurationAsync(const Model::PutRetentionConfigurationRequest& request, const PutRetentionConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3751 
3752         /**
3753          * <p>Saves a new query or updates an existing saved query. The
3754          * <code>QueryName</code> must be unique for a single Amazon Web Services account
3755          * and a single Amazon Web Services Region. You can create upto 300 queries in a
3756          * single Amazon Web Services account and a single Amazon Web Services
3757          * Region.</p><p><h3>See Also:</h3>   <a
3758          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutStoredQuery">AWS
3759          * API Reference</a></p>
3760          */
3761         virtual Model::PutStoredQueryOutcome PutStoredQuery(const Model::PutStoredQueryRequest& request) const;
3762 
3763         /**
3764          * <p>Saves a new query or updates an existing saved query. The
3765          * <code>QueryName</code> must be unique for a single Amazon Web Services account
3766          * and a single Amazon Web Services Region. You can create upto 300 queries in a
3767          * single Amazon Web Services account and a single Amazon Web Services
3768          * Region.</p><p><h3>See Also:</h3>   <a
3769          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutStoredQuery">AWS
3770          * API Reference</a></p>
3771          *
3772          * returns a future to the operation so that it can be executed in parallel to other requests.
3773          */
3774         virtual Model::PutStoredQueryOutcomeCallable PutStoredQueryCallable(const Model::PutStoredQueryRequest& request) const;
3775 
3776         /**
3777          * <p>Saves a new query or updates an existing saved query. The
3778          * <code>QueryName</code> must be unique for a single Amazon Web Services account
3779          * and a single Amazon Web Services Region. You can create upto 300 queries in a
3780          * single Amazon Web Services account and a single Amazon Web Services
3781          * Region.</p><p><h3>See Also:</h3>   <a
3782          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/PutStoredQuery">AWS
3783          * API Reference</a></p>
3784          *
3785          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3786          */
3787         virtual void PutStoredQueryAsync(const Model::PutStoredQueryRequest& request, const PutStoredQueryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3788 
3789         /**
3790          * <p>Accepts a structured query language (SQL) SELECT command and an aggregator to
3791          * query configuration state of Amazon Web Services resources across multiple
3792          * accounts and regions, performs the corresponding search, and returns resource
3793          * configurations matching the properties.</p> <p>For more information about query
3794          * components, see the <a
3795          * href="https://docs.aws.amazon.com/config/latest/developerguide/query-components.html">
3796          * <b>Query Components</b> </a> section in the Config Developer Guide.</p>
3797          * <p>If you run an aggregation query (i.e., using <code>GROUP BY</code> or using
3798          * aggregate functions such as <code>COUNT</code>; e.g., <code>SELECT resourceId,
3799          * COUNT(*) WHERE resourceType = 'AWS::IAM::Role' GROUP BY resourceId</code>) and
3800          * do not specify the <code>MaxResults</code> or the <code>Limit</code> query
3801          * parameters, the default page size is set to 500.</p> <p>If you run a
3802          * non-aggregation query (i.e., not using <code>GROUP BY</code> or aggregate
3803          * function; e.g., <code>SELECT * WHERE resourceType = 'AWS::IAM::Role'</code>) and
3804          * do not specify the <code>MaxResults</code> or the <code>Limit</code> query
3805          * parameters, the default page size is set to 25.</p> <p><h3>See Also:</h3>
3806          * <a
3807          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/SelectAggregateResourceConfig">AWS
3808          * API Reference</a></p>
3809          */
3810         virtual Model::SelectAggregateResourceConfigOutcome SelectAggregateResourceConfig(const Model::SelectAggregateResourceConfigRequest& request) const;
3811 
3812         /**
3813          * <p>Accepts a structured query language (SQL) SELECT command and an aggregator to
3814          * query configuration state of Amazon Web Services resources across multiple
3815          * accounts and regions, performs the corresponding search, and returns resource
3816          * configurations matching the properties.</p> <p>For more information about query
3817          * components, see the <a
3818          * href="https://docs.aws.amazon.com/config/latest/developerguide/query-components.html">
3819          * <b>Query Components</b> </a> section in the Config Developer Guide.</p>
3820          * <p>If you run an aggregation query (i.e., using <code>GROUP BY</code> or using
3821          * aggregate functions such as <code>COUNT</code>; e.g., <code>SELECT resourceId,
3822          * COUNT(*) WHERE resourceType = 'AWS::IAM::Role' GROUP BY resourceId</code>) and
3823          * do not specify the <code>MaxResults</code> or the <code>Limit</code> query
3824          * parameters, the default page size is set to 500.</p> <p>If you run a
3825          * non-aggregation query (i.e., not using <code>GROUP BY</code> or aggregate
3826          * function; e.g., <code>SELECT * WHERE resourceType = 'AWS::IAM::Role'</code>) and
3827          * do not specify the <code>MaxResults</code> or the <code>Limit</code> query
3828          * parameters, the default page size is set to 25.</p> <p><h3>See Also:</h3>
3829          * <a
3830          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/SelectAggregateResourceConfig">AWS
3831          * API Reference</a></p>
3832          *
3833          * returns a future to the operation so that it can be executed in parallel to other requests.
3834          */
3835         virtual Model::SelectAggregateResourceConfigOutcomeCallable SelectAggregateResourceConfigCallable(const Model::SelectAggregateResourceConfigRequest& request) const;
3836 
3837         /**
3838          * <p>Accepts a structured query language (SQL) SELECT command and an aggregator to
3839          * query configuration state of Amazon Web Services resources across multiple
3840          * accounts and regions, performs the corresponding search, and returns resource
3841          * configurations matching the properties.</p> <p>For more information about query
3842          * components, see the <a
3843          * href="https://docs.aws.amazon.com/config/latest/developerguide/query-components.html">
3844          * <b>Query Components</b> </a> section in the Config Developer Guide.</p>
3845          * <p>If you run an aggregation query (i.e., using <code>GROUP BY</code> or using
3846          * aggregate functions such as <code>COUNT</code>; e.g., <code>SELECT resourceId,
3847          * COUNT(*) WHERE resourceType = 'AWS::IAM::Role' GROUP BY resourceId</code>) and
3848          * do not specify the <code>MaxResults</code> or the <code>Limit</code> query
3849          * parameters, the default page size is set to 500.</p> <p>If you run a
3850          * non-aggregation query (i.e., not using <code>GROUP BY</code> or aggregate
3851          * function; e.g., <code>SELECT * WHERE resourceType = 'AWS::IAM::Role'</code>) and
3852          * do not specify the <code>MaxResults</code> or the <code>Limit</code> query
3853          * parameters, the default page size is set to 25.</p> <p><h3>See Also:</h3>
3854          * <a
3855          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/SelectAggregateResourceConfig">AWS
3856          * API Reference</a></p>
3857          *
3858          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3859          */
3860         virtual void SelectAggregateResourceConfigAsync(const Model::SelectAggregateResourceConfigRequest& request, const SelectAggregateResourceConfigResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3861 
3862         /**
3863          * <p>Accepts a structured query language (SQL) <code>SELECT</code> command,
3864          * performs the corresponding search, and returns resource configurations matching
3865          * the properties.</p> <p>For more information about query components, see the <a
3866          * href="https://docs.aws.amazon.com/config/latest/developerguide/query-components.html">
3867          * <b>Query Components</b> </a> section in the Config Developer
3868          * Guide.</p><p><h3>See Also:</h3>   <a
3869          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/SelectResourceConfig">AWS
3870          * API Reference</a></p>
3871          */
3872         virtual Model::SelectResourceConfigOutcome SelectResourceConfig(const Model::SelectResourceConfigRequest& request) const;
3873 
3874         /**
3875          * <p>Accepts a structured query language (SQL) <code>SELECT</code> command,
3876          * performs the corresponding search, and returns resource configurations matching
3877          * the properties.</p> <p>For more information about query components, see the <a
3878          * href="https://docs.aws.amazon.com/config/latest/developerguide/query-components.html">
3879          * <b>Query Components</b> </a> section in the Config Developer
3880          * Guide.</p><p><h3>See Also:</h3>   <a
3881          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/SelectResourceConfig">AWS
3882          * API Reference</a></p>
3883          *
3884          * returns a future to the operation so that it can be executed in parallel to other requests.
3885          */
3886         virtual Model::SelectResourceConfigOutcomeCallable SelectResourceConfigCallable(const Model::SelectResourceConfigRequest& request) const;
3887 
3888         /**
3889          * <p>Accepts a structured query language (SQL) <code>SELECT</code> command,
3890          * performs the corresponding search, and returns resource configurations matching
3891          * the properties.</p> <p>For more information about query components, see the <a
3892          * href="https://docs.aws.amazon.com/config/latest/developerguide/query-components.html">
3893          * <b>Query Components</b> </a> section in the Config Developer
3894          * Guide.</p><p><h3>See Also:</h3>   <a
3895          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/SelectResourceConfig">AWS
3896          * API Reference</a></p>
3897          *
3898          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3899          */
3900         virtual void SelectResourceConfigAsync(const Model::SelectResourceConfigRequest& request, const SelectResourceConfigResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3901 
3902         /**
3903          * <p>Runs an on-demand evaluation for the specified Config rules against the last
3904          * known configuration state of the resources. Use
3905          * <code>StartConfigRulesEvaluation</code> when you want to test that a rule you
3906          * updated is working as expected. <code>StartConfigRulesEvaluation</code> does not
3907          * re-record the latest configuration state for your resources. It re-runs an
3908          * evaluation against the last known state of your resources. </p> <p>You can
3909          * specify up to 25 Config rules per request. </p> <p>An existing
3910          * <code>StartConfigRulesEvaluation</code> call for the specified rules must
3911          * complete before you can call the API again. If you chose to have Config stream
3912          * to an Amazon SNS topic, you will receive a
3913          * <code>ConfigRuleEvaluationStarted</code> notification when the evaluation
3914          * starts.</p>  <p>You don't need to call the
3915          * <code>StartConfigRulesEvaluation</code> API to run an evaluation for a new rule.
3916          * When you create a rule, Config evaluates your resources against the rule
3917          * automatically. </p>  <p>The <code>StartConfigRulesEvaluation</code> API
3918          * is useful if you want to run on-demand evaluations, such as the following
3919          * example:</p> <ol> <li> <p>You have a custom rule that evaluates your IAM
3920          * resources every 24 hours.</p> </li> <li> <p>You update your Lambda function to
3921          * add additional conditions to your rule.</p> </li> <li> <p>Instead of waiting for
3922          * the next periodic evaluation, you call the
3923          * <code>StartConfigRulesEvaluation</code> API.</p> </li> <li> <p>Config invokes
3924          * your Lambda function and evaluates your IAM resources.</p> </li> <li> <p>Your
3925          * custom rule will still run periodic evaluations every 24 hours.</p> </li>
3926          * </ol><p><h3>See Also:</h3>   <a
3927          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/StartConfigRulesEvaluation">AWS
3928          * API Reference</a></p>
3929          */
3930         virtual Model::StartConfigRulesEvaluationOutcome StartConfigRulesEvaluation(const Model::StartConfigRulesEvaluationRequest& request) const;
3931 
3932         /**
3933          * <p>Runs an on-demand evaluation for the specified Config rules against the last
3934          * known configuration state of the resources. Use
3935          * <code>StartConfigRulesEvaluation</code> when you want to test that a rule you
3936          * updated is working as expected. <code>StartConfigRulesEvaluation</code> does not
3937          * re-record the latest configuration state for your resources. It re-runs an
3938          * evaluation against the last known state of your resources. </p> <p>You can
3939          * specify up to 25 Config rules per request. </p> <p>An existing
3940          * <code>StartConfigRulesEvaluation</code> call for the specified rules must
3941          * complete before you can call the API again. If you chose to have Config stream
3942          * to an Amazon SNS topic, you will receive a
3943          * <code>ConfigRuleEvaluationStarted</code> notification when the evaluation
3944          * starts.</p>  <p>You don't need to call the
3945          * <code>StartConfigRulesEvaluation</code> API to run an evaluation for a new rule.
3946          * When you create a rule, Config evaluates your resources against the rule
3947          * automatically. </p>  <p>The <code>StartConfigRulesEvaluation</code> API
3948          * is useful if you want to run on-demand evaluations, such as the following
3949          * example:</p> <ol> <li> <p>You have a custom rule that evaluates your IAM
3950          * resources every 24 hours.</p> </li> <li> <p>You update your Lambda function to
3951          * add additional conditions to your rule.</p> </li> <li> <p>Instead of waiting for
3952          * the next periodic evaluation, you call the
3953          * <code>StartConfigRulesEvaluation</code> API.</p> </li> <li> <p>Config invokes
3954          * your Lambda function and evaluates your IAM resources.</p> </li> <li> <p>Your
3955          * custom rule will still run periodic evaluations every 24 hours.</p> </li>
3956          * </ol><p><h3>See Also:</h3>   <a
3957          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/StartConfigRulesEvaluation">AWS
3958          * API Reference</a></p>
3959          *
3960          * returns a future to the operation so that it can be executed in parallel to other requests.
3961          */
3962         virtual Model::StartConfigRulesEvaluationOutcomeCallable StartConfigRulesEvaluationCallable(const Model::StartConfigRulesEvaluationRequest& request) const;
3963 
3964         /**
3965          * <p>Runs an on-demand evaluation for the specified Config rules against the last
3966          * known configuration state of the resources. Use
3967          * <code>StartConfigRulesEvaluation</code> when you want to test that a rule you
3968          * updated is working as expected. <code>StartConfigRulesEvaluation</code> does not
3969          * re-record the latest configuration state for your resources. It re-runs an
3970          * evaluation against the last known state of your resources. </p> <p>You can
3971          * specify up to 25 Config rules per request. </p> <p>An existing
3972          * <code>StartConfigRulesEvaluation</code> call for the specified rules must
3973          * complete before you can call the API again. If you chose to have Config stream
3974          * to an Amazon SNS topic, you will receive a
3975          * <code>ConfigRuleEvaluationStarted</code> notification when the evaluation
3976          * starts.</p>  <p>You don't need to call the
3977          * <code>StartConfigRulesEvaluation</code> API to run an evaluation for a new rule.
3978          * When you create a rule, Config evaluates your resources against the rule
3979          * automatically. </p>  <p>The <code>StartConfigRulesEvaluation</code> API
3980          * is useful if you want to run on-demand evaluations, such as the following
3981          * example:</p> <ol> <li> <p>You have a custom rule that evaluates your IAM
3982          * resources every 24 hours.</p> </li> <li> <p>You update your Lambda function to
3983          * add additional conditions to your rule.</p> </li> <li> <p>Instead of waiting for
3984          * the next periodic evaluation, you call the
3985          * <code>StartConfigRulesEvaluation</code> API.</p> </li> <li> <p>Config invokes
3986          * your Lambda function and evaluates your IAM resources.</p> </li> <li> <p>Your
3987          * custom rule will still run periodic evaluations every 24 hours.</p> </li>
3988          * </ol><p><h3>See Also:</h3>   <a
3989          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/StartConfigRulesEvaluation">AWS
3990          * API Reference</a></p>
3991          *
3992          * Queues the request into a thread executor and triggers associated callback when operation has finished.
3993          */
3994         virtual void StartConfigRulesEvaluationAsync(const Model::StartConfigRulesEvaluationRequest& request, const StartConfigRulesEvaluationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
3995 
3996         /**
3997          * <p>Starts recording configurations of the Amazon Web Services resources you have
3998          * selected to record in your Amazon Web Services account.</p> <p>You must have
3999          * created at least one delivery channel to successfully start the configuration
4000          * recorder.</p><p><h3>See Also:</h3>   <a
4001          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/StartConfigurationRecorder">AWS
4002          * API Reference</a></p>
4003          */
4004         virtual Model::StartConfigurationRecorderOutcome StartConfigurationRecorder(const Model::StartConfigurationRecorderRequest& request) const;
4005 
4006         /**
4007          * <p>Starts recording configurations of the Amazon Web Services resources you have
4008          * selected to record in your Amazon Web Services account.</p> <p>You must have
4009          * created at least one delivery channel to successfully start the configuration
4010          * recorder.</p><p><h3>See Also:</h3>   <a
4011          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/StartConfigurationRecorder">AWS
4012          * API Reference</a></p>
4013          *
4014          * returns a future to the operation so that it can be executed in parallel to other requests.
4015          */
4016         virtual Model::StartConfigurationRecorderOutcomeCallable StartConfigurationRecorderCallable(const Model::StartConfigurationRecorderRequest& request) const;
4017 
4018         /**
4019          * <p>Starts recording configurations of the Amazon Web Services resources you have
4020          * selected to record in your Amazon Web Services account.</p> <p>You must have
4021          * created at least one delivery channel to successfully start the configuration
4022          * recorder.</p><p><h3>See Also:</h3>   <a
4023          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/StartConfigurationRecorder">AWS
4024          * API Reference</a></p>
4025          *
4026          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4027          */
4028         virtual void StartConfigurationRecorderAsync(const Model::StartConfigurationRecorderRequest& request, const StartConfigurationRecorderResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4029 
4030         /**
4031          * <p>Runs an on-demand remediation for the specified Config rules against the last
4032          * known remediation configuration. It runs an execution against the current state
4033          * of your resources. Remediation execution is asynchronous.</p> <p>You can specify
4034          * up to 100 resource keys per request. An existing StartRemediationExecution call
4035          * for the specified resource keys must complete before you can call the API
4036          * again.</p><p><h3>See Also:</h3>   <a
4037          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/StartRemediationExecution">AWS
4038          * API Reference</a></p>
4039          */
4040         virtual Model::StartRemediationExecutionOutcome StartRemediationExecution(const Model::StartRemediationExecutionRequest& request) const;
4041 
4042         /**
4043          * <p>Runs an on-demand remediation for the specified Config rules against the last
4044          * known remediation configuration. It runs an execution against the current state
4045          * of your resources. Remediation execution is asynchronous.</p> <p>You can specify
4046          * up to 100 resource keys per request. An existing StartRemediationExecution call
4047          * for the specified resource keys must complete before you can call the API
4048          * again.</p><p><h3>See Also:</h3>   <a
4049          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/StartRemediationExecution">AWS
4050          * API Reference</a></p>
4051          *
4052          * returns a future to the operation so that it can be executed in parallel to other requests.
4053          */
4054         virtual Model::StartRemediationExecutionOutcomeCallable StartRemediationExecutionCallable(const Model::StartRemediationExecutionRequest& request) const;
4055 
4056         /**
4057          * <p>Runs an on-demand remediation for the specified Config rules against the last
4058          * known remediation configuration. It runs an execution against the current state
4059          * of your resources. Remediation execution is asynchronous.</p> <p>You can specify
4060          * up to 100 resource keys per request. An existing StartRemediationExecution call
4061          * for the specified resource keys must complete before you can call the API
4062          * again.</p><p><h3>See Also:</h3>   <a
4063          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/StartRemediationExecution">AWS
4064          * API Reference</a></p>
4065          *
4066          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4067          */
4068         virtual void StartRemediationExecutionAsync(const Model::StartRemediationExecutionRequest& request, const StartRemediationExecutionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4069 
4070         /**
4071          * <p>Stops recording configurations of the Amazon Web Services resources you have
4072          * selected to record in your Amazon Web Services account.</p><p><h3>See Also:</h3>
4073          * <a
4074          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/StopConfigurationRecorder">AWS
4075          * API Reference</a></p>
4076          */
4077         virtual Model::StopConfigurationRecorderOutcome StopConfigurationRecorder(const Model::StopConfigurationRecorderRequest& request) const;
4078 
4079         /**
4080          * <p>Stops recording configurations of the Amazon Web Services resources you have
4081          * selected to record in your Amazon Web Services account.</p><p><h3>See Also:</h3>
4082          * <a
4083          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/StopConfigurationRecorder">AWS
4084          * API Reference</a></p>
4085          *
4086          * returns a future to the operation so that it can be executed in parallel to other requests.
4087          */
4088         virtual Model::StopConfigurationRecorderOutcomeCallable StopConfigurationRecorderCallable(const Model::StopConfigurationRecorderRequest& request) const;
4089 
4090         /**
4091          * <p>Stops recording configurations of the Amazon Web Services resources you have
4092          * selected to record in your Amazon Web Services account.</p><p><h3>See Also:</h3>
4093          * <a
4094          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/StopConfigurationRecorder">AWS
4095          * API Reference</a></p>
4096          *
4097          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4098          */
4099         virtual void StopConfigurationRecorderAsync(const Model::StopConfigurationRecorderRequest& request, const StopConfigurationRecorderResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4100 
4101         /**
4102          * <p>Associates the specified tags to a resource with the specified resourceArn.
4103          * If existing tags on a resource are not specified in the request parameters, they
4104          * are not changed. When a resource is deleted, the tags associated with that
4105          * resource are deleted as well.</p><p><h3>See Also:</h3>   <a
4106          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/TagResource">AWS
4107          * API Reference</a></p>
4108          */
4109         virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const;
4110 
4111         /**
4112          * <p>Associates the specified tags to a resource with the specified resourceArn.
4113          * If existing tags on a resource are not specified in the request parameters, they
4114          * are not changed. When a resource is deleted, the tags associated with that
4115          * resource are deleted as well.</p><p><h3>See Also:</h3>   <a
4116          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/TagResource">AWS
4117          * API Reference</a></p>
4118          *
4119          * returns a future to the operation so that it can be executed in parallel to other requests.
4120          */
4121         virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const;
4122 
4123         /**
4124          * <p>Associates the specified tags to a resource with the specified resourceArn.
4125          * If existing tags on a resource are not specified in the request parameters, they
4126          * are not changed. When a resource is deleted, the tags associated with that
4127          * resource are deleted as well.</p><p><h3>See Also:</h3>   <a
4128          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/TagResource">AWS
4129          * API Reference</a></p>
4130          *
4131          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4132          */
4133         virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4134 
4135         /**
4136          * <p>Deletes specified tags from a resource.</p><p><h3>See Also:</h3>   <a
4137          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/UntagResource">AWS
4138          * API Reference</a></p>
4139          */
4140         virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const;
4141 
4142         /**
4143          * <p>Deletes specified tags from a resource.</p><p><h3>See Also:</h3>   <a
4144          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/UntagResource">AWS
4145          * API Reference</a></p>
4146          *
4147          * returns a future to the operation so that it can be executed in parallel to other requests.
4148          */
4149         virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const;
4150 
4151         /**
4152          * <p>Deletes specified tags from a resource.</p><p><h3>See Also:</h3>   <a
4153          * href="http://docs.aws.amazon.com/goto/WebAPI/config-2014-11-12/UntagResource">AWS
4154          * API Reference</a></p>
4155          *
4156          * Queues the request into a thread executor and triggers associated callback when operation has finished.
4157          */
4158         virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
4159 
4160 
4161       void OverrideEndpoint(const Aws::String& endpoint);
4162     private:
4163       void init(const Aws::Client::ClientConfiguration& clientConfiguration);
4164         void BatchGetAggregateResourceConfigAsyncHelper(const Model::BatchGetAggregateResourceConfigRequest& request, const BatchGetAggregateResourceConfigResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4165         void BatchGetResourceConfigAsyncHelper(const Model::BatchGetResourceConfigRequest& request, const BatchGetResourceConfigResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4166         void DeleteAggregationAuthorizationAsyncHelper(const Model::DeleteAggregationAuthorizationRequest& request, const DeleteAggregationAuthorizationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4167         void DeleteConfigRuleAsyncHelper(const Model::DeleteConfigRuleRequest& request, const DeleteConfigRuleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4168         void DeleteConfigurationAggregatorAsyncHelper(const Model::DeleteConfigurationAggregatorRequest& request, const DeleteConfigurationAggregatorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4169         void DeleteConfigurationRecorderAsyncHelper(const Model::DeleteConfigurationRecorderRequest& request, const DeleteConfigurationRecorderResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4170         void DeleteConformancePackAsyncHelper(const Model::DeleteConformancePackRequest& request, const DeleteConformancePackResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4171         void DeleteDeliveryChannelAsyncHelper(const Model::DeleteDeliveryChannelRequest& request, const DeleteDeliveryChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4172         void DeleteEvaluationResultsAsyncHelper(const Model::DeleteEvaluationResultsRequest& request, const DeleteEvaluationResultsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4173         void DeleteOrganizationConfigRuleAsyncHelper(const Model::DeleteOrganizationConfigRuleRequest& request, const DeleteOrganizationConfigRuleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4174         void DeleteOrganizationConformancePackAsyncHelper(const Model::DeleteOrganizationConformancePackRequest& request, const DeleteOrganizationConformancePackResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4175         void DeletePendingAggregationRequestAsyncHelper(const Model::DeletePendingAggregationRequestRequest& request, const DeletePendingAggregationRequestResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4176         void DeleteRemediationConfigurationAsyncHelper(const Model::DeleteRemediationConfigurationRequest& request, const DeleteRemediationConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4177         void DeleteRemediationExceptionsAsyncHelper(const Model::DeleteRemediationExceptionsRequest& request, const DeleteRemediationExceptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4178         void DeleteResourceConfigAsyncHelper(const Model::DeleteResourceConfigRequest& request, const DeleteResourceConfigResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4179         void DeleteRetentionConfigurationAsyncHelper(const Model::DeleteRetentionConfigurationRequest& request, const DeleteRetentionConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4180         void DeleteStoredQueryAsyncHelper(const Model::DeleteStoredQueryRequest& request, const DeleteStoredQueryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4181         void DeliverConfigSnapshotAsyncHelper(const Model::DeliverConfigSnapshotRequest& request, const DeliverConfigSnapshotResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4182         void DescribeAggregateComplianceByConfigRulesAsyncHelper(const Model::DescribeAggregateComplianceByConfigRulesRequest& request, const DescribeAggregateComplianceByConfigRulesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4183         void DescribeAggregateComplianceByConformancePacksAsyncHelper(const Model::DescribeAggregateComplianceByConformancePacksRequest& request, const DescribeAggregateComplianceByConformancePacksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4184         void DescribeAggregationAuthorizationsAsyncHelper(const Model::DescribeAggregationAuthorizationsRequest& request, const DescribeAggregationAuthorizationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4185         void DescribeComplianceByConfigRuleAsyncHelper(const Model::DescribeComplianceByConfigRuleRequest& request, const DescribeComplianceByConfigRuleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4186         void DescribeComplianceByResourceAsyncHelper(const Model::DescribeComplianceByResourceRequest& request, const DescribeComplianceByResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4187         void DescribeConfigRuleEvaluationStatusAsyncHelper(const Model::DescribeConfigRuleEvaluationStatusRequest& request, const DescribeConfigRuleEvaluationStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4188         void DescribeConfigRulesAsyncHelper(const Model::DescribeConfigRulesRequest& request, const DescribeConfigRulesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4189         void DescribeConfigurationAggregatorSourcesStatusAsyncHelper(const Model::DescribeConfigurationAggregatorSourcesStatusRequest& request, const DescribeConfigurationAggregatorSourcesStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4190         void DescribeConfigurationAggregatorsAsyncHelper(const Model::DescribeConfigurationAggregatorsRequest& request, const DescribeConfigurationAggregatorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4191         void DescribeConfigurationRecorderStatusAsyncHelper(const Model::DescribeConfigurationRecorderStatusRequest& request, const DescribeConfigurationRecorderStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4192         void DescribeConfigurationRecordersAsyncHelper(const Model::DescribeConfigurationRecordersRequest& request, const DescribeConfigurationRecordersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4193         void DescribeConformancePackComplianceAsyncHelper(const Model::DescribeConformancePackComplianceRequest& request, const DescribeConformancePackComplianceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4194         void DescribeConformancePackStatusAsyncHelper(const Model::DescribeConformancePackStatusRequest& request, const DescribeConformancePackStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4195         void DescribeConformancePacksAsyncHelper(const Model::DescribeConformancePacksRequest& request, const DescribeConformancePacksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4196         void DescribeDeliveryChannelStatusAsyncHelper(const Model::DescribeDeliveryChannelStatusRequest& request, const DescribeDeliveryChannelStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4197         void DescribeDeliveryChannelsAsyncHelper(const Model::DescribeDeliveryChannelsRequest& request, const DescribeDeliveryChannelsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4198         void DescribeOrganizationConfigRuleStatusesAsyncHelper(const Model::DescribeOrganizationConfigRuleStatusesRequest& request, const DescribeOrganizationConfigRuleStatusesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4199         void DescribeOrganizationConfigRulesAsyncHelper(const Model::DescribeOrganizationConfigRulesRequest& request, const DescribeOrganizationConfigRulesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4200         void DescribeOrganizationConformancePackStatusesAsyncHelper(const Model::DescribeOrganizationConformancePackStatusesRequest& request, const DescribeOrganizationConformancePackStatusesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4201         void DescribeOrganizationConformancePacksAsyncHelper(const Model::DescribeOrganizationConformancePacksRequest& request, const DescribeOrganizationConformancePacksResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4202         void DescribePendingAggregationRequestsAsyncHelper(const Model::DescribePendingAggregationRequestsRequest& request, const DescribePendingAggregationRequestsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4203         void DescribeRemediationConfigurationsAsyncHelper(const Model::DescribeRemediationConfigurationsRequest& request, const DescribeRemediationConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4204         void DescribeRemediationExceptionsAsyncHelper(const Model::DescribeRemediationExceptionsRequest& request, const DescribeRemediationExceptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4205         void DescribeRemediationExecutionStatusAsyncHelper(const Model::DescribeRemediationExecutionStatusRequest& request, const DescribeRemediationExecutionStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4206         void DescribeRetentionConfigurationsAsyncHelper(const Model::DescribeRetentionConfigurationsRequest& request, const DescribeRetentionConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4207         void GetAggregateComplianceDetailsByConfigRuleAsyncHelper(const Model::GetAggregateComplianceDetailsByConfigRuleRequest& request, const GetAggregateComplianceDetailsByConfigRuleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4208         void GetAggregateConfigRuleComplianceSummaryAsyncHelper(const Model::GetAggregateConfigRuleComplianceSummaryRequest& request, const GetAggregateConfigRuleComplianceSummaryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4209         void GetAggregateConformancePackComplianceSummaryAsyncHelper(const Model::GetAggregateConformancePackComplianceSummaryRequest& request, const GetAggregateConformancePackComplianceSummaryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4210         void GetAggregateDiscoveredResourceCountsAsyncHelper(const Model::GetAggregateDiscoveredResourceCountsRequest& request, const GetAggregateDiscoveredResourceCountsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4211         void GetAggregateResourceConfigAsyncHelper(const Model::GetAggregateResourceConfigRequest& request, const GetAggregateResourceConfigResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4212         void GetComplianceDetailsByConfigRuleAsyncHelper(const Model::GetComplianceDetailsByConfigRuleRequest& request, const GetComplianceDetailsByConfigRuleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4213         void GetComplianceDetailsByResourceAsyncHelper(const Model::GetComplianceDetailsByResourceRequest& request, const GetComplianceDetailsByResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4214         void GetComplianceSummaryByConfigRuleAsyncHelper(const GetComplianceSummaryByConfigRuleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4215         void GetComplianceSummaryByResourceTypeAsyncHelper(const Model::GetComplianceSummaryByResourceTypeRequest& request, const GetComplianceSummaryByResourceTypeResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4216         void GetConformancePackComplianceDetailsAsyncHelper(const Model::GetConformancePackComplianceDetailsRequest& request, const GetConformancePackComplianceDetailsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4217         void GetConformancePackComplianceSummaryAsyncHelper(const Model::GetConformancePackComplianceSummaryRequest& request, const GetConformancePackComplianceSummaryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4218         void GetDiscoveredResourceCountsAsyncHelper(const Model::GetDiscoveredResourceCountsRequest& request, const GetDiscoveredResourceCountsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4219         void GetOrganizationConfigRuleDetailedStatusAsyncHelper(const Model::GetOrganizationConfigRuleDetailedStatusRequest& request, const GetOrganizationConfigRuleDetailedStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4220         void GetOrganizationConformancePackDetailedStatusAsyncHelper(const Model::GetOrganizationConformancePackDetailedStatusRequest& request, const GetOrganizationConformancePackDetailedStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4221         void GetResourceConfigHistoryAsyncHelper(const Model::GetResourceConfigHistoryRequest& request, const GetResourceConfigHistoryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4222         void GetStoredQueryAsyncHelper(const Model::GetStoredQueryRequest& request, const GetStoredQueryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4223         void ListAggregateDiscoveredResourcesAsyncHelper(const Model::ListAggregateDiscoveredResourcesRequest& request, const ListAggregateDiscoveredResourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4224         void ListDiscoveredResourcesAsyncHelper(const Model::ListDiscoveredResourcesRequest& request, const ListDiscoveredResourcesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4225         void ListStoredQueriesAsyncHelper(const Model::ListStoredQueriesRequest& request, const ListStoredQueriesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4226         void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4227         void PutAggregationAuthorizationAsyncHelper(const Model::PutAggregationAuthorizationRequest& request, const PutAggregationAuthorizationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4228         void PutConfigRuleAsyncHelper(const Model::PutConfigRuleRequest& request, const PutConfigRuleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4229         void PutConfigurationAggregatorAsyncHelper(const Model::PutConfigurationAggregatorRequest& request, const PutConfigurationAggregatorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4230         void PutConfigurationRecorderAsyncHelper(const Model::PutConfigurationRecorderRequest& request, const PutConfigurationRecorderResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4231         void PutConformancePackAsyncHelper(const Model::PutConformancePackRequest& request, const PutConformancePackResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4232         void PutDeliveryChannelAsyncHelper(const Model::PutDeliveryChannelRequest& request, const PutDeliveryChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4233         void PutEvaluationsAsyncHelper(const Model::PutEvaluationsRequest& request, const PutEvaluationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4234         void PutExternalEvaluationAsyncHelper(const Model::PutExternalEvaluationRequest& request, const PutExternalEvaluationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4235         void PutOrganizationConfigRuleAsyncHelper(const Model::PutOrganizationConfigRuleRequest& request, const PutOrganizationConfigRuleResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4236         void PutOrganizationConformancePackAsyncHelper(const Model::PutOrganizationConformancePackRequest& request, const PutOrganizationConformancePackResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4237         void PutRemediationConfigurationsAsyncHelper(const Model::PutRemediationConfigurationsRequest& request, const PutRemediationConfigurationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4238         void PutRemediationExceptionsAsyncHelper(const Model::PutRemediationExceptionsRequest& request, const PutRemediationExceptionsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4239         void PutResourceConfigAsyncHelper(const Model::PutResourceConfigRequest& request, const PutResourceConfigResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4240         void PutRetentionConfigurationAsyncHelper(const Model::PutRetentionConfigurationRequest& request, const PutRetentionConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4241         void PutStoredQueryAsyncHelper(const Model::PutStoredQueryRequest& request, const PutStoredQueryResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4242         void SelectAggregateResourceConfigAsyncHelper(const Model::SelectAggregateResourceConfigRequest& request, const SelectAggregateResourceConfigResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4243         void SelectResourceConfigAsyncHelper(const Model::SelectResourceConfigRequest& request, const SelectResourceConfigResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4244         void StartConfigRulesEvaluationAsyncHelper(const Model::StartConfigRulesEvaluationRequest& request, const StartConfigRulesEvaluationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4245         void StartConfigurationRecorderAsyncHelper(const Model::StartConfigurationRecorderRequest& request, const StartConfigurationRecorderResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4246         void StartRemediationExecutionAsyncHelper(const Model::StartRemediationExecutionRequest& request, const StartRemediationExecutionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4247         void StopConfigurationRecorderAsyncHelper(const Model::StopConfigurationRecorderRequest& request, const StopConfigurationRecorderResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4248         void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4249         void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
4250 
4251       Aws::String m_uri;
4252       Aws::String m_configScheme;
4253       std::shared_ptr<Aws::Utils::Threading::Executor> m_executor;
4254   };
4255 
4256 } // namespace ConfigService
4257 } // namespace Aws
4258