WAFv2.RuleGroupsee http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-rulegroup.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-immunitytimeproperty.html
and header_match_pattern = {all : Yojson.Safe.t option;included_headers : string list option;excluded_headers : string list option;}see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-headermatchpattern.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-customhttpheader.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-labelsummary.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-singleheader.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ratelimitlabelnamespace.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-body.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ipsetforwardedipconfiguration.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-forwardedipconfiguration.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-jsonmatchpattern.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-labelmatchstatement.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-visibilityconfig.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-customresponsebody.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-cookiematchpattern.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-singlequeryargument.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-label.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-challengeconfig.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-customrequesthandling.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-cookies.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ratelimitqueryargument.html
and geo_match_statement = {forwarded_ip_config : forwarded_ip_configuration option;country_codes : string list option;}see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-geomatchstatement.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ratelimitheader.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ratelimituripath.html
and custom_response = {response_code : int;custom_response_body_key : string option;response_headers : custom_http_header list option;}see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-customresponse.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-captchaconfig.html
and json_body = {match_scope : string;match_pattern : json_match_pattern;invalid_fallback_behavior : string option;oversize_handling : string option;}see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-jsonbody.html
and headers = {match_scope : string;match_pattern : header_match_pattern;oversize_handling : string;}see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-headers.html
and ip_set_reference_statement = {ip_set_forwarded_ip_config : ip_set_forwarded_ip_configuration option;arn : string;}see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ipsetreferencestatement.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ratelimitquerystring.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ratelimitcookie.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-countaction.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-captchaaction.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-challengeaction.html
and field_to_match = {json_body : json_body option;all_query_arguments : Yojson.Safe.t option;single_query_argument : single_query_argument option;uri_path : Yojson.Safe.t option;query_string : Yojson.Safe.t option;headers : headers option;method_ : Yojson.Safe.t option;body : body option;single_header : single_header option;}see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-fieldtomatch.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-allowaction.html
and rate_based_statement_custom_key = {forwarded_ip : Yojson.Safe.t option;query_argument : rate_limit_query_argument option;header : rate_limit_header option;http_method : Yojson.Safe.t option;query_string : rate_limit_query_string option;uri_path : rate_limit_uri_path option;ip : Yojson.Safe.t option;label_namespace : rate_limit_label_namespace option;}see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ratebasedstatementcustomkey.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-blockaction.html
and xss_match_statement = {text_transformations : text_transformation list;field_to_match : field_to_match;}see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-xssmatchstatement.html
and sqli_match_statement = {sensitivity_level : string option;text_transformations : text_transformation list;field_to_match : field_to_match;}see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-sqlimatchstatement.html
and rule_action = {captcha : captcha_action option;block : block_action option;count : count_action option;allow : allow_action option;challenge : challenge_action option;}see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ruleaction.html
and byte_match_statement = {search_string_base64 : string option;text_transformations : text_transformation list;positional_constraint : string;search_string : string option;field_to_match : field_to_match;}see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-bytematchstatement.html
and size_constraint_statement = {comparison_operator : string;text_transformations : text_transformation list;size : float;field_to_match : field_to_match;}see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-sizeconstraintstatement.html
and regex_match_statement = {text_transformations : text_transformation list;regex_string : string;field_to_match : field_to_match;}see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-regexmatchstatement.html
and regex_pattern_set_reference_statement = {text_transformations : text_transformation list;arn : string;field_to_match : field_to_match;}see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-regexpatternsetreferencestatement.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-andstatement.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-orstatement.html
and statement = {size_constraint_statement : size_constraint_statement option;and_statement : and_statement option;xss_match_statement : xss_match_statement option;not_statement : not_statement option;byte_match_statement : byte_match_statement option;rate_based_statement : rate_based_statement option;geo_match_statement : geo_match_statement option;label_match_statement : label_match_statement option;regex_match_statement : regex_match_statement option;sqli_match_statement : sqli_match_statement option;regex_pattern_set_reference_statement : regex_pattern_set_reference_statement
option;or_statement : or_statement option;ip_set_reference_statement : ip_set_reference_statement option;}see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-statement.html
and rule = {action : rule_action option;priority : int;statement : statement;challenge_config : challenge_config option;rule_labels : label list option;visibility_config : visibility_config;captcha_config : captcha_config option;name : string;}see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-rule.html
see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-notstatement.html
and rate_based_statement = {aggregate_key_type : string;custom_keys : rate_based_statement_custom_key list option;forwarded_ip_config : forwarded_ip_configuration option;limit : int;scope_down_statement : statement option;}see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ratebasedstatement.html
type properties = {description : string option;scope : string;capacity : int;available_labels : label_summary list option;custom_response_bodies : custom_response_body Stdlib__Map.Make(Stdlib.String).t
option;consumed_labels : label_summary list option;rules : rule list option;visibility_config : visibility_config;name : string option;}see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-rulegroup.html;
val make_properties :
?description:string ->
scope:string ->
capacity:int ->
?available_labels:label_summary list ->
?custom_response_bodies:
custom_response_body Stdlib__Map.Make(Stdlib.String).t ->
?consumed_labels:label_summary list ->
?rules:rule list ->
visibility_config:visibility_config ->
?tags:tag list ->
?name:string ->
unit ->
propertiesval make_tag : value:string -> key:string -> unit -> tagval make_immunity_time_property :
immunity_time:int ->
unit ->
immunity_time_propertyval make_header_match_pattern :
?all:Yojson.Safe.t ->
?included_headers:string list ->
?excluded_headers:string list ->
unit ->
header_match_patternval make_custom_http_header :
value:string ->
name:string ->
unit ->
custom_http_headerval make_label_summary : ?name:string -> unit -> label_summaryval make_single_header : name:string -> unit -> single_headerval make_rate_limit_label_namespace :
namespace:string ->
unit ->
rate_limit_label_namespaceval make_body : ?oversize_handling:string -> unit -> bodyval make_ip_set_forwarded_ip_configuration :
fallback_behavior:string ->
header_name:string ->
position:string ->
unit ->
ip_set_forwarded_ip_configurationval make_forwarded_ip_configuration :
fallback_behavior:string ->
header_name:string ->
unit ->
forwarded_ip_configurationval make_json_match_pattern :
?all:Yojson.Safe.t ->
?included_paths:string list ->
unit ->
json_match_patternval make_label_match_statement :
scope:string ->
key:string ->
unit ->
label_match_statementval make_visibility_config :
metric_name:string ->
sampled_requests_enabled:bool ->
cloud_watch_metrics_enabled:bool ->
unit ->
visibility_configval make_custom_response_body :
content_type:string ->
content:string ->
unit ->
custom_response_bodyval make_cookie_match_pattern :
?all:Yojson.Safe.t ->
?included_cookies:string list ->
?excluded_cookies:string list ->
unit ->
cookie_match_patternval make_single_query_argument : name:string -> unit -> single_query_argumentval make_text_transformation :
type_:string ->
priority:int ->
unit ->
text_transformationval make_label : name:string -> unit -> labelval make_challenge_config :
?immunity_time_property:immunity_time_property ->
unit ->
challenge_configval make_custom_request_handling :
insert_headers:custom_http_header list ->
unit ->
custom_request_handlingval make_cookies :
match_scope:string ->
match_pattern:cookie_match_pattern ->
oversize_handling:string ->
unit ->
cookiesval make_rate_limit_query_argument :
text_transformations:text_transformation list ->
name:string ->
unit ->
rate_limit_query_argumentval make_geo_match_statement :
?forwarded_ip_config:forwarded_ip_configuration ->
?country_codes:string list ->
unit ->
geo_match_statementval make_rate_limit_header :
text_transformations:text_transformation list ->
name:string ->
unit ->
rate_limit_headerval make_rate_limit_uri_path :
text_transformations:text_transformation list ->
unit ->
rate_limit_uri_pathval make_custom_response :
response_code:int ->
?custom_response_body_key:string ->
?response_headers:custom_http_header list ->
unit ->
custom_responseval make_captcha_config :
?immunity_time_property:immunity_time_property ->
unit ->
captcha_configval make_json_body :
match_scope:string ->
match_pattern:json_match_pattern ->
?invalid_fallback_behavior:string ->
?oversize_handling:string ->
unit ->
json_bodyval make_headers :
match_scope:string ->
match_pattern:header_match_pattern ->
oversize_handling:string ->
unit ->
headersval make_ip_set_reference_statement :
?ip_set_forwarded_ip_config:ip_set_forwarded_ip_configuration ->
arn:string ->
unit ->
ip_set_reference_statementval make_rate_limit_query_string :
text_transformations:text_transformation list ->
unit ->
rate_limit_query_stringval make_rate_limit_cookie :
text_transformations:text_transformation list ->
name:string ->
unit ->
rate_limit_cookieval make_count_action :
?custom_request_handling:custom_request_handling ->
unit ->
count_actionval make_captcha_action :
?custom_request_handling:custom_request_handling ->
unit ->
captcha_actionval make_challenge_action :
?custom_request_handling:custom_request_handling ->
unit ->
challenge_actionval make_field_to_match :
?json_body:json_body ->
?all_query_arguments:Yojson.Safe.t ->
?single_query_argument:single_query_argument ->
?uri_path:Yojson.Safe.t ->
?query_string:Yojson.Safe.t ->
?headers:headers ->
?cookies:cookies ->
?method_:Yojson.Safe.t ->
?body:body ->
?single_header:single_header ->
unit ->
field_to_matchval make_allow_action :
?custom_request_handling:custom_request_handling ->
unit ->
allow_actionval make_rate_based_statement_custom_key :
?cookie:rate_limit_cookie ->
?forwarded_ip:Yojson.Safe.t ->
?query_argument:rate_limit_query_argument ->
?header:rate_limit_header ->
?http_method:Yojson.Safe.t ->
?query_string:rate_limit_query_string ->
?uri_path:rate_limit_uri_path ->
?ip:Yojson.Safe.t ->
?label_namespace:rate_limit_label_namespace ->
unit ->
rate_based_statement_custom_keyval make_block_action :
?custom_response:custom_response ->
unit ->
block_actionval make_xss_match_statement :
text_transformations:text_transformation list ->
field_to_match:field_to_match ->
unit ->
xss_match_statementval make_sqli_match_statement :
?sensitivity_level:string ->
text_transformations:text_transformation list ->
field_to_match:field_to_match ->
unit ->
sqli_match_statementval make_rule_action :
?captcha:captcha_action ->
?block:block_action ->
?count:count_action ->
?allow:allow_action ->
?challenge:challenge_action ->
unit ->
rule_actionval make_byte_match_statement :
?search_string_base64:string ->
text_transformations:text_transformation list ->
positional_constraint:string ->
?search_string:string ->
field_to_match:field_to_match ->
unit ->
byte_match_statementval make_size_constraint_statement :
comparison_operator:string ->
text_transformations:text_transformation list ->
size:float ->
field_to_match:field_to_match ->
unit ->
size_constraint_statementval make_regex_match_statement :
text_transformations:text_transformation list ->
regex_string:string ->
field_to_match:field_to_match ->
unit ->
regex_match_statementval make_regex_pattern_set_reference_statement :
text_transformations:text_transformation list ->
arn:string ->
field_to_match:field_to_match ->
unit ->
regex_pattern_set_reference_statementval make_and_statement : statements:statement list -> unit -> and_statementval make_or_statement : statements:statement list -> unit -> or_statementval make_statement :
?size_constraint_statement:size_constraint_statement ->
?and_statement:and_statement ->
?xss_match_statement:xss_match_statement ->
?not_statement:not_statement ->
?byte_match_statement:byte_match_statement ->
?rate_based_statement:rate_based_statement ->
?geo_match_statement:geo_match_statement ->
?label_match_statement:label_match_statement ->
?regex_match_statement:regex_match_statement ->
?sqli_match_statement:sqli_match_statement ->
?regex_pattern_set_reference_statement:regex_pattern_set_reference_statement ->
?or_statement:or_statement ->
?ip_set_reference_statement:ip_set_reference_statement ->
unit ->
statementval make_rule :
?action:rule_action ->
priority:int ->
statement:statement ->
?challenge_config:challenge_config ->
?rule_labels:label list ->
visibility_config:visibility_config ->
?captcha_config:captcha_config ->
name:string ->
unit ->
ruleval make_not_statement : statement:statement -> unit -> not_statementval make_rate_based_statement :
aggregate_key_type:string ->
?custom_keys:rate_based_statement_custom_key list ->
?forwarded_ip_config:forwarded_ip_configuration ->
limit:int ->
?scope_down_statement:statement ->
unit ->
rate_based_statementval yojson_of_tag : tag -> [> `Assoc of (string * Yojson.Safe.t) list ]val yojson_of_immunity_time_property : immunity_time_property -> Yojson.Safe.tval yojson_of_header_match_pattern : header_match_pattern -> Yojson.Safe.tval yojson_of_custom_http_header : custom_http_header -> Yojson.Safe.tval yojson_of_label_summary :
label_summary ->
[> `Assoc of (string * Yojson.Safe.t) list ]val yojson_of_single_header : single_header -> Yojson.Safe.tval yojson_of_rate_limit_label_namespace :
rate_limit_label_namespace ->
Yojson.Safe.tval yojson_of_body : body -> Yojson.Safe.tval yojson_of_ip_set_forwarded_ip_configuration :
ip_set_forwarded_ip_configuration ->
Yojson.Safe.tval yojson_of_forwarded_ip_configuration :
forwarded_ip_configuration ->
Yojson.Safe.tval yojson_of_json_match_pattern : json_match_pattern -> Yojson.Safe.tval yojson_of_label_match_statement : label_match_statement -> Yojson.Safe.tval yojson_of_visibility_config : visibility_config -> Yojson.Safe.tval yojson_of_custom_response_body :
custom_response_body ->
[> `Assoc of (string * Yojson.Safe.t) list ]val yojson_of_cookie_match_pattern : cookie_match_pattern -> Yojson.Safe.tval yojson_of_single_query_argument : single_query_argument -> Yojson.Safe.tval yojson_of_text_transformation : text_transformation -> Yojson.Safe.tval yojson_of_label : label -> Yojson.Safe.tval yojson_of_challenge_config : challenge_config -> Yojson.Safe.tval yojson_of_custom_request_handling :
custom_request_handling ->
Yojson.Safe.tval yojson_of_cookies : cookies -> Yojson.Safe.tval yojson_of_rate_limit_query_argument :
rate_limit_query_argument ->
Yojson.Safe.tval yojson_of_geo_match_statement : geo_match_statement -> Yojson.Safe.tval yojson_of_rate_limit_header : rate_limit_header -> Yojson.Safe.tval yojson_of_rate_limit_uri_path : rate_limit_uri_path -> Yojson.Safe.tval yojson_of_custom_response : custom_response -> Yojson.Safe.tval yojson_of_captcha_config : captcha_config -> Yojson.Safe.tval yojson_of_json_body : json_body -> Yojson.Safe.tval yojson_of_headers : headers -> Yojson.Safe.tval yojson_of_ip_set_reference_statement :
ip_set_reference_statement ->
Yojson.Safe.tval yojson_of_rate_limit_query_string :
rate_limit_query_string ->
Yojson.Safe.tval yojson_of_rate_limit_cookie : rate_limit_cookie -> Yojson.Safe.tval yojson_of_count_action : count_action -> Yojson.Safe.tval yojson_of_captcha_action : captcha_action -> Yojson.Safe.tval yojson_of_challenge_action : challenge_action -> Yojson.Safe.tval yojson_of_field_to_match : field_to_match -> Yojson.Safe.tval yojson_of_allow_action : allow_action -> Yojson.Safe.tval yojson_of_rate_based_statement_custom_key :
rate_based_statement_custom_key ->
Yojson.Safe.tval yojson_of_block_action : block_action -> Yojson.Safe.tval yojson_of_xss_match_statement : xss_match_statement -> Yojson.Safe.tval yojson_of_sqli_match_statement : sqli_match_statement -> Yojson.Safe.tval yojson_of_rule_action : rule_action -> Yojson.Safe.tval yojson_of_byte_match_statement : byte_match_statement -> Yojson.Safe.tval yojson_of_size_constraint_statement :
size_constraint_statement ->
Yojson.Safe.tval yojson_of_regex_match_statement : regex_match_statement -> Yojson.Safe.tval yojson_of_regex_pattern_set_reference_statement :
regex_pattern_set_reference_statement ->
Yojson.Safe.tval yojson_of_and_statement : and_statement -> Yojson.Safe.tval yojson_of_or_statement : or_statement -> Yojson.Safe.tval yojson_of_statement : statement -> Yojson.Safe.tval yojson_of_rule : rule -> [> `Assoc of (string * Yojson.Safe.t) list ]val yojson_of_not_statement : not_statement -> Yojson.Safe.tval yojson_of_rate_based_statement : rate_based_statement -> Yojson.Safe.tval yojson_of_properties :
properties ->
[> `Assoc of (string * Yojson.Safe.t) list ]val create_attributes : string -> attributes