/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include
#include
#include
#include
#include
#include
namespace Aws
{
namespace FMS
{
/**
* This is the Firewall Manager API Reference. This guide is for
* developers who need detailed information about the Firewall Manager API actions,
* data types, and errors. For detailed information about Firewall Manager
* features, see the Firewall
* Manager Developer Guide.
Some API actions require explicit resource
* permissions. For information, see the developer guide topic Service
* roles for Firewall Manager.
*/
class AWS_FMS_API FMSClient : public Aws::Client::AWSJsonClient, public Aws::Client::ClientWithAsyncTemplateMethods
{
public:
typedef Aws::Client::AWSJsonClient BASECLASS;
static const char* SERVICE_NAME;
static const char* ALLOCATION_TAG;
typedef FMSClientConfiguration ClientConfigurationType;
typedef FMSEndpointProvider EndpointProviderType;
/**
* 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::FMS::FMSClientConfiguration& clientConfiguration = Aws::FMS::FMSClientConfiguration(),
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG));
/**
* 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,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::FMS::FMSClientConfiguration& clientConfiguration = Aws::FMS::FMSClientConfiguration());
/**
* 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,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::FMS::FMSClientConfiguration& clientConfiguration = Aws::FMS::FMSClientConfiguration());
/* Legacy constructors due deprecation */
/**
* 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);
/**
* 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);
/**
* 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);
/* End of legacy constructors due deprecation */
virtual ~FMSClient();
/**
* Sets a Firewall Manager default administrator account. The Firewall Manager
* default administrator account can manage third-party firewalls and has full
* administrative scope that allows administration of all policy types, accounts,
* organizational units, and Regions. This account must be a member account of the
* organization in Organizations whose resources you want to protect.
For
* information about working with Firewall Manager administrator accounts, see Managing
* Firewall Manager administrators in the Firewall Manager Developer
* Guide.
See Also:
AWS
* API Reference
*/
virtual Model::AssociateAdminAccountOutcome AssociateAdminAccount(const Model::AssociateAdminAccountRequest& request) const;
/**
* A Callable wrapper for AssociateAdminAccount that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateAdminAccountOutcomeCallable AssociateAdminAccountCallable(const AssociateAdminAccountRequestT& request) const
{
return SubmitCallable(&FMSClient::AssociateAdminAccount, request);
}
/**
* An Async wrapper for AssociateAdminAccount that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateAdminAccountAsync(const AssociateAdminAccountRequestT& request, const AssociateAdminAccountResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::AssociateAdminAccount, request, handler, context);
}
/**
* Sets the Firewall Manager policy administrator as a tenant administrator of a
* third-party firewall service. A tenant is an instance of the third-party
* firewall service that's associated with your Amazon Web Services customer
* account.
See Also:
AWS
* API Reference
*/
virtual Model::AssociateThirdPartyFirewallOutcome AssociateThirdPartyFirewall(const Model::AssociateThirdPartyFirewallRequest& request) const;
/**
* A Callable wrapper for AssociateThirdPartyFirewall that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateThirdPartyFirewallOutcomeCallable AssociateThirdPartyFirewallCallable(const AssociateThirdPartyFirewallRequestT& request) const
{
return SubmitCallable(&FMSClient::AssociateThirdPartyFirewall, request);
}
/**
* An Async wrapper for AssociateThirdPartyFirewall that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateThirdPartyFirewallAsync(const AssociateThirdPartyFirewallRequestT& request, const AssociateThirdPartyFirewallResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::AssociateThirdPartyFirewall, request, handler, context);
}
/**
* Associate resources to a Firewall Manager resource set.
See
* Also:
AWS
* API Reference
*/
virtual Model::BatchAssociateResourceOutcome BatchAssociateResource(const Model::BatchAssociateResourceRequest& request) const;
/**
* A Callable wrapper for BatchAssociateResource that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::BatchAssociateResourceOutcomeCallable BatchAssociateResourceCallable(const BatchAssociateResourceRequestT& request) const
{
return SubmitCallable(&FMSClient::BatchAssociateResource, request);
}
/**
* An Async wrapper for BatchAssociateResource that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void BatchAssociateResourceAsync(const BatchAssociateResourceRequestT& request, const BatchAssociateResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::BatchAssociateResource, request, handler, context);
}
/**
* Disassociates resources from a Firewall Manager resource set.
See
* Also:
AWS
* API Reference
*/
virtual Model::BatchDisassociateResourceOutcome BatchDisassociateResource(const Model::BatchDisassociateResourceRequest& request) const;
/**
* A Callable wrapper for BatchDisassociateResource that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::BatchDisassociateResourceOutcomeCallable BatchDisassociateResourceCallable(const BatchDisassociateResourceRequestT& request) const
{
return SubmitCallable(&FMSClient::BatchDisassociateResource, request);
}
/**
* An Async wrapper for BatchDisassociateResource that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void BatchDisassociateResourceAsync(const BatchDisassociateResourceRequestT& request, const BatchDisassociateResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::BatchDisassociateResource, request, handler, context);
}
/**
* Permanently deletes an Firewall Manager applications list.
See
* Also:
AWS
* API Reference
*/
virtual Model::DeleteAppsListOutcome DeleteAppsList(const Model::DeleteAppsListRequest& request) const;
/**
* A Callable wrapper for DeleteAppsList that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteAppsListOutcomeCallable DeleteAppsListCallable(const DeleteAppsListRequestT& request) const
{
return SubmitCallable(&FMSClient::DeleteAppsList, request);
}
/**
* An Async wrapper for DeleteAppsList that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteAppsListAsync(const DeleteAppsListRequestT& request, const DeleteAppsListResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::DeleteAppsList, request, handler, context);
}
/**
* Deletes an Firewall Manager association with the IAM role and the Amazon
* Simple Notification Service (SNS) topic that is used to record Firewall Manager
* SNS logs.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteNotificationChannelOutcome DeleteNotificationChannel(const Model::DeleteNotificationChannelRequest& request) const;
/**
* A Callable wrapper for DeleteNotificationChannel that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteNotificationChannelOutcomeCallable DeleteNotificationChannelCallable(const DeleteNotificationChannelRequestT& request) const
{
return SubmitCallable(&FMSClient::DeleteNotificationChannel, request);
}
/**
* An Async wrapper for DeleteNotificationChannel that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteNotificationChannelAsync(const DeleteNotificationChannelRequestT& request, const DeleteNotificationChannelResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::DeleteNotificationChannel, request, handler, context);
}
/**
* Permanently deletes an Firewall Manager policy.
See Also:
* AWS
* API Reference
*/
virtual Model::DeletePolicyOutcome DeletePolicy(const Model::DeletePolicyRequest& request) const;
/**
* A Callable wrapper for DeletePolicy that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeletePolicyOutcomeCallable DeletePolicyCallable(const DeletePolicyRequestT& request) const
{
return SubmitCallable(&FMSClient::DeletePolicy, request);
}
/**
* An Async wrapper for DeletePolicy that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeletePolicyAsync(const DeletePolicyRequestT& request, const DeletePolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::DeletePolicy, request, handler, context);
}
/**
* Permanently deletes an Firewall Manager protocols list.
See
* Also:
AWS
* API Reference
*/
virtual Model::DeleteProtocolsListOutcome DeleteProtocolsList(const Model::DeleteProtocolsListRequest& request) const;
/**
* A Callable wrapper for DeleteProtocolsList that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteProtocolsListOutcomeCallable DeleteProtocolsListCallable(const DeleteProtocolsListRequestT& request) const
{
return SubmitCallable(&FMSClient::DeleteProtocolsList, request);
}
/**
* An Async wrapper for DeleteProtocolsList that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteProtocolsListAsync(const DeleteProtocolsListRequestT& request, const DeleteProtocolsListResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::DeleteProtocolsList, request, handler, context);
}
/**
* Deletes the specified ResourceSet.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteResourceSetOutcome DeleteResourceSet(const Model::DeleteResourceSetRequest& request) const;
/**
* A Callable wrapper for DeleteResourceSet that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteResourceSetOutcomeCallable DeleteResourceSetCallable(const DeleteResourceSetRequestT& request) const
{
return SubmitCallable(&FMSClient::DeleteResourceSet, request);
}
/**
* An Async wrapper for DeleteResourceSet that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteResourceSetAsync(const DeleteResourceSetRequestT& request, const DeleteResourceSetResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::DeleteResourceSet, request, handler, context);
}
/**
* Disassociates an Firewall Manager administrator account. To set a different
* account as an Firewall Manager administrator, submit a PutAdminAccount
* request. To set an account as a default administrator account, you must submit
* an AssociateAdminAccount request.
Disassociation of the default
* administrator account follows the first in, last out principle. If you are the
* default administrator, all Firewall Manager administrators within the
* organization must first disassociate their accounts before you can disassociate
* your account.
See Also:
AWS
* API Reference
*/
virtual Model::DisassociateAdminAccountOutcome DisassociateAdminAccount(const Model::DisassociateAdminAccountRequest& request) const;
/**
* A Callable wrapper for DisassociateAdminAccount that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DisassociateAdminAccountOutcomeCallable DisassociateAdminAccountCallable(const DisassociateAdminAccountRequestT& request) const
{
return SubmitCallable(&FMSClient::DisassociateAdminAccount, request);
}
/**
* An Async wrapper for DisassociateAdminAccount that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DisassociateAdminAccountAsync(const DisassociateAdminAccountRequestT& request, const DisassociateAdminAccountResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::DisassociateAdminAccount, request, handler, context);
}
/**
* Disassociates a Firewall Manager policy administrator from a third-party
* firewall tenant. When you call DisassociateThirdPartyFirewall
, the
* third-party firewall vendor deletes all of the firewalls that are associated
* with the account.
See Also:
AWS
* API Reference
*/
virtual Model::DisassociateThirdPartyFirewallOutcome DisassociateThirdPartyFirewall(const Model::DisassociateThirdPartyFirewallRequest& request) const;
/**
* A Callable wrapper for DisassociateThirdPartyFirewall that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DisassociateThirdPartyFirewallOutcomeCallable DisassociateThirdPartyFirewallCallable(const DisassociateThirdPartyFirewallRequestT& request) const
{
return SubmitCallable(&FMSClient::DisassociateThirdPartyFirewall, request);
}
/**
* An Async wrapper for DisassociateThirdPartyFirewall that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DisassociateThirdPartyFirewallAsync(const DisassociateThirdPartyFirewallRequestT& request, const DisassociateThirdPartyFirewallResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::DisassociateThirdPartyFirewall, request, handler, context);
}
/**
* Returns the Organizations account that is associated with Firewall Manager as
* the Firewall Manager default administrator.
See Also:
AWS
* API Reference
*/
virtual Model::GetAdminAccountOutcome GetAdminAccount(const Model::GetAdminAccountRequest& request) const;
/**
* A Callable wrapper for GetAdminAccount that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetAdminAccountOutcomeCallable GetAdminAccountCallable(const GetAdminAccountRequestT& request) const
{
return SubmitCallable(&FMSClient::GetAdminAccount, request);
}
/**
* An Async wrapper for GetAdminAccount that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetAdminAccountAsync(const GetAdminAccountRequestT& request, const GetAdminAccountResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::GetAdminAccount, request, handler, context);
}
/**
* Returns information about the specified account's administrative scope. The
* admistrative scope defines the resources that an Firewall Manager administrator
* can manage.
See Also:
AWS
* API Reference
*/
virtual Model::GetAdminScopeOutcome GetAdminScope(const Model::GetAdminScopeRequest& request) const;
/**
* A Callable wrapper for GetAdminScope that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetAdminScopeOutcomeCallable GetAdminScopeCallable(const GetAdminScopeRequestT& request) const
{
return SubmitCallable(&FMSClient::GetAdminScope, request);
}
/**
* An Async wrapper for GetAdminScope that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetAdminScopeAsync(const GetAdminScopeRequestT& request, const GetAdminScopeResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::GetAdminScope, request, handler, context);
}
/**
* Returns information about the specified Firewall Manager applications
* list.
See Also:
AWS API
* Reference
*/
virtual Model::GetAppsListOutcome GetAppsList(const Model::GetAppsListRequest& request) const;
/**
* A Callable wrapper for GetAppsList that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetAppsListOutcomeCallable GetAppsListCallable(const GetAppsListRequestT& request) const
{
return SubmitCallable(&FMSClient::GetAppsList, request);
}
/**
* An Async wrapper for GetAppsList that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetAppsListAsync(const GetAppsListRequestT& request, const GetAppsListResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::GetAppsList, request, handler, context);
}
/**
* 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 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.
-
*
Resources are considered noncompliant for Network Firewall policies if a
* firewall is missing in the VPC, if the firewall endpoint isn't set up in an
* expected Availability Zone and subnet, if a subnet created by the Firewall
* Manager doesn't have the expected route table, and for modifications to a
* firewall policy that violate the Firewall Manager policy's rules.
-
*
Resources are considered noncompliant for DNS Firewall policies if a DNS
* Firewall rule group is missing from the rule group associations for the VPC.
*
See Also:
AWS
* API Reference
*/
virtual Model::GetComplianceDetailOutcome GetComplianceDetail(const Model::GetComplianceDetailRequest& request) const;
/**
* A Callable wrapper for GetComplianceDetail that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetComplianceDetailOutcomeCallable GetComplianceDetailCallable(const GetComplianceDetailRequestT& request) const
{
return SubmitCallable(&FMSClient::GetComplianceDetail, request);
}
/**
* An Async wrapper for GetComplianceDetail that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetComplianceDetailAsync(const GetComplianceDetailRequestT& request, const GetComplianceDetailResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::GetComplianceDetail, request, handler, context);
}
/**
* Information about the Amazon Simple Notification Service (SNS) topic that is
* used to record Firewall Manager SNS logs.
See Also:
AWS
* API Reference
*/
virtual Model::GetNotificationChannelOutcome GetNotificationChannel(const Model::GetNotificationChannelRequest& request) const;
/**
* A Callable wrapper for GetNotificationChannel that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetNotificationChannelOutcomeCallable GetNotificationChannelCallable(const GetNotificationChannelRequestT& request) const
{
return SubmitCallable(&FMSClient::GetNotificationChannel, request);
}
/**
* An Async wrapper for GetNotificationChannel that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetNotificationChannelAsync(const GetNotificationChannelRequestT& request, const GetNotificationChannelResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::GetNotificationChannel, request, handler, context);
}
/**
* Returns information about the specified Firewall Manager
* policy.
See Also:
AWS API
* Reference
*/
virtual Model::GetPolicyOutcome GetPolicy(const Model::GetPolicyRequest& request) const;
/**
* A Callable wrapper for GetPolicy that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetPolicyOutcomeCallable GetPolicyCallable(const GetPolicyRequestT& request) const
{
return SubmitCallable(&FMSClient::GetPolicy, request);
}
/**
* An Async wrapper for GetPolicy that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetPolicyAsync(const GetPolicyRequestT& request, const GetPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::GetPolicy, request, handler, context);
}
/**
* 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;
/**
* A Callable wrapper for GetProtectionStatus that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetProtectionStatusOutcomeCallable GetProtectionStatusCallable(const GetProtectionStatusRequestT& request) const
{
return SubmitCallable(&FMSClient::GetProtectionStatus, request);
}
/**
* An Async wrapper for GetProtectionStatus that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetProtectionStatusAsync(const GetProtectionStatusRequestT& request, const GetProtectionStatusResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::GetProtectionStatus, request, handler, context);
}
/**
* Returns information about the specified Firewall Manager protocols
* list.
See Also:
AWS
* API Reference
*/
virtual Model::GetProtocolsListOutcome GetProtocolsList(const Model::GetProtocolsListRequest& request) const;
/**
* A Callable wrapper for GetProtocolsList that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetProtocolsListOutcomeCallable GetProtocolsListCallable(const GetProtocolsListRequestT& request) const
{
return SubmitCallable(&FMSClient::GetProtocolsList, request);
}
/**
* An Async wrapper for GetProtocolsList that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetProtocolsListAsync(const GetProtocolsListRequestT& request, const GetProtocolsListResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::GetProtocolsList, request, handler, context);
}
/**
* Gets information about a specific resource set.
See Also:
AWS
* API Reference
*/
virtual Model::GetResourceSetOutcome GetResourceSet(const Model::GetResourceSetRequest& request) const;
/**
* A Callable wrapper for GetResourceSet that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetResourceSetOutcomeCallable GetResourceSetCallable(const GetResourceSetRequestT& request) const
{
return SubmitCallable(&FMSClient::GetResourceSet, request);
}
/**
* An Async wrapper for GetResourceSet that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetResourceSetAsync(const GetResourceSetRequestT& request, const GetResourceSetResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::GetResourceSet, request, handler, context);
}
/**
* The onboarding status of a Firewall Manager admin account to third-party
* firewall vendor tenant.
See Also:
AWS
* API Reference
*/
virtual Model::GetThirdPartyFirewallAssociationStatusOutcome GetThirdPartyFirewallAssociationStatus(const Model::GetThirdPartyFirewallAssociationStatusRequest& request) const;
/**
* A Callable wrapper for GetThirdPartyFirewallAssociationStatus that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetThirdPartyFirewallAssociationStatusOutcomeCallable GetThirdPartyFirewallAssociationStatusCallable(const GetThirdPartyFirewallAssociationStatusRequestT& request) const
{
return SubmitCallable(&FMSClient::GetThirdPartyFirewallAssociationStatus, request);
}
/**
* An Async wrapper for GetThirdPartyFirewallAssociationStatus that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetThirdPartyFirewallAssociationStatusAsync(const GetThirdPartyFirewallAssociationStatusRequestT& request, const GetThirdPartyFirewallAssociationStatusResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::GetThirdPartyFirewallAssociationStatus, request, handler, context);
}
/**
* Retrieves violations for a resource based on the specified Firewall Manager
* policy and Amazon Web Services account.
See Also:
AWS
* API Reference
*/
virtual Model::GetViolationDetailsOutcome GetViolationDetails(const Model::GetViolationDetailsRequest& request) const;
/**
* A Callable wrapper for GetViolationDetails that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::GetViolationDetailsOutcomeCallable GetViolationDetailsCallable(const GetViolationDetailsRequestT& request) const
{
return SubmitCallable(&FMSClient::GetViolationDetails, request);
}
/**
* An Async wrapper for GetViolationDetails that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void GetViolationDetailsAsync(const GetViolationDetailsRequestT& request, const GetViolationDetailsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::GetViolationDetails, request, handler, context);
}
/**
* Returns a AdminAccounts
object that lists the Firewall Manager
* administrators within the organization that are onboarded to Firewall Manager by
* AssociateAdminAccount.
This operation can be called only from the
* organization's management account.
See Also:
AWS
* API Reference
*/
virtual Model::ListAdminAccountsForOrganizationOutcome ListAdminAccountsForOrganization(const Model::ListAdminAccountsForOrganizationRequest& request) const;
/**
* A Callable wrapper for ListAdminAccountsForOrganization that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListAdminAccountsForOrganizationOutcomeCallable ListAdminAccountsForOrganizationCallable(const ListAdminAccountsForOrganizationRequestT& request) const
{
return SubmitCallable(&FMSClient::ListAdminAccountsForOrganization, request);
}
/**
* An Async wrapper for ListAdminAccountsForOrganization that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListAdminAccountsForOrganizationAsync(const ListAdminAccountsForOrganizationRequestT& request, const ListAdminAccountsForOrganizationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::ListAdminAccountsForOrganization, request, handler, context);
}
/**
* Lists the accounts that are managing the specified Organizations member
* account. This is useful for any member account so that they can view the
* accounts who are managing their account. This operation only returns the
* managing administrators that have the requested account within their
* AdminScope.
See Also:
AWS
* API Reference
*/
virtual Model::ListAdminsManagingAccountOutcome ListAdminsManagingAccount(const Model::ListAdminsManagingAccountRequest& request) const;
/**
* A Callable wrapper for ListAdminsManagingAccount that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListAdminsManagingAccountOutcomeCallable ListAdminsManagingAccountCallable(const ListAdminsManagingAccountRequestT& request) const
{
return SubmitCallable(&FMSClient::ListAdminsManagingAccount, request);
}
/**
* An Async wrapper for ListAdminsManagingAccount that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListAdminsManagingAccountAsync(const ListAdminsManagingAccountRequestT& request, const ListAdminsManagingAccountResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::ListAdminsManagingAccount, request, handler, context);
}
/**
* Returns an array of AppsListDataSummary
objects.
See
* Also:
AWS
* API Reference
*/
virtual Model::ListAppsListsOutcome ListAppsLists(const Model::ListAppsListsRequest& request) const;
/**
* A Callable wrapper for ListAppsLists that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListAppsListsOutcomeCallable ListAppsListsCallable(const ListAppsListsRequestT& request) const
{
return SubmitCallable(&FMSClient::ListAppsLists, request);
}
/**
* An Async wrapper for ListAppsLists that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListAppsListsAsync(const ListAppsListsRequestT& request, const ListAppsListsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::ListAppsLists, request, handler, context);
}
/**
* 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;
/**
* A Callable wrapper for ListComplianceStatus that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListComplianceStatusOutcomeCallable ListComplianceStatusCallable(const ListComplianceStatusRequestT& request) const
{
return SubmitCallable(&FMSClient::ListComplianceStatus, request);
}
/**
* An Async wrapper for ListComplianceStatus that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListComplianceStatusAsync(const ListComplianceStatusRequestT& request, const ListComplianceStatusResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::ListComplianceStatus, request, handler, context);
}
/**
* Returns an array of resources in the organization's accounts that are
* available to be associated with a resource set.
See Also:
AWS
* API Reference
*/
virtual Model::ListDiscoveredResourcesOutcome ListDiscoveredResources(const Model::ListDiscoveredResourcesRequest& request) const;
/**
* A Callable wrapper for ListDiscoveredResources that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListDiscoveredResourcesOutcomeCallable ListDiscoveredResourcesCallable(const ListDiscoveredResourcesRequestT& request) const
{
return SubmitCallable(&FMSClient::ListDiscoveredResources, request);
}
/**
* An Async wrapper for ListDiscoveredResources that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListDiscoveredResourcesAsync(const ListDiscoveredResourcesRequestT& request, const ListDiscoveredResourcesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::ListDiscoveredResources, request, handler, context);
}
/**
* Returns a MemberAccounts
object that lists the member accounts
* in the administrator's Amazon Web Services organization.
Either an
* Firewall Manager administrator or the organization's management account can make
* this request.
See Also:
AWS
* API Reference
*/
virtual Model::ListMemberAccountsOutcome ListMemberAccounts(const Model::ListMemberAccountsRequest& request) const;
/**
* A Callable wrapper for ListMemberAccounts that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListMemberAccountsOutcomeCallable ListMemberAccountsCallable(const ListMemberAccountsRequestT& request) const
{
return SubmitCallable(&FMSClient::ListMemberAccounts, request);
}
/**
* An Async wrapper for ListMemberAccounts that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListMemberAccountsAsync(const ListMemberAccountsRequestT& request, const ListMemberAccountsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::ListMemberAccounts, request, handler, context);
}
/**
* Returns an array of PolicySummary
objects.
See
* Also:
AWS
* API Reference
*/
virtual Model::ListPoliciesOutcome ListPolicies(const Model::ListPoliciesRequest& request) const;
/**
* A Callable wrapper for ListPolicies that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListPoliciesOutcomeCallable ListPoliciesCallable(const ListPoliciesRequestT& request) const
{
return SubmitCallable(&FMSClient::ListPolicies, request);
}
/**
* An Async wrapper for ListPolicies that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListPoliciesAsync(const ListPoliciesRequestT& request, const ListPoliciesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::ListPolicies, request, handler, context);
}
/**
* Returns an array of ProtocolsListDataSummary
* objects.
See Also:
AWS
* API Reference
*/
virtual Model::ListProtocolsListsOutcome ListProtocolsLists(const Model::ListProtocolsListsRequest& request) const;
/**
* A Callable wrapper for ListProtocolsLists that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListProtocolsListsOutcomeCallable ListProtocolsListsCallable(const ListProtocolsListsRequestT& request) const
{
return SubmitCallable(&FMSClient::ListProtocolsLists, request);
}
/**
* An Async wrapper for ListProtocolsLists that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListProtocolsListsAsync(const ListProtocolsListsRequestT& request, const ListProtocolsListsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::ListProtocolsLists, request, handler, context);
}
/**
* Returns an array of resources that are currently associated to a resource
* set.
See Also:
AWS
* API Reference
*/
virtual Model::ListResourceSetResourcesOutcome ListResourceSetResources(const Model::ListResourceSetResourcesRequest& request) const;
/**
* A Callable wrapper for ListResourceSetResources that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListResourceSetResourcesOutcomeCallable ListResourceSetResourcesCallable(const ListResourceSetResourcesRequestT& request) const
{
return SubmitCallable(&FMSClient::ListResourceSetResources, request);
}
/**
* An Async wrapper for ListResourceSetResources that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListResourceSetResourcesAsync(const ListResourceSetResourcesRequestT& request, const ListResourceSetResourcesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::ListResourceSetResources, request, handler, context);
}
/**
* Returns an array of ResourceSetSummary
objects.
See
* Also:
AWS
* API Reference
*/
virtual Model::ListResourceSetsOutcome ListResourceSets(const Model::ListResourceSetsRequest& request) const;
/**
* A Callable wrapper for ListResourceSets that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListResourceSetsOutcomeCallable ListResourceSetsCallable(const ListResourceSetsRequestT& request) const
{
return SubmitCallable(&FMSClient::ListResourceSets, request);
}
/**
* An Async wrapper for ListResourceSets that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListResourceSetsAsync(const ListResourceSetsRequestT& request, const ListResourceSetsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::ListResourceSets, request, handler, context);
}
/**
* Retrieves the list of tags for the specified Amazon Web Services resource.
*
See Also:
AWS
* API Reference
*/
virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const;
/**
* A Callable wrapper for ListTagsForResource that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const ListTagsForResourceRequestT& request) const
{
return SubmitCallable(&FMSClient::ListTagsForResource, request);
}
/**
* An Async wrapper for ListTagsForResource that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListTagsForResourceAsync(const ListTagsForResourceRequestT& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::ListTagsForResource, request, handler, context);
}
/**
* Retrieves a list of all of the third-party firewall policies that are
* associated with the third-party firewall administrator's account.
See
* Also:
AWS
* API Reference
*/
virtual Model::ListThirdPartyFirewallFirewallPoliciesOutcome ListThirdPartyFirewallFirewallPolicies(const Model::ListThirdPartyFirewallFirewallPoliciesRequest& request) const;
/**
* A Callable wrapper for ListThirdPartyFirewallFirewallPolicies that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListThirdPartyFirewallFirewallPoliciesOutcomeCallable ListThirdPartyFirewallFirewallPoliciesCallable(const ListThirdPartyFirewallFirewallPoliciesRequestT& request) const
{
return SubmitCallable(&FMSClient::ListThirdPartyFirewallFirewallPolicies, request);
}
/**
* An Async wrapper for ListThirdPartyFirewallFirewallPolicies that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListThirdPartyFirewallFirewallPoliciesAsync(const ListThirdPartyFirewallFirewallPoliciesRequestT& request, const ListThirdPartyFirewallFirewallPoliciesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::ListThirdPartyFirewallFirewallPolicies, request, handler, context);
}
/**
* Creates or updates an Firewall Manager administrator account. The account
* must be a member of the organization that was onboarded to Firewall Manager by
* AssociateAdminAccount. Only the organization's management account can
* create an Firewall Manager administrator account. When you create an Firewall
* Manager administrator account, the service checks to see if the account is
* already a delegated administrator within Organizations. If the account isn't a
* delegated administrator, Firewall Manager calls Organizations to delegate the
* account within Organizations. For more information about administrator accounts
* within Organizations, see Managing
* the Amazon Web Services Accounts in Your Organization.
See
* Also:
AWS
* API Reference
*/
virtual Model::PutAdminAccountOutcome PutAdminAccount(const Model::PutAdminAccountRequest& request) const;
/**
* A Callable wrapper for PutAdminAccount that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutAdminAccountOutcomeCallable PutAdminAccountCallable(const PutAdminAccountRequestT& request) const
{
return SubmitCallable(&FMSClient::PutAdminAccount, request);
}
/**
* An Async wrapper for PutAdminAccount that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutAdminAccountAsync(const PutAdminAccountRequestT& request, const PutAdminAccountResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::PutAdminAccount, request, handler, context);
}
/**
* Creates an Firewall Manager applications list.
See Also:
AWS API
* Reference
*/
virtual Model::PutAppsListOutcome PutAppsList(const Model::PutAppsListRequest& request) const;
/**
* A Callable wrapper for PutAppsList that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutAppsListOutcomeCallable PutAppsListCallable(const PutAppsListRequestT& request) const
{
return SubmitCallable(&FMSClient::PutAppsList, request);
}
/**
* An Async wrapper for PutAppsList that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutAppsListAsync(const PutAppsListRequestT& request, const PutAppsListResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::PutAppsList, request, handler, context);
}
/**
* Designates the IAM role and Amazon Simple Notification Service (SNS) topic
* that Firewall Manager uses to record SNS logs.
To perform this action
* outside of the console, you must first configure the SNS topic's access policy
* to allow the SnsRoleName
to publish SNS logs. If the
* SnsRoleName
provided is a role other than the
* AWSServiceRoleForFMS
service-linked role, this role must have a
* trust relationship configured to allow the Firewall Manager service principal
* fms.amazonaws.com
to assume this role. For information about
* configuring an SNS access policy, see Service
* roles for Firewall Manager in the Firewall Manager Developer
* Guide.
See Also:
AWS
* API Reference
*/
virtual Model::PutNotificationChannelOutcome PutNotificationChannel(const Model::PutNotificationChannelRequest& request) const;
/**
* A Callable wrapper for PutNotificationChannel that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutNotificationChannelOutcomeCallable PutNotificationChannelCallable(const PutNotificationChannelRequestT& request) const
{
return SubmitCallable(&FMSClient::PutNotificationChannel, request);
}
/**
* An Async wrapper for PutNotificationChannel that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutNotificationChannelAsync(const PutNotificationChannelRequestT& request, const PutNotificationChannelResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::PutNotificationChannel, request, handler, context);
}
/**
* Creates an Firewall Manager policy.
Firewall Manager provides the
* following types of policies:
-
An WAF policy (type WAFV2), which
* defines rule groups to run first in the corresponding WAF web ACL and rule
* groups to run last in the web ACL.
-
An WAF Classic policy (type
* WAF), which defines a rule group.
-
A Shield Advanced policy,
* which applies Shield Advanced protection to specified accounts and
* resources.
-
A security group policy, which manages VPC security
* groups across your Amazon Web Services organization.
-
An
* Network Firewall policy, which provides firewall rules to filter network traffic
* in specified Amazon VPCs.
-
A DNS Firewall policy, which
* provides Route 53 Resolver DNS Firewall rules to filter DNS queries for
* specified VPCs.
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;
/**
* A Callable wrapper for PutPolicy that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutPolicyOutcomeCallable PutPolicyCallable(const PutPolicyRequestT& request) const
{
return SubmitCallable(&FMSClient::PutPolicy, request);
}
/**
* An Async wrapper for PutPolicy that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutPolicyAsync(const PutPolicyRequestT& request, const PutPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::PutPolicy, request, handler, context);
}
/**
* Creates an Firewall Manager protocols list.
See Also:
AWS
* API Reference
*/
virtual Model::PutProtocolsListOutcome PutProtocolsList(const Model::PutProtocolsListRequest& request) const;
/**
* A Callable wrapper for PutProtocolsList that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutProtocolsListOutcomeCallable PutProtocolsListCallable(const PutProtocolsListRequestT& request) const
{
return SubmitCallable(&FMSClient::PutProtocolsList, request);
}
/**
* An Async wrapper for PutProtocolsList that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutProtocolsListAsync(const PutProtocolsListRequestT& request, const PutProtocolsListResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::PutProtocolsList, request, handler, context);
}
/**
* Creates the resource set.
An Firewall Manager resource set defines the
* resources to import into an Firewall Manager policy from another Amazon Web
* Services service.
See Also:
AWS
* API Reference
*/
virtual Model::PutResourceSetOutcome PutResourceSet(const Model::PutResourceSetRequest& request) const;
/**
* A Callable wrapper for PutResourceSet that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::PutResourceSetOutcomeCallable PutResourceSetCallable(const PutResourceSetRequestT& request) const
{
return SubmitCallable(&FMSClient::PutResourceSet, request);
}
/**
* An Async wrapper for PutResourceSet that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void PutResourceSetAsync(const PutResourceSetRequestT& request, const PutResourceSetResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::PutResourceSet, request, handler, context);
}
/**
* Adds one or more tags to an Amazon Web Services resource.
See
* Also:
AWS API
* Reference
*/
virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const;
/**
* A Callable wrapper for TagResource that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::TagResourceOutcomeCallable TagResourceCallable(const TagResourceRequestT& request) const
{
return SubmitCallable(&FMSClient::TagResource, request);
}
/**
* An Async wrapper for TagResource that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void TagResourceAsync(const TagResourceRequestT& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::TagResource, request, handler, context);
}
/**
* Removes one or more tags from an Amazon Web Services resource.
See
* Also:
AWS
* API Reference
*/
virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const;
/**
* A Callable wrapper for UntagResource that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UntagResourceOutcomeCallable UntagResourceCallable(const UntagResourceRequestT& request) const
{
return SubmitCallable(&FMSClient::UntagResource, request);
}
/**
* An Async wrapper for UntagResource that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UntagResourceAsync(const UntagResourceRequestT& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&FMSClient::UntagResource, request, handler, context);
}
void OverrideEndpoint(const Aws::String& endpoint);
std::shared_ptr& accessEndpointProvider();
private:
friend class Aws::Client::ClientWithAsyncTemplateMethods;
void init(const FMSClientConfiguration& clientConfiguration);
FMSClientConfiguration m_clientConfiguration;
std::shared_ptr m_executor;
std::shared_ptr m_endpointProvider;
};
} // namespace FMS
} // namespace Aws