%% WARNING: DO NOT EDIT, AUTO-GENERATED CODE! %% See https://github.com/aws-beam/aws-codegen for more details. %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% This is the AWS WAF Classic API Reference for using AWS WAF Classic with %% Amazon CloudFront. The AWS WAF Classic actions and data types listed in %% the reference are available for protecting Amazon CloudFront %% distributions. You can use these actions and data types via the endpoint %% waf.amazonaws.com. This guide is for developers who need detailed %% information about the AWS WAF Classic API actions, data types, and errors. %% For detailed information about AWS WAF Classic features and an overview of %% how to use the AWS WAF Classic API, see the AWS WAF Classic in the %% developer guide. -module(aws_waf). -export([create_byte_match_set/2, create_byte_match_set/3, create_geo_match_set/2, create_geo_match_set/3, create_ip_set/2, create_ip_set/3, create_rate_based_rule/2, create_rate_based_rule/3, create_regex_match_set/2, create_regex_match_set/3, create_regex_pattern_set/2, create_regex_pattern_set/3, create_rule/2, create_rule/3, create_rule_group/2, create_rule_group/3, create_size_constraint_set/2, create_size_constraint_set/3, create_sql_injection_match_set/2, create_sql_injection_match_set/3, create_web_acl/2, create_web_acl/3, create_web_acl_migration_stack/2, create_web_acl_migration_stack/3, create_xss_match_set/2, create_xss_match_set/3, delete_byte_match_set/2, delete_byte_match_set/3, delete_geo_match_set/2, delete_geo_match_set/3, delete_ip_set/2, delete_ip_set/3, delete_logging_configuration/2, delete_logging_configuration/3, delete_permission_policy/2, delete_permission_policy/3, delete_rate_based_rule/2, delete_rate_based_rule/3, delete_regex_match_set/2, delete_regex_match_set/3, delete_regex_pattern_set/2, delete_regex_pattern_set/3, delete_rule/2, delete_rule/3, delete_rule_group/2, delete_rule_group/3, delete_size_constraint_set/2, delete_size_constraint_set/3, delete_sql_injection_match_set/2, delete_sql_injection_match_set/3, delete_web_acl/2, delete_web_acl/3, delete_xss_match_set/2, delete_xss_match_set/3, get_byte_match_set/2, get_byte_match_set/3, get_change_token/2, get_change_token/3, get_change_token_status/2, get_change_token_status/3, get_geo_match_set/2, get_geo_match_set/3, get_ip_set/2, get_ip_set/3, get_logging_configuration/2, get_logging_configuration/3, get_permission_policy/2, get_permission_policy/3, get_rate_based_rule/2, get_rate_based_rule/3, get_rate_based_rule_managed_keys/2, get_rate_based_rule_managed_keys/3, get_regex_match_set/2, get_regex_match_set/3, get_regex_pattern_set/2, get_regex_pattern_set/3, get_rule/2, get_rule/3, get_rule_group/2, get_rule_group/3, get_sampled_requests/2, get_sampled_requests/3, get_size_constraint_set/2, get_size_constraint_set/3, get_sql_injection_match_set/2, get_sql_injection_match_set/3, get_web_acl/2, get_web_acl/3, get_xss_match_set/2, get_xss_match_set/3, list_activated_rules_in_rule_group/2, list_activated_rules_in_rule_group/3, list_byte_match_sets/2, list_byte_match_sets/3, list_geo_match_sets/2, list_geo_match_sets/3, list_ip_sets/2, list_ip_sets/3, list_logging_configurations/2, list_logging_configurations/3, list_rate_based_rules/2, list_rate_based_rules/3, list_regex_match_sets/2, list_regex_match_sets/3, list_regex_pattern_sets/2, list_regex_pattern_sets/3, list_rule_groups/2, list_rule_groups/3, list_rules/2, list_rules/3, list_size_constraint_sets/2, list_size_constraint_sets/3, list_sql_injection_match_sets/2, list_sql_injection_match_sets/3, list_subscribed_rule_groups/2, list_subscribed_rule_groups/3, list_tags_for_resource/2, list_tags_for_resource/3, list_web_acls/2, list_web_acls/3, list_xss_match_sets/2, list_xss_match_sets/3, put_logging_configuration/2, put_logging_configuration/3, put_permission_policy/2, put_permission_policy/3, tag_resource/2, tag_resource/3, untag_resource/2, untag_resource/3, update_byte_match_set/2, update_byte_match_set/3, update_geo_match_set/2, update_geo_match_set/3, update_ip_set/2, update_ip_set/3, update_rate_based_rule/2, update_rate_based_rule/3, update_regex_match_set/2, update_regex_match_set/3, update_regex_pattern_set/2, update_regex_pattern_set/3, update_rule/2, update_rule/3, update_rule_group/2, update_rule_group/3, update_size_constraint_set/2, update_size_constraint_set/3, update_sql_injection_match_set/2, update_sql_injection_match_set/3, update_web_acl/2, update_web_acl/3, update_xss_match_set/2, update_xss_match_set/3]). -include_lib("hackney/include/hackney_lib.hrl"). %%==================================================================== %% API %%==================================================================== %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Creates a `ByteMatchSet'. You then use `UpdateByteMatchSet' to %% identify the part of a web request that you want AWS WAF to inspect, such %% as the values of the `User-Agent' header or the query string. For %% example, you can create a `ByteMatchSet' that matches any requests %% with `User-Agent' headers that contain the string `BadBot'. You %% can then configure AWS WAF to reject those requests. %% %% To create and configure a `ByteMatchSet', perform the following steps: %% %%
  1. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of a `CreateByteMatchSet' %% request. %% %%
  2. Submit a `CreateByteMatchSet' request. %% %%
  3. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of an `UpdateByteMatchSet' %% request. %% %%
  4. Submit an `UpdateByteMatchSet' request to specify the part %% of the request that you want AWS WAF to inspect (for example, the header %% or the URI) and the value that you want AWS WAF to watch for. %% %%
For more information about how to use the AWS WAF API to allow %% or block HTTP requests, see the AWS WAF Developer Guide. create_byte_match_set(Client, Input) when is_map(Client), is_map(Input) -> create_byte_match_set(Client, Input, []). create_byte_match_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateByteMatchSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Creates an `GeoMatchSet', which you use to specify which web requests %% you want to allow or block based on the country that the requests %% originate from. For example, if you're receiving a lot of requests %% from one or more countries and you want to block the requests, you can %% create an `GeoMatchSet' that contains those countries and then %% configure AWS WAF to block the requests. %% %% To create and configure a `GeoMatchSet', perform the following steps: %% %%
  1. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of a `CreateGeoMatchSet' %% request. %% %%
  2. Submit a `CreateGeoMatchSet' request. %% %%
  3. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of an `UpdateGeoMatchSet' %% request. %% %%
  4. Submit an `UpdateGeoMatchSetSet' request to specify the %% countries that you want AWS WAF to watch for. %% %%
For more information about how to use the AWS WAF API to allow %% or block HTTP requests, see the AWS WAF Developer Guide. create_geo_match_set(Client, Input) when is_map(Client), is_map(Input) -> create_geo_match_set(Client, Input, []). create_geo_match_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateGeoMatchSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Creates an `IPSet', which you use to specify which web requests that %% you want to allow or block based on the IP addresses that the requests %% originate from. For example, if you're receiving a lot of requests %% from one or more individual IP addresses or one or more ranges of IP %% addresses and you want to block the requests, you can create an %% `IPSet' that contains those IP addresses and then configure AWS WAF to %% block the requests. %% %% To create and configure an `IPSet', perform the following steps: %% %%
  1. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of a `CreateIPSet' request. %% %%
  2. Submit a `CreateIPSet' request. %% %%
  3. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of an `UpdateIPSet' %% request. %% %%
  4. Submit an `UpdateIPSet' request to specify the IP addresses %% that you want AWS WAF to watch for. %% %%
For more information about how to use the AWS WAF API to allow %% or block HTTP requests, see the AWS WAF Developer Guide. create_ip_set(Client, Input) when is_map(Client), is_map(Input) -> create_ip_set(Client, Input, []). create_ip_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateIPSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Creates a `RateBasedRule'. The `RateBasedRule' contains a %% `RateLimit', which specifies the maximum number of requests that AWS %% WAF allows from a specified IP address in a five-minute period. The %% `RateBasedRule' also contains the `IPSet' objects, %% `ByteMatchSet' objects, and other predicates that identify the %% requests that you want to count or block if these requests exceed the %% `RateLimit'. %% %% If you add more than one predicate to a `RateBasedRule', a request not %% only must exceed the `RateLimit', but it also must match all the %% conditions to be counted or blocked. For example, suppose you add the %% following to a `RateBasedRule': %% %% Further, you specify a `RateLimit' of 1,000. %% %% You then add the `RateBasedRule' to a `WebACL' and specify that %% you want to block requests that meet the conditions in the rule. For a %% request to be blocked, it must come from the IP address 192.0.2.44 and the %% `User-Agent' header in the request must contain the value %% `BadBot'. Further, requests that match these two conditions must be %% received at a rate of more than 1,000 requests every five minutes. If both %% conditions are met and the rate is exceeded, AWS WAF blocks the requests. %% If the rate drops below 1,000 for a five-minute period, AWS WAF no longer %% blocks the requests. %% %% As a second example, suppose you want to limit requests to a particular %% page on your site. To do this, you could add the following to a %% `RateBasedRule': %% %% Further, you specify a `RateLimit' of 1,000. %% %% By adding this `RateBasedRule' to a `WebACL', you could limit %% requests to your login page without affecting the rest of your site. %% %% To create and configure a `RateBasedRule', perform the following %% steps: %% %%
  1. Create and update the predicates that you want to include in the %% rule. For more information, see `CreateByteMatchSet', %% `CreateIPSet', and `CreateSqlInjectionMatchSet'. %% %%
  2. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of a `CreateRule' request. %% %%
  3. Submit a `CreateRateBasedRule' request. %% %%
  4. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of an `UpdateRule' request. %% %%
  5. Submit an `UpdateRateBasedRule' request to specify the %% predicates that you want to include in the rule. %% %%
  6. Create and update a `WebACL' that contains the %% `RateBasedRule'. For more information, see `CreateWebACL'. %% %%
For more information about how to use the AWS WAF API to allow %% or block HTTP requests, see the AWS WAF Developer Guide. create_rate_based_rule(Client, Input) when is_map(Client), is_map(Input) -> create_rate_based_rule(Client, Input, []). create_rate_based_rule(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateRateBasedRule">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Creates a `RegexMatchSet'. You then use `UpdateRegexMatchSet' to %% identify the part of a web request that you want AWS WAF to inspect, such %% as the values of the `User-Agent' header or the query string. For %% example, you can create a `RegexMatchSet' that contains a %% `RegexMatchTuple' that looks for any requests with `User-Agent' %% headers that match a `RegexPatternSet' with pattern %% `B[a@]dB[o0]t'. You can then configure AWS WAF to reject those %% requests. %% %% To create and configure a `RegexMatchSet', perform the following %% steps: %% %%
  1. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of a `CreateRegexMatchSet' %% request. %% %%
  2. Submit a `CreateRegexMatchSet' request. %% %%
  3. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of an `UpdateRegexMatchSet' %% request. %% %%
  4. Submit an `UpdateRegexMatchSet' request to specify the part %% of the request that you want AWS WAF to inspect (for example, the header %% or the URI) and the value, using a `RegexPatternSet', that you want %% AWS WAF to watch for. %% %%
For more information about how to use the AWS WAF API to allow %% or block HTTP requests, see the AWS WAF Developer Guide. create_regex_match_set(Client, Input) when is_map(Client), is_map(Input) -> create_regex_match_set(Client, Input, []). create_regex_match_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateRegexMatchSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Creates a `RegexPatternSet'. You then use `UpdateRegexPatternSet' %% to specify the regular expression (regex) pattern that you want AWS WAF to %% search for, such as `B[a@]dB[o0]t'. You can then configure AWS WAF to %% reject those requests. %% %% To create and configure a `RegexPatternSet', perform the following %% steps: %% %%
  1. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of a %% `CreateRegexPatternSet' request. %% %%
  2. Submit a `CreateRegexPatternSet' request. %% %%
  3. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of an %% `UpdateRegexPatternSet' request. %% %%
  4. Submit an `UpdateRegexPatternSet' request to specify the %% string that you want AWS WAF to watch for. %% %%
For more information about how to use the AWS WAF API to allow %% or block HTTP requests, see the AWS WAF Developer Guide. create_regex_pattern_set(Client, Input) when is_map(Client), is_map(Input) -> create_regex_pattern_set(Client, Input, []). create_regex_pattern_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateRegexPatternSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Creates a `Rule', which contains the `IPSet' objects, %% `ByteMatchSet' objects, and other predicates that identify the %% requests that you want to block. If you add more than one predicate to a %% `Rule', a request must match all of the specifications to be allowed %% or blocked. For example, suppose that you add the following to a %% `Rule': %% %% You then add the `Rule' to a `WebACL' and specify that %% you want to blocks requests that satisfy the `Rule'. For a request to %% be blocked, it must come from the IP address 192.0.2.44 and the %% `User-Agent' header in the request must contain the value %% `BadBot'. %% %% To create and configure a `Rule', perform the following steps: %% %%
  1. Create and update the predicates that you want to include in the %% `Rule'. For more information, see `CreateByteMatchSet', %% `CreateIPSet', and `CreateSqlInjectionMatchSet'. %% %%
  2. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of a `CreateRule' request. %% %%
  3. Submit a `CreateRule' request. %% %%
  4. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of an `UpdateRule' request. %% %%
  5. Submit an `UpdateRule' request to specify the predicates %% that you want to include in the `Rule'. %% %%
  6. Create and update a `WebACL' that contains the `Rule'. %% For more information, see `CreateWebACL'. %% %%
For more information about how to use the AWS WAF API to allow %% or block HTTP requests, see the AWS WAF Developer Guide. create_rule(Client, Input) when is_map(Client), is_map(Input) -> create_rule(Client, Input, []). create_rule(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateRule">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Creates a `RuleGroup'. A rule group is a collection of predefined %% rules that you add to a web ACL. You use `UpdateRuleGroup' to add %% rules to the rule group. %% %% Rule groups are subject to the following limits: %% %% For more information about how to use the AWS WAF API to allow %% or block HTTP requests, see the AWS WAF Developer Guide. create_rule_group(Client, Input) when is_map(Client), is_map(Input) -> create_rule_group(Client, Input, []). create_rule_group(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateRuleGroup">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Creates a `SizeConstraintSet'. You then use %% `UpdateSizeConstraintSet' to identify the part of a web request that %% you want AWS WAF to check for length, such as the length of the %% `User-Agent' header or the length of the query string. For example, %% you can create a `SizeConstraintSet' that matches any requests that %% have a query string that is longer than 100 bytes. You can then configure %% AWS WAF to reject those requests. %% %% To create and configure a `SizeConstraintSet', perform the following %% steps: %% %%
  1. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of a %% `CreateSizeConstraintSet' request. %% %%
  2. Submit a `CreateSizeConstraintSet' request. %% %%
  3. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of an %% `UpdateSizeConstraintSet' request. %% %%
  4. Submit an `UpdateSizeConstraintSet' request to specify the %% part of the request that you want AWS WAF to inspect (for example, the %% header or the URI) and the value that you want AWS WAF to watch for. %% %%
For more information about how to use the AWS WAF API to allow %% or block HTTP requests, see the AWS WAF Developer Guide. create_size_constraint_set(Client, Input) when is_map(Client), is_map(Input) -> create_size_constraint_set(Client, Input, []). create_size_constraint_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateSizeConstraintSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Creates a `SqlInjectionMatchSet', which you use to allow, block, or %% count requests that contain snippets of SQL code in a specified part of %% web requests. AWS WAF searches for character sequences that are likely to %% be malicious strings. %% %% To create and configure a `SqlInjectionMatchSet', perform the %% following steps: %% %%
  1. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of a %% `CreateSqlInjectionMatchSet' request. %% %%
  2. Submit a `CreateSqlInjectionMatchSet' request. %% %%
  3. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of an %% `UpdateSqlInjectionMatchSet' request. %% %%
  4. Submit an `UpdateSqlInjectionMatchSet' request to specify %% the parts of web requests in which you want to allow, block, or count %% malicious SQL code. %% %%
For more information about how to use the AWS WAF API to allow %% or block HTTP requests, see the AWS WAF Developer Guide. create_sql_injection_match_set(Client, Input) when is_map(Client), is_map(Input) -> create_sql_injection_match_set(Client, Input, []). create_sql_injection_match_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateSqlInjectionMatchSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Creates a `WebACL', which contains the `Rules' that identify the %% CloudFront web requests that you want to allow, block, or count. AWS WAF %% evaluates `Rules' in order based on the value of `Priority' for %% each `Rule'. %% %% You also specify a default action, either `ALLOW' or `BLOCK'. If a %% web request doesn't match any of the `Rules' in a `WebACL', %% AWS WAF responds to the request with the default action. %% %% To create and configure a `WebACL', perform the following steps: %% %%
  1. Create and update the `ByteMatchSet' objects and other %% predicates that you want to include in `Rules'. For more information, %% see `CreateByteMatchSet', `UpdateByteMatchSet', `CreateIPSet', %% `UpdateIPSet', `CreateSqlInjectionMatchSet', and %% `UpdateSqlInjectionMatchSet'. %% %%
  2. Create and update the `Rules' that you want to include in %% the `WebACL'. For more information, see `CreateRule' and %% `UpdateRule'. %% %%
  3. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of a `CreateWebACL' %% request. %% %%
  4. Submit a `CreateWebACL' request. %% %%
  5. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of an `UpdateWebACL' %% request. %% %%
  6. Submit an `UpdateWebACL' request to specify the `Rules' %% that you want to include in the `WebACL', to specify the default %% action, and to associate the `WebACL' with a CloudFront distribution. %% %%
For more information about how to use the AWS WAF API, see the %% AWS WAF Developer Guide. create_web_acl(Client, Input) when is_map(Client), is_map(Input) -> create_web_acl(Client, Input, []). create_web_acl(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateWebACL">>, Input, Options). %% @doc Creates an AWS CloudFormation WAFV2 template for the specified web %% ACL in the specified Amazon S3 bucket. %% %% Then, in CloudFormation, you create a stack from the template, to create %% the web ACL and its resources in AWS WAFV2. Use this to migrate your AWS %% WAF Classic web ACL to the latest version of AWS WAF. %% %% This is part of a larger migration procedure for web ACLs from AWS WAF %% Classic to the latest version of AWS WAF. For the full procedure, %% including caveats and manual steps to complete the migration and switch %% over to the new web ACL, see Migrating your AWS WAF Classic resources to %% AWS WAF in the AWS WAF Developer Guide. create_web_acl_migration_stack(Client, Input) when is_map(Client), is_map(Input) -> create_web_acl_migration_stack(Client, Input, []). create_web_acl_migration_stack(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateWebACLMigrationStack">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Creates an `XssMatchSet', which you use to allow, block, or count %% requests that contain cross-site scripting attacks in the specified part %% of web requests. AWS WAF searches for character sequences that are likely %% to be malicious strings. %% %% To create and configure an `XssMatchSet', perform the following steps: %% %%
  1. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of a `CreateXssMatchSet' %% request. %% %%
  2. Submit a `CreateXssMatchSet' request. %% %%
  3. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of an `UpdateXssMatchSet' %% request. %% %%
  4. Submit an `UpdateXssMatchSet' request to specify the parts %% of web requests in which you want to allow, block, or count cross-site %% scripting attacks. %% %%
For more information about how to use the AWS WAF API to allow %% or block HTTP requests, see the AWS WAF Developer Guide. create_xss_match_set(Client, Input) when is_map(Client), is_map(Input) -> create_xss_match_set(Client, Input, []). create_xss_match_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"CreateXssMatchSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Permanently deletes a `ByteMatchSet'. You can't delete a %% `ByteMatchSet' if it's still used in any `Rules' or if it %% still includes any `ByteMatchTuple' objects (any filters). %% %% If you just want to remove a `ByteMatchSet' from a `Rule', use %% `UpdateRule'. %% %% To permanently delete a `ByteMatchSet', perform the following steps: %% %%
  1. Update the `ByteMatchSet' to remove filters, if any. For %% more information, see `UpdateByteMatchSet'. %% %%
  2. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of a `DeleteByteMatchSet' %% request. %% %%
  3. Submit a `DeleteByteMatchSet' request. %% %%
delete_byte_match_set(Client, Input) when is_map(Client), is_map(Input) -> delete_byte_match_set(Client, Input, []). delete_byte_match_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteByteMatchSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Permanently deletes a `GeoMatchSet'. You can't delete a %% `GeoMatchSet' if it's still used in any `Rules' or if it still %% includes any countries. %% %% If you just want to remove a `GeoMatchSet' from a `Rule', use %% `UpdateRule'. %% %% To permanently delete a `GeoMatchSet' from AWS WAF, perform the %% following steps: %% %%
  1. Update the `GeoMatchSet' to remove any countries. For more %% information, see `UpdateGeoMatchSet'. %% %%
  2. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of a `DeleteGeoMatchSet' %% request. %% %%
  3. Submit a `DeleteGeoMatchSet' request. %% %%
delete_geo_match_set(Client, Input) when is_map(Client), is_map(Input) -> delete_geo_match_set(Client, Input, []). delete_geo_match_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteGeoMatchSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Permanently deletes an `IPSet'. You can't delete an `IPSet' if %% it's still used in any `Rules' or if it still includes any IP %% addresses. %% %% If you just want to remove an `IPSet' from a `Rule', use %% `UpdateRule'. %% %% To permanently delete an `IPSet' from AWS WAF, perform the following %% steps: %% %%
  1. Update the `IPSet' to remove IP address ranges, if any. For %% more information, see `UpdateIPSet'. %% %%
  2. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of a `DeleteIPSet' request. %% %%
  3. Submit a `DeleteIPSet' request. %% %%
delete_ip_set(Client, Input) when is_map(Client), is_map(Input) -> delete_ip_set(Client, Input, []). delete_ip_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteIPSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Permanently deletes the `LoggingConfiguration' from the specified web %% ACL. delete_logging_configuration(Client, Input) when is_map(Client), is_map(Input) -> delete_logging_configuration(Client, Input, []). delete_logging_configuration(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteLoggingConfiguration">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Permanently deletes an IAM policy from the specified RuleGroup. %% %% The user making the request must be the owner of the RuleGroup. delete_permission_policy(Client, Input) when is_map(Client), is_map(Input) -> delete_permission_policy(Client, Input, []). delete_permission_policy(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeletePermissionPolicy">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Permanently deletes a `RateBasedRule'. You can't delete a rule if %% it's still used in any `WebACL' objects or if it still includes %% any predicates, such as `ByteMatchSet' objects. %% %% If you just want to remove a rule from a `WebACL', use %% `UpdateWebACL'. %% %% To permanently delete a `RateBasedRule' from AWS WAF, perform the %% following steps: %% %%
  1. Update the `RateBasedRule' to remove predicates, if any. For %% more information, see `UpdateRateBasedRule'. %% %%
  2. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of a `DeleteRateBasedRule' %% request. %% %%
  3. Submit a `DeleteRateBasedRule' request. %% %%
delete_rate_based_rule(Client, Input) when is_map(Client), is_map(Input) -> delete_rate_based_rule(Client, Input, []). delete_rate_based_rule(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteRateBasedRule">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Permanently deletes a `RegexMatchSet'. You can't delete a %% `RegexMatchSet' if it's still used in any `Rules' or if it %% still includes any `RegexMatchTuples' objects (any filters). %% %% If you just want to remove a `RegexMatchSet' from a `Rule', use %% `UpdateRule'. %% %% To permanently delete a `RegexMatchSet', perform the following steps: %% %%
  1. Update the `RegexMatchSet' to remove filters, if any. For %% more information, see `UpdateRegexMatchSet'. %% %%
  2. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of a `DeleteRegexMatchSet' %% request. %% %%
  3. Submit a `DeleteRegexMatchSet' request. %% %%
delete_regex_match_set(Client, Input) when is_map(Client), is_map(Input) -> delete_regex_match_set(Client, Input, []). delete_regex_match_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteRegexMatchSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Permanently deletes a `RegexPatternSet'. You can't delete a %% `RegexPatternSet' if it's still used in any `RegexMatchSet' or %% if the `RegexPatternSet' is not empty. delete_regex_pattern_set(Client, Input) when is_map(Client), is_map(Input) -> delete_regex_pattern_set(Client, Input, []). delete_regex_pattern_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteRegexPatternSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Permanently deletes a `Rule'. You can't delete a `Rule' if %% it's still used in any `WebACL' objects or if it still includes %% any predicates, such as `ByteMatchSet' objects. %% %% If you just want to remove a `Rule' from a `WebACL', use %% `UpdateWebACL'. %% %% To permanently delete a `Rule' from AWS WAF, perform the following %% steps: %% %%
  1. Update the `Rule' to remove predicates, if any. For more %% information, see `UpdateRule'. %% %%
  2. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of a `DeleteRule' request. %% %%
  3. Submit a `DeleteRule' request. %% %%
delete_rule(Client, Input) when is_map(Client), is_map(Input) -> delete_rule(Client, Input, []). delete_rule(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteRule">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Permanently deletes a `RuleGroup'. You can't delete a %% `RuleGroup' if it's still used in any `WebACL' objects or if %% it still includes any rules. %% %% If you just want to remove a `RuleGroup' from a `WebACL', use %% `UpdateWebACL'. %% %% To permanently delete a `RuleGroup' from AWS WAF, perform the %% following steps: %% %%
  1. Update the `RuleGroup' to remove rules, if any. For more %% information, see `UpdateRuleGroup'. %% %%
  2. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of a `DeleteRuleGroup' %% request. %% %%
  3. Submit a `DeleteRuleGroup' request. %% %%
delete_rule_group(Client, Input) when is_map(Client), is_map(Input) -> delete_rule_group(Client, Input, []). delete_rule_group(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteRuleGroup">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Permanently deletes a `SizeConstraintSet'. You can't delete a %% `SizeConstraintSet' if it's still used in any `Rules' or if it %% still includes any `SizeConstraint' objects (any filters). %% %% If you just want to remove a `SizeConstraintSet' from a `Rule', %% use `UpdateRule'. %% %% To permanently delete a `SizeConstraintSet', perform the following %% steps: %% %%
  1. Update the `SizeConstraintSet' to remove filters, if any. %% For more information, see `UpdateSizeConstraintSet'. %% %%
  2. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of a %% `DeleteSizeConstraintSet' request. %% %%
  3. Submit a `DeleteSizeConstraintSet' request. %% %%
delete_size_constraint_set(Client, Input) when is_map(Client), is_map(Input) -> delete_size_constraint_set(Client, Input, []). delete_size_constraint_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteSizeConstraintSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Permanently deletes a `SqlInjectionMatchSet'. You can't delete a %% `SqlInjectionMatchSet' if it's still used in any `Rules' or if %% it still contains any `SqlInjectionMatchTuple' objects. %% %% If you just want to remove a `SqlInjectionMatchSet' from a `Rule', %% use `UpdateRule'. %% %% To permanently delete a `SqlInjectionMatchSet' from AWS WAF, perform %% the following steps: %% %%
  1. Update the `SqlInjectionMatchSet' to remove filters, if any. %% For more information, see `UpdateSqlInjectionMatchSet'. %% %%
  2. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of a %% `DeleteSqlInjectionMatchSet' request. %% %%
  3. Submit a `DeleteSqlInjectionMatchSet' request. %% %%
delete_sql_injection_match_set(Client, Input) when is_map(Client), is_map(Input) -> delete_sql_injection_match_set(Client, Input, []). delete_sql_injection_match_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteSqlInjectionMatchSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Permanently deletes a `WebACL'. You can't delete a `WebACL' if %% it still contains any `Rules'. %% %% To delete a `WebACL', perform the following steps: %% %%
  1. Update the `WebACL' to remove `Rules', if any. For more %% information, see `UpdateWebACL'. %% %%
  2. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of a `DeleteWebACL' %% request. %% %%
  3. Submit a `DeleteWebACL' request. %% %%
delete_web_acl(Client, Input) when is_map(Client), is_map(Input) -> delete_web_acl(Client, Input, []). delete_web_acl(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteWebACL">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Permanently deletes an `XssMatchSet'. You can't delete an %% `XssMatchSet' if it's still used in any `Rules' or if it still %% contains any `XssMatchTuple' objects. %% %% If you just want to remove an `XssMatchSet' from a `Rule', use %% `UpdateRule'. %% %% To permanently delete an `XssMatchSet' from AWS WAF, perform the %% following steps: %% %%
  1. Update the `XssMatchSet' to remove filters, if any. For more %% information, see `UpdateXssMatchSet'. %% %%
  2. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of a `DeleteXssMatchSet' %% request. %% %%
  3. Submit a `DeleteXssMatchSet' request. %% %%
delete_xss_match_set(Client, Input) when is_map(Client), is_map(Input) -> delete_xss_match_set(Client, Input, []). delete_xss_match_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"DeleteXssMatchSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns the `ByteMatchSet' specified by `ByteMatchSetId'. get_byte_match_set(Client, Input) when is_map(Client), is_map(Input) -> get_byte_match_set(Client, Input, []). get_byte_match_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"GetByteMatchSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% When you want to create, update, or delete AWS WAF objects, get a change %% token and include the change token in the create, update, or delete %% request. Change tokens ensure that your application doesn't submit %% conflicting requests to AWS WAF. %% %% Each create, update, or delete request must use a unique change token. If %% your application submits a `GetChangeToken' request and then submits a %% second `GetChangeToken' request before submitting a create, update, or %% delete request, the second `GetChangeToken' request returns the same %% value as the first `GetChangeToken' request. %% %% When you use a change token in a create, update, or delete request, the %% status of the change token changes to `PENDING', which indicates that %% AWS WAF is propagating the change to all AWS WAF servers. Use %% `GetChangeTokenStatus' to determine the status of your change token. get_change_token(Client, Input) when is_map(Client), is_map(Input) -> get_change_token(Client, Input, []). get_change_token(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"GetChangeToken">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns the status of a `ChangeToken' that you got by calling %% `GetChangeToken'. `ChangeTokenStatus' is one of the following %% values: %% %% get_change_token_status(Client, Input) when is_map(Client), is_map(Input) -> get_change_token_status(Client, Input, []). get_change_token_status(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"GetChangeTokenStatus">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns the `GeoMatchSet' that is specified by `GeoMatchSetId'. get_geo_match_set(Client, Input) when is_map(Client), is_map(Input) -> get_geo_match_set(Client, Input, []). get_geo_match_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"GetGeoMatchSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns the `IPSet' that is specified by `IPSetId'. get_ip_set(Client, Input) when is_map(Client), is_map(Input) -> get_ip_set(Client, Input, []). get_ip_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"GetIPSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns the `LoggingConfiguration' for the specified web ACL. get_logging_configuration(Client, Input) when is_map(Client), is_map(Input) -> get_logging_configuration(Client, Input, []). get_logging_configuration(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"GetLoggingConfiguration">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns the IAM policy attached to the RuleGroup. get_permission_policy(Client, Input) when is_map(Client), is_map(Input) -> get_permission_policy(Client, Input, []). get_permission_policy(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"GetPermissionPolicy">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns the `RateBasedRule' that is specified by the `RuleId' that %% you included in the `GetRateBasedRule' request. get_rate_based_rule(Client, Input) when is_map(Client), is_map(Input) -> get_rate_based_rule(Client, Input, []). get_rate_based_rule(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"GetRateBasedRule">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns an array of IP addresses currently being blocked by the %% `RateBasedRule' that is specified by the `RuleId'. The maximum %% number of managed keys that will be blocked is 10,000. If more than 10,000 %% addresses exceed the rate limit, the 10,000 addresses with the highest %% rates will be blocked. get_rate_based_rule_managed_keys(Client, Input) when is_map(Client), is_map(Input) -> get_rate_based_rule_managed_keys(Client, Input, []). get_rate_based_rule_managed_keys(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"GetRateBasedRuleManagedKeys">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns the `RegexMatchSet' specified by `RegexMatchSetId'. get_regex_match_set(Client, Input) when is_map(Client), is_map(Input) -> get_regex_match_set(Client, Input, []). get_regex_match_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"GetRegexMatchSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns the `RegexPatternSet' specified by `RegexPatternSetId'. get_regex_pattern_set(Client, Input) when is_map(Client), is_map(Input) -> get_regex_pattern_set(Client, Input, []). get_regex_pattern_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"GetRegexPatternSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns the `Rule' that is specified by the `RuleId' that you %% included in the `GetRule' request. get_rule(Client, Input) when is_map(Client), is_map(Input) -> get_rule(Client, Input, []). get_rule(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"GetRule">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns the `RuleGroup' that is specified by the `RuleGroupId' %% that you included in the `GetRuleGroup' request. %% %% To view the rules in a rule group, use %% `ListActivatedRulesInRuleGroup'. get_rule_group(Client, Input) when is_map(Client), is_map(Input) -> get_rule_group(Client, Input, []). get_rule_group(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"GetRuleGroup">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% 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. get_sampled_requests(Client, Input) when is_map(Client), is_map(Input) -> get_sampled_requests(Client, Input, []). get_sampled_requests(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"GetSampledRequests">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns the `SizeConstraintSet' specified by %% `SizeConstraintSetId'. get_size_constraint_set(Client, Input) when is_map(Client), is_map(Input) -> get_size_constraint_set(Client, Input, []). get_size_constraint_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"GetSizeConstraintSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns the `SqlInjectionMatchSet' that is specified by %% `SqlInjectionMatchSetId'. get_sql_injection_match_set(Client, Input) when is_map(Client), is_map(Input) -> get_sql_injection_match_set(Client, Input, []). get_sql_injection_match_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"GetSqlInjectionMatchSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns the `WebACL' that is specified by `WebACLId'. get_web_acl(Client, Input) when is_map(Client), is_map(Input) -> get_web_acl(Client, Input, []). get_web_acl(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"GetWebACL">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns the `XssMatchSet' that is specified by `XssMatchSetId'. get_xss_match_set(Client, Input) when is_map(Client), is_map(Input) -> get_xss_match_set(Client, Input, []). get_xss_match_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"GetXssMatchSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns an array of `ActivatedRule' objects. list_activated_rules_in_rule_group(Client, Input) when is_map(Client), is_map(Input) -> list_activated_rules_in_rule_group(Client, Input, []). list_activated_rules_in_rule_group(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListActivatedRulesInRuleGroup">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns an array of `ByteMatchSetSummary' objects. list_byte_match_sets(Client, Input) when is_map(Client), is_map(Input) -> list_byte_match_sets(Client, Input, []). list_byte_match_sets(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListByteMatchSets">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns an array of `GeoMatchSetSummary' objects in the response. list_geo_match_sets(Client, Input) when is_map(Client), is_map(Input) -> list_geo_match_sets(Client, Input, []). list_geo_match_sets(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListGeoMatchSets">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns an array of `IPSetSummary' objects in the response. list_ip_sets(Client, Input) when is_map(Client), is_map(Input) -> list_ip_sets(Client, Input, []). list_ip_sets(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListIPSets">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns an array of `LoggingConfiguration' objects. list_logging_configurations(Client, Input) when is_map(Client), is_map(Input) -> list_logging_configurations(Client, Input, []). list_logging_configurations(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListLoggingConfigurations">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns an array of `RuleSummary' objects. list_rate_based_rules(Client, Input) when is_map(Client), is_map(Input) -> list_rate_based_rules(Client, Input, []). list_rate_based_rules(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListRateBasedRules">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns an array of `RegexMatchSetSummary' objects. list_regex_match_sets(Client, Input) when is_map(Client), is_map(Input) -> list_regex_match_sets(Client, Input, []). list_regex_match_sets(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListRegexMatchSets">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns an array of `RegexPatternSetSummary' objects. list_regex_pattern_sets(Client, Input) when is_map(Client), is_map(Input) -> list_regex_pattern_sets(Client, Input, []). list_regex_pattern_sets(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListRegexPatternSets">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns an array of `RuleGroup' objects. list_rule_groups(Client, Input) when is_map(Client), is_map(Input) -> list_rule_groups(Client, Input, []). list_rule_groups(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListRuleGroups">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns an array of `RuleSummary' objects. list_rules(Client, Input) when is_map(Client), is_map(Input) -> list_rules(Client, Input, []). list_rules(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListRules">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns an array of `SizeConstraintSetSummary' objects. list_size_constraint_sets(Client, Input) when is_map(Client), is_map(Input) -> list_size_constraint_sets(Client, Input, []). list_size_constraint_sets(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListSizeConstraintSets">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns an array of `SqlInjectionMatchSet' objects. list_sql_injection_match_sets(Client, Input) when is_map(Client), is_map(Input) -> list_sql_injection_match_sets(Client, Input, []). list_sql_injection_match_sets(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListSqlInjectionMatchSets">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns an array of `RuleGroup' objects that you are subscribed to. list_subscribed_rule_groups(Client, Input) when is_map(Client), is_map(Input) -> list_subscribed_rule_groups(Client, Input, []). list_subscribed_rule_groups(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListSubscribedRuleGroups">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Retrieves the tags associated 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. %% %% Tagging is only available through the API, SDKs, and CLI. You can't %% manage or view tags through the AWS WAF Classic console. You can tag the %% AWS resources that you manage through AWS WAF Classic: web ACLs, rule %% groups, and rules. list_tags_for_resource(Client, Input) when is_map(Client), is_map(Input) -> list_tags_for_resource(Client, Input, []). list_tags_for_resource(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListTagsForResource">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns an array of `WebACLSummary' objects in the response. list_web_acls(Client, Input) when is_map(Client), is_map(Input) -> list_web_acls(Client, Input, []). list_web_acls(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListWebACLs">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Returns an array of `XssMatchSet' objects. list_xss_match_sets(Client, Input) when is_map(Client), is_map(Input) -> list_xss_match_sets(Client, Input, []). list_xss_match_sets(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"ListXssMatchSets">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Associates a `LoggingConfiguration' with a specified web ACL. %% %% 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. However, if you are capturing logs for Amazon CloudFront, %% always create the firehose in US East (N. Virginia). %% %% 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. put_logging_configuration(Client, Input) when is_map(Client), is_map(Input) -> put_logging_configuration(Client, Input, []). put_logging_configuration(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"PutLoggingConfiguration">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Attaches an IAM policy to the specified resource. The only supported use %% for this action is to share a RuleGroup across accounts. %% %% The `PutPermissionPolicy' is subject to the following restrictions: %% %% For more information, see IAM Policies. %% %% An example of a valid policy parameter is shown in the Examples section %% below. put_permission_policy(Client, Input) when is_map(Client), is_map(Input) -> put_permission_policy(Client, Input, []). put_permission_policy(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"PutPermissionPolicy">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% 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. %% %% Tagging is only available through the API, SDKs, and CLI. You can't %% manage or view tags through the AWS WAF Classic console. You can use this %% action to tag the AWS resources that you manage through AWS WAF Classic: %% web ACLs, rule groups, and rules. tag_resource(Client, Input) when is_map(Client), is_map(Input) -> tag_resource(Client, Input, []). tag_resource(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"TagResource">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. untag_resource(Client, Input) when is_map(Client), is_map(Input) -> untag_resource(Client, Input, []). untag_resource(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UntagResource">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Inserts or deletes `ByteMatchTuple' objects (filters) in a %% `ByteMatchSet'. For each `ByteMatchTuple' object, you specify the %% following values: %% %% For example, you can add a `ByteMatchSetUpdate' object %% that matches web requests in which `User-Agent' headers contain the %% string `BadBot'. You can then configure AWS WAF to block those %% requests. %% %% To create and configure a `ByteMatchSet', perform the following steps: %% %%
  1. Create a `ByteMatchSet.' For more information, see %% `CreateByteMatchSet'. %% %%
  2. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of an `UpdateByteMatchSet' %% request. %% %%
  3. Submit an `UpdateByteMatchSet' request to specify the part %% of the request that you want AWS WAF to inspect (for example, the header %% or the URI) and the value that you want AWS WAF to watch for. %% %%
For more information about how to use the AWS WAF API to allow %% or block HTTP requests, see the AWS WAF Developer Guide. update_byte_match_set(Client, Input) when is_map(Client), is_map(Input) -> update_byte_match_set(Client, Input, []). update_byte_match_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UpdateByteMatchSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Inserts or deletes `GeoMatchConstraint' objects in an %% `GeoMatchSet'. For each `GeoMatchConstraint' object, you specify %% the following values: %% %% To create and configure an `GeoMatchSet', perform the %% following steps: %% %%
  1. Submit a `CreateGeoMatchSet' request. %% %%
  2. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of an `UpdateGeoMatchSet' %% request. %% %%
  3. Submit an `UpdateGeoMatchSet' request to specify the %% country that you want AWS WAF to watch for. %% %%
When you update an `GeoMatchSet', you specify the country %% that you want to add and/or the country that you want to delete. If you %% want to change a country, you delete the existing country and add the new %% one. %% %% For more information about how to use the AWS WAF API to allow or block %% HTTP requests, see the AWS WAF Developer Guide. update_geo_match_set(Client, Input) when is_map(Client), is_map(Input) -> update_geo_match_set(Client, Input, []). update_geo_match_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UpdateGeoMatchSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Inserts or deletes `IPSetDescriptor' objects in an `IPSet'. For %% each `IPSetDescriptor' object, you specify the following values: %% %% AWS WAF supports IPv4 address ranges: /8 and any range between %% /16 through /32. AWS WAF supports IPv6 address ranges: /24, /32, /48, /56, %% /64, and /128. For more information about CIDR notation, see the Wikipedia %% entry Classless Inter-Domain Routing. %% %% IPv6 addresses can be represented using any of the following formats: %% %% You use an `IPSet' to specify which web requests you want %% to allow or block based on the IP addresses that the requests originated %% from. For example, if you're receiving a lot of requests from one or a %% small number of IP addresses and you want to block the requests, you can %% create an `IPSet' that specifies those IP addresses, and then %% configure AWS WAF to block the requests. %% %% To create and configure an `IPSet', perform the following steps: %% %%
  1. Submit a `CreateIPSet' request. %% %%
  2. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of an `UpdateIPSet' %% request. %% %%
  3. Submit an `UpdateIPSet' request to specify the IP addresses %% that you want AWS WAF to watch for. %% %%
When you update an `IPSet', you specify the IP addresses %% that you want to add and/or the IP addresses that you want to delete. If %% you want to change an IP address, you delete the existing IP address and %% add the new one. %% %% You can insert a maximum of 1000 addresses in a single request. %% %% For more information about how to use the AWS WAF API to allow or block %% HTTP requests, see the AWS WAF Developer Guide. update_ip_set(Client, Input) when is_map(Client), is_map(Input) -> update_ip_set(Client, Input, []). update_ip_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UpdateIPSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Inserts or deletes `Predicate' objects in a rule and updates the %% `RateLimit' in the rule. %% %% Each `Predicate' object identifies a predicate, such as a %% `ByteMatchSet' or an `IPSet', that specifies the web requests that %% you want to block or count. The `RateLimit' specifies the number of %% requests every five minutes that triggers the rule. %% %% If you add more than one predicate to a `RateBasedRule', a request %% must match all the predicates and exceed the `RateLimit' to be counted %% or blocked. For example, suppose you add the following to a %% `RateBasedRule': %% %% Further, you specify a `RateLimit' of 1,000. %% %% You then add the `RateBasedRule' to a `WebACL' and specify that %% you want to block requests that satisfy the rule. For a request to be %% blocked, it must come from the IP address 192.0.2.44 and the %% `User-Agent' header in the request must contain the value %% `BadBot'. Further, requests that match these two conditions much be %% received at a rate of more than 1,000 every five minutes. If the rate %% drops below this limit, AWS WAF no longer blocks the requests. %% %% As a second example, suppose you want to limit requests to a particular %% page on your site. To do this, you could add the following to a %% `RateBasedRule': %% %% Further, you specify a `RateLimit' of 1,000. %% %% By adding this `RateBasedRule' to a `WebACL', you could limit %% requests to your login page without affecting the rest of your site. update_rate_based_rule(Client, Input) when is_map(Client), is_map(Input) -> update_rate_based_rule(Client, Input, []). update_rate_based_rule(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UpdateRateBasedRule">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Inserts or deletes `RegexMatchTuple' objects (filters) in a %% `RegexMatchSet'. For each `RegexMatchSetUpdate' object, you %% specify the following values: %% %% For example, you can create a `RegexPatternSet' that %% matches any requests with `User-Agent' headers that contain the string %% `B[a@]dB[o0]t'. You can then configure AWS WAF to reject those %% requests. %% %% To create and configure a `RegexMatchSet', perform the following %% steps: %% %%
  1. Create a `RegexMatchSet.' For more information, see %% `CreateRegexMatchSet'. %% %%
  2. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of an `UpdateRegexMatchSet' %% request. %% %%
  3. Submit an `UpdateRegexMatchSet' request to specify the part %% of the request that you want AWS WAF to inspect (for example, the header %% or the URI) and the identifier of the `RegexPatternSet' that contain %% the regular expression patters you want AWS WAF to watch for. %% %%
For more information about how to use the AWS WAF API to allow %% or block HTTP requests, see the AWS WAF Developer Guide. update_regex_match_set(Client, Input) when is_map(Client), is_map(Input) -> update_regex_match_set(Client, Input, []). update_regex_match_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UpdateRegexMatchSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Inserts or deletes `RegexPatternString' objects in a %% `RegexPatternSet'. For each `RegexPatternString' object, you %% specify the following values: %% %% For example, you can create a `RegexPatternString' such as %% `B[a@]dB[o0]t'. AWS WAF will match this `RegexPatternString' to: %% %% To create and configure a `RegexPatternSet', perform the %% following steps: %% %%
  1. Create a `RegexPatternSet.' For more information, see %% `CreateRegexPatternSet'. %% %%
  2. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of an %% `UpdateRegexPatternSet' request. %% %%
  3. Submit an `UpdateRegexPatternSet' request to specify the %% regular expression pattern that you want AWS WAF to watch for. %% %%
For more information about how to use the AWS WAF API to allow %% or block HTTP requests, see the AWS WAF Developer Guide. update_regex_pattern_set(Client, Input) when is_map(Client), is_map(Input) -> update_regex_pattern_set(Client, Input, []). update_regex_pattern_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UpdateRegexPatternSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Inserts or deletes `Predicate' objects in a `Rule'. Each %% `Predicate' object identifies a predicate, such as a %% `ByteMatchSet' or an `IPSet', that specifies the web requests that %% you want to allow, block, or count. If you add more than one predicate to %% a `Rule', a request must match all of the specifications to be %% allowed, blocked, or counted. For example, suppose that you add the %% following to a `Rule': %% %% You then add the `Rule' to a `WebACL' and specify that %% you want to block requests that satisfy the `Rule'. For a request to %% be blocked, the `User-Agent' header in the request must contain the %% value `BadBot' and the request must originate from the IP address %% 192.0.2.44. %% %% To create and configure a `Rule', perform the following steps: %% %%
  1. Create and update the predicates that you want to include in the %% `Rule'. %% %%
  2. Create the `Rule'. See `CreateRule'. %% %%
  3. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of an `UpdateRule' request. %% %%
  4. Submit an `UpdateRule' request to add predicates to the %% `Rule'. %% %%
  5. Create and update a `WebACL' that contains the `Rule'. %% See `CreateWebACL'. %% %%
If you want to replace one `ByteMatchSet' or `IPSet' %% with another, you delete the existing one and add the new one. %% %% For more information about how to use the AWS WAF API to allow or block %% HTTP requests, see the AWS WAF Developer Guide. update_rule(Client, Input) when is_map(Client), is_map(Input) -> update_rule(Client, Input, []). update_rule(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UpdateRule">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Inserts or deletes `ActivatedRule' objects in a `RuleGroup'. %% %% You can only insert `REGULAR' rules into a rule group. %% %% You can have a maximum of ten rules per rule group. %% %% To create and configure a `RuleGroup', perform the following steps: %% %%
  1. Create and update the `Rules' that you want to include in %% the `RuleGroup'. See `CreateRule'. %% %%
  2. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of an `UpdateRuleGroup' %% request. %% %%
  3. Submit an `UpdateRuleGroup' request to add `Rules' to %% the `RuleGroup'. %% %%
  4. Create and update a `WebACL' that contains the %% `RuleGroup'. See `CreateWebACL'. %% %%
If you want to replace one `Rule' with another, you delete %% the existing one and add the new one. %% %% For more information about how to use the AWS WAF API to allow or block %% HTTP requests, see the AWS WAF Developer Guide. update_rule_group(Client, Input) when is_map(Client), is_map(Input) -> update_rule_group(Client, Input, []). update_rule_group(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UpdateRuleGroup">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Inserts or deletes `SizeConstraint' objects (filters) in a %% `SizeConstraintSet'. For each `SizeConstraint' object, you specify %% the following values: %% %% For example, you can add a `SizeConstraintSetUpdate' %% object that matches web requests in which the length of the %% `User-Agent' header is greater than 100 bytes. You can then configure %% AWS WAF to block those requests. %% %% To create and configure a `SizeConstraintSet', perform the following %% steps: %% %%
  1. Create a `SizeConstraintSet.' For more information, see %% `CreateSizeConstraintSet'. %% %%
  2. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of an %% `UpdateSizeConstraintSet' request. %% %%
  3. Submit an `UpdateSizeConstraintSet' request to specify the %% part of the request that you want AWS WAF to inspect (for example, the %% header or the URI) and the value that you want AWS WAF to watch for. %% %%
For more information about how to use the AWS WAF API to allow %% or block HTTP requests, see the AWS WAF Developer Guide. update_size_constraint_set(Client, Input) when is_map(Client), is_map(Input) -> update_size_constraint_set(Client, Input, []). update_size_constraint_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UpdateSizeConstraintSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Inserts or deletes `SqlInjectionMatchTuple' objects (filters) in a %% `SqlInjectionMatchSet'. For each `SqlInjectionMatchTuple' object, %% you specify the following values: %% %% You use `SqlInjectionMatchSet' objects to specify which %% CloudFront requests that you want to allow, block, or count. For example, %% if you're receiving requests that contain snippets of SQL code in the %% query string and you want to block the requests, you can create a %% `SqlInjectionMatchSet' with the applicable settings, and then %% configure AWS WAF to block the requests. %% %% To create and configure a `SqlInjectionMatchSet', perform the %% following steps: %% %%
  1. Submit a `CreateSqlInjectionMatchSet' request. %% %%
  2. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of an `UpdateIPSet' %% request. %% %%
  3. Submit an `UpdateSqlInjectionMatchSet' request to specify %% the parts of web requests that you want AWS WAF to inspect for snippets of %% SQL code. %% %%
For more information about how to use the AWS WAF API to allow %% or block HTTP requests, see the AWS WAF Developer Guide. update_sql_injection_match_set(Client, Input) when is_map(Client), is_map(Input) -> update_sql_injection_match_set(Client, Input, []). update_sql_injection_match_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UpdateSqlInjectionMatchSet">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Inserts or deletes `ActivatedRule' objects in a `WebACL'. Each %% `Rule' identifies web requests that you want to allow, block, or %% count. When you update a `WebACL', you specify the following values: %% %% To create and configure a `WebACL', perform the following %% steps: %% %%
  1. Create and update the predicates that you want to include in %% `Rules'. For more information, see `CreateByteMatchSet', %% `UpdateByteMatchSet', `CreateIPSet', `UpdateIPSet', %% `CreateSqlInjectionMatchSet', and `UpdateSqlInjectionMatchSet'. %% %%
  2. Create and update the `Rules' that you want to include in %% the `WebACL'. For more information, see `CreateRule' and %% `UpdateRule'. %% %%
  3. Create a `WebACL'. See `CreateWebACL'. %% %%
  4. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of an `UpdateWebACL' %% request. %% %%
  5. Submit an `UpdateWebACL' request to specify the `Rules' %% that you want to include in the `WebACL', to specify the default %% action, and to associate the `WebACL' with a CloudFront distribution. %% %% The `ActivatedRule' can be a rule group. If you specify a rule group %% as your `ActivatedRule' , you can exclude specific rules from that %% rule group. %% %% If you already have a rule group associated with a web ACL and want to %% submit an `UpdateWebACL' request to exclude certain rules from that %% rule group, you must first remove the rule group from the web ACL, the %% re-insert it again, specifying the excluded rules. For details, see %% `ActivatedRule$ExcludedRules' . %% %%
Be aware that if you try to add a RATE_BASED rule to a web ACL %% without setting the rule type when first creating the rule, the %% `UpdateWebACL' request will fail because the request tries to add a %% REGULAR rule (the default rule type) with the specified ID, which does not %% exist. %% %% For more information about how to use the AWS WAF API to allow or block %% HTTP requests, see the AWS WAF Developer Guide. update_web_acl(Client, Input) when is_map(Client), is_map(Input) -> update_web_acl(Client, Input, []). update_web_acl(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UpdateWebACL">>, Input, Options). %% @doc This is AWS WAF Classic documentation. %% %% For more information, see AWS WAF Classic in the developer guide. %% %% For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS %% WAF Developer Guide. With the latest version, AWS WAF has a single set of %% endpoints for regional and global use. %% %% Inserts or deletes `XssMatchTuple' objects (filters) in an %% `XssMatchSet'. For each `XssMatchTuple' object, you specify the %% following values: %% %% You use `XssMatchSet' objects to specify which CloudFront %% requests that you want to allow, block, or count. For example, if %% you're receiving requests that contain cross-site scripting attacks in %% the request body and you want to block the requests, you can create an %% `XssMatchSet' with the applicable settings, and then configure AWS WAF %% to block the requests. %% %% To create and configure an `XssMatchSet', perform the following steps: %% %%
  1. Submit a `CreateXssMatchSet' request. %% %%
  2. Use `GetChangeToken' to get the change token that you %% provide in the `ChangeToken' parameter of an `UpdateIPSet' %% request. %% %%
  3. Submit an `UpdateXssMatchSet' request to specify the parts %% of web requests that you want AWS WAF to inspect for cross-site scripting %% attacks. %% %%
For more information about how to use the AWS WAF API to allow %% or block HTTP requests, see the AWS WAF Developer Guide. update_xss_match_set(Client, Input) when is_map(Client), is_map(Input) -> update_xss_match_set(Client, Input, []). update_xss_match_set(Client, Input, Options) when is_map(Client), is_map(Input), is_list(Options) -> request(Client, <<"UpdateXssMatchSet">>, Input, Options). %%==================================================================== %% Internal functions %%==================================================================== -spec request(aws_client:aws_client(), binary(), map(), list()) -> {ok, Result, {integer(), list(), hackney:client()}} | {error, Error, {integer(), list(), hackney:client()}} | {error, term()} when Result :: map() | undefined, Error :: map(). request(Client, Action, Input, Options) -> RequestFun = fun() -> do_request(Client, Action, Input, Options) end, aws_request:request(RequestFun, Options). do_request(Client, Action, Input0, Options) -> Client1 = Client#{service => <<"waf">>, region => <<"us-east-1">>}, Host = build_host(<<"waf">>, Client1), URL = build_url(Host, Client1), Headers = [ {<<"Host">>, Host}, {<<"Content-Type">>, <<"application/x-amz-json-1.1">>}, {<<"X-Amz-Target">>, <<"AWSWAF_20150824.", Action/binary>>} ], Input = Input0, Payload = jsx:encode(Input), SignedHeaders = aws_request:sign_request(Client1, <<"POST">>, URL, Headers, Payload), Response = hackney:request(post, URL, SignedHeaders, Payload, Options), handle_response(Response). handle_response({ok, 200, ResponseHeaders, Client}) -> case hackney:body(Client) of {ok, <<>>} -> {ok, undefined, {200, ResponseHeaders, Client}}; {ok, Body} -> Result = jsx:decode(Body), {ok, Result, {200, ResponseHeaders, Client}} end; handle_response({ok, StatusCode, ResponseHeaders, Client}) -> {ok, Body} = hackney:body(Client), Error = jsx:decode(Body), {error, Error, {StatusCode, ResponseHeaders, Client}}; handle_response({error, Reason}) -> {error, Reason}. build_host(_EndpointPrefix, #{region := <<"local">>, endpoint := Endpoint}) -> Endpoint; build_host(_EndpointPrefix, #{region := <<"local">>}) -> <<"localhost">>; build_host(EndpointPrefix, #{endpoint := Endpoint}) -> aws_util:binary_join([EndpointPrefix, Endpoint], <<".">>). build_url(Host, Client) -> Proto = maps:get(proto, Client), Port = maps:get(port, Client), aws_util:binary_join([Proto, <<"://">>, Host, <<":">>, Port, <<"/">>], <<"">>).