/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Http { class HttpClient; class HttpClientFactory; } // namespace Http namespace Utils { template< typename R, typename E> class Outcome; namespace Threading { class Executor; } // namespace Threading } // namespace Utils namespace Auth { class AWSCredentials; class AWSCredentialsProvider; } // namespace Auth namespace Client { class RetryStrategy; } // namespace Client namespace FMS { namespace Model { class AssociateAdminAccountRequest; class DeleteAppsListRequest; class DeleteNotificationChannelRequest; class DeletePolicyRequest; class DeleteProtocolsListRequest; class DisassociateAdminAccountRequest; class GetAdminAccountRequest; class GetAppsListRequest; class GetComplianceDetailRequest; class GetNotificationChannelRequest; class GetPolicyRequest; class GetProtectionStatusRequest; class GetProtocolsListRequest; class GetViolationDetailsRequest; class ListAppsListsRequest; class ListComplianceStatusRequest; class ListMemberAccountsRequest; class ListPoliciesRequest; class ListProtocolsListsRequest; class ListTagsForResourceRequest; class PutAppsListRequest; class PutNotificationChannelRequest; class PutPolicyRequest; class PutProtocolsListRequest; class TagResourceRequest; class UntagResourceRequest; typedef Aws::Utils::Outcome AssociateAdminAccountOutcome; typedef Aws::Utils::Outcome DeleteAppsListOutcome; typedef Aws::Utils::Outcome DeleteNotificationChannelOutcome; typedef Aws::Utils::Outcome DeletePolicyOutcome; typedef Aws::Utils::Outcome DeleteProtocolsListOutcome; typedef Aws::Utils::Outcome DisassociateAdminAccountOutcome; typedef Aws::Utils::Outcome GetAdminAccountOutcome; typedef Aws::Utils::Outcome GetAppsListOutcome; typedef Aws::Utils::Outcome GetComplianceDetailOutcome; typedef Aws::Utils::Outcome GetNotificationChannelOutcome; typedef Aws::Utils::Outcome GetPolicyOutcome; typedef Aws::Utils::Outcome GetProtectionStatusOutcome; typedef Aws::Utils::Outcome GetProtocolsListOutcome; typedef Aws::Utils::Outcome GetViolationDetailsOutcome; typedef Aws::Utils::Outcome ListAppsListsOutcome; typedef Aws::Utils::Outcome ListComplianceStatusOutcome; typedef Aws::Utils::Outcome ListMemberAccountsOutcome; typedef Aws::Utils::Outcome ListPoliciesOutcome; typedef Aws::Utils::Outcome ListProtocolsListsOutcome; typedef Aws::Utils::Outcome ListTagsForResourceOutcome; typedef Aws::Utils::Outcome PutAppsListOutcome; typedef Aws::Utils::Outcome PutNotificationChannelOutcome; typedef Aws::Utils::Outcome PutPolicyOutcome; typedef Aws::Utils::Outcome PutProtocolsListOutcome; typedef Aws::Utils::Outcome TagResourceOutcome; typedef Aws::Utils::Outcome UntagResourceOutcome; typedef std::future AssociateAdminAccountOutcomeCallable; typedef std::future DeleteAppsListOutcomeCallable; typedef std::future DeleteNotificationChannelOutcomeCallable; typedef std::future DeletePolicyOutcomeCallable; typedef std::future DeleteProtocolsListOutcomeCallable; typedef std::future DisassociateAdminAccountOutcomeCallable; typedef std::future GetAdminAccountOutcomeCallable; typedef std::future GetAppsListOutcomeCallable; typedef std::future GetComplianceDetailOutcomeCallable; typedef std::future GetNotificationChannelOutcomeCallable; typedef std::future GetPolicyOutcomeCallable; typedef std::future GetProtectionStatusOutcomeCallable; typedef std::future GetProtocolsListOutcomeCallable; typedef std::future GetViolationDetailsOutcomeCallable; typedef std::future ListAppsListsOutcomeCallable; typedef std::future ListComplianceStatusOutcomeCallable; typedef std::future ListMemberAccountsOutcomeCallable; typedef std::future ListPoliciesOutcomeCallable; typedef std::future ListProtocolsListsOutcomeCallable; typedef std::future ListTagsForResourceOutcomeCallable; typedef std::future PutAppsListOutcomeCallable; typedef std::future PutNotificationChannelOutcomeCallable; typedef std::future PutPolicyOutcomeCallable; typedef std::future PutProtocolsListOutcomeCallable; typedef std::future TagResourceOutcomeCallable; typedef std::future UntagResourceOutcomeCallable; } // namespace Model class FMSClient; typedef std::function&) > AssociateAdminAccountResponseReceivedHandler; typedef std::function&) > DeleteAppsListResponseReceivedHandler; typedef std::function&) > DeleteNotificationChannelResponseReceivedHandler; typedef std::function&) > DeletePolicyResponseReceivedHandler; typedef std::function&) > DeleteProtocolsListResponseReceivedHandler; typedef std::function&) > DisassociateAdminAccountResponseReceivedHandler; typedef std::function&) > GetAdminAccountResponseReceivedHandler; typedef std::function&) > GetAppsListResponseReceivedHandler; typedef std::function&) > GetComplianceDetailResponseReceivedHandler; typedef std::function&) > GetNotificationChannelResponseReceivedHandler; typedef std::function&) > GetPolicyResponseReceivedHandler; typedef std::function&) > GetProtectionStatusResponseReceivedHandler; typedef std::function&) > GetProtocolsListResponseReceivedHandler; typedef std::function&) > GetViolationDetailsResponseReceivedHandler; typedef std::function&) > ListAppsListsResponseReceivedHandler; typedef std::function&) > ListComplianceStatusResponseReceivedHandler; typedef std::function&) > ListMemberAccountsResponseReceivedHandler; typedef std::function&) > ListPoliciesResponseReceivedHandler; typedef std::function&) > ListProtocolsListsResponseReceivedHandler; typedef std::function&) > ListTagsForResourceResponseReceivedHandler; typedef std::function&) > PutAppsListResponseReceivedHandler; typedef std::function&) > PutNotificationChannelResponseReceivedHandler; typedef std::function&) > PutPolicyResponseReceivedHandler; typedef std::function&) > PutProtocolsListResponseReceivedHandler; typedef std::function&) > TagResourceResponseReceivedHandler; typedef std::function&) > UntagResourceResponseReceivedHandler; /** * AWS Firewall Manager

This is the AWS Firewall Manager * API Reference. This guide is for developers who need detailed information * about the AWS Firewall Manager API actions, data types, and errors. For detailed * information about AWS Firewall Manager features, see the AWS * Firewall Manager Developer Guide.

*/ class AWS_FMS_API FMSClient : public Aws::Client::AWSJsonClient { public: typedef Aws::Client::AWSJsonClient BASECLASS; /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ FMSClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ FMSClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ FMSClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); virtual ~FMSClient(); /** *

Sets the AWS Firewall Manager administrator account. AWS Firewall Manager * must be associated with the master account of your AWS organization or * associated with a member account that has the appropriate permissions. If the * account ID that you submit is not an AWS Organizations master account, AWS * Firewall Manager will set the appropriate permissions for the given member * account.

The account that you associate with AWS Firewall Manager is * called the AWS Firewall Manager administrator account.

See Also:

* AWS * API Reference

*/ virtual Model::AssociateAdminAccountOutcome AssociateAdminAccount(const Model::AssociateAdminAccountRequest& request) const; /** *

Sets the AWS Firewall Manager administrator account. AWS Firewall Manager * must be associated with the master account of your AWS organization or * associated with a member account that has the appropriate permissions. If the * account ID that you submit is not an AWS Organizations master account, AWS * Firewall Manager will set the appropriate permissions for the given member * account.

The account that you associate with AWS Firewall Manager is * called the AWS Firewall Manager administrator account.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::AssociateAdminAccountOutcomeCallable AssociateAdminAccountCallable(const Model::AssociateAdminAccountRequest& request) const; /** *

Sets the AWS Firewall Manager administrator account. AWS Firewall Manager * must be associated with the master account of your AWS organization or * associated with a member account that has the appropriate permissions. If the * account ID that you submit is not an AWS Organizations master account, AWS * Firewall Manager will set the appropriate permissions for the given member * account.

The account that you associate with AWS Firewall Manager is * called the AWS Firewall Manager administrator account.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void AssociateAdminAccountAsync(const Model::AssociateAdminAccountRequest& request, const AssociateAdminAccountResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Permanently deletes an AWS Firewall Manager applications list.

See * Also:

AWS * API Reference

*/ virtual Model::DeleteAppsListOutcome DeleteAppsList(const Model::DeleteAppsListRequest& request) const; /** *

Permanently deletes an AWS Firewall Manager applications list.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteAppsListOutcomeCallable DeleteAppsListCallable(const Model::DeleteAppsListRequest& request) const; /** *

Permanently deletes an AWS Firewall Manager applications list.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteAppsListAsync(const Model::DeleteAppsListRequest& request, const DeleteAppsListResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes an AWS Firewall Manager association with the IAM role and the Amazon * Simple Notification Service (SNS) topic that is used to record AWS Firewall * Manager SNS logs.

See Also:

AWS * API Reference

*/ virtual Model::DeleteNotificationChannelOutcome DeleteNotificationChannel(const Model::DeleteNotificationChannelRequest& request) const; /** *

Deletes an AWS Firewall Manager association with the IAM role and the Amazon * Simple Notification Service (SNS) topic that is used to record AWS Firewall * Manager SNS logs.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteNotificationChannelOutcomeCallable DeleteNotificationChannelCallable(const Model::DeleteNotificationChannelRequest& request) const; /** *

Deletes an AWS Firewall Manager association with the IAM role and the Amazon * Simple Notification Service (SNS) topic that is used to record AWS Firewall * Manager SNS logs.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteNotificationChannelAsync(const Model::DeleteNotificationChannelRequest& request, const DeleteNotificationChannelResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Permanently deletes an AWS Firewall Manager policy.

See Also:

* AWS * API Reference

*/ virtual Model::DeletePolicyOutcome DeletePolicy(const Model::DeletePolicyRequest& request) const; /** *

Permanently deletes an AWS Firewall Manager policy.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeletePolicyOutcomeCallable DeletePolicyCallable(const Model::DeletePolicyRequest& request) const; /** *

Permanently deletes an AWS Firewall Manager policy.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeletePolicyAsync(const Model::DeletePolicyRequest& request, const DeletePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Permanently deletes an AWS Firewall Manager protocols list.

See * Also:

AWS * API Reference

*/ virtual Model::DeleteProtocolsListOutcome DeleteProtocolsList(const Model::DeleteProtocolsListRequest& request) const; /** *

Permanently deletes an AWS Firewall Manager protocols list.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteProtocolsListOutcomeCallable DeleteProtocolsListCallable(const Model::DeleteProtocolsListRequest& request) const; /** *

Permanently deletes an AWS Firewall Manager protocols list.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteProtocolsListAsync(const Model::DeleteProtocolsListRequest& request, const DeleteProtocolsListResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Disassociates the account that has been set as the AWS Firewall Manager * administrator account. To set a different account as the administrator account, * you must submit an AssociateAdminAccount request.

See * Also:

AWS * API Reference

*/ virtual Model::DisassociateAdminAccountOutcome DisassociateAdminAccount(const Model::DisassociateAdminAccountRequest& request) const; /** *

Disassociates the account that has been set as the AWS Firewall Manager * administrator account. To set a different account as the administrator account, * you must submit an AssociateAdminAccount request.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DisassociateAdminAccountOutcomeCallable DisassociateAdminAccountCallable(const Model::DisassociateAdminAccountRequest& request) const; /** *

Disassociates the account that has been set as the AWS Firewall Manager * administrator account. To set a different account as the administrator account, * you must submit an AssociateAdminAccount request.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DisassociateAdminAccountAsync(const Model::DisassociateAdminAccountRequest& request, const DisassociateAdminAccountResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns the AWS Organizations master account that is associated with AWS * Firewall Manager as the AWS Firewall Manager administrator.

See * Also:

AWS * API Reference

*/ virtual Model::GetAdminAccountOutcome GetAdminAccount(const Model::GetAdminAccountRequest& request) const; /** *

Returns the AWS Organizations master account that is associated with AWS * Firewall Manager as the AWS Firewall Manager administrator.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetAdminAccountOutcomeCallable GetAdminAccountCallable(const Model::GetAdminAccountRequest& request) const; /** *

Returns the AWS Organizations master account that is associated with AWS * Firewall Manager as the AWS Firewall Manager administrator.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetAdminAccountAsync(const Model::GetAdminAccountRequest& request, const GetAdminAccountResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns information about the specified AWS Firewall Manager applications * list.

See Also:

AWS API * Reference

*/ virtual Model::GetAppsListOutcome GetAppsList(const Model::GetAppsListRequest& request) const; /** *

Returns information about the specified AWS Firewall Manager applications * list.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetAppsListOutcomeCallable GetAppsListCallable(const Model::GetAppsListRequest& request) const; /** *

Returns information about the specified AWS Firewall Manager applications * list.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetAppsListAsync(const Model::GetAppsListRequest& request, const GetAppsListResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns detailed compliance information about the specified member account. * Details include resources that are in and out of compliance with the specified * policy. Resources are considered noncompliant for AWS WAF and Shield Advanced * policies if the specified policy has not been applied to them. Resources are * considered noncompliant for security group policies if they are in scope of the * policy, they violate one or more of the policy rules, and remediation is * disabled or not possible.

See Also:

AWS * API Reference

*/ virtual Model::GetComplianceDetailOutcome GetComplianceDetail(const Model::GetComplianceDetailRequest& request) const; /** *

Returns detailed compliance information about the specified member account. * Details include resources that are in and out of compliance with the specified * policy. Resources are considered noncompliant for AWS WAF and Shield Advanced * policies if the specified policy has not been applied to them. Resources are * considered noncompliant for security group policies if they are in scope of the * policy, they violate one or more of the policy rules, and remediation is * disabled or not possible.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetComplianceDetailOutcomeCallable GetComplianceDetailCallable(const Model::GetComplianceDetailRequest& request) const; /** *

Returns detailed compliance information about the specified member account. * Details include resources that are in and out of compliance with the specified * policy. Resources are considered noncompliant for AWS WAF and Shield Advanced * policies if the specified policy has not been applied to them. Resources are * considered noncompliant for security group policies if they are in scope of the * policy, they violate one or more of the policy rules, and remediation is * disabled or not possible.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetComplianceDetailAsync(const Model::GetComplianceDetailRequest& request, const GetComplianceDetailResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Information about the Amazon Simple Notification Service (SNS) topic that is * used to record AWS Firewall Manager SNS logs.

See Also:

AWS * API Reference

*/ virtual Model::GetNotificationChannelOutcome GetNotificationChannel(const Model::GetNotificationChannelRequest& request) const; /** *

Information about the Amazon Simple Notification Service (SNS) topic that is * used to record AWS Firewall Manager SNS logs.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetNotificationChannelOutcomeCallable GetNotificationChannelCallable(const Model::GetNotificationChannelRequest& request) const; /** *

Information about the Amazon Simple Notification Service (SNS) topic that is * used to record AWS Firewall Manager SNS logs.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetNotificationChannelAsync(const Model::GetNotificationChannelRequest& request, const GetNotificationChannelResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns information about the specified AWS Firewall Manager * policy.

See Also:

AWS API * Reference

*/ virtual Model::GetPolicyOutcome GetPolicy(const Model::GetPolicyRequest& request) const; /** *

Returns information about the specified AWS Firewall Manager * policy.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetPolicyOutcomeCallable GetPolicyCallable(const Model::GetPolicyRequest& request) const; /** *

Returns information about the specified AWS Firewall Manager * policy.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetPolicyAsync(const Model::GetPolicyRequest& request, const GetPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

If you created a Shield Advanced policy, returns policy-level attack summary * information in the event of a potential DDoS attack. Other policy types are * currently unsupported.

See Also:

AWS * API Reference

*/ virtual Model::GetProtectionStatusOutcome GetProtectionStatus(const Model::GetProtectionStatusRequest& request) const; /** *

If you created a Shield Advanced policy, returns policy-level attack summary * information in the event of a potential DDoS attack. Other policy types are * currently unsupported.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetProtectionStatusOutcomeCallable GetProtectionStatusCallable(const Model::GetProtectionStatusRequest& request) const; /** *

If you created a Shield Advanced policy, returns policy-level attack summary * information in the event of a potential DDoS attack. Other policy types are * currently unsupported.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetProtectionStatusAsync(const Model::GetProtectionStatusRequest& request, const GetProtectionStatusResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns information about the specified AWS Firewall Manager protocols * list.

See Also:

AWS * API Reference

*/ virtual Model::GetProtocolsListOutcome GetProtocolsList(const Model::GetProtocolsListRequest& request) const; /** *

Returns information about the specified AWS Firewall Manager protocols * list.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetProtocolsListOutcomeCallable GetProtocolsListCallable(const Model::GetProtocolsListRequest& request) const; /** *

Returns information about the specified AWS Firewall Manager protocols * list.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetProtocolsListAsync(const Model::GetProtocolsListRequest& request, const GetProtocolsListResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves violations for a resource based on the specified AWS Firewall * Manager policy and AWS account.

See Also:

AWS * API Reference

*/ virtual Model::GetViolationDetailsOutcome GetViolationDetails(const Model::GetViolationDetailsRequest& request) const; /** *

Retrieves violations for a resource based on the specified AWS Firewall * Manager policy and AWS account.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetViolationDetailsOutcomeCallable GetViolationDetailsCallable(const Model::GetViolationDetailsRequest& request) const; /** *

Retrieves violations for a resource based on the specified AWS Firewall * Manager policy and AWS account.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetViolationDetailsAsync(const Model::GetViolationDetailsRequest& request, const GetViolationDetailsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns an array of AppsListDataSummary objects.

See * Also:

AWS * API Reference

*/ virtual Model::ListAppsListsOutcome ListAppsLists(const Model::ListAppsListsRequest& request) const; /** *

Returns an array of AppsListDataSummary objects.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListAppsListsOutcomeCallable ListAppsListsCallable(const Model::ListAppsListsRequest& request) const; /** *

Returns an array of AppsListDataSummary objects.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListAppsListsAsync(const Model::ListAppsListsRequest& request, const ListAppsListsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns an array of PolicyComplianceStatus objects. Use * PolicyComplianceStatus to get a summary of which member accounts * are protected by the specified policy.

See Also:

AWS * API Reference

*/ virtual Model::ListComplianceStatusOutcome ListComplianceStatus(const Model::ListComplianceStatusRequest& request) const; /** *

Returns an array of PolicyComplianceStatus objects. Use * PolicyComplianceStatus to get a summary of which member accounts * are protected by the specified policy.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListComplianceStatusOutcomeCallable ListComplianceStatusCallable(const Model::ListComplianceStatusRequest& request) const; /** *

Returns an array of PolicyComplianceStatus objects. Use * PolicyComplianceStatus to get a summary of which member accounts * are protected by the specified policy.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListComplianceStatusAsync(const Model::ListComplianceStatusRequest& request, const ListComplianceStatusResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns a MemberAccounts object that lists the member accounts * in the administrator's AWS organization.

The * ListMemberAccounts must be submitted by the account that is set as * the AWS Firewall Manager administrator.

See Also:

AWS * API Reference

*/ virtual Model::ListMemberAccountsOutcome ListMemberAccounts(const Model::ListMemberAccountsRequest& request) const; /** *

Returns a MemberAccounts object that lists the member accounts * in the administrator's AWS organization.

The * ListMemberAccounts must be submitted by the account that is set as * the AWS Firewall Manager administrator.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListMemberAccountsOutcomeCallable ListMemberAccountsCallable(const Model::ListMemberAccountsRequest& request) const; /** *

Returns a MemberAccounts object that lists the member accounts * in the administrator's AWS organization.

The * ListMemberAccounts must be submitted by the account that is set as * the AWS Firewall Manager administrator.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListMemberAccountsAsync(const Model::ListMemberAccountsRequest& request, const ListMemberAccountsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns an array of PolicySummary objects.

See * Also:

AWS * API Reference

*/ virtual Model::ListPoliciesOutcome ListPolicies(const Model::ListPoliciesRequest& request) const; /** *

Returns an array of PolicySummary objects.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListPoliciesOutcomeCallable ListPoliciesCallable(const Model::ListPoliciesRequest& request) const; /** *

Returns an array of PolicySummary objects.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListPoliciesAsync(const Model::ListPoliciesRequest& request, const ListPoliciesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns an array of ProtocolsListDataSummary * objects.

See Also:

AWS * API Reference

*/ virtual Model::ListProtocolsListsOutcome ListProtocolsLists(const Model::ListProtocolsListsRequest& request) const; /** *

Returns an array of ProtocolsListDataSummary * objects.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListProtocolsListsOutcomeCallable ListProtocolsListsCallable(const Model::ListProtocolsListsRequest& request) const; /** *

Returns an array of ProtocolsListDataSummary * objects.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListProtocolsListsAsync(const Model::ListProtocolsListsRequest& request, const ListProtocolsListsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Retrieves the list of tags for the specified AWS resource.

See * Also:

AWS * API Reference

*/ virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; /** *

Retrieves the list of tags for the specified AWS resource.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const; /** *

Retrieves the list of tags for the specified AWS resource.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates an AWS Firewall Manager applications list.

See Also:

* AWS * API Reference

*/ virtual Model::PutAppsListOutcome PutAppsList(const Model::PutAppsListRequest& request) const; /** *

Creates an AWS Firewall Manager applications list.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::PutAppsListOutcomeCallable PutAppsListCallable(const Model::PutAppsListRequest& request) const; /** *

Creates an AWS Firewall Manager applications list.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void PutAppsListAsync(const Model::PutAppsListRequest& request, const PutAppsListResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Designates the IAM role and Amazon Simple Notification Service (SNS) topic * that AWS Firewall Manager uses to record SNS logs.

See Also:

AWS * API Reference

*/ virtual Model::PutNotificationChannelOutcome PutNotificationChannel(const Model::PutNotificationChannelRequest& request) const; /** *

Designates the IAM role and Amazon Simple Notification Service (SNS) topic * that AWS Firewall Manager uses to record SNS logs.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::PutNotificationChannelOutcomeCallable PutNotificationChannelCallable(const Model::PutNotificationChannelRequest& request) const; /** *

Designates the IAM role and Amazon Simple Notification Service (SNS) topic * that AWS Firewall Manager uses to record SNS logs.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void PutNotificationChannelAsync(const Model::PutNotificationChannelRequest& request, const PutNotificationChannelResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates an AWS Firewall Manager policy.

Firewall Manager provides the * following types of policies:

  • A Shield Advanced policy, which * applies Shield Advanced protection to specified accounts and resources

  • *
  • An AWS WAF policy (type WAFV2), which defines rule groups to run first * in the corresponding AWS WAF web ACL and rule groups to run last in the web * ACL.

  • An AWS WAF Classic policy (type WAF), which defines a * rule group.

  • A security group policy, which manages VPC * security groups across your AWS organization.

Each policy is * specific to one of the types. If you want to enforce more than one policy type * across accounts, create multiple policies. You can create multiple policies for * each type.

You must be subscribed to Shield Advanced to create a Shield * Advanced policy. For more information about subscribing to Shield Advanced, see * CreateSubscription.

See * Also:

AWS API * Reference

*/ virtual Model::PutPolicyOutcome PutPolicy(const Model::PutPolicyRequest& request) const; /** *

Creates an AWS Firewall Manager policy.

Firewall Manager provides the * following types of policies:

  • A Shield Advanced policy, which * applies Shield Advanced protection to specified accounts and resources

  • *
  • An AWS WAF policy (type WAFV2), which defines rule groups to run first * in the corresponding AWS WAF web ACL and rule groups to run last in the web * ACL.

  • An AWS WAF Classic policy (type WAF), which defines a * rule group.

  • A security group policy, which manages VPC * security groups across your AWS organization.

Each policy is * specific to one of the types. If you want to enforce more than one policy type * across accounts, create multiple policies. You can create multiple policies for * each type.

You must be subscribed to Shield Advanced to create a Shield * Advanced policy. For more information about subscribing to Shield Advanced, see * CreateSubscription.

See * Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::PutPolicyOutcomeCallable PutPolicyCallable(const Model::PutPolicyRequest& request) const; /** *

Creates an AWS Firewall Manager policy.

Firewall Manager provides the * following types of policies:

  • A Shield Advanced policy, which * applies Shield Advanced protection to specified accounts and resources

  • *
  • An AWS WAF policy (type WAFV2), which defines rule groups to run first * in the corresponding AWS WAF web ACL and rule groups to run last in the web * ACL.

  • An AWS WAF Classic policy (type WAF), which defines a * rule group.

  • A security group policy, which manages VPC * security groups across your AWS organization.

Each policy is * specific to one of the types. If you want to enforce more than one policy type * across accounts, create multiple policies. You can create multiple policies for * each type.

You must be subscribed to Shield Advanced to create a Shield * Advanced policy. For more information about subscribing to Shield Advanced, see * CreateSubscription.

See * Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void PutPolicyAsync(const Model::PutPolicyRequest& request, const PutPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates an AWS Firewall Manager protocols list.

See Also:

AWS * API Reference

*/ virtual Model::PutProtocolsListOutcome PutProtocolsList(const Model::PutProtocolsListRequest& request) const; /** *

Creates an AWS Firewall Manager protocols list.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::PutProtocolsListOutcomeCallable PutProtocolsListCallable(const Model::PutProtocolsListRequest& request) const; /** *

Creates an AWS Firewall Manager protocols list.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void PutProtocolsListAsync(const Model::PutProtocolsListRequest& request, const PutProtocolsListResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Adds one or more tags to an AWS resource.

See Also:

AWS API * Reference

*/ virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; /** *

Adds one or more tags to an AWS resource.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const; /** *

Adds one or more tags to an AWS resource.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Removes one or more tags from an AWS resource.

See Also:

AWS * API Reference

*/ virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; /** *

Removes one or more tags from an AWS resource.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const; /** *

Removes one or more tags from an AWS resource.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void AssociateAdminAccountAsyncHelper(const Model::AssociateAdminAccountRequest& request, const AssociateAdminAccountResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteAppsListAsyncHelper(const Model::DeleteAppsListRequest& request, const DeleteAppsListResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteNotificationChannelAsyncHelper(const Model::DeleteNotificationChannelRequest& request, const DeleteNotificationChannelResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeletePolicyAsyncHelper(const Model::DeletePolicyRequest& request, const DeletePolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteProtocolsListAsyncHelper(const Model::DeleteProtocolsListRequest& request, const DeleteProtocolsListResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DisassociateAdminAccountAsyncHelper(const Model::DisassociateAdminAccountRequest& request, const DisassociateAdminAccountResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetAdminAccountAsyncHelper(const Model::GetAdminAccountRequest& request, const GetAdminAccountResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetAppsListAsyncHelper(const Model::GetAppsListRequest& request, const GetAppsListResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetComplianceDetailAsyncHelper(const Model::GetComplianceDetailRequest& request, const GetComplianceDetailResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetNotificationChannelAsyncHelper(const Model::GetNotificationChannelRequest& request, const GetNotificationChannelResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetPolicyAsyncHelper(const Model::GetPolicyRequest& request, const GetPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetProtectionStatusAsyncHelper(const Model::GetProtectionStatusRequest& request, const GetProtectionStatusResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetProtocolsListAsyncHelper(const Model::GetProtocolsListRequest& request, const GetProtocolsListResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetViolationDetailsAsyncHelper(const Model::GetViolationDetailsRequest& request, const GetViolationDetailsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListAppsListsAsyncHelper(const Model::ListAppsListsRequest& request, const ListAppsListsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListComplianceStatusAsyncHelper(const Model::ListComplianceStatusRequest& request, const ListComplianceStatusResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListMemberAccountsAsyncHelper(const Model::ListMemberAccountsRequest& request, const ListMemberAccountsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListPoliciesAsyncHelper(const Model::ListPoliciesRequest& request, const ListPoliciesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListProtocolsListsAsyncHelper(const Model::ListProtocolsListsRequest& request, const ListProtocolsListsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PutAppsListAsyncHelper(const Model::PutAppsListRequest& request, const PutAppsListResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PutNotificationChannelAsyncHelper(const Model::PutNotificationChannelRequest& request, const PutNotificationChannelResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PutPolicyAsyncHelper(const Model::PutPolicyRequest& request, const PutPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PutProtocolsListAsyncHelper(const Model::PutProtocolsListRequest& request, const PutProtocolsListResponseReceivedHandler& handler, const std::shared_ptr& context) const; void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace FMS } // namespace Aws