/** * 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 #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 WAFV2 { namespace Model { class AssociateWebACLRequest; class CheckCapacityRequest; class CreateIPSetRequest; class CreateRegexPatternSetRequest; class CreateRuleGroupRequest; class CreateWebACLRequest; class DeleteFirewallManagerRuleGroupsRequest; class DeleteIPSetRequest; class DeleteLoggingConfigurationRequest; class DeletePermissionPolicyRequest; class DeleteRegexPatternSetRequest; class DeleteRuleGroupRequest; class DeleteWebACLRequest; class DescribeManagedRuleGroupRequest; class DisassociateWebACLRequest; class GetIPSetRequest; class GetLoggingConfigurationRequest; class GetPermissionPolicyRequest; class GetRateBasedStatementManagedKeysRequest; class GetRegexPatternSetRequest; class GetRuleGroupRequest; class GetSampledRequestsRequest; class GetWebACLRequest; class GetWebACLForResourceRequest; class ListAvailableManagedRuleGroupsRequest; class ListIPSetsRequest; class ListLoggingConfigurationsRequest; class ListRegexPatternSetsRequest; class ListResourcesForWebACLRequest; class ListRuleGroupsRequest; class ListTagsForResourceRequest; class ListWebACLsRequest; class PutLoggingConfigurationRequest; class PutPermissionPolicyRequest; class TagResourceRequest; class UntagResourceRequest; class UpdateIPSetRequest; class UpdateRegexPatternSetRequest; class UpdateRuleGroupRequest; class UpdateWebACLRequest; typedef Aws::Utils::Outcome AssociateWebACLOutcome; typedef Aws::Utils::Outcome CheckCapacityOutcome; typedef Aws::Utils::Outcome CreateIPSetOutcome; typedef Aws::Utils::Outcome CreateRegexPatternSetOutcome; typedef Aws::Utils::Outcome CreateRuleGroupOutcome; typedef Aws::Utils::Outcome CreateWebACLOutcome; typedef Aws::Utils::Outcome DeleteFirewallManagerRuleGroupsOutcome; typedef Aws::Utils::Outcome DeleteIPSetOutcome; typedef Aws::Utils::Outcome DeleteLoggingConfigurationOutcome; typedef Aws::Utils::Outcome DeletePermissionPolicyOutcome; typedef Aws::Utils::Outcome DeleteRegexPatternSetOutcome; typedef Aws::Utils::Outcome DeleteRuleGroupOutcome; typedef Aws::Utils::Outcome DeleteWebACLOutcome; typedef Aws::Utils::Outcome DescribeManagedRuleGroupOutcome; typedef Aws::Utils::Outcome DisassociateWebACLOutcome; typedef Aws::Utils::Outcome GetIPSetOutcome; typedef Aws::Utils::Outcome GetLoggingConfigurationOutcome; typedef Aws::Utils::Outcome GetPermissionPolicyOutcome; typedef Aws::Utils::Outcome GetRateBasedStatementManagedKeysOutcome; typedef Aws::Utils::Outcome GetRegexPatternSetOutcome; typedef Aws::Utils::Outcome GetRuleGroupOutcome; typedef Aws::Utils::Outcome GetSampledRequestsOutcome; typedef Aws::Utils::Outcome GetWebACLOutcome; typedef Aws::Utils::Outcome GetWebACLForResourceOutcome; typedef Aws::Utils::Outcome ListAvailableManagedRuleGroupsOutcome; typedef Aws::Utils::Outcome ListIPSetsOutcome; typedef Aws::Utils::Outcome ListLoggingConfigurationsOutcome; typedef Aws::Utils::Outcome ListRegexPatternSetsOutcome; typedef Aws::Utils::Outcome ListResourcesForWebACLOutcome; typedef Aws::Utils::Outcome ListRuleGroupsOutcome; typedef Aws::Utils::Outcome ListTagsForResourceOutcome; typedef Aws::Utils::Outcome ListWebACLsOutcome; typedef Aws::Utils::Outcome PutLoggingConfigurationOutcome; typedef Aws::Utils::Outcome PutPermissionPolicyOutcome; typedef Aws::Utils::Outcome TagResourceOutcome; typedef Aws::Utils::Outcome UntagResourceOutcome; typedef Aws::Utils::Outcome UpdateIPSetOutcome; typedef Aws::Utils::Outcome UpdateRegexPatternSetOutcome; typedef Aws::Utils::Outcome UpdateRuleGroupOutcome; typedef Aws::Utils::Outcome UpdateWebACLOutcome; typedef std::future AssociateWebACLOutcomeCallable; typedef std::future CheckCapacityOutcomeCallable; typedef std::future CreateIPSetOutcomeCallable; typedef std::future CreateRegexPatternSetOutcomeCallable; typedef std::future CreateRuleGroupOutcomeCallable; typedef std::future CreateWebACLOutcomeCallable; typedef std::future DeleteFirewallManagerRuleGroupsOutcomeCallable; typedef std::future DeleteIPSetOutcomeCallable; typedef std::future DeleteLoggingConfigurationOutcomeCallable; typedef std::future DeletePermissionPolicyOutcomeCallable; typedef std::future DeleteRegexPatternSetOutcomeCallable; typedef std::future DeleteRuleGroupOutcomeCallable; typedef std::future DeleteWebACLOutcomeCallable; typedef std::future DescribeManagedRuleGroupOutcomeCallable; typedef std::future DisassociateWebACLOutcomeCallable; typedef std::future GetIPSetOutcomeCallable; typedef std::future GetLoggingConfigurationOutcomeCallable; typedef std::future GetPermissionPolicyOutcomeCallable; typedef std::future GetRateBasedStatementManagedKeysOutcomeCallable; typedef std::future GetRegexPatternSetOutcomeCallable; typedef std::future GetRuleGroupOutcomeCallable; typedef std::future GetSampledRequestsOutcomeCallable; typedef std::future GetWebACLOutcomeCallable; typedef std::future GetWebACLForResourceOutcomeCallable; typedef std::future ListAvailableManagedRuleGroupsOutcomeCallable; typedef std::future ListIPSetsOutcomeCallable; typedef std::future ListLoggingConfigurationsOutcomeCallable; typedef std::future ListRegexPatternSetsOutcomeCallable; typedef std::future ListResourcesForWebACLOutcomeCallable; typedef std::future ListRuleGroupsOutcomeCallable; typedef std::future ListTagsForResourceOutcomeCallable; typedef std::future ListWebACLsOutcomeCallable; typedef std::future PutLoggingConfigurationOutcomeCallable; typedef std::future PutPermissionPolicyOutcomeCallable; typedef std::future TagResourceOutcomeCallable; typedef std::future UntagResourceOutcomeCallable; typedef std::future UpdateIPSetOutcomeCallable; typedef std::future UpdateRegexPatternSetOutcomeCallable; typedef std::future UpdateRuleGroupOutcomeCallable; typedef std::future UpdateWebACLOutcomeCallable; } // namespace Model class WAFV2Client; typedef std::function&) > AssociateWebACLResponseReceivedHandler; typedef std::function&) > CheckCapacityResponseReceivedHandler; typedef std::function&) > CreateIPSetResponseReceivedHandler; typedef std::function&) > CreateRegexPatternSetResponseReceivedHandler; typedef std::function&) > CreateRuleGroupResponseReceivedHandler; typedef std::function&) > CreateWebACLResponseReceivedHandler; typedef std::function&) > DeleteFirewallManagerRuleGroupsResponseReceivedHandler; typedef std::function&) > DeleteIPSetResponseReceivedHandler; typedef std::function&) > DeleteLoggingConfigurationResponseReceivedHandler; typedef std::function&) > DeletePermissionPolicyResponseReceivedHandler; typedef std::function&) > DeleteRegexPatternSetResponseReceivedHandler; typedef std::function&) > DeleteRuleGroupResponseReceivedHandler; typedef std::function&) > DeleteWebACLResponseReceivedHandler; typedef std::function&) > DescribeManagedRuleGroupResponseReceivedHandler; typedef std::function&) > DisassociateWebACLResponseReceivedHandler; typedef std::function&) > GetIPSetResponseReceivedHandler; typedef std::function&) > GetLoggingConfigurationResponseReceivedHandler; typedef std::function&) > GetPermissionPolicyResponseReceivedHandler; typedef std::function&) > GetRateBasedStatementManagedKeysResponseReceivedHandler; typedef std::function&) > GetRegexPatternSetResponseReceivedHandler; typedef std::function&) > GetRuleGroupResponseReceivedHandler; typedef std::function&) > GetSampledRequestsResponseReceivedHandler; typedef std::function&) > GetWebACLResponseReceivedHandler; typedef std::function&) > GetWebACLForResourceResponseReceivedHandler; typedef std::function&) > ListAvailableManagedRuleGroupsResponseReceivedHandler; typedef std::function&) > ListIPSetsResponseReceivedHandler; typedef std::function&) > ListLoggingConfigurationsResponseReceivedHandler; typedef std::function&) > ListRegexPatternSetsResponseReceivedHandler; typedef std::function&) > ListResourcesForWebACLResponseReceivedHandler; typedef std::function&) > ListRuleGroupsResponseReceivedHandler; typedef std::function&) > ListTagsForResourceResponseReceivedHandler; typedef std::function&) > ListWebACLsResponseReceivedHandler; typedef std::function&) > PutLoggingConfigurationResponseReceivedHandler; typedef std::function&) > PutPermissionPolicyResponseReceivedHandler; typedef std::function&) > TagResourceResponseReceivedHandler; typedef std::function&) > UntagResourceResponseReceivedHandler; typedef std::function&) > UpdateIPSetResponseReceivedHandler; typedef std::function&) > UpdateRegexPatternSetResponseReceivedHandler; typedef std::function&) > UpdateRuleGroupResponseReceivedHandler; typedef std::function&) > UpdateWebACLResponseReceivedHandler; /** *

This is the latest version of the AWS WAF API, released in * November, 2019. The names of the entities that you use to access this API, like * endpoints and namespaces, all have the versioning information added, like "V2" * or "v2", to distinguish from the prior version. We recommend migrating your * resources to this version, because it has a number of significant * improvements.

If you used AWS WAF prior to this release, you can't use * this AWS WAFV2 API to access any AWS WAF resources that you created before. You * can access your old rules, web ACLs, and other AWS WAF resources only through * the AWS WAF Classic APIs. The AWS WAF Classic APIs have retained the prior * names, endpoints, and namespaces.

For information, including how to * migrate your AWS WAF resources to this version, see the AWS * WAF Developer Guide.

AWS WAF is a web application firewall * that lets you monitor the HTTP and HTTPS requests that are forwarded to Amazon * CloudFront, an Amazon API Gateway API, or an Application Load Balancer. AWS WAF * also lets you control access to your content. Based on conditions that you * specify, such as the IP addresses that requests originate from or the values of * query strings, API Gateway, CloudFront, or the Application Load Balancer * responds to requests either with the requested content or with an HTTP 403 * status code (Forbidden). You also can configure CloudFront to return a custom * error page when a request is blocked.

This API guide is for developers * who need detailed information about AWS WAF API actions, data types, and errors. * For detailed information about AWS WAF features and an overview of how to use * AWS WAF, see the AWS WAF Developer * Guide.

You can make calls using the endpoints listed in AWS * Service Endpoints for AWS WAF.

  • For regional applications, * you can use any of the endpoints in the list. A regional application can be an * Application Load Balancer (ALB) or an API Gateway stage.

  • For * AWS CloudFront applications, you must use the API endpoint listed for US East * (N. Virginia): us-east-1.

Alternatively, you can use one of * the AWS SDKs to access an API that's tailored to the programming language or * platform that you're using. For more information, see AWS SDKs.

We currently * provide two versions of the AWS WAF API: this API and the prior versions, the * classic AWS WAF APIs. This new API provides the same functionality as the older * versions, with the following major improvements:

  • You use one * API for both global and regional applications. Where you need to distinguish the * scope, you specify a Scope parameter and set it to * CLOUDFRONT or REGIONAL.

  • You can * define a Web ACL or rule group with a single call, and update it with a single * call. You define all rule specifications in JSON format, and pass them to your * rule group or Web ACL calls.

  • The limits AWS WAF places on the * use of rules more closely reflects the cost of running each type of rule. Rule * groups include capacity settings, so you know the maximum cost of a rule group * when you use it.

*/ class AWS_WAFV2_API WAFV2Client : 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. */ WAFV2Client(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. */ WAFV2Client(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 */ WAFV2Client(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); virtual ~WAFV2Client(); /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Associates a Web ACL with a regional * application resource, to protect the resource. A regional application can be an * Application Load Balancer (ALB) or an API Gateway stage.

For AWS * CloudFront, don't use this call. Instead, use your CloudFront distribution * configuration. To associate a Web ACL, in the CloudFront call * UpdateDistribution, set the web ACL ID to the Amazon Resource Name * (ARN) of the Web ACL. For information, see UpdateDistribution.

See * Also:

AWS * API Reference

*/ virtual Model::AssociateWebACLOutcome AssociateWebACL(const Model::AssociateWebACLRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Associates a Web ACL with a regional * application resource, to protect the resource. A regional application can be an * Application Load Balancer (ALB) or an API Gateway stage.

For AWS * CloudFront, don't use this call. Instead, use your CloudFront distribution * configuration. To associate a Web ACL, in the CloudFront call * UpdateDistribution, set the web ACL ID to the Amazon Resource Name * (ARN) of the Web ACL. For information, see UpdateDistribution.

See * Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Associates a Web ACL with a regional * application resource, to protect the resource. A regional application can be an * Application Load Balancer (ALB) or an API Gateway stage.

For AWS * CloudFront, don't use this call. Instead, use your CloudFront distribution * configuration. To associate a Web ACL, in the CloudFront call * UpdateDistribution, set the web ACL ID to the Amazon Resource Name * (ARN) of the Web ACL. For information, see UpdateDistribution.

See * Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Returns the web ACL capacity unit (WCU) * requirements for a specified scope and set of rules. You can use this to check * the capacity requirements for the rules you want to use in a RuleGroup or * WebACL.

AWS WAF uses WCUs to calculate and control the operating * resources that are used to run your rules, rule groups, and web ACLs. AWS WAF * calculates capacity differently for each rule type, to reflect the relative cost * of each rule. Simple rules that cost little to run use fewer WCUs than more * complex rules that use more processing power. Rule group capacity is fixed at * creation, which helps users plan their web ACL WCU usage when they use a rule * group. The WCU limit for web ACLs is 1,500.

See Also:

AWS * API Reference

*/ virtual Model::CheckCapacityOutcome CheckCapacity(const Model::CheckCapacityRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Returns the web ACL capacity unit (WCU) * requirements for a specified scope and set of rules. You can use this to check * the capacity requirements for the rules you want to use in a RuleGroup or * WebACL.

AWS WAF uses WCUs to calculate and control the operating * resources that are used to run your rules, rule groups, and web ACLs. AWS WAF * calculates capacity differently for each rule type, to reflect the relative cost * of each rule. Simple rules that cost little to run use fewer WCUs than more * complex rules that use more processing power. Rule group capacity is fixed at * creation, which helps users plan their web ACL WCU usage when they use a rule * group. The WCU limit for web ACLs is 1,500.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Returns the web ACL capacity unit (WCU) * requirements for a specified scope and set of rules. You can use this to check * the capacity requirements for the rules you want to use in a RuleGroup or * WebACL.

AWS WAF uses WCUs to calculate and control the operating * resources that are used to run your rules, rule groups, and web ACLs. AWS WAF * calculates capacity differently for each rule type, to reflect the relative cost * of each rule. Simple rules that cost little to run use fewer WCUs than more * complex rules that use more processing power. Rule group capacity is fixed at * creation, which helps users plan their web ACL WCU usage when they use a rule * group. The WCU limit for web ACLs is 1,500.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Creates an IPSet, which you use * to identify web requests that originate from specific IP addresses or ranges of * IP addresses. For example, if you're receiving a lot of requests from a ranges * of IP addresses, you can configure AWS WAF to block them using an IPSet that * lists those IP addresses.

See Also:

AWS * API Reference

*/ virtual Model::CreateIPSetOutcome CreateIPSet(const Model::CreateIPSetRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Creates an IPSet, which you use * to identify web requests that originate from specific IP addresses or ranges of * IP addresses. For example, if you're receiving a lot of requests from a ranges * of IP addresses, you can configure AWS WAF to block them using an IPSet that * lists those IP addresses.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Creates an IPSet, which you use * to identify web requests that originate from specific IP addresses or ranges of * IP addresses. For example, if you're receiving a lot of requests from a ranges * of IP addresses, you can configure AWS WAF to block them using an IPSet that * lists those IP addresses.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Creates a RegexPatternSet, which * you reference in a RegexPatternSetReferenceStatement, to have AWS WAF * inspect a web request component for the specified patterns.

See * Also:

AWS * API Reference

*/ virtual Model::CreateRegexPatternSetOutcome CreateRegexPatternSet(const Model::CreateRegexPatternSetRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Creates a RegexPatternSet, which * you reference in a RegexPatternSetReferenceStatement, to have AWS WAF * inspect a web request component for the specified patterns.

See * Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Creates a RegexPatternSet, which * you reference in a RegexPatternSetReferenceStatement, to have AWS WAF * inspect a web request component for the specified patterns.

See * Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Creates a RuleGroup per the * specifications provided.

A rule group defines a collection of rules to * inspect and control web requests that you can use in a WebACL. When you * create a rule group, you define an immutable capacity limit. If you update a * rule group, you must stay within the capacity. This allows others to reuse the * rule group with confidence in its capacity requirements.

See * Also:

AWS * API Reference

*/ virtual Model::CreateRuleGroupOutcome CreateRuleGroup(const Model::CreateRuleGroupRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Creates a RuleGroup per the * specifications provided.

A rule group defines a collection of rules to * inspect and control web requests that you can use in a WebACL. When you * create a rule group, you define an immutable capacity limit. If you update a * rule group, you must stay within the capacity. This allows others to reuse the * rule group with confidence in its capacity requirements.

See * Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Creates a RuleGroup per the * specifications provided.

A rule group defines a collection of rules to * inspect and control web requests that you can use in a WebACL. When you * create a rule group, you define an immutable capacity limit. If you update a * rule group, you must stay within the capacity. This allows others to reuse the * rule group with confidence in its capacity requirements.

See * Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Creates a WebACL per the * specifications provided.

A Web ACL defines a collection of rules to use * to inspect and control web requests. Each rule has an action defined (allow, * block, or count) for requests that match the statement of the rule. In the Web * ACL, you assign a default action to take (allow, block) for any request that * does not match any of the rules. The rules in a Web ACL can be a combination of * the types Rule, RuleGroup, and managed rule group. You can * associate a Web ACL with one or more AWS resources to protect. The resources can * be Amazon CloudFront, an Amazon API Gateway API, or an Application Load * Balancer.

See Also:

AWS * API Reference

*/ virtual Model::CreateWebACLOutcome CreateWebACL(const Model::CreateWebACLRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Creates a WebACL per the * specifications provided.

A Web ACL defines a collection of rules to use * to inspect and control web requests. Each rule has an action defined (allow, * block, or count) for requests that match the statement of the rule. In the Web * ACL, you assign a default action to take (allow, block) for any request that * does not match any of the rules. The rules in a Web ACL can be a combination of * the types Rule, RuleGroup, and managed rule group. You can * associate a Web ACL with one or more AWS resources to protect. The resources can * be Amazon CloudFront, an Amazon API Gateway API, or an Application Load * Balancer.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Creates a WebACL per the * specifications provided.

A Web ACL defines a collection of rules to use * to inspect and control web requests. Each rule has an action defined (allow, * block, or count) for requests that match the statement of the rule. In the Web * ACL, you assign a default action to take (allow, block) for any request that * does not match any of the rules. The rules in a Web ACL can be a combination of * the types Rule, RuleGroup, and managed rule group. You can * associate a Web ACL with one or more AWS resources to protect. The resources can * be Amazon CloudFront, an Amazon API Gateway API, or an Application Load * Balancer.

See Also:

AWS * API Reference

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

Deletes all rule groups that are managed by AWS Firewall Manager for the * specified web ACL.

You can only use this if * ManagedByFirewallManager is false in the specified WebACL. *

See Also:

AWS * API Reference

*/ virtual Model::DeleteFirewallManagerRuleGroupsOutcome DeleteFirewallManagerRuleGroups(const Model::DeleteFirewallManagerRuleGroupsRequest& request) const; /** *

Deletes all rule groups that are managed by AWS Firewall Manager for the * specified web ACL.

You can only use this if * ManagedByFirewallManager is false in the specified WebACL. *

See Also:

AWS * API Reference

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

Deletes all rule groups that are managed by AWS Firewall Manager for the * specified web ACL.

You can only use this if * ManagedByFirewallManager is false in the specified WebACL. *

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Deletes the specified IPSet. *

See Also:

AWS * API Reference

*/ virtual Model::DeleteIPSetOutcome DeleteIPSet(const Model::DeleteIPSetRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Deletes the specified IPSet. *

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Deletes the specified IPSet. *

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Deletes the LoggingConfiguration * from the specified web ACL.

See Also:

AWS * API Reference

*/ virtual Model::DeleteLoggingConfigurationOutcome DeleteLoggingConfiguration(const Model::DeleteLoggingConfigurationRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Deletes the LoggingConfiguration * from the specified web ACL.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Deletes the LoggingConfiguration * from the specified web ACL.

See Also:

AWS * API Reference

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

Permanently deletes an IAM policy from the specified rule group.

You * must be the owner of the rule group to perform this operation.

See * Also:

AWS * API Reference

*/ virtual Model::DeletePermissionPolicyOutcome DeletePermissionPolicy(const Model::DeletePermissionPolicyRequest& request) const; /** *

Permanently deletes an IAM policy from the specified rule group.

You * must be the owner of the rule group to perform this operation.

See * Also:

AWS * API Reference

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

Permanently deletes an IAM policy from the specified rule group.

You * must be the owner of the rule group to perform this operation.

See * Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Deletes the specified * RegexPatternSet.

See Also:

AWS * API Reference

*/ virtual Model::DeleteRegexPatternSetOutcome DeleteRegexPatternSet(const Model::DeleteRegexPatternSetRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Deletes the specified * RegexPatternSet.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Deletes the specified * RegexPatternSet.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Deletes the specified * RuleGroup.

See Also:

AWS * API Reference

*/ virtual Model::DeleteRuleGroupOutcome DeleteRuleGroup(const Model::DeleteRuleGroupRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Deletes the specified * RuleGroup.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Deletes the specified * RuleGroup.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Deletes the specified * WebACL.

You can only use this if * ManagedByFirewallManager is false in the specified WebACL. *

See Also:

AWS * API Reference

*/ virtual Model::DeleteWebACLOutcome DeleteWebACL(const Model::DeleteWebACLRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Deletes the specified * WebACL.

You can only use this if * ManagedByFirewallManager is false in the specified WebACL. *

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Deletes the specified * WebACL.

You can only use this if * ManagedByFirewallManager is false in the specified WebACL. *

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Provides high-level information for a * managed rule group, including descriptions of the rules.

See * Also:

AWS * API Reference

*/ virtual Model::DescribeManagedRuleGroupOutcome DescribeManagedRuleGroup(const Model::DescribeManagedRuleGroupRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Provides high-level information for a * managed rule group, including descriptions of the rules.

See * Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Provides high-level information for a * managed rule group, including descriptions of the rules.

See * Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Disassociates a Web ACL from a regional * application resource. A regional application can be an Application Load Balancer * (ALB) or an API Gateway stage.

For AWS CloudFront, don't use this call. * Instead, use your CloudFront distribution configuration. To disassociate a Web * ACL, provide an empty web ACL ID in the CloudFront call * UpdateDistribution. For information, see UpdateDistribution.

See * Also:

AWS * API Reference

*/ virtual Model::DisassociateWebACLOutcome DisassociateWebACL(const Model::DisassociateWebACLRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Disassociates a Web ACL from a regional * application resource. A regional application can be an Application Load Balancer * (ALB) or an API Gateway stage.

For AWS CloudFront, don't use this call. * Instead, use your CloudFront distribution configuration. To disassociate a Web * ACL, provide an empty web ACL ID in the CloudFront call * UpdateDistribution. For information, see UpdateDistribution.

See * Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Disassociates a Web ACL from a regional * application resource. A regional application can be an Application Load Balancer * (ALB) or an API Gateway stage.

For AWS CloudFront, don't use this call. * Instead, use your CloudFront distribution configuration. To disassociate a Web * ACL, provide an empty web ACL ID in the CloudFront call * UpdateDistribution. For information, see UpdateDistribution.

See * Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves the specified * IPSet.

See Also:

AWS API * Reference

*/ virtual Model::GetIPSetOutcome GetIPSet(const Model::GetIPSetRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves the specified * IPSet.

See Also:

AWS API * Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves the specified * IPSet.

See Also:

AWS API * Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Returns the LoggingConfiguration * for the specified web ACL.

See Also:

AWS * API Reference

*/ virtual Model::GetLoggingConfigurationOutcome GetLoggingConfiguration(const Model::GetLoggingConfigurationRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Returns the LoggingConfiguration * for the specified web ACL.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Returns the LoggingConfiguration * for the specified web ACL.

See Also:

AWS * API Reference

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

Returns the IAM policy that is attached to the specified rule group.

*

You must be the owner of the rule group to perform this * operation.

See Also:

AWS * API Reference

*/ virtual Model::GetPermissionPolicyOutcome GetPermissionPolicy(const Model::GetPermissionPolicyRequest& request) const; /** *

Returns the IAM policy that is attached to the specified rule group.

*

You must be the owner of the rule group to perform this * operation.

See Also:

AWS * API Reference

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

Returns the IAM policy that is attached to the specified rule group.

*

You must be the owner of the rule group to perform this * operation.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves the keys that are currently * blocked by a rate-based rule. The maximum number of managed keys that can be * blocked for a single rate-based rule is 10,000. If more than 10,000 addresses * exceed the rate limit, those with the highest rates are blocked.

See * Also:

AWS * API Reference

*/ virtual Model::GetRateBasedStatementManagedKeysOutcome GetRateBasedStatementManagedKeys(const Model::GetRateBasedStatementManagedKeysRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves the keys that are currently * blocked by a rate-based rule. The maximum number of managed keys that can be * blocked for a single rate-based rule is 10,000. If more than 10,000 addresses * exceed the rate limit, those with the highest rates are blocked.

See * Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves the keys that are currently * blocked by a rate-based rule. The maximum number of managed keys that can be * blocked for a single rate-based rule is 10,000. If more than 10,000 addresses * exceed the rate limit, those with the highest rates are blocked.

See * Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves the specified * RegexPatternSet.

See Also:

AWS * API Reference

*/ virtual Model::GetRegexPatternSetOutcome GetRegexPatternSet(const Model::GetRegexPatternSetRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves the specified * RegexPatternSet.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves the specified * RegexPatternSet.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves the specified * RuleGroup.

See Also:

AWS * API Reference

*/ virtual Model::GetRuleGroupOutcome GetRuleGroup(const Model::GetRuleGroupRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves the specified * RuleGroup.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves the specified * RuleGroup.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Gets detailed information about a * specified number of requests--a sample--that AWS WAF randomly selects from among * the first 5,000 requests that your AWS resource received during a time range * that you choose. You can specify a sample size of up to 500 requests, and you * can specify any time range in the previous three hours.

* GetSampledRequests returns a time range, which is usually the time * range that you specified. However, if your resource (such as a CloudFront * distribution) received 5,000 requests before the specified time range elapsed, * GetSampledRequests returns an updated time range. This new time * range indicates the actual period during which AWS WAF selected the requests in * the sample.

See Also:

AWS * API Reference

*/ virtual Model::GetSampledRequestsOutcome GetSampledRequests(const Model::GetSampledRequestsRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Gets detailed information about a * specified number of requests--a sample--that AWS WAF randomly selects from among * the first 5,000 requests that your AWS resource received during a time range * that you choose. You can specify a sample size of up to 500 requests, and you * can specify any time range in the previous three hours.

* GetSampledRequests returns a time range, which is usually the time * range that you specified. However, if your resource (such as a CloudFront * distribution) received 5,000 requests before the specified time range elapsed, * GetSampledRequests returns an updated time range. This new time * range indicates the actual period during which AWS WAF selected the requests in * the sample.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Gets detailed information about a * specified number of requests--a sample--that AWS WAF randomly selects from among * the first 5,000 requests that your AWS resource received during a time range * that you choose. You can specify a sample size of up to 500 requests, and you * can specify any time range in the previous three hours.

* GetSampledRequests returns a time range, which is usually the time * range that you specified. However, if your resource (such as a CloudFront * distribution) received 5,000 requests before the specified time range elapsed, * GetSampledRequests returns an updated time range. This new time * range indicates the actual period during which AWS WAF selected the requests in * the sample.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves the specified * WebACL.

See Also:

AWS API * Reference

*/ virtual Model::GetWebACLOutcome GetWebACL(const Model::GetWebACLRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves the specified * WebACL.

See Also:

AWS API * Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves the specified * WebACL.

See Also:

AWS API * Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves the WebACL for the * specified resource.

See Also:

AWS * API Reference

*/ virtual Model::GetWebACLForResourceOutcome GetWebACLForResource(const Model::GetWebACLForResourceRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves the WebACL for the * specified 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::GetWebACLForResourceOutcomeCallable GetWebACLForResourceCallable(const Model::GetWebACLForResourceRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves the WebACL for the * specified resource.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves an array of managed rule * groups that are available for you to use. This list includes all AWS Managed * Rules rule groups and the AWS Marketplace managed rule groups that you're * subscribed to.

See Also:

AWS * API Reference

*/ virtual Model::ListAvailableManagedRuleGroupsOutcome ListAvailableManagedRuleGroups(const Model::ListAvailableManagedRuleGroupsRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves an array of managed rule * groups that are available for you to use. This list includes all AWS Managed * Rules rule groups and the AWS Marketplace managed rule groups that you're * subscribed to.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves an array of managed rule * groups that are available for you to use. This list includes all AWS Managed * Rules rule groups and the AWS Marketplace managed rule groups that you're * subscribed to.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves an array of * IPSetSummary objects for the IP sets that you manage.

See * Also:

AWS * API Reference

*/ virtual Model::ListIPSetsOutcome ListIPSets(const Model::ListIPSetsRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves an array of * IPSetSummary objects for the IP sets that you manage.

See * Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves an array of * IPSetSummary objects for the IP sets that you manage.

See * Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves an array of your * LoggingConfiguration objects.

See Also:

AWS * API Reference

*/ virtual Model::ListLoggingConfigurationsOutcome ListLoggingConfigurations(const Model::ListLoggingConfigurationsRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves an array of your * LoggingConfiguration 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::ListLoggingConfigurationsOutcomeCallable ListLoggingConfigurationsCallable(const Model::ListLoggingConfigurationsRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves an array of your * LoggingConfiguration objects.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves an array of * RegexPatternSetSummary objects for the regex pattern sets that you * manage.

See Also:

AWS * API Reference

*/ virtual Model::ListRegexPatternSetsOutcome ListRegexPatternSets(const Model::ListRegexPatternSetsRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves an array of * RegexPatternSetSummary objects for the regex pattern sets that you * manage.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves an array of * RegexPatternSetSummary objects for the regex pattern sets that you * manage.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves an array of the Amazon * Resource Names (ARNs) for the regional resources that are associated with the * specified web ACL. If you want the list of AWS CloudFront resources, use the AWS * CloudFront call ListDistributionsByWebACLId.

See * Also:

AWS * API Reference

*/ virtual Model::ListResourcesForWebACLOutcome ListResourcesForWebACL(const Model::ListResourcesForWebACLRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves an array of the Amazon * Resource Names (ARNs) for the regional resources that are associated with the * specified web ACL. If you want the list of AWS CloudFront resources, use the AWS * CloudFront call ListDistributionsByWebACLId.

See * Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves an array of the Amazon * Resource Names (ARNs) for the regional resources that are associated with the * specified web ACL. If you want the list of AWS CloudFront resources, use the AWS * CloudFront call ListDistributionsByWebACLId.

See * Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves an array of * RuleGroupSummary objects for the rule groups that you manage. *

See Also:

AWS * API Reference

*/ virtual Model::ListRuleGroupsOutcome ListRuleGroups(const Model::ListRuleGroupsRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves an array of * RuleGroupSummary objects for the rule groups that you manage. *

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves an array of * RuleGroupSummary objects for the rule groups that you manage. *

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves the TagInfoForResource * for the specified resource. Tags are key:value pairs that you can use to * categorize and manage your resources, for purposes like billing. For example, * you might set the tag key to "customer" and the value to the customer name or * ID. You can specify one or more tags to add to each AWS resource, up to 50 tags * for a resource.

You can tag the AWS resources that you manage through AWS * WAF: web ACLs, rule groups, IP sets, and regex pattern sets. You can't manage or * view tags through the AWS WAF console.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves the TagInfoForResource * for the specified resource. Tags are key:value pairs that you can use to * categorize and manage your resources, for purposes like billing. For example, * you might set the tag key to "customer" and the value to the customer name or * ID. You can specify one or more tags to add to each AWS resource, up to 50 tags * for a resource.

You can tag the AWS resources that you manage through AWS * WAF: web ACLs, rule groups, IP sets, and regex pattern sets. You can't manage or * view tags through the AWS WAF console.

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; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves the TagInfoForResource * for the specified resource. Tags are key:value pairs that you can use to * categorize and manage your resources, for purposes like billing. For example, * you might set the tag key to "customer" and the value to the customer name or * ID. You can specify one or more tags to add to each AWS resource, up to 50 tags * for a resource.

You can tag the AWS resources that you manage through AWS * WAF: web ACLs, rule groups, IP sets, and regex pattern sets. You can't manage or * view tags through the AWS WAF console.

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; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves an array of * WebACLSummary objects for the web ACLs that you manage.

See * Also:

AWS * API Reference

*/ virtual Model::ListWebACLsOutcome ListWebACLs(const Model::ListWebACLsRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves an array of * WebACLSummary objects for the web ACLs that you manage.

See * Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Retrieves an array of * WebACLSummary objects for the web ACLs that you manage.

See * Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Enables the specified * LoggingConfiguration, to start logging from a web ACL, according to the * configuration provided.

You can access information about all traffic that * AWS WAF inspects using the following steps:

  1. Create an Amazon * Kinesis Data Firehose.

    Create the data firehose with a PUT source and in * the Region that you are operating. If you are capturing logs for Amazon * CloudFront, always create the firehose in US East (N. Virginia).

    Give * the data firehose a name that starts with the prefix aws-waf-logs-. * For example, aws-waf-logs-us-east-2-analytics.

    Do not * create the data firehose using a Kinesis stream as your source.

    *
  2. Associate that firehose to your web ACL using a * PutLoggingConfiguration request.

When you * successfully enable logging using a PutLoggingConfiguration * request, AWS WAF will create a service linked role with the necessary * permissions to write logs to the Amazon Kinesis Data Firehose. For more * information, see Logging * Web ACL Traffic Information in the AWS WAF Developer * Guide.

See Also:

AWS * API Reference

*/ virtual Model::PutLoggingConfigurationOutcome PutLoggingConfiguration(const Model::PutLoggingConfigurationRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Enables the specified * LoggingConfiguration, to start logging from a web ACL, according to the * configuration provided.

You can access information about all traffic that * AWS WAF inspects using the following steps:

  1. Create an Amazon * Kinesis Data Firehose.

    Create the data firehose with a PUT source and in * the Region that you are operating. If you are capturing logs for Amazon * CloudFront, always create the firehose in US East (N. Virginia).

    Give * the data firehose a name that starts with the prefix aws-waf-logs-. * For example, aws-waf-logs-us-east-2-analytics.

    Do not * create the data firehose using a Kinesis stream as your source.

    *
  2. Associate that firehose to your web ACL using a * PutLoggingConfiguration request.

When you * successfully enable logging using a PutLoggingConfiguration * request, AWS WAF will create a service linked role with the necessary * permissions to write logs to the Amazon Kinesis Data Firehose. For more * information, see Logging * Web ACL Traffic Information in the AWS WAF Developer * Guide.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Enables the specified * LoggingConfiguration, to start logging from a web ACL, according to the * configuration provided.

You can access information about all traffic that * AWS WAF inspects using the following steps:

  1. Create an Amazon * Kinesis Data Firehose.

    Create the data firehose with a PUT source and in * the Region that you are operating. If you are capturing logs for Amazon * CloudFront, always create the firehose in US East (N. Virginia).

    Give * the data firehose a name that starts with the prefix aws-waf-logs-. * For example, aws-waf-logs-us-east-2-analytics.

    Do not * create the data firehose using a Kinesis stream as your source.

    *
  2. Associate that firehose to your web ACL using a * PutLoggingConfiguration request.

When you * successfully enable logging using a PutLoggingConfiguration * request, AWS WAF will create a service linked role with the necessary * permissions to write logs to the Amazon Kinesis Data Firehose. For more * information, see Logging * Web ACL Traffic Information in the AWS WAF Developer * Guide.

See Also:

AWS * API Reference

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

Attaches an IAM policy to the specified resource. Use this to share a rule * group across accounts.

You must be the owner of the rule group to perform * this operation.

This action is subject to the following restrictions:

*
  • You can attach only one policy with each * PutPermissionPolicy request.

  • The ARN in the * request must be a valid WAF RuleGroup ARN and the rule group must exist * in the same region.

  • The user making the request must be the * owner of the rule group.

See Also:

AWS * API Reference

*/ virtual Model::PutPermissionPolicyOutcome PutPermissionPolicy(const Model::PutPermissionPolicyRequest& request) const; /** *

Attaches an IAM policy to the specified resource. Use this to share a rule * group across accounts.

You must be the owner of the rule group to perform * this operation.

This action is subject to the following restrictions:

*
  • You can attach only one policy with each * PutPermissionPolicy request.

  • The ARN in the * request must be a valid WAF RuleGroup ARN and the rule group must exist * in the same region.

  • The user making the request must be the * owner of the rule group.

See Also:

AWS * API Reference

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

Attaches an IAM policy to the specified resource. Use this to share a rule * group across accounts.

You must be the owner of the rule group to perform * this operation.

This action is subject to the following restrictions:

*
  • You can attach only one policy with each * PutPermissionPolicy request.

  • The ARN in the * request must be a valid WAF RuleGroup ARN and the rule group must exist * in the same region.

  • The user making the request must be the * owner of the rule group.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Associates tags with the specified AWS * resource. Tags are key:value pairs that you can use to categorize and manage * your resources, for purposes like billing. For example, you might set the tag * key to "customer" and the value to the customer name or ID. You can specify one * or more tags to add to each AWS resource, up to 50 tags for a resource.

*

You can tag the AWS resources that you manage through AWS WAF: web ACLs, rule * groups, IP sets, and regex pattern sets. You can't manage or view tags through * the AWS WAF console.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Associates tags with the specified AWS * resource. Tags are key:value pairs that you can use to categorize and manage * your resources, for purposes like billing. For example, you might set the tag * key to "customer" and the value to the customer name or ID. You can specify one * or more tags to add to each AWS resource, up to 50 tags for a resource.

*

You can tag the AWS resources that you manage through AWS WAF: web ACLs, rule * groups, IP sets, and regex pattern sets. You can't manage or view tags through * the AWS WAF console.

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; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Associates tags with the specified AWS * resource. Tags are key:value pairs that you can use to categorize and manage * your resources, for purposes like billing. For example, you might set the tag * key to "customer" and the value to the customer name or ID. You can specify one * or more tags to add to each AWS resource, up to 50 tags for a resource.

*

You can tag the AWS resources that you manage through AWS WAF: web ACLs, rule * groups, IP sets, and regex pattern sets. You can't manage or view tags through * the AWS WAF console.

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; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Disassociates tags from an AWS * resource. Tags are key:value pairs that you can associate with AWS resources. * For example, the tag key might be "customer" and the tag value might be * "companyA." You can specify one or more tags to add to each container. You can * add up to 50 tags to each AWS resource.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Disassociates tags from an AWS * resource. Tags are key:value pairs that you can associate with AWS resources. * For example, the tag key might be "customer" and the tag value might be * "companyA." You can specify one or more tags to add to each container. You can * add up to 50 tags to each 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; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Disassociates tags from an AWS * resource. Tags are key:value pairs that you can associate with AWS resources. * For example, the tag key might be "customer" and the tag value might be * "companyA." You can specify one or more tags to add to each container. You can * add up to 50 tags to each 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; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Updates the specified * IPSet.

See Also:

AWS * API Reference

*/ virtual Model::UpdateIPSetOutcome UpdateIPSet(const Model::UpdateIPSetRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Updates the specified * IPSet.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Updates the specified * IPSet.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Updates the specified * RegexPatternSet.

See Also:

AWS * API Reference

*/ virtual Model::UpdateRegexPatternSetOutcome UpdateRegexPatternSet(const Model::UpdateRegexPatternSetRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Updates the specified * RegexPatternSet.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Updates the specified * RegexPatternSet.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Updates the specified * RuleGroup.

A rule group defines a collection of rules to inspect * and control web requests that you can use in a WebACL. When you create a * rule group, you define an immutable capacity limit. If you update a rule group, * you must stay within the capacity. This allows others to reuse the rule group * with confidence in its capacity requirements.

See Also:

AWS * API Reference

*/ virtual Model::UpdateRuleGroupOutcome UpdateRuleGroup(const Model::UpdateRuleGroupRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Updates the specified * RuleGroup.

A rule group defines a collection of rules to inspect * and control web requests that you can use in a WebACL. When you create a * rule group, you define an immutable capacity limit. If you update a rule group, * you must stay within the capacity. This allows others to reuse the rule group * with confidence in its capacity requirements.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Updates the specified * RuleGroup.

A rule group defines a collection of rules to inspect * and control web requests that you can use in a WebACL. When you create a * rule group, you define an immutable capacity limit. If you update a rule group, * you must stay within the capacity. This allows others to reuse the rule group * with confidence in its capacity requirements.

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Updates the specified * WebACL.

A Web ACL defines a collection of rules to use to inspect * and control web requests. Each rule has an action defined (allow, block, or * count) for requests that match the statement of the rule. In the Web ACL, you * assign a default action to take (allow, block) for any request that does not * match any of the rules. The rules in a Web ACL can be a combination of the types * Rule, RuleGroup, and managed rule group. You can associate a Web * ACL with one or more AWS resources to protect. The resources can be Amazon * CloudFront, an Amazon API Gateway API, or an Application Load Balancer. *

See Also:

AWS * API Reference

*/ virtual Model::UpdateWebACLOutcome UpdateWebACL(const Model::UpdateWebACLRequest& request) const; /** *

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Updates the specified * WebACL.

A Web ACL defines a collection of rules to use to inspect * and control web requests. Each rule has an action defined (allow, block, or * count) for requests that match the statement of the rule. In the Web ACL, you * assign a default action to take (allow, block) for any request that does not * match any of the rules. The rules in a Web ACL can be a combination of the types * Rule, RuleGroup, and managed rule group. You can associate a Web * ACL with one or more AWS resources to protect. The resources can be Amazon * CloudFront, an Amazon API Gateway API, or an Application Load Balancer. *

See Also:

AWS * API Reference

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

This is the latest version of AWS WAF, named AWS WAFV2, * released in November, 2019. For information, including how to migrate your AWS * WAF resources from the prior release, see the AWS * WAF Developer Guide.

Updates the specified * WebACL.

A Web ACL defines a collection of rules to use to inspect * and control web requests. Each rule has an action defined (allow, block, or * count) for requests that match the statement of the rule. In the Web ACL, you * assign a default action to take (allow, block) for any request that does not * match any of the rules. The rules in a Web ACL can be a combination of the types * Rule, RuleGroup, and managed rule group. You can associate a Web * ACL with one or more AWS resources to protect. The resources can be Amazon * CloudFront, an Amazon API Gateway API, or an Application Load Balancer. *

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateWebACLAsync(const Model::UpdateWebACLRequest& request, const UpdateWebACLResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void AssociateWebACLAsyncHelper(const Model::AssociateWebACLRequest& request, const AssociateWebACLResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CheckCapacityAsyncHelper(const Model::CheckCapacityRequest& request, const CheckCapacityResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateIPSetAsyncHelper(const Model::CreateIPSetRequest& request, const CreateIPSetResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateRegexPatternSetAsyncHelper(const Model::CreateRegexPatternSetRequest& request, const CreateRegexPatternSetResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateRuleGroupAsyncHelper(const Model::CreateRuleGroupRequest& request, const CreateRuleGroupResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateWebACLAsyncHelper(const Model::CreateWebACLRequest& request, const CreateWebACLResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteFirewallManagerRuleGroupsAsyncHelper(const Model::DeleteFirewallManagerRuleGroupsRequest& request, const DeleteFirewallManagerRuleGroupsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteIPSetAsyncHelper(const Model::DeleteIPSetRequest& request, const DeleteIPSetResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteLoggingConfigurationAsyncHelper(const Model::DeleteLoggingConfigurationRequest& request, const DeleteLoggingConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeletePermissionPolicyAsyncHelper(const Model::DeletePermissionPolicyRequest& request, const DeletePermissionPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteRegexPatternSetAsyncHelper(const Model::DeleteRegexPatternSetRequest& request, const DeleteRegexPatternSetResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteRuleGroupAsyncHelper(const Model::DeleteRuleGroupRequest& request, const DeleteRuleGroupResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteWebACLAsyncHelper(const Model::DeleteWebACLRequest& request, const DeleteWebACLResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeManagedRuleGroupAsyncHelper(const Model::DescribeManagedRuleGroupRequest& request, const DescribeManagedRuleGroupResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DisassociateWebACLAsyncHelper(const Model::DisassociateWebACLRequest& request, const DisassociateWebACLResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetIPSetAsyncHelper(const Model::GetIPSetRequest& request, const GetIPSetResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetLoggingConfigurationAsyncHelper(const Model::GetLoggingConfigurationRequest& request, const GetLoggingConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetPermissionPolicyAsyncHelper(const Model::GetPermissionPolicyRequest& request, const GetPermissionPolicyResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetRateBasedStatementManagedKeysAsyncHelper(const Model::GetRateBasedStatementManagedKeysRequest& request, const GetRateBasedStatementManagedKeysResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetRegexPatternSetAsyncHelper(const Model::GetRegexPatternSetRequest& request, const GetRegexPatternSetResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetRuleGroupAsyncHelper(const Model::GetRuleGroupRequest& request, const GetRuleGroupResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetSampledRequestsAsyncHelper(const Model::GetSampledRequestsRequest& request, const GetSampledRequestsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetWebACLAsyncHelper(const Model::GetWebACLRequest& request, const GetWebACLResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetWebACLForResourceAsyncHelper(const Model::GetWebACLForResourceRequest& request, const GetWebACLForResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListAvailableManagedRuleGroupsAsyncHelper(const Model::ListAvailableManagedRuleGroupsRequest& request, const ListAvailableManagedRuleGroupsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListIPSetsAsyncHelper(const Model::ListIPSetsRequest& request, const ListIPSetsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListLoggingConfigurationsAsyncHelper(const Model::ListLoggingConfigurationsRequest& request, const ListLoggingConfigurationsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListRegexPatternSetsAsyncHelper(const Model::ListRegexPatternSetsRequest& request, const ListRegexPatternSetsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListResourcesForWebACLAsyncHelper(const Model::ListResourcesForWebACLRequest& request, const ListResourcesForWebACLResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListRuleGroupsAsyncHelper(const Model::ListRuleGroupsRequest& request, const ListRuleGroupsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListWebACLsAsyncHelper(const Model::ListWebACLsRequest& request, const ListWebACLsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PutLoggingConfigurationAsyncHelper(const Model::PutLoggingConfigurationRequest& request, const PutLoggingConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PutPermissionPolicyAsyncHelper(const Model::PutPermissionPolicyRequest& request, const PutPermissionPolicyResponseReceivedHandler& 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; void UpdateIPSetAsyncHelper(const Model::UpdateIPSetRequest& request, const UpdateIPSetResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateRegexPatternSetAsyncHelper(const Model::UpdateRegexPatternSetRequest& request, const UpdateRegexPatternSetResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateRuleGroupAsyncHelper(const Model::UpdateRuleGroupRequest& request, const UpdateRuleGroupResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateWebACLAsyncHelper(const Model::UpdateWebACLRequest& request, const UpdateWebACLResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace WAFV2 } // namespace Aws