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/securityhub/SecurityHub_EXPORTS.h>
8 #include <aws/securityhub/SecurityHubErrors.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/securityhub/model/AcceptAdministratorInvitationResult.h>
15 #include <aws/securityhub/model/BatchDisableStandardsResult.h>
16 #include <aws/securityhub/model/BatchEnableStandardsResult.h>
17 #include <aws/securityhub/model/BatchImportFindingsResult.h>
18 #include <aws/securityhub/model/BatchUpdateFindingsResult.h>
19 #include <aws/securityhub/model/CreateActionTargetResult.h>
20 #include <aws/securityhub/model/CreateFindingAggregatorResult.h>
21 #include <aws/securityhub/model/CreateInsightResult.h>
22 #include <aws/securityhub/model/CreateMembersResult.h>
23 #include <aws/securityhub/model/DeclineInvitationsResult.h>
24 #include <aws/securityhub/model/DeleteActionTargetResult.h>
25 #include <aws/securityhub/model/DeleteFindingAggregatorResult.h>
26 #include <aws/securityhub/model/DeleteInsightResult.h>
27 #include <aws/securityhub/model/DeleteInvitationsResult.h>
28 #include <aws/securityhub/model/DeleteMembersResult.h>
29 #include <aws/securityhub/model/DescribeActionTargetsResult.h>
30 #include <aws/securityhub/model/DescribeHubResult.h>
31 #include <aws/securityhub/model/DescribeOrganizationConfigurationResult.h>
32 #include <aws/securityhub/model/DescribeProductsResult.h>
33 #include <aws/securityhub/model/DescribeStandardsResult.h>
34 #include <aws/securityhub/model/DescribeStandardsControlsResult.h>
35 #include <aws/securityhub/model/DisableImportFindingsForProductResult.h>
36 #include <aws/securityhub/model/DisableOrganizationAdminAccountResult.h>
37 #include <aws/securityhub/model/DisableSecurityHubResult.h>
38 #include <aws/securityhub/model/DisassociateFromAdministratorAccountResult.h>
39 #include <aws/securityhub/model/DisassociateMembersResult.h>
40 #include <aws/securityhub/model/EnableImportFindingsForProductResult.h>
41 #include <aws/securityhub/model/EnableOrganizationAdminAccountResult.h>
42 #include <aws/securityhub/model/EnableSecurityHubResult.h>
43 #include <aws/securityhub/model/GetAdministratorAccountResult.h>
44 #include <aws/securityhub/model/GetEnabledStandardsResult.h>
45 #include <aws/securityhub/model/GetFindingAggregatorResult.h>
46 #include <aws/securityhub/model/GetFindingsResult.h>
47 #include <aws/securityhub/model/GetInsightResultsResult.h>
48 #include <aws/securityhub/model/GetInsightsResult.h>
49 #include <aws/securityhub/model/GetInvitationsCountResult.h>
50 #include <aws/securityhub/model/GetMembersResult.h>
51 #include <aws/securityhub/model/InviteMembersResult.h>
52 #include <aws/securityhub/model/ListEnabledProductsForImportResult.h>
53 #include <aws/securityhub/model/ListFindingAggregatorsResult.h>
54 #include <aws/securityhub/model/ListInvitationsResult.h>
55 #include <aws/securityhub/model/ListMembersResult.h>
56 #include <aws/securityhub/model/ListOrganizationAdminAccountsResult.h>
57 #include <aws/securityhub/model/ListTagsForResourceResult.h>
58 #include <aws/securityhub/model/TagResourceResult.h>
59 #include <aws/securityhub/model/UntagResourceResult.h>
60 #include <aws/securityhub/model/UpdateActionTargetResult.h>
61 #include <aws/securityhub/model/UpdateFindingAggregatorResult.h>
62 #include <aws/securityhub/model/UpdateFindingsResult.h>
63 #include <aws/securityhub/model/UpdateInsightResult.h>
64 #include <aws/securityhub/model/UpdateOrganizationConfigurationResult.h>
65 #include <aws/securityhub/model/UpdateSecurityHubConfigurationResult.h>
66 #include <aws/securityhub/model/UpdateStandardsControlResult.h>
67 #include <aws/core/client/AsyncCallerContext.h>
68 #include <aws/core/http/HttpTypes.h>
69 #include <future>
70 #include <functional>
71 
72 namespace Aws
73 {
74 
75 namespace Http
76 {
77   class HttpClient;
78   class HttpClientFactory;
79 } // namespace Http
80 
81 namespace Utils
82 {
83   template< typename R, typename E> class Outcome;
84 namespace Threading
85 {
86   class Executor;
87 } // namespace Threading
88 } // namespace Utils
89 
90 namespace Auth
91 {
92   class AWSCredentials;
93   class AWSCredentialsProvider;
94 } // namespace Auth
95 
96 namespace Client
97 {
98   class RetryStrategy;
99 } // namespace Client
100 
101 namespace SecurityHub
102 {
103 
104 namespace Model
105 {
106         class AcceptAdministratorInvitationRequest;
107         class BatchDisableStandardsRequest;
108         class BatchEnableStandardsRequest;
109         class BatchImportFindingsRequest;
110         class BatchUpdateFindingsRequest;
111         class CreateActionTargetRequest;
112         class CreateFindingAggregatorRequest;
113         class CreateInsightRequest;
114         class CreateMembersRequest;
115         class DeclineInvitationsRequest;
116         class DeleteActionTargetRequest;
117         class DeleteFindingAggregatorRequest;
118         class DeleteInsightRequest;
119         class DeleteInvitationsRequest;
120         class DeleteMembersRequest;
121         class DescribeActionTargetsRequest;
122         class DescribeHubRequest;
123         class DescribeOrganizationConfigurationRequest;
124         class DescribeProductsRequest;
125         class DescribeStandardsRequest;
126         class DescribeStandardsControlsRequest;
127         class DisableImportFindingsForProductRequest;
128         class DisableOrganizationAdminAccountRequest;
129         class DisableSecurityHubRequest;
130         class DisassociateFromAdministratorAccountRequest;
131         class DisassociateMembersRequest;
132         class EnableImportFindingsForProductRequest;
133         class EnableOrganizationAdminAccountRequest;
134         class EnableSecurityHubRequest;
135         class GetAdministratorAccountRequest;
136         class GetEnabledStandardsRequest;
137         class GetFindingAggregatorRequest;
138         class GetFindingsRequest;
139         class GetInsightResultsRequest;
140         class GetInsightsRequest;
141         class GetInvitationsCountRequest;
142         class GetMembersRequest;
143         class InviteMembersRequest;
144         class ListEnabledProductsForImportRequest;
145         class ListFindingAggregatorsRequest;
146         class ListInvitationsRequest;
147         class ListMembersRequest;
148         class ListOrganizationAdminAccountsRequest;
149         class ListTagsForResourceRequest;
150         class TagResourceRequest;
151         class UntagResourceRequest;
152         class UpdateActionTargetRequest;
153         class UpdateFindingAggregatorRequest;
154         class UpdateFindingsRequest;
155         class UpdateInsightRequest;
156         class UpdateOrganizationConfigurationRequest;
157         class UpdateSecurityHubConfigurationRequest;
158         class UpdateStandardsControlRequest;
159 
160         typedef Aws::Utils::Outcome<AcceptAdministratorInvitationResult, SecurityHubError> AcceptAdministratorInvitationOutcome;
161         typedef Aws::Utils::Outcome<BatchDisableStandardsResult, SecurityHubError> BatchDisableStandardsOutcome;
162         typedef Aws::Utils::Outcome<BatchEnableStandardsResult, SecurityHubError> BatchEnableStandardsOutcome;
163         typedef Aws::Utils::Outcome<BatchImportFindingsResult, SecurityHubError> BatchImportFindingsOutcome;
164         typedef Aws::Utils::Outcome<BatchUpdateFindingsResult, SecurityHubError> BatchUpdateFindingsOutcome;
165         typedef Aws::Utils::Outcome<CreateActionTargetResult, SecurityHubError> CreateActionTargetOutcome;
166         typedef Aws::Utils::Outcome<CreateFindingAggregatorResult, SecurityHubError> CreateFindingAggregatorOutcome;
167         typedef Aws::Utils::Outcome<CreateInsightResult, SecurityHubError> CreateInsightOutcome;
168         typedef Aws::Utils::Outcome<CreateMembersResult, SecurityHubError> CreateMembersOutcome;
169         typedef Aws::Utils::Outcome<DeclineInvitationsResult, SecurityHubError> DeclineInvitationsOutcome;
170         typedef Aws::Utils::Outcome<DeleteActionTargetResult, SecurityHubError> DeleteActionTargetOutcome;
171         typedef Aws::Utils::Outcome<DeleteFindingAggregatorResult, SecurityHubError> DeleteFindingAggregatorOutcome;
172         typedef Aws::Utils::Outcome<DeleteInsightResult, SecurityHubError> DeleteInsightOutcome;
173         typedef Aws::Utils::Outcome<DeleteInvitationsResult, SecurityHubError> DeleteInvitationsOutcome;
174         typedef Aws::Utils::Outcome<DeleteMembersResult, SecurityHubError> DeleteMembersOutcome;
175         typedef Aws::Utils::Outcome<DescribeActionTargetsResult, SecurityHubError> DescribeActionTargetsOutcome;
176         typedef Aws::Utils::Outcome<DescribeHubResult, SecurityHubError> DescribeHubOutcome;
177         typedef Aws::Utils::Outcome<DescribeOrganizationConfigurationResult, SecurityHubError> DescribeOrganizationConfigurationOutcome;
178         typedef Aws::Utils::Outcome<DescribeProductsResult, SecurityHubError> DescribeProductsOutcome;
179         typedef Aws::Utils::Outcome<DescribeStandardsResult, SecurityHubError> DescribeStandardsOutcome;
180         typedef Aws::Utils::Outcome<DescribeStandardsControlsResult, SecurityHubError> DescribeStandardsControlsOutcome;
181         typedef Aws::Utils::Outcome<DisableImportFindingsForProductResult, SecurityHubError> DisableImportFindingsForProductOutcome;
182         typedef Aws::Utils::Outcome<DisableOrganizationAdminAccountResult, SecurityHubError> DisableOrganizationAdminAccountOutcome;
183         typedef Aws::Utils::Outcome<DisableSecurityHubResult, SecurityHubError> DisableSecurityHubOutcome;
184         typedef Aws::Utils::Outcome<DisassociateFromAdministratorAccountResult, SecurityHubError> DisassociateFromAdministratorAccountOutcome;
185         typedef Aws::Utils::Outcome<DisassociateMembersResult, SecurityHubError> DisassociateMembersOutcome;
186         typedef Aws::Utils::Outcome<EnableImportFindingsForProductResult, SecurityHubError> EnableImportFindingsForProductOutcome;
187         typedef Aws::Utils::Outcome<EnableOrganizationAdminAccountResult, SecurityHubError> EnableOrganizationAdminAccountOutcome;
188         typedef Aws::Utils::Outcome<EnableSecurityHubResult, SecurityHubError> EnableSecurityHubOutcome;
189         typedef Aws::Utils::Outcome<GetAdministratorAccountResult, SecurityHubError> GetAdministratorAccountOutcome;
190         typedef Aws::Utils::Outcome<GetEnabledStandardsResult, SecurityHubError> GetEnabledStandardsOutcome;
191         typedef Aws::Utils::Outcome<GetFindingAggregatorResult, SecurityHubError> GetFindingAggregatorOutcome;
192         typedef Aws::Utils::Outcome<GetFindingsResult, SecurityHubError> GetFindingsOutcome;
193         typedef Aws::Utils::Outcome<GetInsightResultsResult, SecurityHubError> GetInsightResultsOutcome;
194         typedef Aws::Utils::Outcome<GetInsightsResult, SecurityHubError> GetInsightsOutcome;
195         typedef Aws::Utils::Outcome<GetInvitationsCountResult, SecurityHubError> GetInvitationsCountOutcome;
196         typedef Aws::Utils::Outcome<GetMembersResult, SecurityHubError> GetMembersOutcome;
197         typedef Aws::Utils::Outcome<InviteMembersResult, SecurityHubError> InviteMembersOutcome;
198         typedef Aws::Utils::Outcome<ListEnabledProductsForImportResult, SecurityHubError> ListEnabledProductsForImportOutcome;
199         typedef Aws::Utils::Outcome<ListFindingAggregatorsResult, SecurityHubError> ListFindingAggregatorsOutcome;
200         typedef Aws::Utils::Outcome<ListInvitationsResult, SecurityHubError> ListInvitationsOutcome;
201         typedef Aws::Utils::Outcome<ListMembersResult, SecurityHubError> ListMembersOutcome;
202         typedef Aws::Utils::Outcome<ListOrganizationAdminAccountsResult, SecurityHubError> ListOrganizationAdminAccountsOutcome;
203         typedef Aws::Utils::Outcome<ListTagsForResourceResult, SecurityHubError> ListTagsForResourceOutcome;
204         typedef Aws::Utils::Outcome<TagResourceResult, SecurityHubError> TagResourceOutcome;
205         typedef Aws::Utils::Outcome<UntagResourceResult, SecurityHubError> UntagResourceOutcome;
206         typedef Aws::Utils::Outcome<UpdateActionTargetResult, SecurityHubError> UpdateActionTargetOutcome;
207         typedef Aws::Utils::Outcome<UpdateFindingAggregatorResult, SecurityHubError> UpdateFindingAggregatorOutcome;
208         typedef Aws::Utils::Outcome<UpdateFindingsResult, SecurityHubError> UpdateFindingsOutcome;
209         typedef Aws::Utils::Outcome<UpdateInsightResult, SecurityHubError> UpdateInsightOutcome;
210         typedef Aws::Utils::Outcome<UpdateOrganizationConfigurationResult, SecurityHubError> UpdateOrganizationConfigurationOutcome;
211         typedef Aws::Utils::Outcome<UpdateSecurityHubConfigurationResult, SecurityHubError> UpdateSecurityHubConfigurationOutcome;
212         typedef Aws::Utils::Outcome<UpdateStandardsControlResult, SecurityHubError> UpdateStandardsControlOutcome;
213 
214         typedef std::future<AcceptAdministratorInvitationOutcome> AcceptAdministratorInvitationOutcomeCallable;
215         typedef std::future<BatchDisableStandardsOutcome> BatchDisableStandardsOutcomeCallable;
216         typedef std::future<BatchEnableStandardsOutcome> BatchEnableStandardsOutcomeCallable;
217         typedef std::future<BatchImportFindingsOutcome> BatchImportFindingsOutcomeCallable;
218         typedef std::future<BatchUpdateFindingsOutcome> BatchUpdateFindingsOutcomeCallable;
219         typedef std::future<CreateActionTargetOutcome> CreateActionTargetOutcomeCallable;
220         typedef std::future<CreateFindingAggregatorOutcome> CreateFindingAggregatorOutcomeCallable;
221         typedef std::future<CreateInsightOutcome> CreateInsightOutcomeCallable;
222         typedef std::future<CreateMembersOutcome> CreateMembersOutcomeCallable;
223         typedef std::future<DeclineInvitationsOutcome> DeclineInvitationsOutcomeCallable;
224         typedef std::future<DeleteActionTargetOutcome> DeleteActionTargetOutcomeCallable;
225         typedef std::future<DeleteFindingAggregatorOutcome> DeleteFindingAggregatorOutcomeCallable;
226         typedef std::future<DeleteInsightOutcome> DeleteInsightOutcomeCallable;
227         typedef std::future<DeleteInvitationsOutcome> DeleteInvitationsOutcomeCallable;
228         typedef std::future<DeleteMembersOutcome> DeleteMembersOutcomeCallable;
229         typedef std::future<DescribeActionTargetsOutcome> DescribeActionTargetsOutcomeCallable;
230         typedef std::future<DescribeHubOutcome> DescribeHubOutcomeCallable;
231         typedef std::future<DescribeOrganizationConfigurationOutcome> DescribeOrganizationConfigurationOutcomeCallable;
232         typedef std::future<DescribeProductsOutcome> DescribeProductsOutcomeCallable;
233         typedef std::future<DescribeStandardsOutcome> DescribeStandardsOutcomeCallable;
234         typedef std::future<DescribeStandardsControlsOutcome> DescribeStandardsControlsOutcomeCallable;
235         typedef std::future<DisableImportFindingsForProductOutcome> DisableImportFindingsForProductOutcomeCallable;
236         typedef std::future<DisableOrganizationAdminAccountOutcome> DisableOrganizationAdminAccountOutcomeCallable;
237         typedef std::future<DisableSecurityHubOutcome> DisableSecurityHubOutcomeCallable;
238         typedef std::future<DisassociateFromAdministratorAccountOutcome> DisassociateFromAdministratorAccountOutcomeCallable;
239         typedef std::future<DisassociateMembersOutcome> DisassociateMembersOutcomeCallable;
240         typedef std::future<EnableImportFindingsForProductOutcome> EnableImportFindingsForProductOutcomeCallable;
241         typedef std::future<EnableOrganizationAdminAccountOutcome> EnableOrganizationAdminAccountOutcomeCallable;
242         typedef std::future<EnableSecurityHubOutcome> EnableSecurityHubOutcomeCallable;
243         typedef std::future<GetAdministratorAccountOutcome> GetAdministratorAccountOutcomeCallable;
244         typedef std::future<GetEnabledStandardsOutcome> GetEnabledStandardsOutcomeCallable;
245         typedef std::future<GetFindingAggregatorOutcome> GetFindingAggregatorOutcomeCallable;
246         typedef std::future<GetFindingsOutcome> GetFindingsOutcomeCallable;
247         typedef std::future<GetInsightResultsOutcome> GetInsightResultsOutcomeCallable;
248         typedef std::future<GetInsightsOutcome> GetInsightsOutcomeCallable;
249         typedef std::future<GetInvitationsCountOutcome> GetInvitationsCountOutcomeCallable;
250         typedef std::future<GetMembersOutcome> GetMembersOutcomeCallable;
251         typedef std::future<InviteMembersOutcome> InviteMembersOutcomeCallable;
252         typedef std::future<ListEnabledProductsForImportOutcome> ListEnabledProductsForImportOutcomeCallable;
253         typedef std::future<ListFindingAggregatorsOutcome> ListFindingAggregatorsOutcomeCallable;
254         typedef std::future<ListInvitationsOutcome> ListInvitationsOutcomeCallable;
255         typedef std::future<ListMembersOutcome> ListMembersOutcomeCallable;
256         typedef std::future<ListOrganizationAdminAccountsOutcome> ListOrganizationAdminAccountsOutcomeCallable;
257         typedef std::future<ListTagsForResourceOutcome> ListTagsForResourceOutcomeCallable;
258         typedef std::future<TagResourceOutcome> TagResourceOutcomeCallable;
259         typedef std::future<UntagResourceOutcome> UntagResourceOutcomeCallable;
260         typedef std::future<UpdateActionTargetOutcome> UpdateActionTargetOutcomeCallable;
261         typedef std::future<UpdateFindingAggregatorOutcome> UpdateFindingAggregatorOutcomeCallable;
262         typedef std::future<UpdateFindingsOutcome> UpdateFindingsOutcomeCallable;
263         typedef std::future<UpdateInsightOutcome> UpdateInsightOutcomeCallable;
264         typedef std::future<UpdateOrganizationConfigurationOutcome> UpdateOrganizationConfigurationOutcomeCallable;
265         typedef std::future<UpdateSecurityHubConfigurationOutcome> UpdateSecurityHubConfigurationOutcomeCallable;
266         typedef std::future<UpdateStandardsControlOutcome> UpdateStandardsControlOutcomeCallable;
267 } // namespace Model
268 
269   class SecurityHubClient;
270 
271     typedef std::function<void(const SecurityHubClient*, const Model::AcceptAdministratorInvitationRequest&, const Model::AcceptAdministratorInvitationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AcceptAdministratorInvitationResponseReceivedHandler;
272     typedef std::function<void(const SecurityHubClient*, const Model::BatchDisableStandardsRequest&, const Model::BatchDisableStandardsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > BatchDisableStandardsResponseReceivedHandler;
273     typedef std::function<void(const SecurityHubClient*, const Model::BatchEnableStandardsRequest&, const Model::BatchEnableStandardsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > BatchEnableStandardsResponseReceivedHandler;
274     typedef std::function<void(const SecurityHubClient*, const Model::BatchImportFindingsRequest&, const Model::BatchImportFindingsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > BatchImportFindingsResponseReceivedHandler;
275     typedef std::function<void(const SecurityHubClient*, const Model::BatchUpdateFindingsRequest&, const Model::BatchUpdateFindingsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > BatchUpdateFindingsResponseReceivedHandler;
276     typedef std::function<void(const SecurityHubClient*, const Model::CreateActionTargetRequest&, const Model::CreateActionTargetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateActionTargetResponseReceivedHandler;
277     typedef std::function<void(const SecurityHubClient*, const Model::CreateFindingAggregatorRequest&, const Model::CreateFindingAggregatorOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateFindingAggregatorResponseReceivedHandler;
278     typedef std::function<void(const SecurityHubClient*, const Model::CreateInsightRequest&, const Model::CreateInsightOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateInsightResponseReceivedHandler;
279     typedef std::function<void(const SecurityHubClient*, const Model::CreateMembersRequest&, const Model::CreateMembersOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateMembersResponseReceivedHandler;
280     typedef std::function<void(const SecurityHubClient*, const Model::DeclineInvitationsRequest&, const Model::DeclineInvitationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeclineInvitationsResponseReceivedHandler;
281     typedef std::function<void(const SecurityHubClient*, const Model::DeleteActionTargetRequest&, const Model::DeleteActionTargetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteActionTargetResponseReceivedHandler;
282     typedef std::function<void(const SecurityHubClient*, const Model::DeleteFindingAggregatorRequest&, const Model::DeleteFindingAggregatorOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteFindingAggregatorResponseReceivedHandler;
283     typedef std::function<void(const SecurityHubClient*, const Model::DeleteInsightRequest&, const Model::DeleteInsightOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteInsightResponseReceivedHandler;
284     typedef std::function<void(const SecurityHubClient*, const Model::DeleteInvitationsRequest&, const Model::DeleteInvitationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteInvitationsResponseReceivedHandler;
285     typedef std::function<void(const SecurityHubClient*, const Model::DeleteMembersRequest&, const Model::DeleteMembersOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteMembersResponseReceivedHandler;
286     typedef std::function<void(const SecurityHubClient*, const Model::DescribeActionTargetsRequest&, const Model::DescribeActionTargetsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeActionTargetsResponseReceivedHandler;
287     typedef std::function<void(const SecurityHubClient*, const Model::DescribeHubRequest&, const Model::DescribeHubOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeHubResponseReceivedHandler;
288     typedef std::function<void(const SecurityHubClient*, const Model::DescribeOrganizationConfigurationRequest&, const Model::DescribeOrganizationConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeOrganizationConfigurationResponseReceivedHandler;
289     typedef std::function<void(const SecurityHubClient*, const Model::DescribeProductsRequest&, const Model::DescribeProductsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeProductsResponseReceivedHandler;
290     typedef std::function<void(const SecurityHubClient*, const Model::DescribeStandardsRequest&, const Model::DescribeStandardsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeStandardsResponseReceivedHandler;
291     typedef std::function<void(const SecurityHubClient*, const Model::DescribeStandardsControlsRequest&, const Model::DescribeStandardsControlsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeStandardsControlsResponseReceivedHandler;
292     typedef std::function<void(const SecurityHubClient*, const Model::DisableImportFindingsForProductRequest&, const Model::DisableImportFindingsForProductOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisableImportFindingsForProductResponseReceivedHandler;
293     typedef std::function<void(const SecurityHubClient*, const Model::DisableOrganizationAdminAccountRequest&, const Model::DisableOrganizationAdminAccountOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisableOrganizationAdminAccountResponseReceivedHandler;
294     typedef std::function<void(const SecurityHubClient*, const Model::DisableSecurityHubRequest&, const Model::DisableSecurityHubOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisableSecurityHubResponseReceivedHandler;
295     typedef std::function<void(const SecurityHubClient*, const Model::DisassociateFromAdministratorAccountRequest&, const Model::DisassociateFromAdministratorAccountOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisassociateFromAdministratorAccountResponseReceivedHandler;
296     typedef std::function<void(const SecurityHubClient*, const Model::DisassociateMembersRequest&, const Model::DisassociateMembersOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisassociateMembersResponseReceivedHandler;
297     typedef std::function<void(const SecurityHubClient*, const Model::EnableImportFindingsForProductRequest&, const Model::EnableImportFindingsForProductOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > EnableImportFindingsForProductResponseReceivedHandler;
298     typedef std::function<void(const SecurityHubClient*, const Model::EnableOrganizationAdminAccountRequest&, const Model::EnableOrganizationAdminAccountOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > EnableOrganizationAdminAccountResponseReceivedHandler;
299     typedef std::function<void(const SecurityHubClient*, const Model::EnableSecurityHubRequest&, const Model::EnableSecurityHubOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > EnableSecurityHubResponseReceivedHandler;
300     typedef std::function<void(const SecurityHubClient*, const Model::GetAdministratorAccountRequest&, const Model::GetAdministratorAccountOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetAdministratorAccountResponseReceivedHandler;
301     typedef std::function<void(const SecurityHubClient*, const Model::GetEnabledStandardsRequest&, const Model::GetEnabledStandardsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetEnabledStandardsResponseReceivedHandler;
302     typedef std::function<void(const SecurityHubClient*, const Model::GetFindingAggregatorRequest&, const Model::GetFindingAggregatorOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetFindingAggregatorResponseReceivedHandler;
303     typedef std::function<void(const SecurityHubClient*, const Model::GetFindingsRequest&, const Model::GetFindingsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetFindingsResponseReceivedHandler;
304     typedef std::function<void(const SecurityHubClient*, const Model::GetInsightResultsRequest&, const Model::GetInsightResultsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetInsightResultsResponseReceivedHandler;
305     typedef std::function<void(const SecurityHubClient*, const Model::GetInsightsRequest&, const Model::GetInsightsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetInsightsResponseReceivedHandler;
306     typedef std::function<void(const SecurityHubClient*, const Model::GetInvitationsCountRequest&, const Model::GetInvitationsCountOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetInvitationsCountResponseReceivedHandler;
307     typedef std::function<void(const SecurityHubClient*, const Model::GetMembersRequest&, const Model::GetMembersOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetMembersResponseReceivedHandler;
308     typedef std::function<void(const SecurityHubClient*, const Model::InviteMembersRequest&, const Model::InviteMembersOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > InviteMembersResponseReceivedHandler;
309     typedef std::function<void(const SecurityHubClient*, const Model::ListEnabledProductsForImportRequest&, const Model::ListEnabledProductsForImportOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListEnabledProductsForImportResponseReceivedHandler;
310     typedef std::function<void(const SecurityHubClient*, const Model::ListFindingAggregatorsRequest&, const Model::ListFindingAggregatorsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListFindingAggregatorsResponseReceivedHandler;
311     typedef std::function<void(const SecurityHubClient*, const Model::ListInvitationsRequest&, const Model::ListInvitationsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListInvitationsResponseReceivedHandler;
312     typedef std::function<void(const SecurityHubClient*, const Model::ListMembersRequest&, const Model::ListMembersOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListMembersResponseReceivedHandler;
313     typedef std::function<void(const SecurityHubClient*, const Model::ListOrganizationAdminAccountsRequest&, const Model::ListOrganizationAdminAccountsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListOrganizationAdminAccountsResponseReceivedHandler;
314     typedef std::function<void(const SecurityHubClient*, const Model::ListTagsForResourceRequest&, const Model::ListTagsForResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTagsForResourceResponseReceivedHandler;
315     typedef std::function<void(const SecurityHubClient*, const Model::TagResourceRequest&, const Model::TagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TagResourceResponseReceivedHandler;
316     typedef std::function<void(const SecurityHubClient*, const Model::UntagResourceRequest&, const Model::UntagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UntagResourceResponseReceivedHandler;
317     typedef std::function<void(const SecurityHubClient*, const Model::UpdateActionTargetRequest&, const Model::UpdateActionTargetOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateActionTargetResponseReceivedHandler;
318     typedef std::function<void(const SecurityHubClient*, const Model::UpdateFindingAggregatorRequest&, const Model::UpdateFindingAggregatorOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateFindingAggregatorResponseReceivedHandler;
319     typedef std::function<void(const SecurityHubClient*, const Model::UpdateFindingsRequest&, const Model::UpdateFindingsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateFindingsResponseReceivedHandler;
320     typedef std::function<void(const SecurityHubClient*, const Model::UpdateInsightRequest&, const Model::UpdateInsightOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateInsightResponseReceivedHandler;
321     typedef std::function<void(const SecurityHubClient*, const Model::UpdateOrganizationConfigurationRequest&, const Model::UpdateOrganizationConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateOrganizationConfigurationResponseReceivedHandler;
322     typedef std::function<void(const SecurityHubClient*, const Model::UpdateSecurityHubConfigurationRequest&, const Model::UpdateSecurityHubConfigurationOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateSecurityHubConfigurationResponseReceivedHandler;
323     typedef std::function<void(const SecurityHubClient*, const Model::UpdateStandardsControlRequest&, const Model::UpdateStandardsControlOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateStandardsControlResponseReceivedHandler;
324 
325   /**
326    * <p>Security Hub provides you with a comprehensive view of the security state of
327    * your Amazon Web Services environment and resources. It also provides you with
328    * the readiness status of your environment based on controls from supported
329    * security standards. Security Hub collects security data from Amazon Web Services
330    * accounts, services, and integrated third-party products and helps you analyze
331    * security trends in your environment to identify the highest priority security
332    * issues. For more information about Security Hub, see the <i>Security Hub<a
333    * href="https://docs.aws.amazon.com/securityhub/latest/userguide/what-is-securityhub.html">User
334    * Guide</a> </i>.</p> <p>When you use operations in the Security Hub API, the
335    * requests are executed only in the Amazon Web Services Region that is currently
336    * active or in the specific Amazon Web Services Region that you specify in your
337    * request. Any configuration or settings change that results from the operation is
338    * applied only to that Region. To make the same change in other Regions, execute
339    * the same command for each Region to apply the change to.</p> <p>For example, if
340    * your Region is set to <code>us-west-2</code>, when you use
341    * <code>CreateMembers</code> to add a member account to Security Hub, the
342    * association of the member account with the administrator account is created only
343    * in the <code>us-west-2</code> Region. Security Hub must be enabled for the
344    * member account in the same Region that the invitation was sent from.</p> <p>The
345    * following throttling limits apply to using Security Hub API operations.</p> <ul>
346    * <li> <p> <code>BatchEnableStandards</code> - <code>RateLimit</code> of 1 request
347    * per second, <code>BurstLimit</code> of 1 request per second.</p> </li> <li> <p>
348    * <code>GetFindings</code> - <code>RateLimit</code> of 3 requests per second.
349    * <code>BurstLimit</code> of 6 requests per second.</p> </li> <li> <p>
350    * <code>UpdateFindings</code> - <code>RateLimit</code> of 1 request per second.
351    * <code>BurstLimit</code> of 5 requests per second.</p> </li> <li> <p>
352    * <code>UpdateStandardsControl</code> - <code>RateLimit</code> of 1 request per
353    * second, <code>BurstLimit</code> of 5 requests per second.</p> </li> <li> <p>All
354    * other operations - <code>RateLimit</code> of 10 requests per second.
355    * <code>BurstLimit</code> of 30 requests per second.</p> </li> </ul>
356    */
357   class AWS_SECURITYHUB_API SecurityHubClient : public Aws::Client::AWSJsonClient
358   {
359     public:
360       typedef Aws::Client::AWSJsonClient BASECLASS;
361 
362        /**
363         * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
364         * is not specified, it will be initialized to default values.
365         */
366         SecurityHubClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
367 
368        /**
369         * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
370         * is not specified, it will be initialized to default values.
371         */
372         SecurityHubClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
373 
374        /**
375         * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
376         * the default http client factory will be used
377         */
378         SecurityHubClient(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
379             const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
380 
381         virtual ~SecurityHubClient();
382 
383 
384         /**
385          * <p>Accepts the invitation to be a member account and be monitored by the
386          * Security Hub administrator account that the invitation was sent from.</p>
387          * <p>This operation is only used by member accounts that are not added through
388          * Organizations.</p> <p>When the member account accepts the invitation, permission
389          * is granted to the administrator account to view findings generated in the member
390          * account.</p><p><h3>See Also:</h3>   <a
391          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AcceptAdministratorInvitation">AWS
392          * API Reference</a></p>
393          */
394         virtual Model::AcceptAdministratorInvitationOutcome AcceptAdministratorInvitation(const Model::AcceptAdministratorInvitationRequest& request) const;
395 
396         /**
397          * <p>Accepts the invitation to be a member account and be monitored by the
398          * Security Hub administrator account that the invitation was sent from.</p>
399          * <p>This operation is only used by member accounts that are not added through
400          * Organizations.</p> <p>When the member account accepts the invitation, permission
401          * is granted to the administrator account to view findings generated in the member
402          * account.</p><p><h3>See Also:</h3>   <a
403          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AcceptAdministratorInvitation">AWS
404          * API Reference</a></p>
405          *
406          * returns a future to the operation so that it can be executed in parallel to other requests.
407          */
408         virtual Model::AcceptAdministratorInvitationOutcomeCallable AcceptAdministratorInvitationCallable(const Model::AcceptAdministratorInvitationRequest& request) const;
409 
410         /**
411          * <p>Accepts the invitation to be a member account and be monitored by the
412          * Security Hub administrator account that the invitation was sent from.</p>
413          * <p>This operation is only used by member accounts that are not added through
414          * Organizations.</p> <p>When the member account accepts the invitation, permission
415          * is granted to the administrator account to view findings generated in the member
416          * account.</p><p><h3>See Also:</h3>   <a
417          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/AcceptAdministratorInvitation">AWS
418          * API Reference</a></p>
419          *
420          * Queues the request into a thread executor and triggers associated callback when operation has finished.
421          */
422         virtual void AcceptAdministratorInvitationAsync(const Model::AcceptAdministratorInvitationRequest& request, const AcceptAdministratorInvitationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
423 
424         /**
425          * <p>Disables the standards specified by the provided
426          * <code>StandardsSubscriptionArns</code>.</p> <p>For more information, see <a
427          * href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards.html">Security
428          * Standards</a> section of the <i>Security Hub User Guide</i>.</p><p><h3>See
429          * Also:</h3>   <a
430          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/BatchDisableStandards">AWS
431          * API Reference</a></p>
432          */
433         virtual Model::BatchDisableStandardsOutcome BatchDisableStandards(const Model::BatchDisableStandardsRequest& request) const;
434 
435         /**
436          * <p>Disables the standards specified by the provided
437          * <code>StandardsSubscriptionArns</code>.</p> <p>For more information, see <a
438          * href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards.html">Security
439          * Standards</a> section of the <i>Security Hub User Guide</i>.</p><p><h3>See
440          * Also:</h3>   <a
441          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/BatchDisableStandards">AWS
442          * API Reference</a></p>
443          *
444          * returns a future to the operation so that it can be executed in parallel to other requests.
445          */
446         virtual Model::BatchDisableStandardsOutcomeCallable BatchDisableStandardsCallable(const Model::BatchDisableStandardsRequest& request) const;
447 
448         /**
449          * <p>Disables the standards specified by the provided
450          * <code>StandardsSubscriptionArns</code>.</p> <p>For more information, see <a
451          * href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards.html">Security
452          * Standards</a> section of the <i>Security Hub User Guide</i>.</p><p><h3>See
453          * Also:</h3>   <a
454          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/BatchDisableStandards">AWS
455          * API Reference</a></p>
456          *
457          * Queues the request into a thread executor and triggers associated callback when operation has finished.
458          */
459         virtual void BatchDisableStandardsAsync(const Model::BatchDisableStandardsRequest& request, const BatchDisableStandardsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
460 
461         /**
462          * <p>Enables the standards specified by the provided <code>StandardsArn</code>. To
463          * obtain the ARN for a standard, use the <code>DescribeStandards</code>
464          * operation.</p> <p>For more information, see the <a
465          * href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards.html">Security
466          * Standards</a> section of the <i>Security Hub User Guide</i>.</p><p><h3>See
467          * Also:</h3>   <a
468          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/BatchEnableStandards">AWS
469          * API Reference</a></p>
470          */
471         virtual Model::BatchEnableStandardsOutcome BatchEnableStandards(const Model::BatchEnableStandardsRequest& request) const;
472 
473         /**
474          * <p>Enables the standards specified by the provided <code>StandardsArn</code>. To
475          * obtain the ARN for a standard, use the <code>DescribeStandards</code>
476          * operation.</p> <p>For more information, see the <a
477          * href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards.html">Security
478          * Standards</a> section of the <i>Security Hub User Guide</i>.</p><p><h3>See
479          * Also:</h3>   <a
480          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/BatchEnableStandards">AWS
481          * API Reference</a></p>
482          *
483          * returns a future to the operation so that it can be executed in parallel to other requests.
484          */
485         virtual Model::BatchEnableStandardsOutcomeCallable BatchEnableStandardsCallable(const Model::BatchEnableStandardsRequest& request) const;
486 
487         /**
488          * <p>Enables the standards specified by the provided <code>StandardsArn</code>. To
489          * obtain the ARN for a standard, use the <code>DescribeStandards</code>
490          * operation.</p> <p>For more information, see the <a
491          * href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-standards.html">Security
492          * Standards</a> section of the <i>Security Hub User Guide</i>.</p><p><h3>See
493          * Also:</h3>   <a
494          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/BatchEnableStandards">AWS
495          * API Reference</a></p>
496          *
497          * Queues the request into a thread executor and triggers associated callback when operation has finished.
498          */
499         virtual void BatchEnableStandardsAsync(const Model::BatchEnableStandardsRequest& request, const BatchEnableStandardsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
500 
501         /**
502          * <p>Imports security findings generated from an integrated product into Security
503          * Hub. This action is requested by the integrated product to import its findings
504          * into Security Hub.</p> <p>The maximum allowed size for a finding is 240 Kb. An
505          * error is returned for any finding larger than 240 Kb.</p> <p>After a finding is
506          * created, <code>BatchImportFindings</code> cannot be used to update the following
507          * finding fields and objects, which Security Hub customers use to manage their
508          * investigation workflow.</p> <ul> <li> <p> <code>Note</code> </p> </li> <li> <p>
509          * <code>UserDefinedFields</code> </p> </li> <li> <p>
510          * <code>VerificationState</code> </p> </li> <li> <p> <code>Workflow</code> </p>
511          * </li> </ul> <p>Finding providers also should not use
512          * <code>BatchImportFindings</code> to update the following attributes.</p> <ul>
513          * <li> <p> <code>Confidence</code> </p> </li> <li> <p> <code>Criticality</code>
514          * </p> </li> <li> <p> <code>RelatedFindings</code> </p> </li> <li> <p>
515          * <code>Severity</code> </p> </li> <li> <p> <code>Types</code> </p> </li> </ul>
516          * <p>Instead, finding providers use <code>FindingProviderFields</code> to provide
517          * values for these attributes.</p><p><h3>See Also:</h3>   <a
518          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/BatchImportFindings">AWS
519          * API Reference</a></p>
520          */
521         virtual Model::BatchImportFindingsOutcome BatchImportFindings(const Model::BatchImportFindingsRequest& request) const;
522 
523         /**
524          * <p>Imports security findings generated from an integrated product into Security
525          * Hub. This action is requested by the integrated product to import its findings
526          * into Security Hub.</p> <p>The maximum allowed size for a finding is 240 Kb. An
527          * error is returned for any finding larger than 240 Kb.</p> <p>After a finding is
528          * created, <code>BatchImportFindings</code> cannot be used to update the following
529          * finding fields and objects, which Security Hub customers use to manage their
530          * investigation workflow.</p> <ul> <li> <p> <code>Note</code> </p> </li> <li> <p>
531          * <code>UserDefinedFields</code> </p> </li> <li> <p>
532          * <code>VerificationState</code> </p> </li> <li> <p> <code>Workflow</code> </p>
533          * </li> </ul> <p>Finding providers also should not use
534          * <code>BatchImportFindings</code> to update the following attributes.</p> <ul>
535          * <li> <p> <code>Confidence</code> </p> </li> <li> <p> <code>Criticality</code>
536          * </p> </li> <li> <p> <code>RelatedFindings</code> </p> </li> <li> <p>
537          * <code>Severity</code> </p> </li> <li> <p> <code>Types</code> </p> </li> </ul>
538          * <p>Instead, finding providers use <code>FindingProviderFields</code> to provide
539          * values for these attributes.</p><p><h3>See Also:</h3>   <a
540          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/BatchImportFindings">AWS
541          * API Reference</a></p>
542          *
543          * returns a future to the operation so that it can be executed in parallel to other requests.
544          */
545         virtual Model::BatchImportFindingsOutcomeCallable BatchImportFindingsCallable(const Model::BatchImportFindingsRequest& request) const;
546 
547         /**
548          * <p>Imports security findings generated from an integrated product into Security
549          * Hub. This action is requested by the integrated product to import its findings
550          * into Security Hub.</p> <p>The maximum allowed size for a finding is 240 Kb. An
551          * error is returned for any finding larger than 240 Kb.</p> <p>After a finding is
552          * created, <code>BatchImportFindings</code> cannot be used to update the following
553          * finding fields and objects, which Security Hub customers use to manage their
554          * investigation workflow.</p> <ul> <li> <p> <code>Note</code> </p> </li> <li> <p>
555          * <code>UserDefinedFields</code> </p> </li> <li> <p>
556          * <code>VerificationState</code> </p> </li> <li> <p> <code>Workflow</code> </p>
557          * </li> </ul> <p>Finding providers also should not use
558          * <code>BatchImportFindings</code> to update the following attributes.</p> <ul>
559          * <li> <p> <code>Confidence</code> </p> </li> <li> <p> <code>Criticality</code>
560          * </p> </li> <li> <p> <code>RelatedFindings</code> </p> </li> <li> <p>
561          * <code>Severity</code> </p> </li> <li> <p> <code>Types</code> </p> </li> </ul>
562          * <p>Instead, finding providers use <code>FindingProviderFields</code> to provide
563          * values for these attributes.</p><p><h3>See Also:</h3>   <a
564          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/BatchImportFindings">AWS
565          * API Reference</a></p>
566          *
567          * Queues the request into a thread executor and triggers associated callback when operation has finished.
568          */
569         virtual void BatchImportFindingsAsync(const Model::BatchImportFindingsRequest& request, const BatchImportFindingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
570 
571         /**
572          * <p>Used by Security Hub customers to update information about their
573          * investigation into a finding. Requested by administrator accounts or member
574          * accounts. Administrator accounts can update findings for their account and their
575          * member accounts. Member accounts can update findings for their account.</p>
576          * <p>Updates from <code>BatchUpdateFindings</code> do not affect the value of
577          * <code>UpdatedAt</code> for a finding.</p> <p>Administrator and member accounts
578          * can use <code>BatchUpdateFindings</code> to update the following finding fields
579          * and objects.</p> <ul> <li> <p> <code>Confidence</code> </p> </li> <li> <p>
580          * <code>Criticality</code> </p> </li> <li> <p> <code>Note</code> </p> </li> <li>
581          * <p> <code>RelatedFindings</code> </p> </li> <li> <p> <code>Severity</code> </p>
582          * </li> <li> <p> <code>Types</code> </p> </li> <li> <p>
583          * <code>UserDefinedFields</code> </p> </li> <li> <p>
584          * <code>VerificationState</code> </p> </li> <li> <p> <code>Workflow</code> </p>
585          * </li> </ul> <p>You can configure IAM policies to restrict access to fields and
586          * field values. For example, you might not want member accounts to be able to
587          * suppress findings or change the finding severity. See <a
588          * href="https://docs.aws.amazon.com/securityhub/latest/userguide/finding-update-batchupdatefindings.html#batchupdatefindings-configure-access">Configuring
589          * access to BatchUpdateFindings</a> in the <i>Security Hub User
590          * Guide</i>.</p><p><h3>See Also:</h3>   <a
591          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/BatchUpdateFindings">AWS
592          * API Reference</a></p>
593          */
594         virtual Model::BatchUpdateFindingsOutcome BatchUpdateFindings(const Model::BatchUpdateFindingsRequest& request) const;
595 
596         /**
597          * <p>Used by Security Hub customers to update information about their
598          * investigation into a finding. Requested by administrator accounts or member
599          * accounts. Administrator accounts can update findings for their account and their
600          * member accounts. Member accounts can update findings for their account.</p>
601          * <p>Updates from <code>BatchUpdateFindings</code> do not affect the value of
602          * <code>UpdatedAt</code> for a finding.</p> <p>Administrator and member accounts
603          * can use <code>BatchUpdateFindings</code> to update the following finding fields
604          * and objects.</p> <ul> <li> <p> <code>Confidence</code> </p> </li> <li> <p>
605          * <code>Criticality</code> </p> </li> <li> <p> <code>Note</code> </p> </li> <li>
606          * <p> <code>RelatedFindings</code> </p> </li> <li> <p> <code>Severity</code> </p>
607          * </li> <li> <p> <code>Types</code> </p> </li> <li> <p>
608          * <code>UserDefinedFields</code> </p> </li> <li> <p>
609          * <code>VerificationState</code> </p> </li> <li> <p> <code>Workflow</code> </p>
610          * </li> </ul> <p>You can configure IAM policies to restrict access to fields and
611          * field values. For example, you might not want member accounts to be able to
612          * suppress findings or change the finding severity. See <a
613          * href="https://docs.aws.amazon.com/securityhub/latest/userguide/finding-update-batchupdatefindings.html#batchupdatefindings-configure-access">Configuring
614          * access to BatchUpdateFindings</a> in the <i>Security Hub User
615          * Guide</i>.</p><p><h3>See Also:</h3>   <a
616          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/BatchUpdateFindings">AWS
617          * API Reference</a></p>
618          *
619          * returns a future to the operation so that it can be executed in parallel to other requests.
620          */
621         virtual Model::BatchUpdateFindingsOutcomeCallable BatchUpdateFindingsCallable(const Model::BatchUpdateFindingsRequest& request) const;
622 
623         /**
624          * <p>Used by Security Hub customers to update information about their
625          * investigation into a finding. Requested by administrator accounts or member
626          * accounts. Administrator accounts can update findings for their account and their
627          * member accounts. Member accounts can update findings for their account.</p>
628          * <p>Updates from <code>BatchUpdateFindings</code> do not affect the value of
629          * <code>UpdatedAt</code> for a finding.</p> <p>Administrator and member accounts
630          * can use <code>BatchUpdateFindings</code> to update the following finding fields
631          * and objects.</p> <ul> <li> <p> <code>Confidence</code> </p> </li> <li> <p>
632          * <code>Criticality</code> </p> </li> <li> <p> <code>Note</code> </p> </li> <li>
633          * <p> <code>RelatedFindings</code> </p> </li> <li> <p> <code>Severity</code> </p>
634          * </li> <li> <p> <code>Types</code> </p> </li> <li> <p>
635          * <code>UserDefinedFields</code> </p> </li> <li> <p>
636          * <code>VerificationState</code> </p> </li> <li> <p> <code>Workflow</code> </p>
637          * </li> </ul> <p>You can configure IAM policies to restrict access to fields and
638          * field values. For example, you might not want member accounts to be able to
639          * suppress findings or change the finding severity. See <a
640          * href="https://docs.aws.amazon.com/securityhub/latest/userguide/finding-update-batchupdatefindings.html#batchupdatefindings-configure-access">Configuring
641          * access to BatchUpdateFindings</a> in the <i>Security Hub User
642          * Guide</i>.</p><p><h3>See Also:</h3>   <a
643          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/BatchUpdateFindings">AWS
644          * API Reference</a></p>
645          *
646          * Queues the request into a thread executor and triggers associated callback when operation has finished.
647          */
648         virtual void BatchUpdateFindingsAsync(const Model::BatchUpdateFindingsRequest& request, const BatchUpdateFindingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
649 
650         /**
651          * <p>Creates a custom action target in Security Hub.</p> <p>You can use custom
652          * actions on findings and insights in Security Hub to trigger target actions in
653          * Amazon CloudWatch Events.</p><p><h3>See Also:</h3>   <a
654          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/CreateActionTarget">AWS
655          * API Reference</a></p>
656          */
657         virtual Model::CreateActionTargetOutcome CreateActionTarget(const Model::CreateActionTargetRequest& request) const;
658 
659         /**
660          * <p>Creates a custom action target in Security Hub.</p> <p>You can use custom
661          * actions on findings and insights in Security Hub to trigger target actions in
662          * Amazon CloudWatch Events.</p><p><h3>See Also:</h3>   <a
663          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/CreateActionTarget">AWS
664          * API Reference</a></p>
665          *
666          * returns a future to the operation so that it can be executed in parallel to other requests.
667          */
668         virtual Model::CreateActionTargetOutcomeCallable CreateActionTargetCallable(const Model::CreateActionTargetRequest& request) const;
669 
670         /**
671          * <p>Creates a custom action target in Security Hub.</p> <p>You can use custom
672          * actions on findings and insights in Security Hub to trigger target actions in
673          * Amazon CloudWatch Events.</p><p><h3>See Also:</h3>   <a
674          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/CreateActionTarget">AWS
675          * API Reference</a></p>
676          *
677          * Queues the request into a thread executor and triggers associated callback when operation has finished.
678          */
679         virtual void CreateActionTargetAsync(const Model::CreateActionTargetRequest& request, const CreateActionTargetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
680 
681         /**
682          * <p>Used to enable finding aggregation. Must be called from the aggregation
683          * Region.</p> <p>For more details about cross-Region replication, see <a
684          * href="securityhub/latest/userguide/finding-aggregation.html">Configuring finding
685          * aggregation</a> in the <i>Security Hub User Guide</i>. </p><p><h3>See Also:</h3>
686          * <a
687          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/CreateFindingAggregator">AWS
688          * API Reference</a></p>
689          */
690         virtual Model::CreateFindingAggregatorOutcome CreateFindingAggregator(const Model::CreateFindingAggregatorRequest& request) const;
691 
692         /**
693          * <p>Used to enable finding aggregation. Must be called from the aggregation
694          * Region.</p> <p>For more details about cross-Region replication, see <a
695          * href="securityhub/latest/userguide/finding-aggregation.html">Configuring finding
696          * aggregation</a> in the <i>Security Hub User Guide</i>. </p><p><h3>See Also:</h3>
697          * <a
698          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/CreateFindingAggregator">AWS
699          * API Reference</a></p>
700          *
701          * returns a future to the operation so that it can be executed in parallel to other requests.
702          */
703         virtual Model::CreateFindingAggregatorOutcomeCallable CreateFindingAggregatorCallable(const Model::CreateFindingAggregatorRequest& request) const;
704 
705         /**
706          * <p>Used to enable finding aggregation. Must be called from the aggregation
707          * Region.</p> <p>For more details about cross-Region replication, see <a
708          * href="securityhub/latest/userguide/finding-aggregation.html">Configuring finding
709          * aggregation</a> in the <i>Security Hub User Guide</i>. </p><p><h3>See Also:</h3>
710          * <a
711          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/CreateFindingAggregator">AWS
712          * API Reference</a></p>
713          *
714          * Queues the request into a thread executor and triggers associated callback when operation has finished.
715          */
716         virtual void CreateFindingAggregatorAsync(const Model::CreateFindingAggregatorRequest& request, const CreateFindingAggregatorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
717 
718         /**
719          * <p>Creates a custom insight in Security Hub. An insight is a consolidation of
720          * findings that relate to a security issue that requires attention or
721          * remediation.</p> <p>To group the related findings in the insight, use the
722          * <code>GroupByAttribute</code>.</p><p><h3>See Also:</h3>   <a
723          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/CreateInsight">AWS
724          * API Reference</a></p>
725          */
726         virtual Model::CreateInsightOutcome CreateInsight(const Model::CreateInsightRequest& request) const;
727 
728         /**
729          * <p>Creates a custom insight in Security Hub. An insight is a consolidation of
730          * findings that relate to a security issue that requires attention or
731          * remediation.</p> <p>To group the related findings in the insight, use the
732          * <code>GroupByAttribute</code>.</p><p><h3>See Also:</h3>   <a
733          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/CreateInsight">AWS
734          * API Reference</a></p>
735          *
736          * returns a future to the operation so that it can be executed in parallel to other requests.
737          */
738         virtual Model::CreateInsightOutcomeCallable CreateInsightCallable(const Model::CreateInsightRequest& request) const;
739 
740         /**
741          * <p>Creates a custom insight in Security Hub. An insight is a consolidation of
742          * findings that relate to a security issue that requires attention or
743          * remediation.</p> <p>To group the related findings in the insight, use the
744          * <code>GroupByAttribute</code>.</p><p><h3>See Also:</h3>   <a
745          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/CreateInsight">AWS
746          * API Reference</a></p>
747          *
748          * Queues the request into a thread executor and triggers associated callback when operation has finished.
749          */
750         virtual void CreateInsightAsync(const Model::CreateInsightRequest& request, const CreateInsightResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
751 
752         /**
753          * <p>Creates a member association in Security Hub between the specified accounts
754          * and the account used to make the request, which is the administrator account. If
755          * you are integrated with Organizations, then the administrator account is
756          * designated by the organization management account.</p> <p>
757          * <code>CreateMembers</code> is always used to add accounts that are not
758          * organization members.</p> <p>For accounts that are managed using Organizations,
759          * <code>CreateMembers</code> is only used in the following cases:</p> <ul> <li>
760          * <p>Security Hub is not configured to automatically add new organization
761          * accounts.</p> </li> <li> <p>The account was disassociated or deleted in Security
762          * Hub.</p> </li> </ul> <p>This action can only be used by an account that has
763          * Security Hub enabled. To enable Security Hub, you can use the
764          * <code>EnableSecurityHub</code> operation.</p> <p>For accounts that are not
765          * organization members, you create the account association and then send an
766          * invitation to the member account. To send the invitation, you use the
767          * <code>InviteMembers</code> operation. If the account owner accepts the
768          * invitation, the account becomes a member account in Security Hub.</p>
769          * <p>Accounts that are managed using Organizations do not receive an invitation.
770          * They automatically become a member account in Security Hub.</p> <ul> <li> <p>If
771          * the organization account does not have Security Hub enabled, then Security Hub
772          * and the default standards are automatically enabled. Note that Security Hub
773          * cannot be enabled automatically for the organization management account. The
774          * organization management account must enable Security Hub before the
775          * administrator account enables it as a member account.</p> </li> <li> <p>For
776          * organization accounts that already have Security Hub enabled, Security Hub does
777          * not make any other changes to those accounts. It does not change their enabled
778          * standards or controls.</p> </li> </ul> <p>A permissions policy is added that
779          * permits the administrator account to view the findings generated in the member
780          * account.</p> <p>To remove the association between the administrator and member
781          * accounts, use the <code>DisassociateFromMasterAccount</code> or
782          * <code>DisassociateMembers</code> operation.</p><p><h3>See Also:</h3>   <a
783          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/CreateMembers">AWS
784          * API Reference</a></p>
785          */
786         virtual Model::CreateMembersOutcome CreateMembers(const Model::CreateMembersRequest& request) const;
787 
788         /**
789          * <p>Creates a member association in Security Hub between the specified accounts
790          * and the account used to make the request, which is the administrator account. If
791          * you are integrated with Organizations, then the administrator account is
792          * designated by the organization management account.</p> <p>
793          * <code>CreateMembers</code> is always used to add accounts that are not
794          * organization members.</p> <p>For accounts that are managed using Organizations,
795          * <code>CreateMembers</code> is only used in the following cases:</p> <ul> <li>
796          * <p>Security Hub is not configured to automatically add new organization
797          * accounts.</p> </li> <li> <p>The account was disassociated or deleted in Security
798          * Hub.</p> </li> </ul> <p>This action can only be used by an account that has
799          * Security Hub enabled. To enable Security Hub, you can use the
800          * <code>EnableSecurityHub</code> operation.</p> <p>For accounts that are not
801          * organization members, you create the account association and then send an
802          * invitation to the member account. To send the invitation, you use the
803          * <code>InviteMembers</code> operation. If the account owner accepts the
804          * invitation, the account becomes a member account in Security Hub.</p>
805          * <p>Accounts that are managed using Organizations do not receive an invitation.
806          * They automatically become a member account in Security Hub.</p> <ul> <li> <p>If
807          * the organization account does not have Security Hub enabled, then Security Hub
808          * and the default standards are automatically enabled. Note that Security Hub
809          * cannot be enabled automatically for the organization management account. The
810          * organization management account must enable Security Hub before the
811          * administrator account enables it as a member account.</p> </li> <li> <p>For
812          * organization accounts that already have Security Hub enabled, Security Hub does
813          * not make any other changes to those accounts. It does not change their enabled
814          * standards or controls.</p> </li> </ul> <p>A permissions policy is added that
815          * permits the administrator account to view the findings generated in the member
816          * account.</p> <p>To remove the association between the administrator and member
817          * accounts, use the <code>DisassociateFromMasterAccount</code> or
818          * <code>DisassociateMembers</code> operation.</p><p><h3>See Also:</h3>   <a
819          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/CreateMembers">AWS
820          * API Reference</a></p>
821          *
822          * returns a future to the operation so that it can be executed in parallel to other requests.
823          */
824         virtual Model::CreateMembersOutcomeCallable CreateMembersCallable(const Model::CreateMembersRequest& request) const;
825 
826         /**
827          * <p>Creates a member association in Security Hub between the specified accounts
828          * and the account used to make the request, which is the administrator account. If
829          * you are integrated with Organizations, then the administrator account is
830          * designated by the organization management account.</p> <p>
831          * <code>CreateMembers</code> is always used to add accounts that are not
832          * organization members.</p> <p>For accounts that are managed using Organizations,
833          * <code>CreateMembers</code> is only used in the following cases:</p> <ul> <li>
834          * <p>Security Hub is not configured to automatically add new organization
835          * accounts.</p> </li> <li> <p>The account was disassociated or deleted in Security
836          * Hub.</p> </li> </ul> <p>This action can only be used by an account that has
837          * Security Hub enabled. To enable Security Hub, you can use the
838          * <code>EnableSecurityHub</code> operation.</p> <p>For accounts that are not
839          * organization members, you create the account association and then send an
840          * invitation to the member account. To send the invitation, you use the
841          * <code>InviteMembers</code> operation. If the account owner accepts the
842          * invitation, the account becomes a member account in Security Hub.</p>
843          * <p>Accounts that are managed using Organizations do not receive an invitation.
844          * They automatically become a member account in Security Hub.</p> <ul> <li> <p>If
845          * the organization account does not have Security Hub enabled, then Security Hub
846          * and the default standards are automatically enabled. Note that Security Hub
847          * cannot be enabled automatically for the organization management account. The
848          * organization management account must enable Security Hub before the
849          * administrator account enables it as a member account.</p> </li> <li> <p>For
850          * organization accounts that already have Security Hub enabled, Security Hub does
851          * not make any other changes to those accounts. It does not change their enabled
852          * standards or controls.</p> </li> </ul> <p>A permissions policy is added that
853          * permits the administrator account to view the findings generated in the member
854          * account.</p> <p>To remove the association between the administrator and member
855          * accounts, use the <code>DisassociateFromMasterAccount</code> or
856          * <code>DisassociateMembers</code> operation.</p><p><h3>See Also:</h3>   <a
857          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/CreateMembers">AWS
858          * API Reference</a></p>
859          *
860          * Queues the request into a thread executor and triggers associated callback when operation has finished.
861          */
862         virtual void CreateMembersAsync(const Model::CreateMembersRequest& request, const CreateMembersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
863 
864         /**
865          * <p>Declines invitations to become a member account.</p> <p>This operation is
866          * only used by accounts that are not part of an organization. Organization
867          * accounts do not receive invitations.</p><p><h3>See Also:</h3>   <a
868          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DeclineInvitations">AWS
869          * API Reference</a></p>
870          */
871         virtual Model::DeclineInvitationsOutcome DeclineInvitations(const Model::DeclineInvitationsRequest& request) const;
872 
873         /**
874          * <p>Declines invitations to become a member account.</p> <p>This operation is
875          * only used by accounts that are not part of an organization. Organization
876          * accounts do not receive invitations.</p><p><h3>See Also:</h3>   <a
877          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DeclineInvitations">AWS
878          * API Reference</a></p>
879          *
880          * returns a future to the operation so that it can be executed in parallel to other requests.
881          */
882         virtual Model::DeclineInvitationsOutcomeCallable DeclineInvitationsCallable(const Model::DeclineInvitationsRequest& request) const;
883 
884         /**
885          * <p>Declines invitations to become a member account.</p> <p>This operation is
886          * only used by accounts that are not part of an organization. Organization
887          * accounts do not receive invitations.</p><p><h3>See Also:</h3>   <a
888          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DeclineInvitations">AWS
889          * API Reference</a></p>
890          *
891          * Queues the request into a thread executor and triggers associated callback when operation has finished.
892          */
893         virtual void DeclineInvitationsAsync(const Model::DeclineInvitationsRequest& request, const DeclineInvitationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
894 
895         /**
896          * <p>Deletes a custom action target from Security Hub.</p> <p>Deleting a custom
897          * action target does not affect any findings or insights that were already sent to
898          * Amazon CloudWatch Events using the custom action.</p><p><h3>See Also:</h3>   <a
899          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DeleteActionTarget">AWS
900          * API Reference</a></p>
901          */
902         virtual Model::DeleteActionTargetOutcome DeleteActionTarget(const Model::DeleteActionTargetRequest& request) const;
903 
904         /**
905          * <p>Deletes a custom action target from Security Hub.</p> <p>Deleting a custom
906          * action target does not affect any findings or insights that were already sent to
907          * Amazon CloudWatch Events using the custom action.</p><p><h3>See Also:</h3>   <a
908          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DeleteActionTarget">AWS
909          * API Reference</a></p>
910          *
911          * returns a future to the operation so that it can be executed in parallel to other requests.
912          */
913         virtual Model::DeleteActionTargetOutcomeCallable DeleteActionTargetCallable(const Model::DeleteActionTargetRequest& request) const;
914 
915         /**
916          * <p>Deletes a custom action target from Security Hub.</p> <p>Deleting a custom
917          * action target does not affect any findings or insights that were already sent to
918          * Amazon CloudWatch Events using the custom action.</p><p><h3>See Also:</h3>   <a
919          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DeleteActionTarget">AWS
920          * API Reference</a></p>
921          *
922          * Queues the request into a thread executor and triggers associated callback when operation has finished.
923          */
924         virtual void DeleteActionTargetAsync(const Model::DeleteActionTargetRequest& request, const DeleteActionTargetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
925 
926         /**
927          * <p>Deletes a finding aggregator. When you delete the finding aggregator, you
928          * stop finding aggregation.</p> <p>When you stop finding aggregation, findings
929          * that were already aggregated to the aggregation Region are still visible from
930          * the aggregation Region. New findings and finding updates are not aggregated.
931          * </p><p><h3>See Also:</h3>   <a
932          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DeleteFindingAggregator">AWS
933          * API Reference</a></p>
934          */
935         virtual Model::DeleteFindingAggregatorOutcome DeleteFindingAggregator(const Model::DeleteFindingAggregatorRequest& request) const;
936 
937         /**
938          * <p>Deletes a finding aggregator. When you delete the finding aggregator, you
939          * stop finding aggregation.</p> <p>When you stop finding aggregation, findings
940          * that were already aggregated to the aggregation Region are still visible from
941          * the aggregation Region. New findings and finding updates are not aggregated.
942          * </p><p><h3>See Also:</h3>   <a
943          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DeleteFindingAggregator">AWS
944          * API Reference</a></p>
945          *
946          * returns a future to the operation so that it can be executed in parallel to other requests.
947          */
948         virtual Model::DeleteFindingAggregatorOutcomeCallable DeleteFindingAggregatorCallable(const Model::DeleteFindingAggregatorRequest& request) const;
949 
950         /**
951          * <p>Deletes a finding aggregator. When you delete the finding aggregator, you
952          * stop finding aggregation.</p> <p>When you stop finding aggregation, findings
953          * that were already aggregated to the aggregation Region are still visible from
954          * the aggregation Region. New findings and finding updates are not aggregated.
955          * </p><p><h3>See Also:</h3>   <a
956          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DeleteFindingAggregator">AWS
957          * API Reference</a></p>
958          *
959          * Queues the request into a thread executor and triggers associated callback when operation has finished.
960          */
961         virtual void DeleteFindingAggregatorAsync(const Model::DeleteFindingAggregatorRequest& request, const DeleteFindingAggregatorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
962 
963         /**
964          * <p>Deletes the insight specified by the <code>InsightArn</code>.</p><p><h3>See
965          * Also:</h3>   <a
966          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DeleteInsight">AWS
967          * API Reference</a></p>
968          */
969         virtual Model::DeleteInsightOutcome DeleteInsight(const Model::DeleteInsightRequest& request) const;
970 
971         /**
972          * <p>Deletes the insight specified by the <code>InsightArn</code>.</p><p><h3>See
973          * Also:</h3>   <a
974          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DeleteInsight">AWS
975          * API Reference</a></p>
976          *
977          * returns a future to the operation so that it can be executed in parallel to other requests.
978          */
979         virtual Model::DeleteInsightOutcomeCallable DeleteInsightCallable(const Model::DeleteInsightRequest& request) const;
980 
981         /**
982          * <p>Deletes the insight specified by the <code>InsightArn</code>.</p><p><h3>See
983          * Also:</h3>   <a
984          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DeleteInsight">AWS
985          * API Reference</a></p>
986          *
987          * Queues the request into a thread executor and triggers associated callback when operation has finished.
988          */
989         virtual void DeleteInsightAsync(const Model::DeleteInsightRequest& request, const DeleteInsightResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
990 
991         /**
992          * <p>Deletes invitations received by the Amazon Web Services account to become a
993          * member account.</p> <p>This operation is only used by accounts that are not part
994          * of an organization. Organization accounts do not receive
995          * invitations.</p><p><h3>See Also:</h3>   <a
996          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DeleteInvitations">AWS
997          * API Reference</a></p>
998          */
999         virtual Model::DeleteInvitationsOutcome DeleteInvitations(const Model::DeleteInvitationsRequest& request) const;
1000 
1001         /**
1002          * <p>Deletes invitations received by the Amazon Web Services account to become a
1003          * member account.</p> <p>This operation is only used by accounts that are not part
1004          * of an organization. Organization accounts do not receive
1005          * invitations.</p><p><h3>See Also:</h3>   <a
1006          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DeleteInvitations">AWS
1007          * API Reference</a></p>
1008          *
1009          * returns a future to the operation so that it can be executed in parallel to other requests.
1010          */
1011         virtual Model::DeleteInvitationsOutcomeCallable DeleteInvitationsCallable(const Model::DeleteInvitationsRequest& request) const;
1012 
1013         /**
1014          * <p>Deletes invitations received by the Amazon Web Services account to become a
1015          * member account.</p> <p>This operation is only used by accounts that are not part
1016          * of an organization. Organization accounts do not receive
1017          * invitations.</p><p><h3>See Also:</h3>   <a
1018          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DeleteInvitations">AWS
1019          * API Reference</a></p>
1020          *
1021          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1022          */
1023         virtual void DeleteInvitationsAsync(const Model::DeleteInvitationsRequest& request, const DeleteInvitationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1024 
1025         /**
1026          * <p>Deletes the specified member accounts from Security Hub.</p> <p>Can be used
1027          * to delete member accounts that belong to an organization as well as member
1028          * accounts that were invited manually.</p><p><h3>See Also:</h3>   <a
1029          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DeleteMembers">AWS
1030          * API Reference</a></p>
1031          */
1032         virtual Model::DeleteMembersOutcome DeleteMembers(const Model::DeleteMembersRequest& request) const;
1033 
1034         /**
1035          * <p>Deletes the specified member accounts from Security Hub.</p> <p>Can be used
1036          * to delete member accounts that belong to an organization as well as member
1037          * accounts that were invited manually.</p><p><h3>See Also:</h3>   <a
1038          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DeleteMembers">AWS
1039          * API Reference</a></p>
1040          *
1041          * returns a future to the operation so that it can be executed in parallel to other requests.
1042          */
1043         virtual Model::DeleteMembersOutcomeCallable DeleteMembersCallable(const Model::DeleteMembersRequest& request) const;
1044 
1045         /**
1046          * <p>Deletes the specified member accounts from Security Hub.</p> <p>Can be used
1047          * to delete member accounts that belong to an organization as well as member
1048          * accounts that were invited manually.</p><p><h3>See Also:</h3>   <a
1049          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DeleteMembers">AWS
1050          * API Reference</a></p>
1051          *
1052          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1053          */
1054         virtual void DeleteMembersAsync(const Model::DeleteMembersRequest& request, const DeleteMembersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1055 
1056         /**
1057          * <p>Returns a list of the custom action targets in Security Hub in your
1058          * account.</p><p><h3>See Also:</h3>   <a
1059          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DescribeActionTargets">AWS
1060          * API Reference</a></p>
1061          */
1062         virtual Model::DescribeActionTargetsOutcome DescribeActionTargets(const Model::DescribeActionTargetsRequest& request) const;
1063 
1064         /**
1065          * <p>Returns a list of the custom action targets in Security Hub in your
1066          * account.</p><p><h3>See Also:</h3>   <a
1067          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DescribeActionTargets">AWS
1068          * API Reference</a></p>
1069          *
1070          * returns a future to the operation so that it can be executed in parallel to other requests.
1071          */
1072         virtual Model::DescribeActionTargetsOutcomeCallable DescribeActionTargetsCallable(const Model::DescribeActionTargetsRequest& request) const;
1073 
1074         /**
1075          * <p>Returns a list of the custom action targets in Security Hub in your
1076          * account.</p><p><h3>See Also:</h3>   <a
1077          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DescribeActionTargets">AWS
1078          * API Reference</a></p>
1079          *
1080          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1081          */
1082         virtual void DescribeActionTargetsAsync(const Model::DescribeActionTargetsRequest& request, const DescribeActionTargetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1083 
1084         /**
1085          * <p>Returns details about the Hub resource in your account, including the
1086          * <code>HubArn</code> and the time when you enabled Security Hub.</p><p><h3>See
1087          * Also:</h3>   <a
1088          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DescribeHub">AWS
1089          * API Reference</a></p>
1090          */
1091         virtual Model::DescribeHubOutcome DescribeHub(const Model::DescribeHubRequest& request) const;
1092 
1093         /**
1094          * <p>Returns details about the Hub resource in your account, including the
1095          * <code>HubArn</code> and the time when you enabled Security Hub.</p><p><h3>See
1096          * Also:</h3>   <a
1097          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DescribeHub">AWS
1098          * API Reference</a></p>
1099          *
1100          * returns a future to the operation so that it can be executed in parallel to other requests.
1101          */
1102         virtual Model::DescribeHubOutcomeCallable DescribeHubCallable(const Model::DescribeHubRequest& request) const;
1103 
1104         /**
1105          * <p>Returns details about the Hub resource in your account, including the
1106          * <code>HubArn</code> and the time when you enabled Security Hub.</p><p><h3>See
1107          * Also:</h3>   <a
1108          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DescribeHub">AWS
1109          * API Reference</a></p>
1110          *
1111          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1112          */
1113         virtual void DescribeHubAsync(const Model::DescribeHubRequest& request, const DescribeHubResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1114 
1115         /**
1116          * <p>Returns information about the Organizations configuration for Security Hub.
1117          * Can only be called from a Security Hub administrator account.</p><p><h3>See
1118          * Also:</h3>   <a
1119          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DescribeOrganizationConfiguration">AWS
1120          * API Reference</a></p>
1121          */
1122         virtual Model::DescribeOrganizationConfigurationOutcome DescribeOrganizationConfiguration(const Model::DescribeOrganizationConfigurationRequest& request) const;
1123 
1124         /**
1125          * <p>Returns information about the Organizations configuration for Security Hub.
1126          * Can only be called from a Security Hub administrator account.</p><p><h3>See
1127          * Also:</h3>   <a
1128          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DescribeOrganizationConfiguration">AWS
1129          * API Reference</a></p>
1130          *
1131          * returns a future to the operation so that it can be executed in parallel to other requests.
1132          */
1133         virtual Model::DescribeOrganizationConfigurationOutcomeCallable DescribeOrganizationConfigurationCallable(const Model::DescribeOrganizationConfigurationRequest& request) const;
1134 
1135         /**
1136          * <p>Returns information about the Organizations configuration for Security Hub.
1137          * Can only be called from a Security Hub administrator account.</p><p><h3>See
1138          * Also:</h3>   <a
1139          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DescribeOrganizationConfiguration">AWS
1140          * API Reference</a></p>
1141          *
1142          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1143          */
1144         virtual void DescribeOrganizationConfigurationAsync(const Model::DescribeOrganizationConfigurationRequest& request, const DescribeOrganizationConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1145 
1146         /**
1147          * <p>Returns information about product integrations in Security Hub.</p> <p>You
1148          * can optionally provide an integration ARN. If you provide an integration ARN,
1149          * then the results only include that integration.</p> <p>If you do not provide an
1150          * integration ARN, then the results include all of the available product
1151          * integrations. </p><p><h3>See Also:</h3>   <a
1152          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DescribeProducts">AWS
1153          * API Reference</a></p>
1154          */
1155         virtual Model::DescribeProductsOutcome DescribeProducts(const Model::DescribeProductsRequest& request) const;
1156 
1157         /**
1158          * <p>Returns information about product integrations in Security Hub.</p> <p>You
1159          * can optionally provide an integration ARN. If you provide an integration ARN,
1160          * then the results only include that integration.</p> <p>If you do not provide an
1161          * integration ARN, then the results include all of the available product
1162          * integrations. </p><p><h3>See Also:</h3>   <a
1163          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DescribeProducts">AWS
1164          * API Reference</a></p>
1165          *
1166          * returns a future to the operation so that it can be executed in parallel to other requests.
1167          */
1168         virtual Model::DescribeProductsOutcomeCallable DescribeProductsCallable(const Model::DescribeProductsRequest& request) const;
1169 
1170         /**
1171          * <p>Returns information about product integrations in Security Hub.</p> <p>You
1172          * can optionally provide an integration ARN. If you provide an integration ARN,
1173          * then the results only include that integration.</p> <p>If you do not provide an
1174          * integration ARN, then the results include all of the available product
1175          * integrations. </p><p><h3>See Also:</h3>   <a
1176          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DescribeProducts">AWS
1177          * API Reference</a></p>
1178          *
1179          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1180          */
1181         virtual void DescribeProductsAsync(const Model::DescribeProductsRequest& request, const DescribeProductsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1182 
1183         /**
1184          * <p>Returns a list of the available standards in Security Hub.</p> <p>For each
1185          * standard, the results include the standard ARN, the name, and a description.
1186          * </p><p><h3>See Also:</h3>   <a
1187          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DescribeStandards">AWS
1188          * API Reference</a></p>
1189          */
1190         virtual Model::DescribeStandardsOutcome DescribeStandards(const Model::DescribeStandardsRequest& request) const;
1191 
1192         /**
1193          * <p>Returns a list of the available standards in Security Hub.</p> <p>For each
1194          * standard, the results include the standard ARN, the name, and a description.
1195          * </p><p><h3>See Also:</h3>   <a
1196          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DescribeStandards">AWS
1197          * API Reference</a></p>
1198          *
1199          * returns a future to the operation so that it can be executed in parallel to other requests.
1200          */
1201         virtual Model::DescribeStandardsOutcomeCallable DescribeStandardsCallable(const Model::DescribeStandardsRequest& request) const;
1202 
1203         /**
1204          * <p>Returns a list of the available standards in Security Hub.</p> <p>For each
1205          * standard, the results include the standard ARN, the name, and a description.
1206          * </p><p><h3>See Also:</h3>   <a
1207          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DescribeStandards">AWS
1208          * API Reference</a></p>
1209          *
1210          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1211          */
1212         virtual void DescribeStandardsAsync(const Model::DescribeStandardsRequest& request, const DescribeStandardsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1213 
1214         /**
1215          * <p>Returns a list of security standards controls.</p> <p>For each control, the
1216          * results include information about whether it is currently enabled, the severity,
1217          * and a link to remediation information.</p><p><h3>See Also:</h3>   <a
1218          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DescribeStandardsControls">AWS
1219          * API Reference</a></p>
1220          */
1221         virtual Model::DescribeStandardsControlsOutcome DescribeStandardsControls(const Model::DescribeStandardsControlsRequest& request) const;
1222 
1223         /**
1224          * <p>Returns a list of security standards controls.</p> <p>For each control, the
1225          * results include information about whether it is currently enabled, the severity,
1226          * and a link to remediation information.</p><p><h3>See Also:</h3>   <a
1227          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DescribeStandardsControls">AWS
1228          * API Reference</a></p>
1229          *
1230          * returns a future to the operation so that it can be executed in parallel to other requests.
1231          */
1232         virtual Model::DescribeStandardsControlsOutcomeCallable DescribeStandardsControlsCallable(const Model::DescribeStandardsControlsRequest& request) const;
1233 
1234         /**
1235          * <p>Returns a list of security standards controls.</p> <p>For each control, the
1236          * results include information about whether it is currently enabled, the severity,
1237          * and a link to remediation information.</p><p><h3>See Also:</h3>   <a
1238          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DescribeStandardsControls">AWS
1239          * API Reference</a></p>
1240          *
1241          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1242          */
1243         virtual void DescribeStandardsControlsAsync(const Model::DescribeStandardsControlsRequest& request, const DescribeStandardsControlsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1244 
1245         /**
1246          * <p>Disables the integration of the specified product with Security Hub. After
1247          * the integration is disabled, findings from that product are no longer sent to
1248          * Security Hub.</p><p><h3>See Also:</h3>   <a
1249          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DisableImportFindingsForProduct">AWS
1250          * API Reference</a></p>
1251          */
1252         virtual Model::DisableImportFindingsForProductOutcome DisableImportFindingsForProduct(const Model::DisableImportFindingsForProductRequest& request) const;
1253 
1254         /**
1255          * <p>Disables the integration of the specified product with Security Hub. After
1256          * the integration is disabled, findings from that product are no longer sent to
1257          * Security Hub.</p><p><h3>See Also:</h3>   <a
1258          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DisableImportFindingsForProduct">AWS
1259          * API Reference</a></p>
1260          *
1261          * returns a future to the operation so that it can be executed in parallel to other requests.
1262          */
1263         virtual Model::DisableImportFindingsForProductOutcomeCallable DisableImportFindingsForProductCallable(const Model::DisableImportFindingsForProductRequest& request) const;
1264 
1265         /**
1266          * <p>Disables the integration of the specified product with Security Hub. After
1267          * the integration is disabled, findings from that product are no longer sent to
1268          * Security Hub.</p><p><h3>See Also:</h3>   <a
1269          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DisableImportFindingsForProduct">AWS
1270          * API Reference</a></p>
1271          *
1272          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1273          */
1274         virtual void DisableImportFindingsForProductAsync(const Model::DisableImportFindingsForProductRequest& request, const DisableImportFindingsForProductResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1275 
1276         /**
1277          * <p>Disables a Security Hub administrator account. Can only be called by the
1278          * organization management account.</p><p><h3>See Also:</h3>   <a
1279          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DisableOrganizationAdminAccount">AWS
1280          * API Reference</a></p>
1281          */
1282         virtual Model::DisableOrganizationAdminAccountOutcome DisableOrganizationAdminAccount(const Model::DisableOrganizationAdminAccountRequest& request) const;
1283 
1284         /**
1285          * <p>Disables a Security Hub administrator account. Can only be called by the
1286          * organization management account.</p><p><h3>See Also:</h3>   <a
1287          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DisableOrganizationAdminAccount">AWS
1288          * API Reference</a></p>
1289          *
1290          * returns a future to the operation so that it can be executed in parallel to other requests.
1291          */
1292         virtual Model::DisableOrganizationAdminAccountOutcomeCallable DisableOrganizationAdminAccountCallable(const Model::DisableOrganizationAdminAccountRequest& request) const;
1293 
1294         /**
1295          * <p>Disables a Security Hub administrator account. Can only be called by the
1296          * organization management account.</p><p><h3>See Also:</h3>   <a
1297          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DisableOrganizationAdminAccount">AWS
1298          * API Reference</a></p>
1299          *
1300          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1301          */
1302         virtual void DisableOrganizationAdminAccountAsync(const Model::DisableOrganizationAdminAccountRequest& request, const DisableOrganizationAdminAccountResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1303 
1304         /**
1305          * <p>Disables Security Hub in your account only in the current Region. To disable
1306          * Security Hub in all Regions, you must submit one request per Region where you
1307          * have enabled Security Hub.</p> <p>When you disable Security Hub for an
1308          * administrator account, it doesn't disable Security Hub for any associated member
1309          * accounts.</p> <p>When you disable Security Hub, your existing findings and
1310          * insights and any Security Hub configuration settings are deleted after 90 days
1311          * and cannot be recovered. Any standards that were enabled are disabled, and your
1312          * administrator and member account associations are removed.</p> <p>If you want to
1313          * save your existing findings, you must export them before you disable Security
1314          * Hub.</p><p><h3>See Also:</h3>   <a
1315          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DisableSecurityHub">AWS
1316          * API Reference</a></p>
1317          */
1318         virtual Model::DisableSecurityHubOutcome DisableSecurityHub(const Model::DisableSecurityHubRequest& request) const;
1319 
1320         /**
1321          * <p>Disables Security Hub in your account only in the current Region. To disable
1322          * Security Hub in all Regions, you must submit one request per Region where you
1323          * have enabled Security Hub.</p> <p>When you disable Security Hub for an
1324          * administrator account, it doesn't disable Security Hub for any associated member
1325          * accounts.</p> <p>When you disable Security Hub, your existing findings and
1326          * insights and any Security Hub configuration settings are deleted after 90 days
1327          * and cannot be recovered. Any standards that were enabled are disabled, and your
1328          * administrator and member account associations are removed.</p> <p>If you want to
1329          * save your existing findings, you must export them before you disable Security
1330          * Hub.</p><p><h3>See Also:</h3>   <a
1331          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DisableSecurityHub">AWS
1332          * API Reference</a></p>
1333          *
1334          * returns a future to the operation so that it can be executed in parallel to other requests.
1335          */
1336         virtual Model::DisableSecurityHubOutcomeCallable DisableSecurityHubCallable(const Model::DisableSecurityHubRequest& request) const;
1337 
1338         /**
1339          * <p>Disables Security Hub in your account only in the current Region. To disable
1340          * Security Hub in all Regions, you must submit one request per Region where you
1341          * have enabled Security Hub.</p> <p>When you disable Security Hub for an
1342          * administrator account, it doesn't disable Security Hub for any associated member
1343          * accounts.</p> <p>When you disable Security Hub, your existing findings and
1344          * insights and any Security Hub configuration settings are deleted after 90 days
1345          * and cannot be recovered. Any standards that were enabled are disabled, and your
1346          * administrator and member account associations are removed.</p> <p>If you want to
1347          * save your existing findings, you must export them before you disable Security
1348          * Hub.</p><p><h3>See Also:</h3>   <a
1349          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DisableSecurityHub">AWS
1350          * API Reference</a></p>
1351          *
1352          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1353          */
1354         virtual void DisableSecurityHubAsync(const Model::DisableSecurityHubRequest& request, const DisableSecurityHubResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1355 
1356         /**
1357          * <p>Disassociates the current Security Hub member account from the associated
1358          * administrator account.</p> <p>This operation is only used by accounts that are
1359          * not part of an organization. For organization accounts, only the administrator
1360          * account can disassociate a member account.</p><p><h3>See Also:</h3>   <a
1361          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DisassociateFromAdministratorAccount">AWS
1362          * API Reference</a></p>
1363          */
1364         virtual Model::DisassociateFromAdministratorAccountOutcome DisassociateFromAdministratorAccount(const Model::DisassociateFromAdministratorAccountRequest& request) const;
1365 
1366         /**
1367          * <p>Disassociates the current Security Hub member account from the associated
1368          * administrator account.</p> <p>This operation is only used by accounts that are
1369          * not part of an organization. For organization accounts, only the administrator
1370          * account can disassociate a member account.</p><p><h3>See Also:</h3>   <a
1371          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DisassociateFromAdministratorAccount">AWS
1372          * API Reference</a></p>
1373          *
1374          * returns a future to the operation so that it can be executed in parallel to other requests.
1375          */
1376         virtual Model::DisassociateFromAdministratorAccountOutcomeCallable DisassociateFromAdministratorAccountCallable(const Model::DisassociateFromAdministratorAccountRequest& request) const;
1377 
1378         /**
1379          * <p>Disassociates the current Security Hub member account from the associated
1380          * administrator account.</p> <p>This operation is only used by accounts that are
1381          * not part of an organization. For organization accounts, only the administrator
1382          * account can disassociate a member account.</p><p><h3>See Also:</h3>   <a
1383          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DisassociateFromAdministratorAccount">AWS
1384          * API Reference</a></p>
1385          *
1386          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1387          */
1388         virtual void DisassociateFromAdministratorAccountAsync(const Model::DisassociateFromAdministratorAccountRequest& request, const DisassociateFromAdministratorAccountResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1389 
1390         /**
1391          * <p>Disassociates the specified member accounts from the associated administrator
1392          * account.</p> <p>Can be used to disassociate both accounts that are managed using
1393          * Organizations and accounts that were invited manually.</p><p><h3>See Also:</h3>
1394          * <a
1395          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DisassociateMembers">AWS
1396          * API Reference</a></p>
1397          */
1398         virtual Model::DisassociateMembersOutcome DisassociateMembers(const Model::DisassociateMembersRequest& request) const;
1399 
1400         /**
1401          * <p>Disassociates the specified member accounts from the associated administrator
1402          * account.</p> <p>Can be used to disassociate both accounts that are managed using
1403          * Organizations and accounts that were invited manually.</p><p><h3>See Also:</h3>
1404          * <a
1405          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DisassociateMembers">AWS
1406          * API Reference</a></p>
1407          *
1408          * returns a future to the operation so that it can be executed in parallel to other requests.
1409          */
1410         virtual Model::DisassociateMembersOutcomeCallable DisassociateMembersCallable(const Model::DisassociateMembersRequest& request) const;
1411 
1412         /**
1413          * <p>Disassociates the specified member accounts from the associated administrator
1414          * account.</p> <p>Can be used to disassociate both accounts that are managed using
1415          * Organizations and accounts that were invited manually.</p><p><h3>See Also:</h3>
1416          * <a
1417          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/DisassociateMembers">AWS
1418          * API Reference</a></p>
1419          *
1420          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1421          */
1422         virtual void DisassociateMembersAsync(const Model::DisassociateMembersRequest& request, const DisassociateMembersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1423 
1424         /**
1425          * <p>Enables the integration of a partner product with Security Hub. Integrated
1426          * products send findings to Security Hub.</p> <p>When you enable a product
1427          * integration, a permissions policy that grants permission for the product to send
1428          * findings to Security Hub is applied.</p><p><h3>See Also:</h3>   <a
1429          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/EnableImportFindingsForProduct">AWS
1430          * API Reference</a></p>
1431          */
1432         virtual Model::EnableImportFindingsForProductOutcome EnableImportFindingsForProduct(const Model::EnableImportFindingsForProductRequest& request) const;
1433 
1434         /**
1435          * <p>Enables the integration of a partner product with Security Hub. Integrated
1436          * products send findings to Security Hub.</p> <p>When you enable a product
1437          * integration, a permissions policy that grants permission for the product to send
1438          * findings to Security Hub is applied.</p><p><h3>See Also:</h3>   <a
1439          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/EnableImportFindingsForProduct">AWS
1440          * API Reference</a></p>
1441          *
1442          * returns a future to the operation so that it can be executed in parallel to other requests.
1443          */
1444         virtual Model::EnableImportFindingsForProductOutcomeCallable EnableImportFindingsForProductCallable(const Model::EnableImportFindingsForProductRequest& request) const;
1445 
1446         /**
1447          * <p>Enables the integration of a partner product with Security Hub. Integrated
1448          * products send findings to Security Hub.</p> <p>When you enable a product
1449          * integration, a permissions policy that grants permission for the product to send
1450          * findings to Security Hub is applied.</p><p><h3>See Also:</h3>   <a
1451          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/EnableImportFindingsForProduct">AWS
1452          * API Reference</a></p>
1453          *
1454          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1455          */
1456         virtual void EnableImportFindingsForProductAsync(const Model::EnableImportFindingsForProductRequest& request, const EnableImportFindingsForProductResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1457 
1458         /**
1459          * <p>Designates the Security Hub administrator account for an organization. Can
1460          * only be called by the organization management account.</p><p><h3>See Also:</h3>
1461          * <a
1462          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/EnableOrganizationAdminAccount">AWS
1463          * API Reference</a></p>
1464          */
1465         virtual Model::EnableOrganizationAdminAccountOutcome EnableOrganizationAdminAccount(const Model::EnableOrganizationAdminAccountRequest& request) const;
1466 
1467         /**
1468          * <p>Designates the Security Hub administrator account for an organization. Can
1469          * only be called by the organization management account.</p><p><h3>See Also:</h3>
1470          * <a
1471          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/EnableOrganizationAdminAccount">AWS
1472          * API Reference</a></p>
1473          *
1474          * returns a future to the operation so that it can be executed in parallel to other requests.
1475          */
1476         virtual Model::EnableOrganizationAdminAccountOutcomeCallable EnableOrganizationAdminAccountCallable(const Model::EnableOrganizationAdminAccountRequest& request) const;
1477 
1478         /**
1479          * <p>Designates the Security Hub administrator account for an organization. Can
1480          * only be called by the organization management account.</p><p><h3>See Also:</h3>
1481          * <a
1482          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/EnableOrganizationAdminAccount">AWS
1483          * API Reference</a></p>
1484          *
1485          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1486          */
1487         virtual void EnableOrganizationAdminAccountAsync(const Model::EnableOrganizationAdminAccountRequest& request, const EnableOrganizationAdminAccountResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1488 
1489         /**
1490          * <p>Enables Security Hub for your account in the current Region or the Region you
1491          * specify in the request.</p> <p>When you enable Security Hub, you grant to
1492          * Security Hub the permissions necessary to gather findings from other services
1493          * that are integrated with Security Hub.</p> <p>When you use the
1494          * <code>EnableSecurityHub</code> operation to enable Security Hub, you also
1495          * automatically enable the following standards.</p> <ul> <li> <p>CIS Amazon Web
1496          * Services Foundations</p> </li> <li> <p>Amazon Web Services Foundational Security
1497          * Best Practices</p> </li> </ul> <p>You do not enable the Payment Card Industry
1498          * Data Security Standard (PCI DSS) standard. </p> <p>To not enable the
1499          * automatically enabled standards, set <code>EnableDefaultStandards</code> to
1500          * <code>false</code>.</p> <p>After you enable Security Hub, to enable a standard,
1501          * use the <code>BatchEnableStandards</code> operation. To disable a standard, use
1502          * the <code>BatchDisableStandards</code> operation.</p> <p>To learn more, see the
1503          * <a
1504          * href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-settingup.html">setup
1505          * information</a> in the <i>Security Hub User Guide</i>.</p><p><h3>See Also:</h3>
1506          * <a
1507          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/EnableSecurityHub">AWS
1508          * API Reference</a></p>
1509          */
1510         virtual Model::EnableSecurityHubOutcome EnableSecurityHub(const Model::EnableSecurityHubRequest& request) const;
1511 
1512         /**
1513          * <p>Enables Security Hub for your account in the current Region or the Region you
1514          * specify in the request.</p> <p>When you enable Security Hub, you grant to
1515          * Security Hub the permissions necessary to gather findings from other services
1516          * that are integrated with Security Hub.</p> <p>When you use the
1517          * <code>EnableSecurityHub</code> operation to enable Security Hub, you also
1518          * automatically enable the following standards.</p> <ul> <li> <p>CIS Amazon Web
1519          * Services Foundations</p> </li> <li> <p>Amazon Web Services Foundational Security
1520          * Best Practices</p> </li> </ul> <p>You do not enable the Payment Card Industry
1521          * Data Security Standard (PCI DSS) standard. </p> <p>To not enable the
1522          * automatically enabled standards, set <code>EnableDefaultStandards</code> to
1523          * <code>false</code>.</p> <p>After you enable Security Hub, to enable a standard,
1524          * use the <code>BatchEnableStandards</code> operation. To disable a standard, use
1525          * the <code>BatchDisableStandards</code> operation.</p> <p>To learn more, see the
1526          * <a
1527          * href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-settingup.html">setup
1528          * information</a> in the <i>Security Hub User Guide</i>.</p><p><h3>See Also:</h3>
1529          * <a
1530          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/EnableSecurityHub">AWS
1531          * API Reference</a></p>
1532          *
1533          * returns a future to the operation so that it can be executed in parallel to other requests.
1534          */
1535         virtual Model::EnableSecurityHubOutcomeCallable EnableSecurityHubCallable(const Model::EnableSecurityHubRequest& request) const;
1536 
1537         /**
1538          * <p>Enables Security Hub for your account in the current Region or the Region you
1539          * specify in the request.</p> <p>When you enable Security Hub, you grant to
1540          * Security Hub the permissions necessary to gather findings from other services
1541          * that are integrated with Security Hub.</p> <p>When you use the
1542          * <code>EnableSecurityHub</code> operation to enable Security Hub, you also
1543          * automatically enable the following standards.</p> <ul> <li> <p>CIS Amazon Web
1544          * Services Foundations</p> </li> <li> <p>Amazon Web Services Foundational Security
1545          * Best Practices</p> </li> </ul> <p>You do not enable the Payment Card Industry
1546          * Data Security Standard (PCI DSS) standard. </p> <p>To not enable the
1547          * automatically enabled standards, set <code>EnableDefaultStandards</code> to
1548          * <code>false</code>.</p> <p>After you enable Security Hub, to enable a standard,
1549          * use the <code>BatchEnableStandards</code> operation. To disable a standard, use
1550          * the <code>BatchDisableStandards</code> operation.</p> <p>To learn more, see the
1551          * <a
1552          * href="https://docs.aws.amazon.com/securityhub/latest/userguide/securityhub-settingup.html">setup
1553          * information</a> in the <i>Security Hub User Guide</i>.</p><p><h3>See Also:</h3>
1554          * <a
1555          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/EnableSecurityHub">AWS
1556          * API Reference</a></p>
1557          *
1558          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1559          */
1560         virtual void EnableSecurityHubAsync(const Model::EnableSecurityHubRequest& request, const EnableSecurityHubResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1561 
1562         /**
1563          * <p>Provides the details for the Security Hub administrator account for the
1564          * current member account.</p> <p>Can be used by both member accounts that are
1565          * managed using Organizations and accounts that were invited
1566          * manually.</p><p><h3>See Also:</h3>   <a
1567          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetAdministratorAccount">AWS
1568          * API Reference</a></p>
1569          */
1570         virtual Model::GetAdministratorAccountOutcome GetAdministratorAccount(const Model::GetAdministratorAccountRequest& request) const;
1571 
1572         /**
1573          * <p>Provides the details for the Security Hub administrator account for the
1574          * current member account.</p> <p>Can be used by both member accounts that are
1575          * managed using Organizations and accounts that were invited
1576          * manually.</p><p><h3>See Also:</h3>   <a
1577          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetAdministratorAccount">AWS
1578          * API Reference</a></p>
1579          *
1580          * returns a future to the operation so that it can be executed in parallel to other requests.
1581          */
1582         virtual Model::GetAdministratorAccountOutcomeCallable GetAdministratorAccountCallable(const Model::GetAdministratorAccountRequest& request) const;
1583 
1584         /**
1585          * <p>Provides the details for the Security Hub administrator account for the
1586          * current member account.</p> <p>Can be used by both member accounts that are
1587          * managed using Organizations and accounts that were invited
1588          * manually.</p><p><h3>See Also:</h3>   <a
1589          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetAdministratorAccount">AWS
1590          * API Reference</a></p>
1591          *
1592          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1593          */
1594         virtual void GetAdministratorAccountAsync(const Model::GetAdministratorAccountRequest& request, const GetAdministratorAccountResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1595 
1596         /**
1597          * <p>Returns a list of the standards that are currently enabled.</p><p><h3>See
1598          * Also:</h3>   <a
1599          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetEnabledStandards">AWS
1600          * API Reference</a></p>
1601          */
1602         virtual Model::GetEnabledStandardsOutcome GetEnabledStandards(const Model::GetEnabledStandardsRequest& request) const;
1603 
1604         /**
1605          * <p>Returns a list of the standards that are currently enabled.</p><p><h3>See
1606          * Also:</h3>   <a
1607          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetEnabledStandards">AWS
1608          * API Reference</a></p>
1609          *
1610          * returns a future to the operation so that it can be executed in parallel to other requests.
1611          */
1612         virtual Model::GetEnabledStandardsOutcomeCallable GetEnabledStandardsCallable(const Model::GetEnabledStandardsRequest& request) const;
1613 
1614         /**
1615          * <p>Returns a list of the standards that are currently enabled.</p><p><h3>See
1616          * Also:</h3>   <a
1617          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetEnabledStandards">AWS
1618          * API Reference</a></p>
1619          *
1620          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1621          */
1622         virtual void GetEnabledStandardsAsync(const Model::GetEnabledStandardsRequest& request, const GetEnabledStandardsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1623 
1624         /**
1625          * <p>Returns the current finding aggregation configuration.</p><p><h3>See
1626          * Also:</h3>   <a
1627          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetFindingAggregator">AWS
1628          * API Reference</a></p>
1629          */
1630         virtual Model::GetFindingAggregatorOutcome GetFindingAggregator(const Model::GetFindingAggregatorRequest& request) const;
1631 
1632         /**
1633          * <p>Returns the current finding aggregation configuration.</p><p><h3>See
1634          * Also:</h3>   <a
1635          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetFindingAggregator">AWS
1636          * API Reference</a></p>
1637          *
1638          * returns a future to the operation so that it can be executed in parallel to other requests.
1639          */
1640         virtual Model::GetFindingAggregatorOutcomeCallable GetFindingAggregatorCallable(const Model::GetFindingAggregatorRequest& request) const;
1641 
1642         /**
1643          * <p>Returns the current finding aggregation configuration.</p><p><h3>See
1644          * Also:</h3>   <a
1645          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetFindingAggregator">AWS
1646          * API Reference</a></p>
1647          *
1648          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1649          */
1650         virtual void GetFindingAggregatorAsync(const Model::GetFindingAggregatorRequest& request, const GetFindingAggregatorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1651 
1652         /**
1653          * <p>Returns a list of findings that match the specified criteria.</p> <p>If
1654          * finding aggregation is enabled, then when you call <code>GetFindings</code> from
1655          * the aggregation Region, the results include all of the matching findings from
1656          * both the aggregation Region and the linked Regions.</p><p><h3>See Also:</h3>
1657          * <a
1658          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetFindings">AWS
1659          * API Reference</a></p>
1660          */
1661         virtual Model::GetFindingsOutcome GetFindings(const Model::GetFindingsRequest& request) const;
1662 
1663         /**
1664          * <p>Returns a list of findings that match the specified criteria.</p> <p>If
1665          * finding aggregation is enabled, then when you call <code>GetFindings</code> from
1666          * the aggregation Region, the results include all of the matching findings from
1667          * both the aggregation Region and the linked Regions.</p><p><h3>See Also:</h3>
1668          * <a
1669          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetFindings">AWS
1670          * API Reference</a></p>
1671          *
1672          * returns a future to the operation so that it can be executed in parallel to other requests.
1673          */
1674         virtual Model::GetFindingsOutcomeCallable GetFindingsCallable(const Model::GetFindingsRequest& request) const;
1675 
1676         /**
1677          * <p>Returns a list of findings that match the specified criteria.</p> <p>If
1678          * finding aggregation is enabled, then when you call <code>GetFindings</code> from
1679          * the aggregation Region, the results include all of the matching findings from
1680          * both the aggregation Region and the linked Regions.</p><p><h3>See Also:</h3>
1681          * <a
1682          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetFindings">AWS
1683          * API Reference</a></p>
1684          *
1685          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1686          */
1687         virtual void GetFindingsAsync(const Model::GetFindingsRequest& request, const GetFindingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1688 
1689         /**
1690          * <p>Lists the results of the Security Hub insight specified by the insight
1691          * ARN.</p><p><h3>See Also:</h3>   <a
1692          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetInsightResults">AWS
1693          * API Reference</a></p>
1694          */
1695         virtual Model::GetInsightResultsOutcome GetInsightResults(const Model::GetInsightResultsRequest& request) const;
1696 
1697         /**
1698          * <p>Lists the results of the Security Hub insight specified by the insight
1699          * ARN.</p><p><h3>See Also:</h3>   <a
1700          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetInsightResults">AWS
1701          * API Reference</a></p>
1702          *
1703          * returns a future to the operation so that it can be executed in parallel to other requests.
1704          */
1705         virtual Model::GetInsightResultsOutcomeCallable GetInsightResultsCallable(const Model::GetInsightResultsRequest& request) const;
1706 
1707         /**
1708          * <p>Lists the results of the Security Hub insight specified by the insight
1709          * ARN.</p><p><h3>See Also:</h3>   <a
1710          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetInsightResults">AWS
1711          * API Reference</a></p>
1712          *
1713          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1714          */
1715         virtual void GetInsightResultsAsync(const Model::GetInsightResultsRequest& request, const GetInsightResultsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1716 
1717         /**
1718          * <p>Lists and describes insights for the specified insight ARNs.</p><p><h3>See
1719          * Also:</h3>   <a
1720          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetInsights">AWS
1721          * API Reference</a></p>
1722          */
1723         virtual Model::GetInsightsOutcome GetInsights(const Model::GetInsightsRequest& request) const;
1724 
1725         /**
1726          * <p>Lists and describes insights for the specified insight ARNs.</p><p><h3>See
1727          * Also:</h3>   <a
1728          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetInsights">AWS
1729          * API Reference</a></p>
1730          *
1731          * returns a future to the operation so that it can be executed in parallel to other requests.
1732          */
1733         virtual Model::GetInsightsOutcomeCallable GetInsightsCallable(const Model::GetInsightsRequest& request) const;
1734 
1735         /**
1736          * <p>Lists and describes insights for the specified insight ARNs.</p><p><h3>See
1737          * Also:</h3>   <a
1738          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetInsights">AWS
1739          * API Reference</a></p>
1740          *
1741          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1742          */
1743         virtual void GetInsightsAsync(const Model::GetInsightsRequest& request, const GetInsightsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1744 
1745         /**
1746          * <p>Returns the count of all Security Hub membership invitations that were sent
1747          * to the current member account, not including the currently accepted invitation.
1748          * </p><p><h3>See Also:</h3>   <a
1749          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetInvitationsCount">AWS
1750          * API Reference</a></p>
1751          */
1752         virtual Model::GetInvitationsCountOutcome GetInvitationsCount(const Model::GetInvitationsCountRequest& request) const;
1753 
1754         /**
1755          * <p>Returns the count of all Security Hub membership invitations that were sent
1756          * to the current member account, not including the currently accepted invitation.
1757          * </p><p><h3>See Also:</h3>   <a
1758          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetInvitationsCount">AWS
1759          * API Reference</a></p>
1760          *
1761          * returns a future to the operation so that it can be executed in parallel to other requests.
1762          */
1763         virtual Model::GetInvitationsCountOutcomeCallable GetInvitationsCountCallable(const Model::GetInvitationsCountRequest& request) const;
1764 
1765         /**
1766          * <p>Returns the count of all Security Hub membership invitations that were sent
1767          * to the current member account, not including the currently accepted invitation.
1768          * </p><p><h3>See Also:</h3>   <a
1769          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetInvitationsCount">AWS
1770          * API Reference</a></p>
1771          *
1772          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1773          */
1774         virtual void GetInvitationsCountAsync(const Model::GetInvitationsCountRequest& request, const GetInvitationsCountResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1775 
1776         /**
1777          * <p>Returns the details for the Security Hub member accounts for the specified
1778          * account IDs.</p> <p>An administrator account can be either the delegated
1779          * Security Hub administrator account for an organization or an administrator
1780          * account that enabled Security Hub manually.</p> <p>The results include both
1781          * member accounts that are managed using Organizations and accounts that were
1782          * invited manually.</p><p><h3>See Also:</h3>   <a
1783          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetMembers">AWS
1784          * API Reference</a></p>
1785          */
1786         virtual Model::GetMembersOutcome GetMembers(const Model::GetMembersRequest& request) const;
1787 
1788         /**
1789          * <p>Returns the details for the Security Hub member accounts for the specified
1790          * account IDs.</p> <p>An administrator account can be either the delegated
1791          * Security Hub administrator account for an organization or an administrator
1792          * account that enabled Security Hub manually.</p> <p>The results include both
1793          * member accounts that are managed using Organizations and accounts that were
1794          * invited manually.</p><p><h3>See Also:</h3>   <a
1795          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetMembers">AWS
1796          * API Reference</a></p>
1797          *
1798          * returns a future to the operation so that it can be executed in parallel to other requests.
1799          */
1800         virtual Model::GetMembersOutcomeCallable GetMembersCallable(const Model::GetMembersRequest& request) const;
1801 
1802         /**
1803          * <p>Returns the details for the Security Hub member accounts for the specified
1804          * account IDs.</p> <p>An administrator account can be either the delegated
1805          * Security Hub administrator account for an organization or an administrator
1806          * account that enabled Security Hub manually.</p> <p>The results include both
1807          * member accounts that are managed using Organizations and accounts that were
1808          * invited manually.</p><p><h3>See Also:</h3>   <a
1809          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/GetMembers">AWS
1810          * API Reference</a></p>
1811          *
1812          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1813          */
1814         virtual void GetMembersAsync(const Model::GetMembersRequest& request, const GetMembersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1815 
1816         /**
1817          * <p>Invites other Amazon Web Services accounts to become member accounts for the
1818          * Security Hub administrator account that the invitation is sent from.</p> <p>This
1819          * operation is only used to invite accounts that do not belong to an organization.
1820          * Organization accounts do not receive invitations.</p> <p>Before you can use this
1821          * action to invite a member, you must first use the <code>CreateMembers</code>
1822          * action to create the member account in Security Hub.</p> <p>When the account
1823          * owner enables Security Hub and accepts the invitation to become a member
1824          * account, the administrator account can view the findings generated from the
1825          * member account.</p><p><h3>See Also:</h3>   <a
1826          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/InviteMembers">AWS
1827          * API Reference</a></p>
1828          */
1829         virtual Model::InviteMembersOutcome InviteMembers(const Model::InviteMembersRequest& request) const;
1830 
1831         /**
1832          * <p>Invites other Amazon Web Services accounts to become member accounts for the
1833          * Security Hub administrator account that the invitation is sent from.</p> <p>This
1834          * operation is only used to invite accounts that do not belong to an organization.
1835          * Organization accounts do not receive invitations.</p> <p>Before you can use this
1836          * action to invite a member, you must first use the <code>CreateMembers</code>
1837          * action to create the member account in Security Hub.</p> <p>When the account
1838          * owner enables Security Hub and accepts the invitation to become a member
1839          * account, the administrator account can view the findings generated from the
1840          * member account.</p><p><h3>See Also:</h3>   <a
1841          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/InviteMembers">AWS
1842          * API Reference</a></p>
1843          *
1844          * returns a future to the operation so that it can be executed in parallel to other requests.
1845          */
1846         virtual Model::InviteMembersOutcomeCallable InviteMembersCallable(const Model::InviteMembersRequest& request) const;
1847 
1848         /**
1849          * <p>Invites other Amazon Web Services accounts to become member accounts for the
1850          * Security Hub administrator account that the invitation is sent from.</p> <p>This
1851          * operation is only used to invite accounts that do not belong to an organization.
1852          * Organization accounts do not receive invitations.</p> <p>Before you can use this
1853          * action to invite a member, you must first use the <code>CreateMembers</code>
1854          * action to create the member account in Security Hub.</p> <p>When the account
1855          * owner enables Security Hub and accepts the invitation to become a member
1856          * account, the administrator account can view the findings generated from the
1857          * member account.</p><p><h3>See Also:</h3>   <a
1858          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/InviteMembers">AWS
1859          * API Reference</a></p>
1860          *
1861          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1862          */
1863         virtual void InviteMembersAsync(const Model::InviteMembersRequest& request, const InviteMembersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1864 
1865         /**
1866          * <p>Lists all findings-generating solutions (products) that you are subscribed to
1867          * receive findings from in Security Hub.</p><p><h3>See Also:</h3>   <a
1868          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ListEnabledProductsForImport">AWS
1869          * API Reference</a></p>
1870          */
1871         virtual Model::ListEnabledProductsForImportOutcome ListEnabledProductsForImport(const Model::ListEnabledProductsForImportRequest& request) const;
1872 
1873         /**
1874          * <p>Lists all findings-generating solutions (products) that you are subscribed to
1875          * receive findings from in Security Hub.</p><p><h3>See Also:</h3>   <a
1876          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ListEnabledProductsForImport">AWS
1877          * API Reference</a></p>
1878          *
1879          * returns a future to the operation so that it can be executed in parallel to other requests.
1880          */
1881         virtual Model::ListEnabledProductsForImportOutcomeCallable ListEnabledProductsForImportCallable(const Model::ListEnabledProductsForImportRequest& request) const;
1882 
1883         /**
1884          * <p>Lists all findings-generating solutions (products) that you are subscribed to
1885          * receive findings from in Security Hub.</p><p><h3>See Also:</h3>   <a
1886          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ListEnabledProductsForImport">AWS
1887          * API Reference</a></p>
1888          *
1889          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1890          */
1891         virtual void ListEnabledProductsForImportAsync(const Model::ListEnabledProductsForImportRequest& request, const ListEnabledProductsForImportResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1892 
1893         /**
1894          * <p>If finding aggregation is enabled, then <code>ListFindingAggregators</code>
1895          * returns the ARN of the finding aggregator. You can run this operation from any
1896          * Region.</p><p><h3>See Also:</h3>   <a
1897          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ListFindingAggregators">AWS
1898          * API Reference</a></p>
1899          */
1900         virtual Model::ListFindingAggregatorsOutcome ListFindingAggregators(const Model::ListFindingAggregatorsRequest& request) const;
1901 
1902         /**
1903          * <p>If finding aggregation is enabled, then <code>ListFindingAggregators</code>
1904          * returns the ARN of the finding aggregator. You can run this operation from any
1905          * Region.</p><p><h3>See Also:</h3>   <a
1906          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ListFindingAggregators">AWS
1907          * API Reference</a></p>
1908          *
1909          * returns a future to the operation so that it can be executed in parallel to other requests.
1910          */
1911         virtual Model::ListFindingAggregatorsOutcomeCallable ListFindingAggregatorsCallable(const Model::ListFindingAggregatorsRequest& request) const;
1912 
1913         /**
1914          * <p>If finding aggregation is enabled, then <code>ListFindingAggregators</code>
1915          * returns the ARN of the finding aggregator. You can run this operation from any
1916          * Region.</p><p><h3>See Also:</h3>   <a
1917          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ListFindingAggregators">AWS
1918          * API Reference</a></p>
1919          *
1920          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1921          */
1922         virtual void ListFindingAggregatorsAsync(const Model::ListFindingAggregatorsRequest& request, const ListFindingAggregatorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1923 
1924         /**
1925          * <p>Lists all Security Hub membership invitations that were sent to the current
1926          * Amazon Web Services account.</p> <p>This operation is only used by accounts that
1927          * are managed by invitation. Accounts that are managed using the integration with
1928          * Organizations do not receive invitations.</p><p><h3>See Also:</h3>   <a
1929          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ListInvitations">AWS
1930          * API Reference</a></p>
1931          */
1932         virtual Model::ListInvitationsOutcome ListInvitations(const Model::ListInvitationsRequest& request) const;
1933 
1934         /**
1935          * <p>Lists all Security Hub membership invitations that were sent to the current
1936          * Amazon Web Services account.</p> <p>This operation is only used by accounts that
1937          * are managed by invitation. Accounts that are managed using the integration with
1938          * Organizations do not receive invitations.</p><p><h3>See Also:</h3>   <a
1939          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ListInvitations">AWS
1940          * API Reference</a></p>
1941          *
1942          * returns a future to the operation so that it can be executed in parallel to other requests.
1943          */
1944         virtual Model::ListInvitationsOutcomeCallable ListInvitationsCallable(const Model::ListInvitationsRequest& request) const;
1945 
1946         /**
1947          * <p>Lists all Security Hub membership invitations that were sent to the current
1948          * Amazon Web Services account.</p> <p>This operation is only used by accounts that
1949          * are managed by invitation. Accounts that are managed using the integration with
1950          * Organizations do not receive invitations.</p><p><h3>See Also:</h3>   <a
1951          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ListInvitations">AWS
1952          * API Reference</a></p>
1953          *
1954          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1955          */
1956         virtual void ListInvitationsAsync(const Model::ListInvitationsRequest& request, const ListInvitationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1957 
1958         /**
1959          * <p>Lists details about all member accounts for the current Security Hub
1960          * administrator account.</p> <p>The results include both member accounts that
1961          * belong to an organization and member accounts that were invited
1962          * manually.</p><p><h3>See Also:</h3>   <a
1963          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ListMembers">AWS
1964          * API Reference</a></p>
1965          */
1966         virtual Model::ListMembersOutcome ListMembers(const Model::ListMembersRequest& request) const;
1967 
1968         /**
1969          * <p>Lists details about all member accounts for the current Security Hub
1970          * administrator account.</p> <p>The results include both member accounts that
1971          * belong to an organization and member accounts that were invited
1972          * manually.</p><p><h3>See Also:</h3>   <a
1973          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ListMembers">AWS
1974          * API Reference</a></p>
1975          *
1976          * returns a future to the operation so that it can be executed in parallel to other requests.
1977          */
1978         virtual Model::ListMembersOutcomeCallable ListMembersCallable(const Model::ListMembersRequest& request) const;
1979 
1980         /**
1981          * <p>Lists details about all member accounts for the current Security Hub
1982          * administrator account.</p> <p>The results include both member accounts that
1983          * belong to an organization and member accounts that were invited
1984          * manually.</p><p><h3>See Also:</h3>   <a
1985          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ListMembers">AWS
1986          * API Reference</a></p>
1987          *
1988          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1989          */
1990         virtual void ListMembersAsync(const Model::ListMembersRequest& request, const ListMembersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1991 
1992         /**
1993          * <p>Lists the Security Hub administrator accounts. Can only be called by the
1994          * organization management account.</p><p><h3>See Also:</h3>   <a
1995          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ListOrganizationAdminAccounts">AWS
1996          * API Reference</a></p>
1997          */
1998         virtual Model::ListOrganizationAdminAccountsOutcome ListOrganizationAdminAccounts(const Model::ListOrganizationAdminAccountsRequest& request) const;
1999 
2000         /**
2001          * <p>Lists the Security Hub administrator accounts. Can only be called by the
2002          * organization management account.</p><p><h3>See Also:</h3>   <a
2003          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ListOrganizationAdminAccounts">AWS
2004          * API Reference</a></p>
2005          *
2006          * returns a future to the operation so that it can be executed in parallel to other requests.
2007          */
2008         virtual Model::ListOrganizationAdminAccountsOutcomeCallable ListOrganizationAdminAccountsCallable(const Model::ListOrganizationAdminAccountsRequest& request) const;
2009 
2010         /**
2011          * <p>Lists the Security Hub administrator accounts. Can only be called by the
2012          * organization management account.</p><p><h3>See Also:</h3>   <a
2013          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ListOrganizationAdminAccounts">AWS
2014          * API Reference</a></p>
2015          *
2016          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2017          */
2018         virtual void ListOrganizationAdminAccountsAsync(const Model::ListOrganizationAdminAccountsRequest& request, const ListOrganizationAdminAccountsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2019 
2020         /**
2021          * <p>Returns a list of tags associated with a resource.</p><p><h3>See Also:</h3>
2022          * <a
2023          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ListTagsForResource">AWS
2024          * API Reference</a></p>
2025          */
2026         virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const;
2027 
2028         /**
2029          * <p>Returns a list of tags associated with a resource.</p><p><h3>See Also:</h3>
2030          * <a
2031          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ListTagsForResource">AWS
2032          * API Reference</a></p>
2033          *
2034          * returns a future to the operation so that it can be executed in parallel to other requests.
2035          */
2036         virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const;
2037 
2038         /**
2039          * <p>Returns a list of tags associated with a resource.</p><p><h3>See Also:</h3>
2040          * <a
2041          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/ListTagsForResource">AWS
2042          * API Reference</a></p>
2043          *
2044          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2045          */
2046         virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2047 
2048         /**
2049          * <p>Adds one or more tags to a resource.</p><p><h3>See Also:</h3>   <a
2050          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/TagResource">AWS
2051          * API Reference</a></p>
2052          */
2053         virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const;
2054 
2055         /**
2056          * <p>Adds one or more tags to a resource.</p><p><h3>See Also:</h3>   <a
2057          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/TagResource">AWS
2058          * API Reference</a></p>
2059          *
2060          * returns a future to the operation so that it can be executed in parallel to other requests.
2061          */
2062         virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const;
2063 
2064         /**
2065          * <p>Adds one or more tags to a resource.</p><p><h3>See Also:</h3>   <a
2066          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/TagResource">AWS
2067          * API Reference</a></p>
2068          *
2069          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2070          */
2071         virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2072 
2073         /**
2074          * <p>Removes one or more tags from a resource.</p><p><h3>See Also:</h3>   <a
2075          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UntagResource">AWS
2076          * API Reference</a></p>
2077          */
2078         virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const;
2079 
2080         /**
2081          * <p>Removes one or more tags from a resource.</p><p><h3>See Also:</h3>   <a
2082          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UntagResource">AWS
2083          * API Reference</a></p>
2084          *
2085          * returns a future to the operation so that it can be executed in parallel to other requests.
2086          */
2087         virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const;
2088 
2089         /**
2090          * <p>Removes one or more tags from a resource.</p><p><h3>See Also:</h3>   <a
2091          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UntagResource">AWS
2092          * API Reference</a></p>
2093          *
2094          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2095          */
2096         virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2097 
2098         /**
2099          * <p>Updates the name and description of a custom action target in Security
2100          * Hub.</p><p><h3>See Also:</h3>   <a
2101          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UpdateActionTarget">AWS
2102          * API Reference</a></p>
2103          */
2104         virtual Model::UpdateActionTargetOutcome UpdateActionTarget(const Model::UpdateActionTargetRequest& request) const;
2105 
2106         /**
2107          * <p>Updates the name and description of a custom action target in Security
2108          * Hub.</p><p><h3>See Also:</h3>   <a
2109          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UpdateActionTarget">AWS
2110          * API Reference</a></p>
2111          *
2112          * returns a future to the operation so that it can be executed in parallel to other requests.
2113          */
2114         virtual Model::UpdateActionTargetOutcomeCallable UpdateActionTargetCallable(const Model::UpdateActionTargetRequest& request) const;
2115 
2116         /**
2117          * <p>Updates the name and description of a custom action target in Security
2118          * Hub.</p><p><h3>See Also:</h3>   <a
2119          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UpdateActionTarget">AWS
2120          * API Reference</a></p>
2121          *
2122          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2123          */
2124         virtual void UpdateActionTargetAsync(const Model::UpdateActionTargetRequest& request, const UpdateActionTargetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2125 
2126         /**
2127          * <p>Updates the finding aggregation configuration. Used to update the Region
2128          * linking mode and the list of included or excluded Regions. You cannot use
2129          * <code>UpdateFindingAggregator</code> to change the aggregation Region.</p>
2130          * <p>You must run <code>UpdateFindingAggregator</code> from the current
2131          * aggregation Region. </p><p><h3>See Also:</h3>   <a
2132          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UpdateFindingAggregator">AWS
2133          * API Reference</a></p>
2134          */
2135         virtual Model::UpdateFindingAggregatorOutcome UpdateFindingAggregator(const Model::UpdateFindingAggregatorRequest& request) const;
2136 
2137         /**
2138          * <p>Updates the finding aggregation configuration. Used to update the Region
2139          * linking mode and the list of included or excluded Regions. You cannot use
2140          * <code>UpdateFindingAggregator</code> to change the aggregation Region.</p>
2141          * <p>You must run <code>UpdateFindingAggregator</code> from the current
2142          * aggregation Region. </p><p><h3>See Also:</h3>   <a
2143          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UpdateFindingAggregator">AWS
2144          * API Reference</a></p>
2145          *
2146          * returns a future to the operation so that it can be executed in parallel to other requests.
2147          */
2148         virtual Model::UpdateFindingAggregatorOutcomeCallable UpdateFindingAggregatorCallable(const Model::UpdateFindingAggregatorRequest& request) const;
2149 
2150         /**
2151          * <p>Updates the finding aggregation configuration. Used to update the Region
2152          * linking mode and the list of included or excluded Regions. You cannot use
2153          * <code>UpdateFindingAggregator</code> to change the aggregation Region.</p>
2154          * <p>You must run <code>UpdateFindingAggregator</code> from the current
2155          * aggregation Region. </p><p><h3>See Also:</h3>   <a
2156          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UpdateFindingAggregator">AWS
2157          * API Reference</a></p>
2158          *
2159          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2160          */
2161         virtual void UpdateFindingAggregatorAsync(const Model::UpdateFindingAggregatorRequest& request, const UpdateFindingAggregatorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2162 
2163         /**
2164          * <p> <code>UpdateFindings</code> is deprecated. Instead of
2165          * <code>UpdateFindings</code>, use <code>BatchUpdateFindings</code>.</p>
2166          * <p>Updates the <code>Note</code> and <code>RecordState</code> of the Security
2167          * Hub-aggregated findings that the filter attributes specify. Any member account
2168          * that can view the finding also sees the update to the finding.</p><p><h3>See
2169          * Also:</h3>   <a
2170          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UpdateFindings">AWS
2171          * API Reference</a></p>
2172          */
2173         virtual Model::UpdateFindingsOutcome UpdateFindings(const Model::UpdateFindingsRequest& request) const;
2174 
2175         /**
2176          * <p> <code>UpdateFindings</code> is deprecated. Instead of
2177          * <code>UpdateFindings</code>, use <code>BatchUpdateFindings</code>.</p>
2178          * <p>Updates the <code>Note</code> and <code>RecordState</code> of the Security
2179          * Hub-aggregated findings that the filter attributes specify. Any member account
2180          * that can view the finding also sees the update to the finding.</p><p><h3>See
2181          * Also:</h3>   <a
2182          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UpdateFindings">AWS
2183          * API Reference</a></p>
2184          *
2185          * returns a future to the operation so that it can be executed in parallel to other requests.
2186          */
2187         virtual Model::UpdateFindingsOutcomeCallable UpdateFindingsCallable(const Model::UpdateFindingsRequest& request) const;
2188 
2189         /**
2190          * <p> <code>UpdateFindings</code> is deprecated. Instead of
2191          * <code>UpdateFindings</code>, use <code>BatchUpdateFindings</code>.</p>
2192          * <p>Updates the <code>Note</code> and <code>RecordState</code> of the Security
2193          * Hub-aggregated findings that the filter attributes specify. Any member account
2194          * that can view the finding also sees the update to the finding.</p><p><h3>See
2195          * Also:</h3>   <a
2196          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UpdateFindings">AWS
2197          * API Reference</a></p>
2198          *
2199          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2200          */
2201         virtual void UpdateFindingsAsync(const Model::UpdateFindingsRequest& request, const UpdateFindingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2202 
2203         /**
2204          * <p>Updates the Security Hub insight identified by the specified insight
2205          * ARN.</p><p><h3>See Also:</h3>   <a
2206          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UpdateInsight">AWS
2207          * API Reference</a></p>
2208          */
2209         virtual Model::UpdateInsightOutcome UpdateInsight(const Model::UpdateInsightRequest& request) const;
2210 
2211         /**
2212          * <p>Updates the Security Hub insight identified by the specified insight
2213          * ARN.</p><p><h3>See Also:</h3>   <a
2214          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UpdateInsight">AWS
2215          * API Reference</a></p>
2216          *
2217          * returns a future to the operation so that it can be executed in parallel to other requests.
2218          */
2219         virtual Model::UpdateInsightOutcomeCallable UpdateInsightCallable(const Model::UpdateInsightRequest& request) const;
2220 
2221         /**
2222          * <p>Updates the Security Hub insight identified by the specified insight
2223          * ARN.</p><p><h3>See Also:</h3>   <a
2224          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UpdateInsight">AWS
2225          * API Reference</a></p>
2226          *
2227          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2228          */
2229         virtual void UpdateInsightAsync(const Model::UpdateInsightRequest& request, const UpdateInsightResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2230 
2231         /**
2232          * <p>Used to update the configuration related to Organizations. Can only be called
2233          * from a Security Hub administrator account.</p><p><h3>See Also:</h3>   <a
2234          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UpdateOrganizationConfiguration">AWS
2235          * API Reference</a></p>
2236          */
2237         virtual Model::UpdateOrganizationConfigurationOutcome UpdateOrganizationConfiguration(const Model::UpdateOrganizationConfigurationRequest& request) const;
2238 
2239         /**
2240          * <p>Used to update the configuration related to Organizations. Can only be called
2241          * from a Security Hub administrator account.</p><p><h3>See Also:</h3>   <a
2242          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UpdateOrganizationConfiguration">AWS
2243          * API Reference</a></p>
2244          *
2245          * returns a future to the operation so that it can be executed in parallel to other requests.
2246          */
2247         virtual Model::UpdateOrganizationConfigurationOutcomeCallable UpdateOrganizationConfigurationCallable(const Model::UpdateOrganizationConfigurationRequest& request) const;
2248 
2249         /**
2250          * <p>Used to update the configuration related to Organizations. Can only be called
2251          * from a Security Hub administrator account.</p><p><h3>See Also:</h3>   <a
2252          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UpdateOrganizationConfiguration">AWS
2253          * API Reference</a></p>
2254          *
2255          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2256          */
2257         virtual void UpdateOrganizationConfigurationAsync(const Model::UpdateOrganizationConfigurationRequest& request, const UpdateOrganizationConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2258 
2259         /**
2260          * <p>Updates configuration options for Security Hub.</p><p><h3>See Also:</h3>   <a
2261          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UpdateSecurityHubConfiguration">AWS
2262          * API Reference</a></p>
2263          */
2264         virtual Model::UpdateSecurityHubConfigurationOutcome UpdateSecurityHubConfiguration(const Model::UpdateSecurityHubConfigurationRequest& request) const;
2265 
2266         /**
2267          * <p>Updates configuration options for Security Hub.</p><p><h3>See Also:</h3>   <a
2268          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UpdateSecurityHubConfiguration">AWS
2269          * API Reference</a></p>
2270          *
2271          * returns a future to the operation so that it can be executed in parallel to other requests.
2272          */
2273         virtual Model::UpdateSecurityHubConfigurationOutcomeCallable UpdateSecurityHubConfigurationCallable(const Model::UpdateSecurityHubConfigurationRequest& request) const;
2274 
2275         /**
2276          * <p>Updates configuration options for Security Hub.</p><p><h3>See Also:</h3>   <a
2277          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UpdateSecurityHubConfiguration">AWS
2278          * API Reference</a></p>
2279          *
2280          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2281          */
2282         virtual void UpdateSecurityHubConfigurationAsync(const Model::UpdateSecurityHubConfigurationRequest& request, const UpdateSecurityHubConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2283 
2284         /**
2285          * <p>Used to control whether an individual security standard control is enabled or
2286          * disabled.</p><p><h3>See Also:</h3>   <a
2287          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UpdateStandardsControl">AWS
2288          * API Reference</a></p>
2289          */
2290         virtual Model::UpdateStandardsControlOutcome UpdateStandardsControl(const Model::UpdateStandardsControlRequest& request) const;
2291 
2292         /**
2293          * <p>Used to control whether an individual security standard control is enabled or
2294          * disabled.</p><p><h3>See Also:</h3>   <a
2295          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UpdateStandardsControl">AWS
2296          * API Reference</a></p>
2297          *
2298          * returns a future to the operation so that it can be executed in parallel to other requests.
2299          */
2300         virtual Model::UpdateStandardsControlOutcomeCallable UpdateStandardsControlCallable(const Model::UpdateStandardsControlRequest& request) const;
2301 
2302         /**
2303          * <p>Used to control whether an individual security standard control is enabled or
2304          * disabled.</p><p><h3>See Also:</h3>   <a
2305          * href="http://docs.aws.amazon.com/goto/WebAPI/securityhub-2018-10-26/UpdateStandardsControl">AWS
2306          * API Reference</a></p>
2307          *
2308          * Queues the request into a thread executor and triggers associated callback when operation has finished.
2309          */
2310         virtual void UpdateStandardsControlAsync(const Model::UpdateStandardsControlRequest& request, const UpdateStandardsControlResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
2311 
2312 
2313       void OverrideEndpoint(const Aws::String& endpoint);
2314     private:
2315       void init(const Aws::Client::ClientConfiguration& clientConfiguration);
2316         void AcceptAdministratorInvitationAsyncHelper(const Model::AcceptAdministratorInvitationRequest& request, const AcceptAdministratorInvitationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2317         void BatchDisableStandardsAsyncHelper(const Model::BatchDisableStandardsRequest& request, const BatchDisableStandardsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2318         void BatchEnableStandardsAsyncHelper(const Model::BatchEnableStandardsRequest& request, const BatchEnableStandardsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2319         void BatchImportFindingsAsyncHelper(const Model::BatchImportFindingsRequest& request, const BatchImportFindingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2320         void BatchUpdateFindingsAsyncHelper(const Model::BatchUpdateFindingsRequest& request, const BatchUpdateFindingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2321         void CreateActionTargetAsyncHelper(const Model::CreateActionTargetRequest& request, const CreateActionTargetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2322         void CreateFindingAggregatorAsyncHelper(const Model::CreateFindingAggregatorRequest& request, const CreateFindingAggregatorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2323         void CreateInsightAsyncHelper(const Model::CreateInsightRequest& request, const CreateInsightResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2324         void CreateMembersAsyncHelper(const Model::CreateMembersRequest& request, const CreateMembersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2325         void DeclineInvitationsAsyncHelper(const Model::DeclineInvitationsRequest& request, const DeclineInvitationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2326         void DeleteActionTargetAsyncHelper(const Model::DeleteActionTargetRequest& request, const DeleteActionTargetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2327         void DeleteFindingAggregatorAsyncHelper(const Model::DeleteFindingAggregatorRequest& request, const DeleteFindingAggregatorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2328         void DeleteInsightAsyncHelper(const Model::DeleteInsightRequest& request, const DeleteInsightResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2329         void DeleteInvitationsAsyncHelper(const Model::DeleteInvitationsRequest& request, const DeleteInvitationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2330         void DeleteMembersAsyncHelper(const Model::DeleteMembersRequest& request, const DeleteMembersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2331         void DescribeActionTargetsAsyncHelper(const Model::DescribeActionTargetsRequest& request, const DescribeActionTargetsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2332         void DescribeHubAsyncHelper(const Model::DescribeHubRequest& request, const DescribeHubResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2333         void DescribeOrganizationConfigurationAsyncHelper(const Model::DescribeOrganizationConfigurationRequest& request, const DescribeOrganizationConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2334         void DescribeProductsAsyncHelper(const Model::DescribeProductsRequest& request, const DescribeProductsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2335         void DescribeStandardsAsyncHelper(const Model::DescribeStandardsRequest& request, const DescribeStandardsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2336         void DescribeStandardsControlsAsyncHelper(const Model::DescribeStandardsControlsRequest& request, const DescribeStandardsControlsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2337         void DisableImportFindingsForProductAsyncHelper(const Model::DisableImportFindingsForProductRequest& request, const DisableImportFindingsForProductResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2338         void DisableOrganizationAdminAccountAsyncHelper(const Model::DisableOrganizationAdminAccountRequest& request, const DisableOrganizationAdminAccountResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2339         void DisableSecurityHubAsyncHelper(const Model::DisableSecurityHubRequest& request, const DisableSecurityHubResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2340         void DisassociateFromAdministratorAccountAsyncHelper(const Model::DisassociateFromAdministratorAccountRequest& request, const DisassociateFromAdministratorAccountResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2341         void DisassociateMembersAsyncHelper(const Model::DisassociateMembersRequest& request, const DisassociateMembersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2342         void EnableImportFindingsForProductAsyncHelper(const Model::EnableImportFindingsForProductRequest& request, const EnableImportFindingsForProductResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2343         void EnableOrganizationAdminAccountAsyncHelper(const Model::EnableOrganizationAdminAccountRequest& request, const EnableOrganizationAdminAccountResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2344         void EnableSecurityHubAsyncHelper(const Model::EnableSecurityHubRequest& request, const EnableSecurityHubResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2345         void GetAdministratorAccountAsyncHelper(const Model::GetAdministratorAccountRequest& request, const GetAdministratorAccountResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2346         void GetEnabledStandardsAsyncHelper(const Model::GetEnabledStandardsRequest& request, const GetEnabledStandardsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2347         void GetFindingAggregatorAsyncHelper(const Model::GetFindingAggregatorRequest& request, const GetFindingAggregatorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2348         void GetFindingsAsyncHelper(const Model::GetFindingsRequest& request, const GetFindingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2349         void GetInsightResultsAsyncHelper(const Model::GetInsightResultsRequest& request, const GetInsightResultsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2350         void GetInsightsAsyncHelper(const Model::GetInsightsRequest& request, const GetInsightsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2351         void GetInvitationsCountAsyncHelper(const Model::GetInvitationsCountRequest& request, const GetInvitationsCountResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2352         void GetMembersAsyncHelper(const Model::GetMembersRequest& request, const GetMembersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2353         void InviteMembersAsyncHelper(const Model::InviteMembersRequest& request, const InviteMembersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2354         void ListEnabledProductsForImportAsyncHelper(const Model::ListEnabledProductsForImportRequest& request, const ListEnabledProductsForImportResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2355         void ListFindingAggregatorsAsyncHelper(const Model::ListFindingAggregatorsRequest& request, const ListFindingAggregatorsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2356         void ListInvitationsAsyncHelper(const Model::ListInvitationsRequest& request, const ListInvitationsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2357         void ListMembersAsyncHelper(const Model::ListMembersRequest& request, const ListMembersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2358         void ListOrganizationAdminAccountsAsyncHelper(const Model::ListOrganizationAdminAccountsRequest& request, const ListOrganizationAdminAccountsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2359         void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2360         void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2361         void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2362         void UpdateActionTargetAsyncHelper(const Model::UpdateActionTargetRequest& request, const UpdateActionTargetResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2363         void UpdateFindingAggregatorAsyncHelper(const Model::UpdateFindingAggregatorRequest& request, const UpdateFindingAggregatorResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2364         void UpdateFindingsAsyncHelper(const Model::UpdateFindingsRequest& request, const UpdateFindingsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2365         void UpdateInsightAsyncHelper(const Model::UpdateInsightRequest& request, const UpdateInsightResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2366         void UpdateOrganizationConfigurationAsyncHelper(const Model::UpdateOrganizationConfigurationRequest& request, const UpdateOrganizationConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2367         void UpdateSecurityHubConfigurationAsyncHelper(const Model::UpdateSecurityHubConfigurationRequest& request, const UpdateSecurityHubConfigurationResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2368         void UpdateStandardsControlAsyncHelper(const Model::UpdateStandardsControlRequest& request, const UpdateStandardsControlResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
2369 
2370       Aws::String m_uri;
2371       Aws::String m_configScheme;
2372       std::shared_ptr<Aws::Utils::Threading::Executor> m_executor;
2373   };
2374 
2375 } // namespace SecurityHub
2376 } // namespace Aws
2377