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/fms/FMS_EXPORTS.h>
8 #include <aws/fms/FMSErrors.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/fms/model/GetAdminAccountResult.h>
15 #include <aws/fms/model/GetAppsListResult.h>
16 #include <aws/fms/model/GetComplianceDetailResult.h>
17 #include <aws/fms/model/GetNotificationChannelResult.h>
18 #include <aws/fms/model/GetPolicyResult.h>
19 #include <aws/fms/model/GetProtectionStatusResult.h>
20 #include <aws/fms/model/GetProtocolsListResult.h>
21 #include <aws/fms/model/GetViolationDetailsResult.h>
22 #include <aws/fms/model/ListAppsListsResult.h>
23 #include <aws/fms/model/ListComplianceStatusResult.h>
24 #include <aws/fms/model/ListMemberAccountsResult.h>
25 #include <aws/fms/model/ListPoliciesResult.h>
26 #include <aws/fms/model/ListProtocolsListsResult.h>
27 #include <aws/fms/model/ListTagsForResourceResult.h>
28 #include <aws/fms/model/PutAppsListResult.h>
29 #include <aws/fms/model/PutPolicyResult.h>
30 #include <aws/fms/model/PutProtocolsListResult.h>
31 #include <aws/fms/model/TagResourceResult.h>
32 #include <aws/fms/model/UntagResourceResult.h>
33 #include <aws/core/NoResult.h>
34 #include <aws/core/client/AsyncCallerContext.h>
35 #include <aws/core/http/HttpTypes.h>
36 #include <future>
37 #include <functional>
38 
39 namespace Aws
40 {
41 
42 namespace Http
43 {
44   class HttpClient;
45   class HttpClientFactory;
46 } // namespace Http
47 
48 namespace Utils
49 {
50   template< typename R, typename E> class Outcome;
51 namespace Threading
52 {
53   class Executor;
54 } // namespace Threading
55 } // namespace Utils
56 
57 namespace Auth
58 {
59   class AWSCredentials;
60   class AWSCredentialsProvider;
61 } // namespace Auth
62 
63 namespace Client
64 {
65   class RetryStrategy;
66 } // namespace Client
67 
68 namespace FMS
69 {
70 
71 namespace Model
72 {
73         class AssociateAdminAccountRequest;
74         class DeleteAppsListRequest;
75         class DeleteNotificationChannelRequest;
76         class DeletePolicyRequest;
77         class DeleteProtocolsListRequest;
78         class DisassociateAdminAccountRequest;
79         class GetAdminAccountRequest;
80         class GetAppsListRequest;
81         class GetComplianceDetailRequest;
82         class GetNotificationChannelRequest;
83         class GetPolicyRequest;
84         class GetProtectionStatusRequest;
85         class GetProtocolsListRequest;
86         class GetViolationDetailsRequest;
87         class ListAppsListsRequest;
88         class ListComplianceStatusRequest;
89         class ListMemberAccountsRequest;
90         class ListPoliciesRequest;
91         class ListProtocolsListsRequest;
92         class ListTagsForResourceRequest;
93         class PutAppsListRequest;
94         class PutNotificationChannelRequest;
95         class PutPolicyRequest;
96         class PutProtocolsListRequest;
97         class TagResourceRequest;
98         class UntagResourceRequest;
99 
100         typedef Aws::Utils::Outcome<Aws::NoResult, FMSError> AssociateAdminAccountOutcome;
101         typedef Aws::Utils::Outcome<Aws::NoResult, FMSError> DeleteAppsListOutcome;
102         typedef Aws::Utils::Outcome<Aws::NoResult, FMSError> DeleteNotificationChannelOutcome;
103         typedef Aws::Utils::Outcome<Aws::NoResult, FMSError> DeletePolicyOutcome;
104         typedef Aws::Utils::Outcome<Aws::NoResult, FMSError> DeleteProtocolsListOutcome;
105         typedef Aws::Utils::Outcome<Aws::NoResult, FMSError> DisassociateAdminAccountOutcome;
106         typedef Aws::Utils::Outcome<GetAdminAccountResult, FMSError> GetAdminAccountOutcome;
107         typedef Aws::Utils::Outcome<GetAppsListResult, FMSError> GetAppsListOutcome;
108         typedef Aws::Utils::Outcome<GetComplianceDetailResult, FMSError> GetComplianceDetailOutcome;
109         typedef Aws::Utils::Outcome<GetNotificationChannelResult, FMSError> GetNotificationChannelOutcome;
110         typedef Aws::Utils::Outcome<GetPolicyResult, FMSError> GetPolicyOutcome;
111         typedef Aws::Utils::Outcome<GetProtectionStatusResult, FMSError> GetProtectionStatusOutcome;
112         typedef Aws::Utils::Outcome<GetProtocolsListResult, FMSError> GetProtocolsListOutcome;
113         typedef Aws::Utils::Outcome<GetViolationDetailsResult, FMSError> GetViolationDetailsOutcome;
114         typedef Aws::Utils::Outcome<ListAppsListsResult, FMSError> ListAppsListsOutcome;
115         typedef Aws::Utils::Outcome<ListComplianceStatusResult, FMSError> ListComplianceStatusOutcome;
116         typedef Aws::Utils::Outcome<ListMemberAccountsResult, FMSError> ListMemberAccountsOutcome;
117         typedef Aws::Utils::Outcome<ListPoliciesResult, FMSError> ListPoliciesOutcome;
118         typedef Aws::Utils::Outcome<ListProtocolsListsResult, FMSError> ListProtocolsListsOutcome;
119         typedef Aws::Utils::Outcome<ListTagsForResourceResult, FMSError> ListTagsForResourceOutcome;
120         typedef Aws::Utils::Outcome<PutAppsListResult, FMSError> PutAppsListOutcome;
121         typedef Aws::Utils::Outcome<Aws::NoResult, FMSError> PutNotificationChannelOutcome;
122         typedef Aws::Utils::Outcome<PutPolicyResult, FMSError> PutPolicyOutcome;
123         typedef Aws::Utils::Outcome<PutProtocolsListResult, FMSError> PutProtocolsListOutcome;
124         typedef Aws::Utils::Outcome<TagResourceResult, FMSError> TagResourceOutcome;
125         typedef Aws::Utils::Outcome<UntagResourceResult, FMSError> UntagResourceOutcome;
126 
127         typedef std::future<AssociateAdminAccountOutcome> AssociateAdminAccountOutcomeCallable;
128         typedef std::future<DeleteAppsListOutcome> DeleteAppsListOutcomeCallable;
129         typedef std::future<DeleteNotificationChannelOutcome> DeleteNotificationChannelOutcomeCallable;
130         typedef std::future<DeletePolicyOutcome> DeletePolicyOutcomeCallable;
131         typedef std::future<DeleteProtocolsListOutcome> DeleteProtocolsListOutcomeCallable;
132         typedef std::future<DisassociateAdminAccountOutcome> DisassociateAdminAccountOutcomeCallable;
133         typedef std::future<GetAdminAccountOutcome> GetAdminAccountOutcomeCallable;
134         typedef std::future<GetAppsListOutcome> GetAppsListOutcomeCallable;
135         typedef std::future<GetComplianceDetailOutcome> GetComplianceDetailOutcomeCallable;
136         typedef std::future<GetNotificationChannelOutcome> GetNotificationChannelOutcomeCallable;
137         typedef std::future<GetPolicyOutcome> GetPolicyOutcomeCallable;
138         typedef std::future<GetProtectionStatusOutcome> GetProtectionStatusOutcomeCallable;
139         typedef std::future<GetProtocolsListOutcome> GetProtocolsListOutcomeCallable;
140         typedef std::future<GetViolationDetailsOutcome> GetViolationDetailsOutcomeCallable;
141         typedef std::future<ListAppsListsOutcome> ListAppsListsOutcomeCallable;
142         typedef std::future<ListComplianceStatusOutcome> ListComplianceStatusOutcomeCallable;
143         typedef std::future<ListMemberAccountsOutcome> ListMemberAccountsOutcomeCallable;
144         typedef std::future<ListPoliciesOutcome> ListPoliciesOutcomeCallable;
145         typedef std::future<ListProtocolsListsOutcome> ListProtocolsListsOutcomeCallable;
146         typedef std::future<ListTagsForResourceOutcome> ListTagsForResourceOutcomeCallable;
147         typedef std::future<PutAppsListOutcome> PutAppsListOutcomeCallable;
148         typedef std::future<PutNotificationChannelOutcome> PutNotificationChannelOutcomeCallable;
149         typedef std::future<PutPolicyOutcome> PutPolicyOutcomeCallable;
150         typedef std::future<PutProtocolsListOutcome> PutProtocolsListOutcomeCallable;
151         typedef std::future<TagResourceOutcome> TagResourceOutcomeCallable;
152         typedef std::future<UntagResourceOutcome> UntagResourceOutcomeCallable;
153 } // namespace Model
154 
155   class FMSClient;
156 
157     typedef std::function<void(const FMSClient*, const Model::AssociateAdminAccountRequest&, const Model::AssociateAdminAccountOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > AssociateAdminAccountResponseReceivedHandler;
158     typedef std::function<void(const FMSClient*, const Model::DeleteAppsListRequest&, const Model::DeleteAppsListOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteAppsListResponseReceivedHandler;
159     typedef std::function<void(const FMSClient*, const Model::DeleteNotificationChannelRequest&, const Model::DeleteNotificationChannelOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteNotificationChannelResponseReceivedHandler;
160     typedef std::function<void(const FMSClient*, const Model::DeletePolicyRequest&, const Model::DeletePolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeletePolicyResponseReceivedHandler;
161     typedef std::function<void(const FMSClient*, const Model::DeleteProtocolsListRequest&, const Model::DeleteProtocolsListOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteProtocolsListResponseReceivedHandler;
162     typedef std::function<void(const FMSClient*, const Model::DisassociateAdminAccountRequest&, const Model::DisassociateAdminAccountOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DisassociateAdminAccountResponseReceivedHandler;
163     typedef std::function<void(const FMSClient*, const Model::GetAdminAccountRequest&, const Model::GetAdminAccountOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetAdminAccountResponseReceivedHandler;
164     typedef std::function<void(const FMSClient*, const Model::GetAppsListRequest&, const Model::GetAppsListOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetAppsListResponseReceivedHandler;
165     typedef std::function<void(const FMSClient*, const Model::GetComplianceDetailRequest&, const Model::GetComplianceDetailOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetComplianceDetailResponseReceivedHandler;
166     typedef std::function<void(const FMSClient*, const Model::GetNotificationChannelRequest&, const Model::GetNotificationChannelOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetNotificationChannelResponseReceivedHandler;
167     typedef std::function<void(const FMSClient*, const Model::GetPolicyRequest&, const Model::GetPolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetPolicyResponseReceivedHandler;
168     typedef std::function<void(const FMSClient*, const Model::GetProtectionStatusRequest&, const Model::GetProtectionStatusOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetProtectionStatusResponseReceivedHandler;
169     typedef std::function<void(const FMSClient*, const Model::GetProtocolsListRequest&, const Model::GetProtocolsListOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetProtocolsListResponseReceivedHandler;
170     typedef std::function<void(const FMSClient*, const Model::GetViolationDetailsRequest&, const Model::GetViolationDetailsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > GetViolationDetailsResponseReceivedHandler;
171     typedef std::function<void(const FMSClient*, const Model::ListAppsListsRequest&, const Model::ListAppsListsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListAppsListsResponseReceivedHandler;
172     typedef std::function<void(const FMSClient*, const Model::ListComplianceStatusRequest&, const Model::ListComplianceStatusOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListComplianceStatusResponseReceivedHandler;
173     typedef std::function<void(const FMSClient*, const Model::ListMemberAccountsRequest&, const Model::ListMemberAccountsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListMemberAccountsResponseReceivedHandler;
174     typedef std::function<void(const FMSClient*, const Model::ListPoliciesRequest&, const Model::ListPoliciesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListPoliciesResponseReceivedHandler;
175     typedef std::function<void(const FMSClient*, const Model::ListProtocolsListsRequest&, const Model::ListProtocolsListsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListProtocolsListsResponseReceivedHandler;
176     typedef std::function<void(const FMSClient*, const Model::ListTagsForResourceRequest&, const Model::ListTagsForResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTagsForResourceResponseReceivedHandler;
177     typedef std::function<void(const FMSClient*, const Model::PutAppsListRequest&, const Model::PutAppsListOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutAppsListResponseReceivedHandler;
178     typedef std::function<void(const FMSClient*, const Model::PutNotificationChannelRequest&, const Model::PutNotificationChannelOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutNotificationChannelResponseReceivedHandler;
179     typedef std::function<void(const FMSClient*, const Model::PutPolicyRequest&, const Model::PutPolicyOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutPolicyResponseReceivedHandler;
180     typedef std::function<void(const FMSClient*, const Model::PutProtocolsListRequest&, const Model::PutProtocolsListOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > PutProtocolsListResponseReceivedHandler;
181     typedef std::function<void(const FMSClient*, const Model::TagResourceRequest&, const Model::TagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TagResourceResponseReceivedHandler;
182     typedef std::function<void(const FMSClient*, const Model::UntagResourceRequest&, const Model::UntagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UntagResourceResponseReceivedHandler;
183 
184   /**
185    * <p>This is the <i>Firewall Manager API Reference</i>. This guide is for
186    * developers who need detailed information about the Firewall Manager API actions,
187    * data types, and errors. For detailed information about Firewall Manager
188    * features, see the <a
189    * href="https://docs.aws.amazon.com/waf/latest/developerguide/fms-chapter.html">Firewall
190    * Manager Developer Guide</a>.</p> <p>Some API actions require explicit resource
191    * permissions. For information, see the developer guide topic <a
192    * href="https://docs.aws.amazon.com/waf/latest/developerguide/fms-api-permissions-ref.html">Firewall
193    * Manager required permissions for API actions</a>. </p>
194    */
195   class AWS_FMS_API FMSClient : public Aws::Client::AWSJsonClient
196   {
197     public:
198       typedef Aws::Client::AWSJsonClient BASECLASS;
199 
200        /**
201         * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config
202         * is not specified, it will be initialized to default values.
203         */
204         FMSClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
205 
206        /**
207         * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config
208         * is not specified, it will be initialized to default values.
209         */
210         FMSClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
211 
212        /**
213         * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied,
214         * the default http client factory will be used
215         */
216         FMSClient(const std::shared_ptr<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
217             const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
218 
219         virtual ~FMSClient();
220 
221 
222         /**
223          * <p>Sets the Firewall Manager administrator account. The account must be a member
224          * of the organization in Organizations whose resources you want to protect.
225          * Firewall Manager sets the permissions that allow the account to administer your
226          * Firewall Manager policies.</p> <p>The account that you associate with Firewall
227          * Manager is called the Firewall Manager administrator account. </p><p><h3>See
228          * Also:</h3>   <a
229          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/AssociateAdminAccount">AWS
230          * API Reference</a></p>
231          */
232         virtual Model::AssociateAdminAccountOutcome AssociateAdminAccount(const Model::AssociateAdminAccountRequest& request) const;
233 
234         /**
235          * <p>Sets the Firewall Manager administrator account. The account must be a member
236          * of the organization in Organizations whose resources you want to protect.
237          * Firewall Manager sets the permissions that allow the account to administer your
238          * Firewall Manager policies.</p> <p>The account that you associate with Firewall
239          * Manager is called the Firewall Manager administrator account. </p><p><h3>See
240          * Also:</h3>   <a
241          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/AssociateAdminAccount">AWS
242          * API Reference</a></p>
243          *
244          * returns a future to the operation so that it can be executed in parallel to other requests.
245          */
246         virtual Model::AssociateAdminAccountOutcomeCallable AssociateAdminAccountCallable(const Model::AssociateAdminAccountRequest& request) const;
247 
248         /**
249          * <p>Sets the Firewall Manager administrator account. The account must be a member
250          * of the organization in Organizations whose resources you want to protect.
251          * Firewall Manager sets the permissions that allow the account to administer your
252          * Firewall Manager policies.</p> <p>The account that you associate with Firewall
253          * Manager is called the Firewall Manager administrator account. </p><p><h3>See
254          * Also:</h3>   <a
255          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/AssociateAdminAccount">AWS
256          * API Reference</a></p>
257          *
258          * Queues the request into a thread executor and triggers associated callback when operation has finished.
259          */
260         virtual void AssociateAdminAccountAsync(const Model::AssociateAdminAccountRequest& request, const AssociateAdminAccountResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
261 
262         /**
263          * <p>Permanently deletes an Firewall Manager applications list.</p><p><h3>See
264          * Also:</h3>   <a
265          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeleteAppsList">AWS
266          * API Reference</a></p>
267          */
268         virtual Model::DeleteAppsListOutcome DeleteAppsList(const Model::DeleteAppsListRequest& request) const;
269 
270         /**
271          * <p>Permanently deletes an Firewall Manager applications list.</p><p><h3>See
272          * Also:</h3>   <a
273          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeleteAppsList">AWS
274          * API Reference</a></p>
275          *
276          * returns a future to the operation so that it can be executed in parallel to other requests.
277          */
278         virtual Model::DeleteAppsListOutcomeCallable DeleteAppsListCallable(const Model::DeleteAppsListRequest& request) const;
279 
280         /**
281          * <p>Permanently deletes an Firewall Manager applications list.</p><p><h3>See
282          * Also:</h3>   <a
283          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeleteAppsList">AWS
284          * API Reference</a></p>
285          *
286          * Queues the request into a thread executor and triggers associated callback when operation has finished.
287          */
288         virtual void DeleteAppsListAsync(const Model::DeleteAppsListRequest& request, const DeleteAppsListResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
289 
290         /**
291          * <p>Deletes an Firewall Manager association with the IAM role and the Amazon
292          * Simple Notification Service (SNS) topic that is used to record Firewall Manager
293          * SNS logs.</p><p><h3>See Also:</h3>   <a
294          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeleteNotificationChannel">AWS
295          * API Reference</a></p>
296          */
297         virtual Model::DeleteNotificationChannelOutcome DeleteNotificationChannel(const Model::DeleteNotificationChannelRequest& request) const;
298 
299         /**
300          * <p>Deletes an Firewall Manager association with the IAM role and the Amazon
301          * Simple Notification Service (SNS) topic that is used to record Firewall Manager
302          * SNS logs.</p><p><h3>See Also:</h3>   <a
303          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeleteNotificationChannel">AWS
304          * API Reference</a></p>
305          *
306          * returns a future to the operation so that it can be executed in parallel to other requests.
307          */
308         virtual Model::DeleteNotificationChannelOutcomeCallable DeleteNotificationChannelCallable(const Model::DeleteNotificationChannelRequest& request) const;
309 
310         /**
311          * <p>Deletes an Firewall Manager association with the IAM role and the Amazon
312          * Simple Notification Service (SNS) topic that is used to record Firewall Manager
313          * SNS logs.</p><p><h3>See Also:</h3>   <a
314          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeleteNotificationChannel">AWS
315          * API Reference</a></p>
316          *
317          * Queues the request into a thread executor and triggers associated callback when operation has finished.
318          */
319         virtual void DeleteNotificationChannelAsync(const Model::DeleteNotificationChannelRequest& request, const DeleteNotificationChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
320 
321         /**
322          * <p>Permanently deletes an Firewall Manager policy. </p><p><h3>See Also:</h3>
323          * <a href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeletePolicy">AWS
324          * API Reference</a></p>
325          */
326         virtual Model::DeletePolicyOutcome DeletePolicy(const Model::DeletePolicyRequest& request) const;
327 
328         /**
329          * <p>Permanently deletes an Firewall Manager policy. </p><p><h3>See Also:</h3>
330          * <a href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeletePolicy">AWS
331          * API Reference</a></p>
332          *
333          * returns a future to the operation so that it can be executed in parallel to other requests.
334          */
335         virtual Model::DeletePolicyOutcomeCallable DeletePolicyCallable(const Model::DeletePolicyRequest& request) const;
336 
337         /**
338          * <p>Permanently deletes an Firewall Manager policy. </p><p><h3>See Also:</h3>
339          * <a href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeletePolicy">AWS
340          * API Reference</a></p>
341          *
342          * Queues the request into a thread executor and triggers associated callback when operation has finished.
343          */
344         virtual void DeletePolicyAsync(const Model::DeletePolicyRequest& request, const DeletePolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
345 
346         /**
347          * <p>Permanently deletes an Firewall Manager protocols list.</p><p><h3>See
348          * Also:</h3>   <a
349          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeleteProtocolsList">AWS
350          * API Reference</a></p>
351          */
352         virtual Model::DeleteProtocolsListOutcome DeleteProtocolsList(const Model::DeleteProtocolsListRequest& request) const;
353 
354         /**
355          * <p>Permanently deletes an Firewall Manager protocols list.</p><p><h3>See
356          * Also:</h3>   <a
357          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeleteProtocolsList">AWS
358          * API Reference</a></p>
359          *
360          * returns a future to the operation so that it can be executed in parallel to other requests.
361          */
362         virtual Model::DeleteProtocolsListOutcomeCallable DeleteProtocolsListCallable(const Model::DeleteProtocolsListRequest& request) const;
363 
364         /**
365          * <p>Permanently deletes an Firewall Manager protocols list.</p><p><h3>See
366          * Also:</h3>   <a
367          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DeleteProtocolsList">AWS
368          * API Reference</a></p>
369          *
370          * Queues the request into a thread executor and triggers associated callback when operation has finished.
371          */
372         virtual void DeleteProtocolsListAsync(const Model::DeleteProtocolsListRequest& request, const DeleteProtocolsListResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
373 
374         /**
375          * <p>Disassociates the account that has been set as the Firewall Manager
376          * administrator account. To set a different account as the administrator account,
377          * you must submit an <code>AssociateAdminAccount</code> request.</p><p><h3>See
378          * Also:</h3>   <a
379          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DisassociateAdminAccount">AWS
380          * API Reference</a></p>
381          */
382         virtual Model::DisassociateAdminAccountOutcome DisassociateAdminAccount(const Model::DisassociateAdminAccountRequest& request) const;
383 
384         /**
385          * <p>Disassociates the account that has been set as the Firewall Manager
386          * administrator account. To set a different account as the administrator account,
387          * you must submit an <code>AssociateAdminAccount</code> request.</p><p><h3>See
388          * Also:</h3>   <a
389          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DisassociateAdminAccount">AWS
390          * API Reference</a></p>
391          *
392          * returns a future to the operation so that it can be executed in parallel to other requests.
393          */
394         virtual Model::DisassociateAdminAccountOutcomeCallable DisassociateAdminAccountCallable(const Model::DisassociateAdminAccountRequest& request) const;
395 
396         /**
397          * <p>Disassociates the account that has been set as the Firewall Manager
398          * administrator account. To set a different account as the administrator account,
399          * you must submit an <code>AssociateAdminAccount</code> request.</p><p><h3>See
400          * Also:</h3>   <a
401          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/DisassociateAdminAccount">AWS
402          * API Reference</a></p>
403          *
404          * Queues the request into a thread executor and triggers associated callback when operation has finished.
405          */
406         virtual void DisassociateAdminAccountAsync(const Model::DisassociateAdminAccountRequest& request, const DisassociateAdminAccountResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
407 
408         /**
409          * <p>Returns the Organizations account that is associated with Firewall Manager as
410          * the Firewall Manager administrator.</p><p><h3>See Also:</h3>   <a
411          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetAdminAccount">AWS
412          * API Reference</a></p>
413          */
414         virtual Model::GetAdminAccountOutcome GetAdminAccount(const Model::GetAdminAccountRequest& request) const;
415 
416         /**
417          * <p>Returns the Organizations account that is associated with Firewall Manager as
418          * the Firewall Manager administrator.</p><p><h3>See Also:</h3>   <a
419          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetAdminAccount">AWS
420          * API Reference</a></p>
421          *
422          * returns a future to the operation so that it can be executed in parallel to other requests.
423          */
424         virtual Model::GetAdminAccountOutcomeCallable GetAdminAccountCallable(const Model::GetAdminAccountRequest& request) const;
425 
426         /**
427          * <p>Returns the Organizations account that is associated with Firewall Manager as
428          * the Firewall Manager administrator.</p><p><h3>See Also:</h3>   <a
429          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetAdminAccount">AWS
430          * API Reference</a></p>
431          *
432          * Queues the request into a thread executor and triggers associated callback when operation has finished.
433          */
434         virtual void GetAdminAccountAsync(const Model::GetAdminAccountRequest& request, const GetAdminAccountResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
435 
436         /**
437          * <p>Returns information about the specified Firewall Manager applications
438          * list.</p><p><h3>See Also:</h3>   <a
439          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetAppsList">AWS API
440          * Reference</a></p>
441          */
442         virtual Model::GetAppsListOutcome GetAppsList(const Model::GetAppsListRequest& request) const;
443 
444         /**
445          * <p>Returns information about the specified Firewall Manager applications
446          * list.</p><p><h3>See Also:</h3>   <a
447          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetAppsList">AWS API
448          * Reference</a></p>
449          *
450          * returns a future to the operation so that it can be executed in parallel to other requests.
451          */
452         virtual Model::GetAppsListOutcomeCallable GetAppsListCallable(const Model::GetAppsListRequest& request) const;
453 
454         /**
455          * <p>Returns information about the specified Firewall Manager applications
456          * list.</p><p><h3>See Also:</h3>   <a
457          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetAppsList">AWS API
458          * Reference</a></p>
459          *
460          * Queues the request into a thread executor and triggers associated callback when operation has finished.
461          */
462         virtual void GetAppsListAsync(const Model::GetAppsListRequest& request, const GetAppsListResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
463 
464         /**
465          * <p>Returns detailed compliance information about the specified member account.
466          * Details include resources that are in and out of compliance with the specified
467          * policy. </p> <ul> <li> <p>Resources are considered noncompliant for WAF and
468          * Shield Advanced policies if the specified policy has not been applied to
469          * them.</p> </li> <li> <p>Resources are considered noncompliant for security group
470          * policies if they are in scope of the policy, they violate one or more of the
471          * policy rules, and remediation is disabled or not possible.</p> </li> <li>
472          * <p>Resources are considered noncompliant for Network Firewall policies if a
473          * firewall is missing in the VPC, if the firewall endpoint isn't set up in an
474          * expected Availability Zone and subnet, if a subnet created by the Firewall
475          * Manager doesn't have the expected route table, and for modifications to a
476          * firewall policy that violate the Firewall Manager policy's rules.</p> </li> <li>
477          * <p>Resources are considered noncompliant for DNS Firewall policies if a DNS
478          * Firewall rule group is missing from the rule group associations for the VPC.
479          * </p> </li> </ul><p><h3>See Also:</h3>   <a
480          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetComplianceDetail">AWS
481          * API Reference</a></p>
482          */
483         virtual Model::GetComplianceDetailOutcome GetComplianceDetail(const Model::GetComplianceDetailRequest& request) const;
484 
485         /**
486          * <p>Returns detailed compliance information about the specified member account.
487          * Details include resources that are in and out of compliance with the specified
488          * policy. </p> <ul> <li> <p>Resources are considered noncompliant for WAF and
489          * Shield Advanced policies if the specified policy has not been applied to
490          * them.</p> </li> <li> <p>Resources are considered noncompliant for security group
491          * policies if they are in scope of the policy, they violate one or more of the
492          * policy rules, and remediation is disabled or not possible.</p> </li> <li>
493          * <p>Resources are considered noncompliant for Network Firewall policies if a
494          * firewall is missing in the VPC, if the firewall endpoint isn't set up in an
495          * expected Availability Zone and subnet, if a subnet created by the Firewall
496          * Manager doesn't have the expected route table, and for modifications to a
497          * firewall policy that violate the Firewall Manager policy's rules.</p> </li> <li>
498          * <p>Resources are considered noncompliant for DNS Firewall policies if a DNS
499          * Firewall rule group is missing from the rule group associations for the VPC.
500          * </p> </li> </ul><p><h3>See Also:</h3>   <a
501          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetComplianceDetail">AWS
502          * API Reference</a></p>
503          *
504          * returns a future to the operation so that it can be executed in parallel to other requests.
505          */
506         virtual Model::GetComplianceDetailOutcomeCallable GetComplianceDetailCallable(const Model::GetComplianceDetailRequest& request) const;
507 
508         /**
509          * <p>Returns detailed compliance information about the specified member account.
510          * Details include resources that are in and out of compliance with the specified
511          * policy. </p> <ul> <li> <p>Resources are considered noncompliant for WAF and
512          * Shield Advanced policies if the specified policy has not been applied to
513          * them.</p> </li> <li> <p>Resources are considered noncompliant for security group
514          * policies if they are in scope of the policy, they violate one or more of the
515          * policy rules, and remediation is disabled or not possible.</p> </li> <li>
516          * <p>Resources are considered noncompliant for Network Firewall policies if a
517          * firewall is missing in the VPC, if the firewall endpoint isn't set up in an
518          * expected Availability Zone and subnet, if a subnet created by the Firewall
519          * Manager doesn't have the expected route table, and for modifications to a
520          * firewall policy that violate the Firewall Manager policy's rules.</p> </li> <li>
521          * <p>Resources are considered noncompliant for DNS Firewall policies if a DNS
522          * Firewall rule group is missing from the rule group associations for the VPC.
523          * </p> </li> </ul><p><h3>See Also:</h3>   <a
524          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetComplianceDetail">AWS
525          * API Reference</a></p>
526          *
527          * Queues the request into a thread executor and triggers associated callback when operation has finished.
528          */
529         virtual void GetComplianceDetailAsync(const Model::GetComplianceDetailRequest& request, const GetComplianceDetailResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
530 
531         /**
532          * <p>Information about the Amazon Simple Notification Service (SNS) topic that is
533          * used to record Firewall Manager SNS logs.</p><p><h3>See Also:</h3>   <a
534          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetNotificationChannel">AWS
535          * API Reference</a></p>
536          */
537         virtual Model::GetNotificationChannelOutcome GetNotificationChannel(const Model::GetNotificationChannelRequest& request) const;
538 
539         /**
540          * <p>Information about the Amazon Simple Notification Service (SNS) topic that is
541          * used to record Firewall Manager SNS logs.</p><p><h3>See Also:</h3>   <a
542          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetNotificationChannel">AWS
543          * API Reference</a></p>
544          *
545          * returns a future to the operation so that it can be executed in parallel to other requests.
546          */
547         virtual Model::GetNotificationChannelOutcomeCallable GetNotificationChannelCallable(const Model::GetNotificationChannelRequest& request) const;
548 
549         /**
550          * <p>Information about the Amazon Simple Notification Service (SNS) topic that is
551          * used to record Firewall Manager SNS logs.</p><p><h3>See Also:</h3>   <a
552          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetNotificationChannel">AWS
553          * API Reference</a></p>
554          *
555          * Queues the request into a thread executor and triggers associated callback when operation has finished.
556          */
557         virtual void GetNotificationChannelAsync(const Model::GetNotificationChannelRequest& request, const GetNotificationChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
558 
559         /**
560          * <p>Returns information about the specified Firewall Manager
561          * policy.</p><p><h3>See Also:</h3>   <a
562          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetPolicy">AWS API
563          * Reference</a></p>
564          */
565         virtual Model::GetPolicyOutcome GetPolicy(const Model::GetPolicyRequest& request) const;
566 
567         /**
568          * <p>Returns information about the specified Firewall Manager
569          * policy.</p><p><h3>See Also:</h3>   <a
570          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetPolicy">AWS API
571          * Reference</a></p>
572          *
573          * returns a future to the operation so that it can be executed in parallel to other requests.
574          */
575         virtual Model::GetPolicyOutcomeCallable GetPolicyCallable(const Model::GetPolicyRequest& request) const;
576 
577         /**
578          * <p>Returns information about the specified Firewall Manager
579          * policy.</p><p><h3>See Also:</h3>   <a
580          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetPolicy">AWS API
581          * Reference</a></p>
582          *
583          * Queues the request into a thread executor and triggers associated callback when operation has finished.
584          */
585         virtual void GetPolicyAsync(const Model::GetPolicyRequest& request, const GetPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
586 
587         /**
588          * <p>If you created a Shield Advanced policy, returns policy-level attack summary
589          * information in the event of a potential DDoS attack. Other policy types are
590          * currently unsupported.</p><p><h3>See Also:</h3>   <a
591          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetProtectionStatus">AWS
592          * API Reference</a></p>
593          */
594         virtual Model::GetProtectionStatusOutcome GetProtectionStatus(const Model::GetProtectionStatusRequest& request) const;
595 
596         /**
597          * <p>If you created a Shield Advanced policy, returns policy-level attack summary
598          * information in the event of a potential DDoS attack. Other policy types are
599          * currently unsupported.</p><p><h3>See Also:</h3>   <a
600          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetProtectionStatus">AWS
601          * API Reference</a></p>
602          *
603          * returns a future to the operation so that it can be executed in parallel to other requests.
604          */
605         virtual Model::GetProtectionStatusOutcomeCallable GetProtectionStatusCallable(const Model::GetProtectionStatusRequest& request) const;
606 
607         /**
608          * <p>If you created a Shield Advanced policy, returns policy-level attack summary
609          * information in the event of a potential DDoS attack. Other policy types are
610          * currently unsupported.</p><p><h3>See Also:</h3>   <a
611          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetProtectionStatus">AWS
612          * API Reference</a></p>
613          *
614          * Queues the request into a thread executor and triggers associated callback when operation has finished.
615          */
616         virtual void GetProtectionStatusAsync(const Model::GetProtectionStatusRequest& request, const GetProtectionStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
617 
618         /**
619          * <p>Returns information about the specified Firewall Manager protocols
620          * list.</p><p><h3>See Also:</h3>   <a
621          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetProtocolsList">AWS
622          * API Reference</a></p>
623          */
624         virtual Model::GetProtocolsListOutcome GetProtocolsList(const Model::GetProtocolsListRequest& request) const;
625 
626         /**
627          * <p>Returns information about the specified Firewall Manager protocols
628          * list.</p><p><h3>See Also:</h3>   <a
629          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetProtocolsList">AWS
630          * API Reference</a></p>
631          *
632          * returns a future to the operation so that it can be executed in parallel to other requests.
633          */
634         virtual Model::GetProtocolsListOutcomeCallable GetProtocolsListCallable(const Model::GetProtocolsListRequest& request) const;
635 
636         /**
637          * <p>Returns information about the specified Firewall Manager protocols
638          * list.</p><p><h3>See Also:</h3>   <a
639          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetProtocolsList">AWS
640          * API Reference</a></p>
641          *
642          * Queues the request into a thread executor and triggers associated callback when operation has finished.
643          */
644         virtual void GetProtocolsListAsync(const Model::GetProtocolsListRequest& request, const GetProtocolsListResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
645 
646         /**
647          * <p>Retrieves violations for a resource based on the specified Firewall Manager
648          * policy and Amazon Web Services account.</p><p><h3>See Also:</h3>   <a
649          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetViolationDetails">AWS
650          * API Reference</a></p>
651          */
652         virtual Model::GetViolationDetailsOutcome GetViolationDetails(const Model::GetViolationDetailsRequest& request) const;
653 
654         /**
655          * <p>Retrieves violations for a resource based on the specified Firewall Manager
656          * policy and Amazon Web Services account.</p><p><h3>See Also:</h3>   <a
657          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetViolationDetails">AWS
658          * API Reference</a></p>
659          *
660          * returns a future to the operation so that it can be executed in parallel to other requests.
661          */
662         virtual Model::GetViolationDetailsOutcomeCallable GetViolationDetailsCallable(const Model::GetViolationDetailsRequest& request) const;
663 
664         /**
665          * <p>Retrieves violations for a resource based on the specified Firewall Manager
666          * policy and Amazon Web Services account.</p><p><h3>See Also:</h3>   <a
667          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/GetViolationDetails">AWS
668          * API Reference</a></p>
669          *
670          * Queues the request into a thread executor and triggers associated callback when operation has finished.
671          */
672         virtual void GetViolationDetailsAsync(const Model::GetViolationDetailsRequest& request, const GetViolationDetailsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
673 
674         /**
675          * <p>Returns an array of <code>AppsListDataSummary</code> objects.</p><p><h3>See
676          * Also:</h3>   <a
677          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListAppsLists">AWS
678          * API Reference</a></p>
679          */
680         virtual Model::ListAppsListsOutcome ListAppsLists(const Model::ListAppsListsRequest& request) const;
681 
682         /**
683          * <p>Returns an array of <code>AppsListDataSummary</code> objects.</p><p><h3>See
684          * Also:</h3>   <a
685          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListAppsLists">AWS
686          * API Reference</a></p>
687          *
688          * returns a future to the operation so that it can be executed in parallel to other requests.
689          */
690         virtual Model::ListAppsListsOutcomeCallable ListAppsListsCallable(const Model::ListAppsListsRequest& request) const;
691 
692         /**
693          * <p>Returns an array of <code>AppsListDataSummary</code> objects.</p><p><h3>See
694          * Also:</h3>   <a
695          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListAppsLists">AWS
696          * API Reference</a></p>
697          *
698          * Queues the request into a thread executor and triggers associated callback when operation has finished.
699          */
700         virtual void ListAppsListsAsync(const Model::ListAppsListsRequest& request, const ListAppsListsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
701 
702         /**
703          * <p>Returns an array of <code>PolicyComplianceStatus</code> objects. Use
704          * <code>PolicyComplianceStatus</code> to get a summary of which member accounts
705          * are protected by the specified policy. </p><p><h3>See Also:</h3>   <a
706          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListComplianceStatus">AWS
707          * API Reference</a></p>
708          */
709         virtual Model::ListComplianceStatusOutcome ListComplianceStatus(const Model::ListComplianceStatusRequest& request) const;
710 
711         /**
712          * <p>Returns an array of <code>PolicyComplianceStatus</code> objects. Use
713          * <code>PolicyComplianceStatus</code> to get a summary of which member accounts
714          * are protected by the specified policy. </p><p><h3>See Also:</h3>   <a
715          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListComplianceStatus">AWS
716          * API Reference</a></p>
717          *
718          * returns a future to the operation so that it can be executed in parallel to other requests.
719          */
720         virtual Model::ListComplianceStatusOutcomeCallable ListComplianceStatusCallable(const Model::ListComplianceStatusRequest& request) const;
721 
722         /**
723          * <p>Returns an array of <code>PolicyComplianceStatus</code> objects. Use
724          * <code>PolicyComplianceStatus</code> to get a summary of which member accounts
725          * are protected by the specified policy. </p><p><h3>See Also:</h3>   <a
726          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListComplianceStatus">AWS
727          * API Reference</a></p>
728          *
729          * Queues the request into a thread executor and triggers associated callback when operation has finished.
730          */
731         virtual void ListComplianceStatusAsync(const Model::ListComplianceStatusRequest& request, const ListComplianceStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
732 
733         /**
734          * <p>Returns a <code>MemberAccounts</code> object that lists the member accounts
735          * in the administrator's Amazon Web Services organization.</p> <p>The
736          * <code>ListMemberAccounts</code> must be submitted by the account that is set as
737          * the Firewall Manager administrator.</p><p><h3>See Also:</h3>   <a
738          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListMemberAccounts">AWS
739          * API Reference</a></p>
740          */
741         virtual Model::ListMemberAccountsOutcome ListMemberAccounts(const Model::ListMemberAccountsRequest& request) const;
742 
743         /**
744          * <p>Returns a <code>MemberAccounts</code> object that lists the member accounts
745          * in the administrator's Amazon Web Services organization.</p> <p>The
746          * <code>ListMemberAccounts</code> must be submitted by the account that is set as
747          * the Firewall Manager administrator.</p><p><h3>See Also:</h3>   <a
748          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListMemberAccounts">AWS
749          * API Reference</a></p>
750          *
751          * returns a future to the operation so that it can be executed in parallel to other requests.
752          */
753         virtual Model::ListMemberAccountsOutcomeCallable ListMemberAccountsCallable(const Model::ListMemberAccountsRequest& request) const;
754 
755         /**
756          * <p>Returns a <code>MemberAccounts</code> object that lists the member accounts
757          * in the administrator's Amazon Web Services organization.</p> <p>The
758          * <code>ListMemberAccounts</code> must be submitted by the account that is set as
759          * the Firewall Manager administrator.</p><p><h3>See Also:</h3>   <a
760          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListMemberAccounts">AWS
761          * API Reference</a></p>
762          *
763          * Queues the request into a thread executor and triggers associated callback when operation has finished.
764          */
765         virtual void ListMemberAccountsAsync(const Model::ListMemberAccountsRequest& request, const ListMemberAccountsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
766 
767         /**
768          * <p>Returns an array of <code>PolicySummary</code> objects.</p><p><h3>See
769          * Also:</h3>   <a
770          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListPolicies">AWS
771          * API Reference</a></p>
772          */
773         virtual Model::ListPoliciesOutcome ListPolicies(const Model::ListPoliciesRequest& request) const;
774 
775         /**
776          * <p>Returns an array of <code>PolicySummary</code> objects.</p><p><h3>See
777          * Also:</h3>   <a
778          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListPolicies">AWS
779          * API Reference</a></p>
780          *
781          * returns a future to the operation so that it can be executed in parallel to other requests.
782          */
783         virtual Model::ListPoliciesOutcomeCallable ListPoliciesCallable(const Model::ListPoliciesRequest& request) const;
784 
785         /**
786          * <p>Returns an array of <code>PolicySummary</code> objects.</p><p><h3>See
787          * Also:</h3>   <a
788          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListPolicies">AWS
789          * API Reference</a></p>
790          *
791          * Queues the request into a thread executor and triggers associated callback when operation has finished.
792          */
793         virtual void ListPoliciesAsync(const Model::ListPoliciesRequest& request, const ListPoliciesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
794 
795         /**
796          * <p>Returns an array of <code>ProtocolsListDataSummary</code>
797          * objects.</p><p><h3>See Also:</h3>   <a
798          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListProtocolsLists">AWS
799          * API Reference</a></p>
800          */
801         virtual Model::ListProtocolsListsOutcome ListProtocolsLists(const Model::ListProtocolsListsRequest& request) const;
802 
803         /**
804          * <p>Returns an array of <code>ProtocolsListDataSummary</code>
805          * objects.</p><p><h3>See Also:</h3>   <a
806          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListProtocolsLists">AWS
807          * API Reference</a></p>
808          *
809          * returns a future to the operation so that it can be executed in parallel to other requests.
810          */
811         virtual Model::ListProtocolsListsOutcomeCallable ListProtocolsListsCallable(const Model::ListProtocolsListsRequest& request) const;
812 
813         /**
814          * <p>Returns an array of <code>ProtocolsListDataSummary</code>
815          * objects.</p><p><h3>See Also:</h3>   <a
816          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListProtocolsLists">AWS
817          * API Reference</a></p>
818          *
819          * Queues the request into a thread executor and triggers associated callback when operation has finished.
820          */
821         virtual void ListProtocolsListsAsync(const Model::ListProtocolsListsRequest& request, const ListProtocolsListsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
822 
823         /**
824          * <p>Retrieves the list of tags for the specified Amazon Web Services resource.
825          * </p><p><h3>See Also:</h3>   <a
826          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListTagsForResource">AWS
827          * API Reference</a></p>
828          */
829         virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const;
830 
831         /**
832          * <p>Retrieves the list of tags for the specified Amazon Web Services resource.
833          * </p><p><h3>See Also:</h3>   <a
834          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListTagsForResource">AWS
835          * API Reference</a></p>
836          *
837          * returns a future to the operation so that it can be executed in parallel to other requests.
838          */
839         virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const;
840 
841         /**
842          * <p>Retrieves the list of tags for the specified Amazon Web Services resource.
843          * </p><p><h3>See Also:</h3>   <a
844          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/ListTagsForResource">AWS
845          * API Reference</a></p>
846          *
847          * Queues the request into a thread executor and triggers associated callback when operation has finished.
848          */
849         virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
850 
851         /**
852          * <p>Creates an Firewall Manager applications list.</p><p><h3>See Also:</h3>   <a
853          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutAppsList">AWS API
854          * Reference</a></p>
855          */
856         virtual Model::PutAppsListOutcome PutAppsList(const Model::PutAppsListRequest& request) const;
857 
858         /**
859          * <p>Creates an Firewall Manager applications list.</p><p><h3>See Also:</h3>   <a
860          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutAppsList">AWS API
861          * Reference</a></p>
862          *
863          * returns a future to the operation so that it can be executed in parallel to other requests.
864          */
865         virtual Model::PutAppsListOutcomeCallable PutAppsListCallable(const Model::PutAppsListRequest& request) const;
866 
867         /**
868          * <p>Creates an Firewall Manager applications list.</p><p><h3>See Also:</h3>   <a
869          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutAppsList">AWS API
870          * Reference</a></p>
871          *
872          * Queues the request into a thread executor and triggers associated callback when operation has finished.
873          */
874         virtual void PutAppsListAsync(const Model::PutAppsListRequest& request, const PutAppsListResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
875 
876         /**
877          * <p>Designates the IAM role and Amazon Simple Notification Service (SNS) topic
878          * that Firewall Manager uses to record SNS logs.</p> <p>To perform this action
879          * outside of the console, you must configure the SNS topic to allow the Firewall
880          * Manager role <code>AWSServiceRoleForFMS</code> to publish SNS logs. For more
881          * information, see <a
882          * href="https://docs.aws.amazon.com/waf/latest/developerguide/fms-api-permissions-ref.html">Firewall
883          * Manager required permissions for API actions</a> in the <i>Firewall Manager
884          * Developer Guide</i>.</p><p><h3>See Also:</h3>   <a
885          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutNotificationChannel">AWS
886          * API Reference</a></p>
887          */
888         virtual Model::PutNotificationChannelOutcome PutNotificationChannel(const Model::PutNotificationChannelRequest& request) const;
889 
890         /**
891          * <p>Designates the IAM role and Amazon Simple Notification Service (SNS) topic
892          * that Firewall Manager uses to record SNS logs.</p> <p>To perform this action
893          * outside of the console, you must configure the SNS topic to allow the Firewall
894          * Manager role <code>AWSServiceRoleForFMS</code> to publish SNS logs. For more
895          * information, see <a
896          * href="https://docs.aws.amazon.com/waf/latest/developerguide/fms-api-permissions-ref.html">Firewall
897          * Manager required permissions for API actions</a> in the <i>Firewall Manager
898          * Developer Guide</i>.</p><p><h3>See Also:</h3>   <a
899          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutNotificationChannel">AWS
900          * API Reference</a></p>
901          *
902          * returns a future to the operation so that it can be executed in parallel to other requests.
903          */
904         virtual Model::PutNotificationChannelOutcomeCallable PutNotificationChannelCallable(const Model::PutNotificationChannelRequest& request) const;
905 
906         /**
907          * <p>Designates the IAM role and Amazon Simple Notification Service (SNS) topic
908          * that Firewall Manager uses to record SNS logs.</p> <p>To perform this action
909          * outside of the console, you must configure the SNS topic to allow the Firewall
910          * Manager role <code>AWSServiceRoleForFMS</code> to publish SNS logs. For more
911          * information, see <a
912          * href="https://docs.aws.amazon.com/waf/latest/developerguide/fms-api-permissions-ref.html">Firewall
913          * Manager required permissions for API actions</a> in the <i>Firewall Manager
914          * Developer Guide</i>.</p><p><h3>See Also:</h3>   <a
915          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutNotificationChannel">AWS
916          * API Reference</a></p>
917          *
918          * Queues the request into a thread executor and triggers associated callback when operation has finished.
919          */
920         virtual void PutNotificationChannelAsync(const Model::PutNotificationChannelRequest& request, const PutNotificationChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
921 
922         /**
923          * <p>Creates an Firewall Manager policy.</p> <p>Firewall Manager provides the
924          * following types of policies: </p> <ul> <li> <p>An WAF policy (type WAFV2), which
925          * defines rule groups to run first in the corresponding WAF web ACL and rule
926          * groups to run last in the web ACL.</p> </li> <li> <p>An WAF Classic policy (type
927          * WAF), which defines a rule group. </p> </li> <li> <p>A Shield Advanced policy,
928          * which applies Shield Advanced protection to specified accounts and
929          * resources.</p> </li> <li> <p>A security group policy, which manages VPC security
930          * groups across your Amazon Web Services organization. </p> </li> <li> <p>An
931          * Network Firewall policy, which provides firewall rules to filter network traffic
932          * in specified Amazon VPCs.</p> </li> <li> <p>A DNS Firewall policy, which
933          * provides Route 53 Resolver DNS Firewall rules to filter DNS queries for
934          * specified VPCs.</p> </li> </ul> <p>Each policy is specific to one of the types.
935          * If you want to enforce more than one policy type across accounts, create
936          * multiple policies. You can create multiple policies for each type.</p> <p>You
937          * must be subscribed to Shield Advanced to create a Shield Advanced policy. For
938          * more information about subscribing to Shield Advanced, see <a
939          * href="https://docs.aws.amazon.com/waf/latest/DDOSAPIReference/API_CreateSubscription.html">CreateSubscription</a>.</p><p><h3>See
940          * Also:</h3>   <a
941          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutPolicy">AWS API
942          * Reference</a></p>
943          */
944         virtual Model::PutPolicyOutcome PutPolicy(const Model::PutPolicyRequest& request) const;
945 
946         /**
947          * <p>Creates an Firewall Manager policy.</p> <p>Firewall Manager provides the
948          * following types of policies: </p> <ul> <li> <p>An WAF policy (type WAFV2), which
949          * defines rule groups to run first in the corresponding WAF web ACL and rule
950          * groups to run last in the web ACL.</p> </li> <li> <p>An WAF Classic policy (type
951          * WAF), which defines a rule group. </p> </li> <li> <p>A Shield Advanced policy,
952          * which applies Shield Advanced protection to specified accounts and
953          * resources.</p> </li> <li> <p>A security group policy, which manages VPC security
954          * groups across your Amazon Web Services organization. </p> </li> <li> <p>An
955          * Network Firewall policy, which provides firewall rules to filter network traffic
956          * in specified Amazon VPCs.</p> </li> <li> <p>A DNS Firewall policy, which
957          * provides Route 53 Resolver DNS Firewall rules to filter DNS queries for
958          * specified VPCs.</p> </li> </ul> <p>Each policy is specific to one of the types.
959          * If you want to enforce more than one policy type across accounts, create
960          * multiple policies. You can create multiple policies for each type.</p> <p>You
961          * must be subscribed to Shield Advanced to create a Shield Advanced policy. For
962          * more information about subscribing to Shield Advanced, see <a
963          * href="https://docs.aws.amazon.com/waf/latest/DDOSAPIReference/API_CreateSubscription.html">CreateSubscription</a>.</p><p><h3>See
964          * Also:</h3>   <a
965          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutPolicy">AWS API
966          * Reference</a></p>
967          *
968          * returns a future to the operation so that it can be executed in parallel to other requests.
969          */
970         virtual Model::PutPolicyOutcomeCallable PutPolicyCallable(const Model::PutPolicyRequest& request) const;
971 
972         /**
973          * <p>Creates an Firewall Manager policy.</p> <p>Firewall Manager provides the
974          * following types of policies: </p> <ul> <li> <p>An WAF policy (type WAFV2), which
975          * defines rule groups to run first in the corresponding WAF web ACL and rule
976          * groups to run last in the web ACL.</p> </li> <li> <p>An WAF Classic policy (type
977          * WAF), which defines a rule group. </p> </li> <li> <p>A Shield Advanced policy,
978          * which applies Shield Advanced protection to specified accounts and
979          * resources.</p> </li> <li> <p>A security group policy, which manages VPC security
980          * groups across your Amazon Web Services organization. </p> </li> <li> <p>An
981          * Network Firewall policy, which provides firewall rules to filter network traffic
982          * in specified Amazon VPCs.</p> </li> <li> <p>A DNS Firewall policy, which
983          * provides Route 53 Resolver DNS Firewall rules to filter DNS queries for
984          * specified VPCs.</p> </li> </ul> <p>Each policy is specific to one of the types.
985          * If you want to enforce more than one policy type across accounts, create
986          * multiple policies. You can create multiple policies for each type.</p> <p>You
987          * must be subscribed to Shield Advanced to create a Shield Advanced policy. For
988          * more information about subscribing to Shield Advanced, see <a
989          * href="https://docs.aws.amazon.com/waf/latest/DDOSAPIReference/API_CreateSubscription.html">CreateSubscription</a>.</p><p><h3>See
990          * Also:</h3>   <a
991          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutPolicy">AWS API
992          * Reference</a></p>
993          *
994          * Queues the request into a thread executor and triggers associated callback when operation has finished.
995          */
996         virtual void PutPolicyAsync(const Model::PutPolicyRequest& request, const PutPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
997 
998         /**
999          * <p>Creates an Firewall Manager protocols list.</p><p><h3>See Also:</h3>   <a
1000          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutProtocolsList">AWS
1001          * API Reference</a></p>
1002          */
1003         virtual Model::PutProtocolsListOutcome PutProtocolsList(const Model::PutProtocolsListRequest& request) const;
1004 
1005         /**
1006          * <p>Creates an Firewall Manager protocols list.</p><p><h3>See Also:</h3>   <a
1007          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutProtocolsList">AWS
1008          * API Reference</a></p>
1009          *
1010          * returns a future to the operation so that it can be executed in parallel to other requests.
1011          */
1012         virtual Model::PutProtocolsListOutcomeCallable PutProtocolsListCallable(const Model::PutProtocolsListRequest& request) const;
1013 
1014         /**
1015          * <p>Creates an Firewall Manager protocols list.</p><p><h3>See Also:</h3>   <a
1016          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/PutProtocolsList">AWS
1017          * API Reference</a></p>
1018          *
1019          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1020          */
1021         virtual void PutProtocolsListAsync(const Model::PutProtocolsListRequest& request, const PutProtocolsListResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1022 
1023         /**
1024          * <p>Adds one or more tags to an Amazon Web Services resource.</p><p><h3>See
1025          * Also:</h3>   <a
1026          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/TagResource">AWS API
1027          * Reference</a></p>
1028          */
1029         virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const;
1030 
1031         /**
1032          * <p>Adds one or more tags to an Amazon Web Services resource.</p><p><h3>See
1033          * Also:</h3>   <a
1034          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/TagResource">AWS API
1035          * Reference</a></p>
1036          *
1037          * returns a future to the operation so that it can be executed in parallel to other requests.
1038          */
1039         virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const;
1040 
1041         /**
1042          * <p>Adds one or more tags to an Amazon Web Services resource.</p><p><h3>See
1043          * Also:</h3>   <a
1044          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/TagResource">AWS API
1045          * Reference</a></p>
1046          *
1047          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1048          */
1049         virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1050 
1051         /**
1052          * <p>Removes one or more tags from an Amazon Web Services resource.</p><p><h3>See
1053          * Also:</h3>   <a
1054          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/UntagResource">AWS
1055          * API Reference</a></p>
1056          */
1057         virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const;
1058 
1059         /**
1060          * <p>Removes one or more tags from an Amazon Web Services resource.</p><p><h3>See
1061          * Also:</h3>   <a
1062          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/UntagResource">AWS
1063          * API Reference</a></p>
1064          *
1065          * returns a future to the operation so that it can be executed in parallel to other requests.
1066          */
1067         virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const;
1068 
1069         /**
1070          * <p>Removes one or more tags from an Amazon Web Services resource.</p><p><h3>See
1071          * Also:</h3>   <a
1072          * href="http://docs.aws.amazon.com/goto/WebAPI/fms-2018-01-01/UntagResource">AWS
1073          * API Reference</a></p>
1074          *
1075          * Queues the request into a thread executor and triggers associated callback when operation has finished.
1076          */
1077         virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
1078 
1079 
1080       void OverrideEndpoint(const Aws::String& endpoint);
1081     private:
1082       void init(const Aws::Client::ClientConfiguration& clientConfiguration);
1083         void AssociateAdminAccountAsyncHelper(const Model::AssociateAdminAccountRequest& request, const AssociateAdminAccountResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1084         void DeleteAppsListAsyncHelper(const Model::DeleteAppsListRequest& request, const DeleteAppsListResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1085         void DeleteNotificationChannelAsyncHelper(const Model::DeleteNotificationChannelRequest& request, const DeleteNotificationChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1086         void DeletePolicyAsyncHelper(const Model::DeletePolicyRequest& request, const DeletePolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1087         void DeleteProtocolsListAsyncHelper(const Model::DeleteProtocolsListRequest& request, const DeleteProtocolsListResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1088         void DisassociateAdminAccountAsyncHelper(const Model::DisassociateAdminAccountRequest& request, const DisassociateAdminAccountResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1089         void GetAdminAccountAsyncHelper(const Model::GetAdminAccountRequest& request, const GetAdminAccountResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1090         void GetAppsListAsyncHelper(const Model::GetAppsListRequest& request, const GetAppsListResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1091         void GetComplianceDetailAsyncHelper(const Model::GetComplianceDetailRequest& request, const GetComplianceDetailResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1092         void GetNotificationChannelAsyncHelper(const Model::GetNotificationChannelRequest& request, const GetNotificationChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1093         void GetPolicyAsyncHelper(const Model::GetPolicyRequest& request, const GetPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1094         void GetProtectionStatusAsyncHelper(const Model::GetProtectionStatusRequest& request, const GetProtectionStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1095         void GetProtocolsListAsyncHelper(const Model::GetProtocolsListRequest& request, const GetProtocolsListResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1096         void GetViolationDetailsAsyncHelper(const Model::GetViolationDetailsRequest& request, const GetViolationDetailsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1097         void ListAppsListsAsyncHelper(const Model::ListAppsListsRequest& request, const ListAppsListsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1098         void ListComplianceStatusAsyncHelper(const Model::ListComplianceStatusRequest& request, const ListComplianceStatusResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1099         void ListMemberAccountsAsyncHelper(const Model::ListMemberAccountsRequest& request, const ListMemberAccountsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1100         void ListPoliciesAsyncHelper(const Model::ListPoliciesRequest& request, const ListPoliciesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1101         void ListProtocolsListsAsyncHelper(const Model::ListProtocolsListsRequest& request, const ListProtocolsListsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1102         void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1103         void PutAppsListAsyncHelper(const Model::PutAppsListRequest& request, const PutAppsListResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1104         void PutNotificationChannelAsyncHelper(const Model::PutNotificationChannelRequest& request, const PutNotificationChannelResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1105         void PutPolicyAsyncHelper(const Model::PutPolicyRequest& request, const PutPolicyResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1106         void PutProtocolsListAsyncHelper(const Model::PutProtocolsListRequest& request, const PutProtocolsListResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1107         void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1108         void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
1109 
1110       Aws::String m_uri;
1111       Aws::String m_configScheme;
1112       std::shared_ptr<Aws::Utils::Threading::Executor> m_executor;
1113   };
1114 
1115 } // namespace FMS
1116 } // namespace Aws
1117