class Aws::WAFV2::Types::OrStatement

A logical rule statement used to combine other rule statements with OR logic. You provide more than one Statement within the `OrStatement`.

@note When making an API call, you may pass OrStatement

data as a hash:

    {
      statements: [ # required
        {
          byte_match_statement: {
            search_string: "data", # required
            field_to_match: { # required
              single_header: {
                name: "FieldToMatchData", # required
              },
              single_query_argument: {
                name: "FieldToMatchData", # required
              },
              all_query_arguments: {
              },
              uri_path: {
              },
              query_string: {
              },
              body: {
              },
              method: {
              },
              json_body: {
                match_pattern: { # required
                  all: {
                  },
                  included_paths: ["JsonPointerPath"],
                },
                match_scope: "ALL", # required, accepts ALL, KEY, VALUE
                invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
              },
            },
            text_transformations: [ # required
              {
                priority: 1, # required
                type: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE, BASE64_DECODE, HEX_DECODE, MD5, REPLACE_COMMENTS, ESCAPE_SEQ_DECODE, SQL_HEX_DECODE, CSS_DECODE, JS_DECODE, NORMALIZE_PATH, NORMALIZE_PATH_WIN, REMOVE_NULLS, REPLACE_NULLS, BASE64_DECODE_EXT, URL_DECODE_UNI, UTF8_TO_UNICODE
              },
            ],
            positional_constraint: "EXACTLY", # required, accepts EXACTLY, STARTS_WITH, ENDS_WITH, CONTAINS, CONTAINS_WORD
          },
          sqli_match_statement: {
            field_to_match: { # required
              single_header: {
                name: "FieldToMatchData", # required
              },
              single_query_argument: {
                name: "FieldToMatchData", # required
              },
              all_query_arguments: {
              },
              uri_path: {
              },
              query_string: {
              },
              body: {
              },
              method: {
              },
              json_body: {
                match_pattern: { # required
                  all: {
                  },
                  included_paths: ["JsonPointerPath"],
                },
                match_scope: "ALL", # required, accepts ALL, KEY, VALUE
                invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
              },
            },
            text_transformations: [ # required
              {
                priority: 1, # required
                type: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE, BASE64_DECODE, HEX_DECODE, MD5, REPLACE_COMMENTS, ESCAPE_SEQ_DECODE, SQL_HEX_DECODE, CSS_DECODE, JS_DECODE, NORMALIZE_PATH, NORMALIZE_PATH_WIN, REMOVE_NULLS, REPLACE_NULLS, BASE64_DECODE_EXT, URL_DECODE_UNI, UTF8_TO_UNICODE
              },
            ],
          },
          xss_match_statement: {
            field_to_match: { # required
              single_header: {
                name: "FieldToMatchData", # required
              },
              single_query_argument: {
                name: "FieldToMatchData", # required
              },
              all_query_arguments: {
              },
              uri_path: {
              },
              query_string: {
              },
              body: {
              },
              method: {
              },
              json_body: {
                match_pattern: { # required
                  all: {
                  },
                  included_paths: ["JsonPointerPath"],
                },
                match_scope: "ALL", # required, accepts ALL, KEY, VALUE
                invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
              },
            },
            text_transformations: [ # required
              {
                priority: 1, # required
                type: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE, BASE64_DECODE, HEX_DECODE, MD5, REPLACE_COMMENTS, ESCAPE_SEQ_DECODE, SQL_HEX_DECODE, CSS_DECODE, JS_DECODE, NORMALIZE_PATH, NORMALIZE_PATH_WIN, REMOVE_NULLS, REPLACE_NULLS, BASE64_DECODE_EXT, URL_DECODE_UNI, UTF8_TO_UNICODE
              },
            ],
          },
          size_constraint_statement: {
            field_to_match: { # required
              single_header: {
                name: "FieldToMatchData", # required
              },
              single_query_argument: {
                name: "FieldToMatchData", # required
              },
              all_query_arguments: {
              },
              uri_path: {
              },
              query_string: {
              },
              body: {
              },
              method: {
              },
              json_body: {
                match_pattern: { # required
                  all: {
                  },
                  included_paths: ["JsonPointerPath"],
                },
                match_scope: "ALL", # required, accepts ALL, KEY, VALUE
                invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
              },
            },
            comparison_operator: "EQ", # required, accepts EQ, NE, LE, LT, GE, GT
            size: 1, # required
            text_transformations: [ # required
              {
                priority: 1, # required
                type: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE, BASE64_DECODE, HEX_DECODE, MD5, REPLACE_COMMENTS, ESCAPE_SEQ_DECODE, SQL_HEX_DECODE, CSS_DECODE, JS_DECODE, NORMALIZE_PATH, NORMALIZE_PATH_WIN, REMOVE_NULLS, REPLACE_NULLS, BASE64_DECODE_EXT, URL_DECODE_UNI, UTF8_TO_UNICODE
              },
            ],
          },
          geo_match_statement: {
            country_codes: ["AF"], # accepts AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, KH, CM, CA, CV, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CW, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MK, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SZ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW
            forwarded_ip_config: {
              header_name: "ForwardedIPHeaderName", # required
              fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
            },
          },
          rule_group_reference_statement: {
            arn: "ResourceArn", # required
            excluded_rules: [
              {
                name: "EntityName", # required
              },
            ],
          },
          ip_set_reference_statement: {
            arn: "ResourceArn", # required
            ip_set_forwarded_ip_config: {
              header_name: "ForwardedIPHeaderName", # required
              fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
              position: "FIRST", # required, accepts FIRST, LAST, ANY
            },
          },
          regex_pattern_set_reference_statement: {
            arn: "ResourceArn", # required
            field_to_match: { # required
              single_header: {
                name: "FieldToMatchData", # required
              },
              single_query_argument: {
                name: "FieldToMatchData", # required
              },
              all_query_arguments: {
              },
              uri_path: {
              },
              query_string: {
              },
              body: {
              },
              method: {
              },
              json_body: {
                match_pattern: { # required
                  all: {
                  },
                  included_paths: ["JsonPointerPath"],
                },
                match_scope: "ALL", # required, accepts ALL, KEY, VALUE
                invalid_fallback_behavior: "MATCH", # accepts MATCH, NO_MATCH, EVALUATE_AS_STRING
              },
            },
            text_transformations: [ # required
              {
                priority: 1, # required
                type: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE, BASE64_DECODE, HEX_DECODE, MD5, REPLACE_COMMENTS, ESCAPE_SEQ_DECODE, SQL_HEX_DECODE, CSS_DECODE, JS_DECODE, NORMALIZE_PATH, NORMALIZE_PATH_WIN, REMOVE_NULLS, REPLACE_NULLS, BASE64_DECODE_EXT, URL_DECODE_UNI, UTF8_TO_UNICODE
              },
            ],
          },
          rate_based_statement: {
            limit: 1, # required
            aggregate_key_type: "IP", # required, accepts IP, FORWARDED_IP
            scope_down_statement: {
              # recursive Statement
            },
            forwarded_ip_config: {
              header_name: "ForwardedIPHeaderName", # required
              fallback_behavior: "MATCH", # required, accepts MATCH, NO_MATCH
            },
          },
          and_statement: {
            statements: { # required
              # recursive Statements
            },
          },
          or_statement: {
            statements: { # required
              # recursive Statements
            },
          },
          not_statement: {
            statement: { # required
              # recursive Statement
            },
          },
          managed_rule_group_statement: {
            vendor_name: "VendorName", # required
            name: "EntityName", # required
            version: "VersionKeyString",
            excluded_rules: [
              {
                name: "EntityName", # required
              },
            ],
            scope_down_statement: {
              # recursive Statement
            },
          },
          label_match_statement: {
            scope: "LABEL", # required, accepts LABEL, NAMESPACE
            key: "LabelMatchKey", # required
          },
        },
      ],
    }

@!attribute [rw] statements

The statements to combine with OR logic. You can use any statements
that can be nested.
@return [Array<Types::Statement>]

@see docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/OrStatement AWS API Documentation

Constants

SENSITIVE