Module WAFv2.RuleGroup

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-wafv2-rulegroup.html

type tag = {
  1. value : string;
  2. key : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html

and immunity_time_property = {
  1. immunity_time : int;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-immunitytimeproperty.html

and header_match_pattern = {
  1. all : Yojson.Safe.t option;
  2. included_headers : string list option;
  3. excluded_headers : string list option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-headermatchpattern.html

and custom_http_header = {
  1. value : string;
  2. name : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-customhttpheader.html

and label_summary = {
  1. name : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-labelsummary.html

and single_header = {
  1. name : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-singleheader.html

and rate_limit_label_namespace = {
  1. namespace : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ratelimitlabelnamespace.html

and body = {
  1. oversize_handling : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-body.html

and ip_set_forwarded_ip_configuration = {
  1. fallback_behavior : string;
  2. header_name : string;
  3. position : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ipsetforwardedipconfiguration.html

and forwarded_ip_configuration = {
  1. fallback_behavior : string;
  2. header_name : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-forwardedipconfiguration.html

and json_match_pattern = {
  1. all : Yojson.Safe.t option;
  2. included_paths : string list option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-jsonmatchpattern.html

and label_match_statement = {
  1. scope : string;
  2. key : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-labelmatchstatement.html

and visibility_config = {
  1. metric_name : string;
  2. sampled_requests_enabled : bool;
  3. cloud_watch_metrics_enabled : bool;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-visibilityconfig.html

and custom_response_body = {
  1. content_type : string;
  2. content : string;
}

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

and single_query_argument = {
  1. name : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-singlequeryargument.html

and text_transformation = {
  1. type_ : string;
  2. priority : int;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-texttransformation.html

and label = {
  1. name : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-label.html

and challenge_config = {
  1. immunity_time_property : immunity_time_property option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-challengeconfig.html

and custom_request_handling = {
  1. insert_headers : custom_http_header list;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-customrequesthandling.html

and cookies = {
  1. match_scope : string;
  2. match_pattern : cookie_match_pattern;
  3. oversize_handling : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-cookies.html

and rate_limit_query_argument = {
  1. text_transformations : text_transformation list;
  2. name : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ratelimitqueryargument.html

and geo_match_statement = {
  1. forwarded_ip_config : forwarded_ip_configuration option;
  2. country_codes : string list option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-geomatchstatement.html

and rate_limit_header = {
  1. text_transformations : text_transformation list;
  2. name : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ratelimitheader.html

and rate_limit_uri_path = {
  1. text_transformations : text_transformation list;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ratelimituripath.html

and custom_response = {
  1. response_code : int;
  2. custom_response_body_key : string option;
  3. response_headers : custom_http_header list option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-customresponse.html

and captcha_config = {
  1. immunity_time_property : immunity_time_property option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-captchaconfig.html

and json_body = {
  1. match_scope : string;
  2. match_pattern : json_match_pattern;
  3. invalid_fallback_behavior : string option;
  4. oversize_handling : string option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-jsonbody.html

and headers = {
  1. match_scope : string;
  2. match_pattern : header_match_pattern;
  3. oversize_handling : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-headers.html

and ip_set_reference_statement = {
  1. ip_set_forwarded_ip_config : ip_set_forwarded_ip_configuration option;
  2. arn : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ipsetreferencestatement.html

and rate_limit_query_string = {
  1. text_transformations : text_transformation list;
}

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

and count_action = {
  1. custom_request_handling : custom_request_handling option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-countaction.html

and captcha_action = {
  1. custom_request_handling : custom_request_handling option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-captchaaction.html

and challenge_action = {
  1. custom_request_handling : custom_request_handling option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-challengeaction.html

and field_to_match = {
  1. json_body : json_body option;
  2. all_query_arguments : Yojson.Safe.t option;
  3. single_query_argument : single_query_argument option;
  4. uri_path : Yojson.Safe.t option;
  5. query_string : Yojson.Safe.t option;
  6. headers : headers option;
  7. cookies : cookies option;
  8. method_ : Yojson.Safe.t option;
  9. body : body option;
  10. single_header : single_header option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-fieldtomatch.html

and allow_action = {
  1. custom_request_handling : custom_request_handling option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-allowaction.html

and rate_based_statement_custom_key = {
  1. cookie : rate_limit_cookie option;
  2. forwarded_ip : Yojson.Safe.t option;
  3. query_argument : rate_limit_query_argument option;
  4. header : rate_limit_header option;
  5. http_method : Yojson.Safe.t option;
  6. query_string : rate_limit_query_string option;
  7. uri_path : rate_limit_uri_path option;
  8. ip : Yojson.Safe.t option;
  9. label_namespace : rate_limit_label_namespace option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ratebasedstatementcustomkey.html

and block_action = {
  1. custom_response : custom_response option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-blockaction.html

and xss_match_statement = {
  1. text_transformations : text_transformation list;
  2. 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 = {
  1. sensitivity_level : string option;
  2. text_transformations : text_transformation list;
  3. field_to_match : field_to_match;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-sqlimatchstatement.html

and rule_action = {
  1. captcha : captcha_action option;
  2. block : block_action option;
  3. count : count_action option;
  4. allow : allow_action option;
  5. challenge : challenge_action option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ruleaction.html

and byte_match_statement = {
  1. search_string_base64 : string option;
  2. text_transformations : text_transformation list;
  3. positional_constraint : string;
  4. search_string : string option;
  5. 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 = {
  1. comparison_operator : string;
  2. text_transformations : text_transformation list;
  3. size : float;
  4. 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 = {
  1. text_transformations : text_transformation list;
  2. regex_string : string;
  3. 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 = {
  1. text_transformations : text_transformation list;
  2. arn : string;
  3. field_to_match : field_to_match;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-regexpatternsetreferencestatement.html

and and_statement = {
  1. statements : statement list;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-andstatement.html

and or_statement = {
  1. statements : statement list;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-orstatement.html

and statement = {
  1. size_constraint_statement : size_constraint_statement option;
  2. and_statement : and_statement option;
  3. xss_match_statement : xss_match_statement option;
  4. not_statement : not_statement option;
  5. byte_match_statement : byte_match_statement option;
  6. rate_based_statement : rate_based_statement option;
  7. geo_match_statement : geo_match_statement option;
  8. label_match_statement : label_match_statement option;
  9. regex_match_statement : regex_match_statement option;
  10. sqli_match_statement : sqli_match_statement option;
  11. regex_pattern_set_reference_statement : regex_pattern_set_reference_statement option;
  12. or_statement : or_statement option;
  13. 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 = {
  1. action : rule_action option;
  2. priority : int;
  3. statement : statement;
  4. challenge_config : challenge_config option;
  5. rule_labels : label list option;
  6. visibility_config : visibility_config;
  7. captcha_config : captcha_config option;
  8. name : string;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-rule.html

and not_statement = {
  1. statement : statement;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-notstatement.html

and rate_based_statement = {
  1. aggregate_key_type : string;
  2. custom_keys : rate_based_statement_custom_key list option;
  3. forwarded_ip_config : forwarded_ip_configuration option;
  4. limit : int;
  5. scope_down_statement : statement option;
}

see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-wafv2-rulegroup-ratebasedstatement.html

type properties = {
  1. description : string option;
  2. scope : string;
  3. capacity : int;
  4. available_labels : label_summary list option;
  5. custom_response_bodies : custom_response_body Stdlib__Map.Make(Stdlib.String).t option;
  6. consumed_labels : label_summary list option;
  7. rules : rule list option;
  8. visibility_config : visibility_config;
  9. tags : tag list option;
  10. 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 -> properties
val make_tag : value:string -> key:string -> unit -> tag
val make_immunity_time_property : immunity_time:int -> unit -> immunity_time_property
val make_header_match_pattern : ?all:Yojson.Safe.t -> ?included_headers:string list -> ?excluded_headers:string list -> unit -> header_match_pattern
val make_custom_http_header : value:string -> name:string -> unit -> custom_http_header
val make_label_summary : ?name:string -> unit -> label_summary
val make_single_header : name:string -> unit -> single_header
val make_rate_limit_label_namespace : namespace:string -> unit -> rate_limit_label_namespace
val make_body : ?oversize_handling:string -> unit -> body
val make_ip_set_forwarded_ip_configuration : fallback_behavior:string -> header_name:string -> position:string -> unit -> ip_set_forwarded_ip_configuration
val make_forwarded_ip_configuration : fallback_behavior:string -> header_name:string -> unit -> forwarded_ip_configuration
val make_json_match_pattern : ?all:Yojson.Safe.t -> ?included_paths:string list -> unit -> json_match_pattern
val make_label_match_statement : scope:string -> key:string -> unit -> label_match_statement
val make_visibility_config : metric_name:string -> sampled_requests_enabled:bool -> cloud_watch_metrics_enabled:bool -> unit -> visibility_config
val make_custom_response_body : content_type:string -> content:string -> unit -> custom_response_body
val make_single_query_argument : name:string -> unit -> single_query_argument
val make_text_transformation : type_:string -> priority:int -> unit -> text_transformation
val make_label : name:string -> unit -> label
val make_challenge_config : ?immunity_time_property:immunity_time_property -> unit -> challenge_config
val make_custom_request_handling : insert_headers:custom_http_header list -> unit -> custom_request_handling
val make_cookies : match_scope:string -> match_pattern:cookie_match_pattern -> oversize_handling:string -> unit -> cookies
val make_rate_limit_query_argument : text_transformations:text_transformation list -> name:string -> unit -> rate_limit_query_argument
val make_geo_match_statement : ?forwarded_ip_config:forwarded_ip_configuration -> ?country_codes:string list -> unit -> geo_match_statement
val make_rate_limit_header : text_transformations:text_transformation list -> name:string -> unit -> rate_limit_header
val make_rate_limit_uri_path : text_transformations:text_transformation list -> unit -> rate_limit_uri_path
val make_custom_response : response_code:int -> ?custom_response_body_key:string -> ?response_headers:custom_http_header list -> unit -> custom_response
val make_captcha_config : ?immunity_time_property:immunity_time_property -> unit -> captcha_config
val make_json_body : match_scope:string -> match_pattern:json_match_pattern -> ?invalid_fallback_behavior:string -> ?oversize_handling:string -> unit -> json_body
val make_headers : match_scope:string -> match_pattern:header_match_pattern -> oversize_handling:string -> unit -> headers
val make_ip_set_reference_statement : ?ip_set_forwarded_ip_config:ip_set_forwarded_ip_configuration -> arn:string -> unit -> ip_set_reference_statement
val make_rate_limit_query_string : text_transformations:text_transformation list -> unit -> rate_limit_query_string
val make_count_action : ?custom_request_handling:custom_request_handling -> unit -> count_action
val make_captcha_action : ?custom_request_handling:custom_request_handling -> unit -> captcha_action
val make_challenge_action : ?custom_request_handling:custom_request_handling -> unit -> challenge_action
val 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_match
val make_allow_action : ?custom_request_handling:custom_request_handling -> unit -> allow_action
val 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_key
val make_block_action : ?custom_response:custom_response -> unit -> block_action
val make_xss_match_statement : text_transformations:text_transformation list -> field_to_match:field_to_match -> unit -> xss_match_statement
val make_sqli_match_statement : ?sensitivity_level:string -> text_transformations:text_transformation list -> field_to_match:field_to_match -> unit -> sqli_match_statement
val make_rule_action : ?captcha:captcha_action -> ?block:block_action -> ?count:count_action -> ?allow:allow_action -> ?challenge:challenge_action -> unit -> rule_action
val 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_statement
val make_size_constraint_statement : comparison_operator:string -> text_transformations:text_transformation list -> size:float -> field_to_match:field_to_match -> unit -> size_constraint_statement
val make_regex_match_statement : text_transformations:text_transformation list -> regex_string:string -> field_to_match:field_to_match -> unit -> regex_match_statement
val make_regex_pattern_set_reference_statement : text_transformations:text_transformation list -> arn:string -> field_to_match:field_to_match -> unit -> regex_pattern_set_reference_statement
val make_and_statement : statements:statement list -> unit -> and_statement
val make_or_statement : statements:statement list -> unit -> or_statement
val 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 -> statement
val 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 -> rule
val make_not_statement : statement:statement -> unit -> not_statement
val 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_statement
val yojson_of_tag : tag -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_immunity_time_property : immunity_time_property -> Yojson.Safe.t
val yojson_of_header_match_pattern : header_match_pattern -> Yojson.Safe.t
val yojson_of_custom_http_header : custom_http_header -> Yojson.Safe.t
val yojson_of_label_summary : label_summary -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_single_header : single_header -> Yojson.Safe.t
val yojson_of_rate_limit_label_namespace : rate_limit_label_namespace -> Yojson.Safe.t
val yojson_of_body : body -> Yojson.Safe.t
val yojson_of_ip_set_forwarded_ip_configuration : ip_set_forwarded_ip_configuration -> Yojson.Safe.t
val yojson_of_forwarded_ip_configuration : forwarded_ip_configuration -> Yojson.Safe.t
val yojson_of_json_match_pattern : json_match_pattern -> Yojson.Safe.t
val yojson_of_label_match_statement : label_match_statement -> Yojson.Safe.t
val yojson_of_visibility_config : visibility_config -> Yojson.Safe.t
val yojson_of_custom_response_body : custom_response_body -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_single_query_argument : single_query_argument -> Yojson.Safe.t
val yojson_of_text_transformation : text_transformation -> Yojson.Safe.t
val yojson_of_label : label -> Yojson.Safe.t
val yojson_of_challenge_config : challenge_config -> Yojson.Safe.t
val yojson_of_custom_request_handling : custom_request_handling -> Yojson.Safe.t
val yojson_of_cookies : cookies -> Yojson.Safe.t
val yojson_of_rate_limit_query_argument : rate_limit_query_argument -> Yojson.Safe.t
val yojson_of_geo_match_statement : geo_match_statement -> Yojson.Safe.t
val yojson_of_rate_limit_header : rate_limit_header -> Yojson.Safe.t
val yojson_of_rate_limit_uri_path : rate_limit_uri_path -> Yojson.Safe.t
val yojson_of_custom_response : custom_response -> Yojson.Safe.t
val yojson_of_captcha_config : captcha_config -> Yojson.Safe.t
val yojson_of_json_body : json_body -> Yojson.Safe.t
val yojson_of_headers : headers -> Yojson.Safe.t
val yojson_of_ip_set_reference_statement : ip_set_reference_statement -> Yojson.Safe.t
val yojson_of_rate_limit_query_string : rate_limit_query_string -> Yojson.Safe.t
val yojson_of_count_action : count_action -> Yojson.Safe.t
val yojson_of_captcha_action : captcha_action -> Yojson.Safe.t
val yojson_of_challenge_action : challenge_action -> Yojson.Safe.t
val yojson_of_field_to_match : field_to_match -> Yojson.Safe.t
val yojson_of_allow_action : allow_action -> Yojson.Safe.t
val yojson_of_rate_based_statement_custom_key : rate_based_statement_custom_key -> Yojson.Safe.t
val yojson_of_block_action : block_action -> Yojson.Safe.t
val yojson_of_xss_match_statement : xss_match_statement -> Yojson.Safe.t
val yojson_of_sqli_match_statement : sqli_match_statement -> Yojson.Safe.t
val yojson_of_rule_action : rule_action -> Yojson.Safe.t
val yojson_of_byte_match_statement : byte_match_statement -> Yojson.Safe.t
val yojson_of_size_constraint_statement : size_constraint_statement -> Yojson.Safe.t
val yojson_of_regex_match_statement : regex_match_statement -> Yojson.Safe.t
val yojson_of_regex_pattern_set_reference_statement : regex_pattern_set_reference_statement -> Yojson.Safe.t
val yojson_of_and_statement : and_statement -> Yojson.Safe.t
val yojson_of_or_statement : or_statement -> Yojson.Safe.t
val yojson_of_statement : statement -> Yojson.Safe.t
val yojson_of_rule : rule -> [> `Assoc of (string * Yojson.Safe.t) list ]
val yojson_of_not_statement : not_statement -> Yojson.Safe.t
val yojson_of_rate_based_statement : rate_based_statement -> Yojson.Safe.t
val yojson_of_properties : properties -> [> `Assoc of (string * Yojson.Safe.t) list ]
type attributes = {
  1. ref_ : string;
  2. id : string;
  3. arn : string;
  4. label_namespace : string;
}
val create_attributes : string -> attributes
val cloudformation_type : string