"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.message
import shared.shared_pb2
import sys

if sys.version_info >= (3, 8):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

@typing_extensions.final
class IPSet(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class TagsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    SCOPE_FIELD_NUMBER: builtins.int
    IP_ADDRESS_VERSION_FIELD_NUMBER: builtins.int
    ADDRESSES_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    description: builtins.str
    name: builtins.str
    scope: builtins.str
    ip_address_version: builtins.str
    @property
    def addresses(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        description: builtins.str = ...,
        name: builtins.str = ...,
        scope: builtins.str = ...,
        ip_address_version: builtins.str = ...,
        addresses: collections.abc.Iterable[builtins.str] | None = ...,
        tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["addresses", b"addresses", "description", b"description", "ip_address_version", b"ip_address_version", "name", b"name", "resource_info", b"resource_info", "scope", b"scope", "tags", b"tags"]) -> None: ...

global___IPSet = IPSet

@typing_extensions.final
class WAFv2(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    IP_SET_FIELD_NUMBER: builtins.int
    REGEX_PATTERN_SET_FIELD_NUMBER: builtins.int
    RULE_GROUP_FIELD_NUMBER: builtins.int
    WEB_A_C_L_FIELD_NUMBER: builtins.int
    WEB_A_C_L_ASSOCIATION_FIELD_NUMBER: builtins.int
    @property
    def ip_set(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___IPSet]: ...
    @property
    def regex_pattern_set(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RegexPatternSet]: ...
    @property
    def rule_group(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RuleGroup]: ...
    @property
    def web_a_c_l(self) -> global___WebACL: ...
    @property
    def web_a_c_l_association(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___WebACLAssociation]: ...
    def __init__(
        self,
        *,
        ip_set: collections.abc.Iterable[global___IPSet] | None = ...,
        regex_pattern_set: collections.abc.Iterable[global___RegexPatternSet] | None = ...,
        rule_group: collections.abc.Iterable[global___RuleGroup] | None = ...,
        web_a_c_l: global___WebACL | None = ...,
        web_a_c_l_association: collections.abc.Iterable[global___WebACLAssociation] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["web_a_c_l", b"web_a_c_l"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["ip_set", b"ip_set", "regex_pattern_set", b"regex_pattern_set", "rule_group", b"rule_group", "web_a_c_l", b"web_a_c_l", "web_a_c_l_association", b"web_a_c_l_association"]) -> None: ...

global___WAFv2 = WAFv2

@typing_extensions.final
class RegexPatternSet(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class TagsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    REGULAR_EXPRESSION_LIST_FIELD_NUMBER: builtins.int
    SCOPE_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    description: builtins.str
    name: builtins.str
    @property
    def regular_expression_list(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    scope: builtins.str
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        description: builtins.str = ...,
        name: builtins.str = ...,
        regular_expression_list: collections.abc.Iterable[builtins.str] | None = ...,
        scope: builtins.str = ...,
        tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "name", b"name", "regular_expression_list", b"regular_expression_list", "resource_info", b"resource_info", "scope", b"scope", "tags", b"tags"]) -> None: ...

global___RegexPatternSet = RegexPatternSet

@typing_extensions.final
class RuleGroupFieldToMatch(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class SingleHeaderEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    @typing_extensions.final
    class SingleQueryArgumentEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    @typing_extensions.final
    class AllQueryArgumentsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    @typing_extensions.final
    class UriPathEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    @typing_extensions.final
    class QueryStringEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    @typing_extensions.final
    class BodyEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    @typing_extensions.final
    class MethodEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    SINGLE_HEADER_FIELD_NUMBER: builtins.int
    SINGLE_QUERY_ARGUMENT_FIELD_NUMBER: builtins.int
    ALL_QUERY_ARGUMENTS_FIELD_NUMBER: builtins.int
    URI_PATH_FIELD_NUMBER: builtins.int
    QUERY_STRING_FIELD_NUMBER: builtins.int
    BODY_FIELD_NUMBER: builtins.int
    METHOD_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def single_header(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def single_query_argument(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def all_query_arguments(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def uri_path(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def query_string(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def body(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def method(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        single_header: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        single_query_argument: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        all_query_arguments: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        uri_path: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        query_string: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        body: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        method: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["all_query_arguments", b"all_query_arguments", "body", b"body", "method", b"method", "query_string", b"query_string", "resource_info", b"resource_info", "single_header", b"single_header", "single_query_argument", b"single_query_argument", "uri_path", b"uri_path"]) -> None: ...

global___RuleGroupFieldToMatch = RuleGroupFieldToMatch

@typing_extensions.final
class RuleGroupTextTransformation(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    PRIORITY_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    priority: builtins.int
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        priority: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["priority", b"priority", "resource_info", b"resource_info"]) -> None: ...

global___RuleGroupTextTransformation = RuleGroupTextTransformation

@typing_extensions.final
class RuleGroupByteMatchStatement(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    SEARCH_STRING_FIELD_NUMBER: builtins.int
    SEARCH_STRING_BASE64_FIELD_NUMBER: builtins.int
    FIELD_TO_MATCH_FIELD_NUMBER: builtins.int
    TEXT_TRANSFORMATIONS_FIELD_NUMBER: builtins.int
    POSITIONAL_CONSTRAINT_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    search_string: builtins.str
    search_string_base64: builtins.str
    @property
    def field_to_match(self) -> global___RuleGroupFieldToMatch: ...
    @property
    def text_transformations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RuleGroupTextTransformation]: ...
    positional_constraint: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        search_string: builtins.str = ...,
        search_string_base64: builtins.str = ...,
        field_to_match: global___RuleGroupFieldToMatch | None = ...,
        text_transformations: collections.abc.Iterable[global___RuleGroupTextTransformation] | None = ...,
        positional_constraint: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["field_to_match", b"field_to_match", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["field_to_match", b"field_to_match", "positional_constraint", b"positional_constraint", "resource_info", b"resource_info", "search_string", b"search_string", "search_string_base64", b"search_string_base64", "text_transformations", b"text_transformations"]) -> None: ...

global___RuleGroupByteMatchStatement = RuleGroupByteMatchStatement

@typing_extensions.final
class RuleGroupSqliMatchStatement(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    FIELD_TO_MATCH_FIELD_NUMBER: builtins.int
    TEXT_TRANSFORMATIONS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def field_to_match(self) -> global___RuleGroupFieldToMatch: ...
    @property
    def text_transformations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RuleGroupTextTransformation]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        field_to_match: global___RuleGroupFieldToMatch | None = ...,
        text_transformations: collections.abc.Iterable[global___RuleGroupTextTransformation] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["field_to_match", b"field_to_match", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["field_to_match", b"field_to_match", "resource_info", b"resource_info", "text_transformations", b"text_transformations"]) -> None: ...

global___RuleGroupSqliMatchStatement = RuleGroupSqliMatchStatement

@typing_extensions.final
class RuleGroupXssMatchStatement(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    FIELD_TO_MATCH_FIELD_NUMBER: builtins.int
    TEXT_TRANSFORMATIONS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def field_to_match(self) -> global___RuleGroupFieldToMatch: ...
    @property
    def text_transformations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RuleGroupTextTransformation]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        field_to_match: global___RuleGroupFieldToMatch | None = ...,
        text_transformations: collections.abc.Iterable[global___RuleGroupTextTransformation] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["field_to_match", b"field_to_match", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["field_to_match", b"field_to_match", "resource_info", b"resource_info", "text_transformations", b"text_transformations"]) -> None: ...

global___RuleGroupXssMatchStatement = RuleGroupXssMatchStatement

@typing_extensions.final
class RuleGroupSizeConstraintStatement(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    FIELD_TO_MATCH_FIELD_NUMBER: builtins.int
    COMPARISON_OPERATOR_FIELD_NUMBER: builtins.int
    SIZE_FIELD_NUMBER: builtins.int
    TEXT_TRANSFORMATIONS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def field_to_match(self) -> global___RuleGroupFieldToMatch: ...
    comparison_operator: builtins.str
    size: builtins.int
    @property
    def text_transformations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RuleGroupTextTransformation]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        field_to_match: global___RuleGroupFieldToMatch | None = ...,
        comparison_operator: builtins.str = ...,
        size: builtins.int = ...,
        text_transformations: collections.abc.Iterable[global___RuleGroupTextTransformation] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["field_to_match", b"field_to_match", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["comparison_operator", b"comparison_operator", "field_to_match", b"field_to_match", "resource_info", b"resource_info", "size", b"size", "text_transformations", b"text_transformations"]) -> None: ...

global___RuleGroupSizeConstraintStatement = RuleGroupSizeConstraintStatement

@typing_extensions.final
class RuleGroupForwardedIPConfiguration(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    HEADER_NAME_FIELD_NUMBER: builtins.int
    FALLBACK_BEHAVIOR_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    header_name: builtins.str
    fallback_behavior: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        header_name: builtins.str = ...,
        fallback_behavior: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["fallback_behavior", b"fallback_behavior", "header_name", b"header_name", "resource_info", b"resource_info"]) -> None: ...

global___RuleGroupForwardedIPConfiguration = RuleGroupForwardedIPConfiguration

@typing_extensions.final
class RuleGroupGeoMatchStatement(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    COUNTRY_CODES_FIELD_NUMBER: builtins.int
    FORWARDED_IP_CONFIG_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def country_codes(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def forwarded_ip_config(self) -> global___RuleGroupForwardedIPConfiguration: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        country_codes: collections.abc.Iterable[builtins.str] | None = ...,
        forwarded_ip_config: global___RuleGroupForwardedIPConfiguration | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["forwarded_ip_config", b"forwarded_ip_config", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["country_codes", b"country_codes", "forwarded_ip_config", b"forwarded_ip_config", "resource_info", b"resource_info"]) -> None: ...

global___RuleGroupGeoMatchStatement = RuleGroupGeoMatchStatement

@typing_extensions.final
class RuleGroupIPSetForwardedIPConfiguration(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    HEADER_NAME_FIELD_NUMBER: builtins.int
    FALLBACK_BEHAVIOR_FIELD_NUMBER: builtins.int
    POSITION_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    header_name: builtins.str
    fallback_behavior: builtins.str
    position: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        header_name: builtins.str = ...,
        fallback_behavior: builtins.str = ...,
        position: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["fallback_behavior", b"fallback_behavior", "header_name", b"header_name", "position", b"position", "resource_info", b"resource_info"]) -> None: ...

global___RuleGroupIPSetForwardedIPConfiguration = RuleGroupIPSetForwardedIPConfiguration

@typing_extensions.final
class RuleGroupIPSetReferenceStatement(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ARN_FIELD_NUMBER: builtins.int
    IP_SET_FORWARDED_IP_CONFIG_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    arn: builtins.str
    @property
    def ip_set_forwarded_ip_config(self) -> global___RuleGroupIPSetForwardedIPConfiguration: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        arn: builtins.str = ...,
        ip_set_forwarded_ip_config: global___RuleGroupIPSetForwardedIPConfiguration | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["ip_set_forwarded_ip_config", b"ip_set_forwarded_ip_config", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["arn", b"arn", "ip_set_forwarded_ip_config", b"ip_set_forwarded_ip_config", "resource_info", b"resource_info"]) -> None: ...

global___RuleGroupIPSetReferenceStatement = RuleGroupIPSetReferenceStatement

@typing_extensions.final
class RuleGroupRegexPatternSetReferenceStatement(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ARN_FIELD_NUMBER: builtins.int
    FIELD_TO_MATCH_FIELD_NUMBER: builtins.int
    TEXT_TRANSFORMATIONS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    arn: builtins.str
    @property
    def field_to_match(self) -> global___RuleGroupFieldToMatch: ...
    @property
    def text_transformations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RuleGroupTextTransformation]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        arn: builtins.str = ...,
        field_to_match: global___RuleGroupFieldToMatch | None = ...,
        text_transformations: collections.abc.Iterable[global___RuleGroupTextTransformation] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["field_to_match", b"field_to_match", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["arn", b"arn", "field_to_match", b"field_to_match", "resource_info", b"resource_info", "text_transformations", b"text_transformations"]) -> None: ...

global___RuleGroupRegexPatternSetReferenceStatement = RuleGroupRegexPatternSetReferenceStatement

@typing_extensions.final
class RuleGroupStatementThree(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    BYTE_MATCH_STATEMENT_FIELD_NUMBER: builtins.int
    SQLI_MATCH_STATEMENT_FIELD_NUMBER: builtins.int
    XSS_MATCH_STATEMENT_FIELD_NUMBER: builtins.int
    SIZE_CONSTRAINT_STATEMENT_FIELD_NUMBER: builtins.int
    GEO_MATCH_STATEMENT_FIELD_NUMBER: builtins.int
    IP_SET_REFERENCE_STATEMENT_FIELD_NUMBER: builtins.int
    REGEX_PATTERN_SET_REFERENCE_STATEMENT_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def byte_match_statement(self) -> global___RuleGroupByteMatchStatement: ...
    @property
    def sqli_match_statement(self) -> global___RuleGroupSqliMatchStatement: ...
    @property
    def xss_match_statement(self) -> global___RuleGroupXssMatchStatement: ...
    @property
    def size_constraint_statement(self) -> global___RuleGroupSizeConstraintStatement: ...
    @property
    def geo_match_statement(self) -> global___RuleGroupGeoMatchStatement: ...
    @property
    def ip_set_reference_statement(self) -> global___RuleGroupIPSetReferenceStatement: ...
    @property
    def regex_pattern_set_reference_statement(self) -> global___RuleGroupRegexPatternSetReferenceStatement: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        byte_match_statement: global___RuleGroupByteMatchStatement | None = ...,
        sqli_match_statement: global___RuleGroupSqliMatchStatement | None = ...,
        xss_match_statement: global___RuleGroupXssMatchStatement | None = ...,
        size_constraint_statement: global___RuleGroupSizeConstraintStatement | None = ...,
        geo_match_statement: global___RuleGroupGeoMatchStatement | None = ...,
        ip_set_reference_statement: global___RuleGroupIPSetReferenceStatement | None = ...,
        regex_pattern_set_reference_statement: global___RuleGroupRegexPatternSetReferenceStatement | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["byte_match_statement", b"byte_match_statement", "geo_match_statement", b"geo_match_statement", "ip_set_reference_statement", b"ip_set_reference_statement", "regex_pattern_set_reference_statement", b"regex_pattern_set_reference_statement", "resource_info", b"resource_info", "size_constraint_statement", b"size_constraint_statement", "sqli_match_statement", b"sqli_match_statement", "xss_match_statement", b"xss_match_statement"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["byte_match_statement", b"byte_match_statement", "geo_match_statement", b"geo_match_statement", "ip_set_reference_statement", b"ip_set_reference_statement", "regex_pattern_set_reference_statement", b"regex_pattern_set_reference_statement", "resource_info", b"resource_info", "size_constraint_statement", b"size_constraint_statement", "sqli_match_statement", b"sqli_match_statement", "xss_match_statement", b"xss_match_statement"]) -> None: ...

global___RuleGroupStatementThree = RuleGroupStatementThree

@typing_extensions.final
class RuleGroupRateBasedStatementTwo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    LIMIT_FIELD_NUMBER: builtins.int
    AGGREGATE_KEY_TYPE_FIELD_NUMBER: builtins.int
    SCOPE_DOWN_STATEMENT_FIELD_NUMBER: builtins.int
    FORWARDED_IP_CONFIG_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    limit: builtins.int
    aggregate_key_type: builtins.str
    @property
    def scope_down_statement(self) -> global___RuleGroupStatementThree: ...
    @property
    def forwarded_ip_config(self) -> global___RuleGroupForwardedIPConfiguration: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        limit: builtins.int = ...,
        aggregate_key_type: builtins.str = ...,
        scope_down_statement: global___RuleGroupStatementThree | None = ...,
        forwarded_ip_config: global___RuleGroupForwardedIPConfiguration | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["forwarded_ip_config", b"forwarded_ip_config", "resource_info", b"resource_info", "scope_down_statement", b"scope_down_statement"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["aggregate_key_type", b"aggregate_key_type", "forwarded_ip_config", b"forwarded_ip_config", "limit", b"limit", "resource_info", b"resource_info", "scope_down_statement", b"scope_down_statement"]) -> None: ...

global___RuleGroupRateBasedStatementTwo = RuleGroupRateBasedStatementTwo

@typing_extensions.final
class RuleGroupAndStatementTwo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    STATEMENTS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def statements(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RuleGroupStatementThree]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        statements: collections.abc.Iterable[global___RuleGroupStatementThree] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "statements", b"statements"]) -> None: ...

global___RuleGroupAndStatementTwo = RuleGroupAndStatementTwo

@typing_extensions.final
class RuleGroupOrStatementTwo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    STATEMENTS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def statements(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RuleGroupStatementThree]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        statements: collections.abc.Iterable[global___RuleGroupStatementThree] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "statements", b"statements"]) -> None: ...

global___RuleGroupOrStatementTwo = RuleGroupOrStatementTwo

@typing_extensions.final
class RuleGroupNotStatementTwo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    STATEMENT_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def statement(self) -> global___RuleGroupStatementThree: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        statement: global___RuleGroupStatementThree | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "statement", b"statement"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "statement", b"statement"]) -> None: ...

global___RuleGroupNotStatementTwo = RuleGroupNotStatementTwo

@typing_extensions.final
class RuleGroupStatementTwo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    BYTE_MATCH_STATEMENT_FIELD_NUMBER: builtins.int
    SQLI_MATCH_STATEMENT_FIELD_NUMBER: builtins.int
    XSS_MATCH_STATEMENT_FIELD_NUMBER: builtins.int
    SIZE_CONSTRAINT_STATEMENT_FIELD_NUMBER: builtins.int
    GEO_MATCH_STATEMENT_FIELD_NUMBER: builtins.int
    IP_SET_REFERENCE_STATEMENT_FIELD_NUMBER: builtins.int
    REGEX_PATTERN_SET_REFERENCE_STATEMENT_FIELD_NUMBER: builtins.int
    RATE_BASED_STATEMENT_FIELD_NUMBER: builtins.int
    AND_STATEMENT_FIELD_NUMBER: builtins.int
    OR_STATEMENT_FIELD_NUMBER: builtins.int
    NOT_STATEMENT_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def byte_match_statement(self) -> global___RuleGroupByteMatchStatement: ...
    @property
    def sqli_match_statement(self) -> global___RuleGroupSqliMatchStatement: ...
    @property
    def xss_match_statement(self) -> global___RuleGroupXssMatchStatement: ...
    @property
    def size_constraint_statement(self) -> global___RuleGroupSizeConstraintStatement: ...
    @property
    def geo_match_statement(self) -> global___RuleGroupGeoMatchStatement: ...
    @property
    def ip_set_reference_statement(self) -> global___RuleGroupIPSetReferenceStatement: ...
    @property
    def regex_pattern_set_reference_statement(self) -> global___RuleGroupRegexPatternSetReferenceStatement: ...
    @property
    def rate_based_statement(self) -> global___RuleGroupRateBasedStatementTwo: ...
    @property
    def and_statement(self) -> global___RuleGroupAndStatementTwo: ...
    @property
    def or_statement(self) -> global___RuleGroupOrStatementTwo: ...
    @property
    def not_statement(self) -> global___RuleGroupNotStatementTwo: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        byte_match_statement: global___RuleGroupByteMatchStatement | None = ...,
        sqli_match_statement: global___RuleGroupSqliMatchStatement | None = ...,
        xss_match_statement: global___RuleGroupXssMatchStatement | None = ...,
        size_constraint_statement: global___RuleGroupSizeConstraintStatement | None = ...,
        geo_match_statement: global___RuleGroupGeoMatchStatement | None = ...,
        ip_set_reference_statement: global___RuleGroupIPSetReferenceStatement | None = ...,
        regex_pattern_set_reference_statement: global___RuleGroupRegexPatternSetReferenceStatement | None = ...,
        rate_based_statement: global___RuleGroupRateBasedStatementTwo | None = ...,
        and_statement: global___RuleGroupAndStatementTwo | None = ...,
        or_statement: global___RuleGroupOrStatementTwo | None = ...,
        not_statement: global___RuleGroupNotStatementTwo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["and_statement", b"and_statement", "byte_match_statement", b"byte_match_statement", "geo_match_statement", b"geo_match_statement", "ip_set_reference_statement", b"ip_set_reference_statement", "not_statement", b"not_statement", "or_statement", b"or_statement", "rate_based_statement", b"rate_based_statement", "regex_pattern_set_reference_statement", b"regex_pattern_set_reference_statement", "resource_info", b"resource_info", "size_constraint_statement", b"size_constraint_statement", "sqli_match_statement", b"sqli_match_statement", "xss_match_statement", b"xss_match_statement"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["and_statement", b"and_statement", "byte_match_statement", b"byte_match_statement", "geo_match_statement", b"geo_match_statement", "ip_set_reference_statement", b"ip_set_reference_statement", "not_statement", b"not_statement", "or_statement", b"or_statement", "rate_based_statement", b"rate_based_statement", "regex_pattern_set_reference_statement", b"regex_pattern_set_reference_statement", "resource_info", b"resource_info", "size_constraint_statement", b"size_constraint_statement", "sqli_match_statement", b"sqli_match_statement", "xss_match_statement", b"xss_match_statement"]) -> None: ...

global___RuleGroupStatementTwo = RuleGroupStatementTwo

@typing_extensions.final
class RuleGroupRateBasedStatementOne(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    LIMIT_FIELD_NUMBER: builtins.int
    AGGREGATE_KEY_TYPE_FIELD_NUMBER: builtins.int
    SCOPE_DOWN_STATEMENT_FIELD_NUMBER: builtins.int
    FORWARDED_IP_CONFIG_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    limit: builtins.int
    aggregate_key_type: builtins.str
    @property
    def scope_down_statement(self) -> global___RuleGroupStatementTwo: ...
    @property
    def forwarded_ip_config(self) -> global___RuleGroupForwardedIPConfiguration: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        limit: builtins.int = ...,
        aggregate_key_type: builtins.str = ...,
        scope_down_statement: global___RuleGroupStatementTwo | None = ...,
        forwarded_ip_config: global___RuleGroupForwardedIPConfiguration | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["forwarded_ip_config", b"forwarded_ip_config", "resource_info", b"resource_info", "scope_down_statement", b"scope_down_statement"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["aggregate_key_type", b"aggregate_key_type", "forwarded_ip_config", b"forwarded_ip_config", "limit", b"limit", "resource_info", b"resource_info", "scope_down_statement", b"scope_down_statement"]) -> None: ...

global___RuleGroupRateBasedStatementOne = RuleGroupRateBasedStatementOne

@typing_extensions.final
class RuleGroupAndStatementOne(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    STATEMENTS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def statements(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RuleGroupStatementTwo]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        statements: collections.abc.Iterable[global___RuleGroupStatementTwo] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "statements", b"statements"]) -> None: ...

global___RuleGroupAndStatementOne = RuleGroupAndStatementOne

@typing_extensions.final
class RuleGroupOrStatementOne(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    STATEMENTS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def statements(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RuleGroupStatementTwo]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        statements: collections.abc.Iterable[global___RuleGroupStatementTwo] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "statements", b"statements"]) -> None: ...

global___RuleGroupOrStatementOne = RuleGroupOrStatementOne

@typing_extensions.final
class RuleGroupNotStatementOne(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    STATEMENT_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def statement(self) -> global___RuleGroupStatementTwo: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        statement: global___RuleGroupStatementTwo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "statement", b"statement"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "statement", b"statement"]) -> None: ...

global___RuleGroupNotStatementOne = RuleGroupNotStatementOne

@typing_extensions.final
class RuleGroupStatementOne(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    BYTE_MATCH_STATEMENT_FIELD_NUMBER: builtins.int
    SQLI_MATCH_STATEMENT_FIELD_NUMBER: builtins.int
    XSS_MATCH_STATEMENT_FIELD_NUMBER: builtins.int
    SIZE_CONSTRAINT_STATEMENT_FIELD_NUMBER: builtins.int
    GEO_MATCH_STATEMENT_FIELD_NUMBER: builtins.int
    IP_SET_REFERENCE_STATEMENT_FIELD_NUMBER: builtins.int
    REGEX_PATTERN_SET_REFERENCE_STATEMENT_FIELD_NUMBER: builtins.int
    RATE_BASED_STATEMENT_FIELD_NUMBER: builtins.int
    AND_STATEMENT_FIELD_NUMBER: builtins.int
    OR_STATEMENT_FIELD_NUMBER: builtins.int
    NOT_STATEMENT_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def byte_match_statement(self) -> global___RuleGroupByteMatchStatement: ...
    @property
    def sqli_match_statement(self) -> global___RuleGroupSqliMatchStatement: ...
    @property
    def xss_match_statement(self) -> global___RuleGroupXssMatchStatement: ...
    @property
    def size_constraint_statement(self) -> global___RuleGroupSizeConstraintStatement: ...
    @property
    def geo_match_statement(self) -> global___RuleGroupGeoMatchStatement: ...
    @property
    def ip_set_reference_statement(self) -> global___RuleGroupIPSetReferenceStatement: ...
    @property
    def regex_pattern_set_reference_statement(self) -> global___RuleGroupRegexPatternSetReferenceStatement: ...
    @property
    def rate_based_statement(self) -> global___RuleGroupRateBasedStatementOne: ...
    @property
    def and_statement(self) -> global___RuleGroupAndStatementOne: ...
    @property
    def or_statement(self) -> global___RuleGroupOrStatementOne: ...
    @property
    def not_statement(self) -> global___RuleGroupNotStatementOne: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        byte_match_statement: global___RuleGroupByteMatchStatement | None = ...,
        sqli_match_statement: global___RuleGroupSqliMatchStatement | None = ...,
        xss_match_statement: global___RuleGroupXssMatchStatement | None = ...,
        size_constraint_statement: global___RuleGroupSizeConstraintStatement | None = ...,
        geo_match_statement: global___RuleGroupGeoMatchStatement | None = ...,
        ip_set_reference_statement: global___RuleGroupIPSetReferenceStatement | None = ...,
        regex_pattern_set_reference_statement: global___RuleGroupRegexPatternSetReferenceStatement | None = ...,
        rate_based_statement: global___RuleGroupRateBasedStatementOne | None = ...,
        and_statement: global___RuleGroupAndStatementOne | None = ...,
        or_statement: global___RuleGroupOrStatementOne | None = ...,
        not_statement: global___RuleGroupNotStatementOne | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["and_statement", b"and_statement", "byte_match_statement", b"byte_match_statement", "geo_match_statement", b"geo_match_statement", "ip_set_reference_statement", b"ip_set_reference_statement", "not_statement", b"not_statement", "or_statement", b"or_statement", "rate_based_statement", b"rate_based_statement", "regex_pattern_set_reference_statement", b"regex_pattern_set_reference_statement", "resource_info", b"resource_info", "size_constraint_statement", b"size_constraint_statement", "sqli_match_statement", b"sqli_match_statement", "xss_match_statement", b"xss_match_statement"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["and_statement", b"and_statement", "byte_match_statement", b"byte_match_statement", "geo_match_statement", b"geo_match_statement", "ip_set_reference_statement", b"ip_set_reference_statement", "not_statement", b"not_statement", "or_statement", b"or_statement", "rate_based_statement", b"rate_based_statement", "regex_pattern_set_reference_statement", b"regex_pattern_set_reference_statement", "resource_info", b"resource_info", "size_constraint_statement", b"size_constraint_statement", "sqli_match_statement", b"sqli_match_statement", "xss_match_statement", b"xss_match_statement"]) -> None: ...

global___RuleGroupStatementOne = RuleGroupStatementOne

@typing_extensions.final
class RuleGroupRuleAction(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class AllowEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    @typing_extensions.final
    class BlockEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    @typing_extensions.final
    class CountEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ALLOW_FIELD_NUMBER: builtins.int
    BLOCK_FIELD_NUMBER: builtins.int
    COUNT_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def allow(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def block(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def count(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        allow: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        block: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        count: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["allow", b"allow", "block", b"block", "count", b"count", "resource_info", b"resource_info"]) -> None: ...

global___RuleGroupRuleAction = RuleGroupRuleAction

@typing_extensions.final
class RuleGroupVisibilityConfig(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    SAMPLED_REQUESTS_ENABLED_FIELD_NUMBER: builtins.int
    CLOUD_WATCH_METRICS_ENABLED_FIELD_NUMBER: builtins.int
    METRIC_NAME_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    sampled_requests_enabled: builtins.bool
    cloud_watch_metrics_enabled: builtins.bool
    metric_name: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        sampled_requests_enabled: builtins.bool = ...,
        cloud_watch_metrics_enabled: builtins.bool = ...,
        metric_name: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["cloud_watch_metrics_enabled", b"cloud_watch_metrics_enabled", "metric_name", b"metric_name", "resource_info", b"resource_info", "sampled_requests_enabled", b"sampled_requests_enabled"]) -> None: ...

global___RuleGroupVisibilityConfig = RuleGroupVisibilityConfig

@typing_extensions.final
class RuleGroupRule(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    PRIORITY_FIELD_NUMBER: builtins.int
    STATEMENT_FIELD_NUMBER: builtins.int
    ACTION_FIELD_NUMBER: builtins.int
    VISIBILITY_CONFIG_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    name: builtins.str
    priority: builtins.int
    @property
    def statement(self) -> global___RuleGroupStatementOne: ...
    @property
    def action(self) -> global___RuleGroupRuleAction: ...
    @property
    def visibility_config(self) -> global___RuleGroupVisibilityConfig: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        name: builtins.str = ...,
        priority: builtins.int = ...,
        statement: global___RuleGroupStatementOne | None = ...,
        action: global___RuleGroupRuleAction | None = ...,
        visibility_config: global___RuleGroupVisibilityConfig | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["action", b"action", "resource_info", b"resource_info", "statement", b"statement", "visibility_config", b"visibility_config"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["action", b"action", "name", b"name", "priority", b"priority", "resource_info", b"resource_info", "statement", b"statement", "visibility_config", b"visibility_config"]) -> None: ...

global___RuleGroupRule = RuleGroupRule

@typing_extensions.final
class RuleGroup(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class TagsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    CAPACITY_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    SCOPE_FIELD_NUMBER: builtins.int
    RULES_FIELD_NUMBER: builtins.int
    VISIBILITY_CONFIG_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    capacity: builtins.int
    description: builtins.str
    name: builtins.str
    scope: builtins.str
    @property
    def rules(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RuleGroupRule]: ...
    @property
    def visibility_config(self) -> global___RuleGroupVisibilityConfig: ...
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        capacity: builtins.int = ...,
        description: builtins.str = ...,
        name: builtins.str = ...,
        scope: builtins.str = ...,
        rules: collections.abc.Iterable[global___RuleGroupRule] | None = ...,
        visibility_config: global___RuleGroupVisibilityConfig | None = ...,
        tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "visibility_config", b"visibility_config"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["capacity", b"capacity", "description", b"description", "name", b"name", "resource_info", b"resource_info", "rules", b"rules", "scope", b"scope", "tags", b"tags", "visibility_config", b"visibility_config"]) -> None: ...

global___RuleGroup = RuleGroup

@typing_extensions.final
class WebACLDefaultAction(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class AllowEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    @typing_extensions.final
    class BlockEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ALLOW_FIELD_NUMBER: builtins.int
    BLOCK_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def allow(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def block(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        allow: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        block: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["allow", b"allow", "block", b"block", "resource_info", b"resource_info"]) -> None: ...

global___WebACLDefaultAction = WebACLDefaultAction

@typing_extensions.final
class WebACLFieldToMatch(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class SingleHeaderEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    @typing_extensions.final
    class SingleQueryArgumentEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    @typing_extensions.final
    class AllQueryArgumentsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    @typing_extensions.final
    class UriPathEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    @typing_extensions.final
    class QueryStringEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    @typing_extensions.final
    class BodyEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    @typing_extensions.final
    class MethodEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    SINGLE_HEADER_FIELD_NUMBER: builtins.int
    SINGLE_QUERY_ARGUMENT_FIELD_NUMBER: builtins.int
    ALL_QUERY_ARGUMENTS_FIELD_NUMBER: builtins.int
    URI_PATH_FIELD_NUMBER: builtins.int
    QUERY_STRING_FIELD_NUMBER: builtins.int
    BODY_FIELD_NUMBER: builtins.int
    METHOD_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def single_header(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def single_query_argument(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def all_query_arguments(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def uri_path(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def query_string(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def body(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def method(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        single_header: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        single_query_argument: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        all_query_arguments: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        uri_path: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        query_string: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        body: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        method: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["all_query_arguments", b"all_query_arguments", "body", b"body", "method", b"method", "query_string", b"query_string", "resource_info", b"resource_info", "single_header", b"single_header", "single_query_argument", b"single_query_argument", "uri_path", b"uri_path"]) -> None: ...

global___WebACLFieldToMatch = WebACLFieldToMatch

@typing_extensions.final
class WebACLTextTransformation(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    PRIORITY_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    priority: builtins.int
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        priority: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["priority", b"priority", "resource_info", b"resource_info"]) -> None: ...

global___WebACLTextTransformation = WebACLTextTransformation

@typing_extensions.final
class WebACLByteMatchStatement(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    SEARCH_STRING_FIELD_NUMBER: builtins.int
    SEARCH_STRING_BASE64_FIELD_NUMBER: builtins.int
    FIELD_TO_MATCH_FIELD_NUMBER: builtins.int
    TEXT_TRANSFORMATIONS_FIELD_NUMBER: builtins.int
    POSITIONAL_CONSTRAINT_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    search_string: builtins.str
    search_string_base64: builtins.str
    @property
    def field_to_match(self) -> global___WebACLFieldToMatch: ...
    @property
    def text_transformations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___WebACLTextTransformation]: ...
    positional_constraint: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        search_string: builtins.str = ...,
        search_string_base64: builtins.str = ...,
        field_to_match: global___WebACLFieldToMatch | None = ...,
        text_transformations: collections.abc.Iterable[global___WebACLTextTransformation] | None = ...,
        positional_constraint: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["field_to_match", b"field_to_match", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["field_to_match", b"field_to_match", "positional_constraint", b"positional_constraint", "resource_info", b"resource_info", "search_string", b"search_string", "search_string_base64", b"search_string_base64", "text_transformations", b"text_transformations"]) -> None: ...

global___WebACLByteMatchStatement = WebACLByteMatchStatement

@typing_extensions.final
class WebACLSqliMatchStatement(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    FIELD_TO_MATCH_FIELD_NUMBER: builtins.int
    TEXT_TRANSFORMATIONS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def field_to_match(self) -> global___WebACLFieldToMatch: ...
    @property
    def text_transformations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___WebACLTextTransformation]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        field_to_match: global___WebACLFieldToMatch | None = ...,
        text_transformations: collections.abc.Iterable[global___WebACLTextTransformation] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["field_to_match", b"field_to_match", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["field_to_match", b"field_to_match", "resource_info", b"resource_info", "text_transformations", b"text_transformations"]) -> None: ...

global___WebACLSqliMatchStatement = WebACLSqliMatchStatement

@typing_extensions.final
class WebACLXssMatchStatement(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    FIELD_TO_MATCH_FIELD_NUMBER: builtins.int
    TEXT_TRANSFORMATIONS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def field_to_match(self) -> global___WebACLFieldToMatch: ...
    @property
    def text_transformations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___WebACLTextTransformation]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        field_to_match: global___WebACLFieldToMatch | None = ...,
        text_transformations: collections.abc.Iterable[global___WebACLTextTransformation] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["field_to_match", b"field_to_match", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["field_to_match", b"field_to_match", "resource_info", b"resource_info", "text_transformations", b"text_transformations"]) -> None: ...

global___WebACLXssMatchStatement = WebACLXssMatchStatement

@typing_extensions.final
class WebACLSizeConstraintStatement(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    FIELD_TO_MATCH_FIELD_NUMBER: builtins.int
    COMPARISON_OPERATOR_FIELD_NUMBER: builtins.int
    SIZE_FIELD_NUMBER: builtins.int
    TEXT_TRANSFORMATIONS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def field_to_match(self) -> global___WebACLFieldToMatch: ...
    comparison_operator: builtins.str
    size: builtins.int
    @property
    def text_transformations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___WebACLTextTransformation]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        field_to_match: global___WebACLFieldToMatch | None = ...,
        comparison_operator: builtins.str = ...,
        size: builtins.int = ...,
        text_transformations: collections.abc.Iterable[global___WebACLTextTransformation] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["field_to_match", b"field_to_match", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["comparison_operator", b"comparison_operator", "field_to_match", b"field_to_match", "resource_info", b"resource_info", "size", b"size", "text_transformations", b"text_transformations"]) -> None: ...

global___WebACLSizeConstraintStatement = WebACLSizeConstraintStatement

@typing_extensions.final
class WebACLForwardedIPConfiguration(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    HEADER_NAME_FIELD_NUMBER: builtins.int
    FALLBACK_BEHAVIOR_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    header_name: builtins.str
    fallback_behavior: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        header_name: builtins.str = ...,
        fallback_behavior: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["fallback_behavior", b"fallback_behavior", "header_name", b"header_name", "resource_info", b"resource_info"]) -> None: ...

global___WebACLForwardedIPConfiguration = WebACLForwardedIPConfiguration

@typing_extensions.final
class WebACLGeoMatchStatement(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    COUNTRY_CODES_FIELD_NUMBER: builtins.int
    FORWARDED_IP_CONFIG_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def country_codes(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    @property
    def forwarded_ip_config(self) -> global___WebACLForwardedIPConfiguration: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        country_codes: collections.abc.Iterable[builtins.str] | None = ...,
        forwarded_ip_config: global___WebACLForwardedIPConfiguration | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["forwarded_ip_config", b"forwarded_ip_config", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["country_codes", b"country_codes", "forwarded_ip_config", b"forwarded_ip_config", "resource_info", b"resource_info"]) -> None: ...

global___WebACLGeoMatchStatement = WebACLGeoMatchStatement

@typing_extensions.final
class WebACLExcludedRule(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    name: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        name: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "resource_info", b"resource_info"]) -> None: ...

global___WebACLExcludedRule = WebACLExcludedRule

@typing_extensions.final
class WebACLRuleGroupReferenceStatement(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ARN_FIELD_NUMBER: builtins.int
    EXCLUDED_RULES_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    arn: builtins.str
    @property
    def excluded_rules(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___WebACLExcludedRule]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        arn: builtins.str = ...,
        excluded_rules: collections.abc.Iterable[global___WebACLExcludedRule] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["arn", b"arn", "excluded_rules", b"excluded_rules", "resource_info", b"resource_info"]) -> None: ...

global___WebACLRuleGroupReferenceStatement = WebACLRuleGroupReferenceStatement

@typing_extensions.final
class WebACLIPSetForwardedIPConfiguration(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    HEADER_NAME_FIELD_NUMBER: builtins.int
    FALLBACK_BEHAVIOR_FIELD_NUMBER: builtins.int
    POSITION_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    header_name: builtins.str
    fallback_behavior: builtins.str
    position: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        header_name: builtins.str = ...,
        fallback_behavior: builtins.str = ...,
        position: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["fallback_behavior", b"fallback_behavior", "header_name", b"header_name", "position", b"position", "resource_info", b"resource_info"]) -> None: ...

global___WebACLIPSetForwardedIPConfiguration = WebACLIPSetForwardedIPConfiguration

@typing_extensions.final
class WebACLIPSetReferenceStatement(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ARN_FIELD_NUMBER: builtins.int
    IP_SET_FORWARDED_IP_CONFIG_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    arn: builtins.str
    @property
    def ip_set_forwarded_ip_config(self) -> global___WebACLIPSetForwardedIPConfiguration: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        arn: builtins.str = ...,
        ip_set_forwarded_ip_config: global___WebACLIPSetForwardedIPConfiguration | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["ip_set_forwarded_ip_config", b"ip_set_forwarded_ip_config", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["arn", b"arn", "ip_set_forwarded_ip_config", b"ip_set_forwarded_ip_config", "resource_info", b"resource_info"]) -> None: ...

global___WebACLIPSetReferenceStatement = WebACLIPSetReferenceStatement

@typing_extensions.final
class WebACLRegexPatternSetReferenceStatement(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ARN_FIELD_NUMBER: builtins.int
    FIELD_TO_MATCH_FIELD_NUMBER: builtins.int
    TEXT_TRANSFORMATIONS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    arn: builtins.str
    @property
    def field_to_match(self) -> global___WebACLFieldToMatch: ...
    @property
    def text_transformations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___WebACLTextTransformation]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        arn: builtins.str = ...,
        field_to_match: global___WebACLFieldToMatch | None = ...,
        text_transformations: collections.abc.Iterable[global___WebACLTextTransformation] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["field_to_match", b"field_to_match", "resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["arn", b"arn", "field_to_match", b"field_to_match", "resource_info", b"resource_info", "text_transformations", b"text_transformations"]) -> None: ...

global___WebACLRegexPatternSetReferenceStatement = WebACLRegexPatternSetReferenceStatement

@typing_extensions.final
class WebACLManagedRuleGroupStatement(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    VENDOR_NAME_FIELD_NUMBER: builtins.int
    EXCLUDED_RULES_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    name: builtins.str
    vendor_name: builtins.str
    @property
    def excluded_rules(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___WebACLExcludedRule]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        name: builtins.str = ...,
        vendor_name: builtins.str = ...,
        excluded_rules: collections.abc.Iterable[global___WebACLExcludedRule] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["excluded_rules", b"excluded_rules", "name", b"name", "resource_info", b"resource_info", "vendor_name", b"vendor_name"]) -> None: ...

global___WebACLManagedRuleGroupStatement = WebACLManagedRuleGroupStatement

@typing_extensions.final
class WebACLStatementThree(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    BYTE_MATCH_STATEMENT_FIELD_NUMBER: builtins.int
    SQLI_MATCH_STATEMENT_FIELD_NUMBER: builtins.int
    XSS_MATCH_STATEMENT_FIELD_NUMBER: builtins.int
    SIZE_CONSTRAINT_STATEMENT_FIELD_NUMBER: builtins.int
    GEO_MATCH_STATEMENT_FIELD_NUMBER: builtins.int
    RULE_GROUP_REFERENCE_STATEMENT_FIELD_NUMBER: builtins.int
    IP_SET_REFERENCE_STATEMENT_FIELD_NUMBER: builtins.int
    REGEX_PATTERN_SET_REFERENCE_STATEMENT_FIELD_NUMBER: builtins.int
    MANAGED_RULE_GROUP_STATEMENT_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def byte_match_statement(self) -> global___WebACLByteMatchStatement: ...
    @property
    def sqli_match_statement(self) -> global___WebACLSqliMatchStatement: ...
    @property
    def xss_match_statement(self) -> global___WebACLXssMatchStatement: ...
    @property
    def size_constraint_statement(self) -> global___WebACLSizeConstraintStatement: ...
    @property
    def geo_match_statement(self) -> global___WebACLGeoMatchStatement: ...
    @property
    def rule_group_reference_statement(self) -> global___WebACLRuleGroupReferenceStatement: ...
    @property
    def ip_set_reference_statement(self) -> global___WebACLIPSetReferenceStatement: ...
    @property
    def regex_pattern_set_reference_statement(self) -> global___WebACLRegexPatternSetReferenceStatement: ...
    @property
    def managed_rule_group_statement(self) -> global___WebACLManagedRuleGroupStatement: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        byte_match_statement: global___WebACLByteMatchStatement | None = ...,
        sqli_match_statement: global___WebACLSqliMatchStatement | None = ...,
        xss_match_statement: global___WebACLXssMatchStatement | None = ...,
        size_constraint_statement: global___WebACLSizeConstraintStatement | None = ...,
        geo_match_statement: global___WebACLGeoMatchStatement | None = ...,
        rule_group_reference_statement: global___WebACLRuleGroupReferenceStatement | None = ...,
        ip_set_reference_statement: global___WebACLIPSetReferenceStatement | None = ...,
        regex_pattern_set_reference_statement: global___WebACLRegexPatternSetReferenceStatement | None = ...,
        managed_rule_group_statement: global___WebACLManagedRuleGroupStatement | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["byte_match_statement", b"byte_match_statement", "geo_match_statement", b"geo_match_statement", "ip_set_reference_statement", b"ip_set_reference_statement", "managed_rule_group_statement", b"managed_rule_group_statement", "regex_pattern_set_reference_statement", b"regex_pattern_set_reference_statement", "resource_info", b"resource_info", "rule_group_reference_statement", b"rule_group_reference_statement", "size_constraint_statement", b"size_constraint_statement", "sqli_match_statement", b"sqli_match_statement", "xss_match_statement", b"xss_match_statement"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["byte_match_statement", b"byte_match_statement", "geo_match_statement", b"geo_match_statement", "ip_set_reference_statement", b"ip_set_reference_statement", "managed_rule_group_statement", b"managed_rule_group_statement", "regex_pattern_set_reference_statement", b"regex_pattern_set_reference_statement", "resource_info", b"resource_info", "rule_group_reference_statement", b"rule_group_reference_statement", "size_constraint_statement", b"size_constraint_statement", "sqli_match_statement", b"sqli_match_statement", "xss_match_statement", b"xss_match_statement"]) -> None: ...

global___WebACLStatementThree = WebACLStatementThree

@typing_extensions.final
class WebACLRateBasedStatementTwo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    LIMIT_FIELD_NUMBER: builtins.int
    AGGREGATE_KEY_TYPE_FIELD_NUMBER: builtins.int
    SCOPE_DOWN_STATEMENT_FIELD_NUMBER: builtins.int
    FORWARDED_IP_CONFIG_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    limit: builtins.int
    aggregate_key_type: builtins.str
    @property
    def scope_down_statement(self) -> global___WebACLStatementThree: ...
    @property
    def forwarded_ip_config(self) -> global___WebACLForwardedIPConfiguration: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        limit: builtins.int = ...,
        aggregate_key_type: builtins.str = ...,
        scope_down_statement: global___WebACLStatementThree | None = ...,
        forwarded_ip_config: global___WebACLForwardedIPConfiguration | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["forwarded_ip_config", b"forwarded_ip_config", "resource_info", b"resource_info", "scope_down_statement", b"scope_down_statement"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["aggregate_key_type", b"aggregate_key_type", "forwarded_ip_config", b"forwarded_ip_config", "limit", b"limit", "resource_info", b"resource_info", "scope_down_statement", b"scope_down_statement"]) -> None: ...

global___WebACLRateBasedStatementTwo = WebACLRateBasedStatementTwo

@typing_extensions.final
class WebACLAndStatementTwo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    STATEMENTS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def statements(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___WebACLStatementThree]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        statements: collections.abc.Iterable[global___WebACLStatementThree] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "statements", b"statements"]) -> None: ...

global___WebACLAndStatementTwo = WebACLAndStatementTwo

@typing_extensions.final
class WebACLOrStatementTwo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    STATEMENTS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def statements(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___WebACLStatementThree]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        statements: collections.abc.Iterable[global___WebACLStatementThree] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "statements", b"statements"]) -> None: ...

global___WebACLOrStatementTwo = WebACLOrStatementTwo

@typing_extensions.final
class WebACLNotStatementTwo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    STATEMENT_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def statement(self) -> global___WebACLStatementThree: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        statement: global___WebACLStatementThree | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "statement", b"statement"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "statement", b"statement"]) -> None: ...

global___WebACLNotStatementTwo = WebACLNotStatementTwo

@typing_extensions.final
class WebACLStatementTwo(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    BYTE_MATCH_STATEMENT_FIELD_NUMBER: builtins.int
    SQLI_MATCH_STATEMENT_FIELD_NUMBER: builtins.int
    XSS_MATCH_STATEMENT_FIELD_NUMBER: builtins.int
    SIZE_CONSTRAINT_STATEMENT_FIELD_NUMBER: builtins.int
    GEO_MATCH_STATEMENT_FIELD_NUMBER: builtins.int
    RULE_GROUP_REFERENCE_STATEMENT_FIELD_NUMBER: builtins.int
    IP_SET_REFERENCE_STATEMENT_FIELD_NUMBER: builtins.int
    REGEX_PATTERN_SET_REFERENCE_STATEMENT_FIELD_NUMBER: builtins.int
    MANAGED_RULE_GROUP_STATEMENT_FIELD_NUMBER: builtins.int
    RATE_BASED_STATEMENT_FIELD_NUMBER: builtins.int
    AND_STATEMENT_FIELD_NUMBER: builtins.int
    OR_STATEMENT_FIELD_NUMBER: builtins.int
    NOT_STATEMENT_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def byte_match_statement(self) -> global___WebACLByteMatchStatement: ...
    @property
    def sqli_match_statement(self) -> global___WebACLSqliMatchStatement: ...
    @property
    def xss_match_statement(self) -> global___WebACLXssMatchStatement: ...
    @property
    def size_constraint_statement(self) -> global___WebACLSizeConstraintStatement: ...
    @property
    def geo_match_statement(self) -> global___WebACLGeoMatchStatement: ...
    @property
    def rule_group_reference_statement(self) -> global___WebACLRuleGroupReferenceStatement: ...
    @property
    def ip_set_reference_statement(self) -> global___WebACLIPSetReferenceStatement: ...
    @property
    def regex_pattern_set_reference_statement(self) -> global___WebACLRegexPatternSetReferenceStatement: ...
    @property
    def managed_rule_group_statement(self) -> global___WebACLManagedRuleGroupStatement: ...
    @property
    def rate_based_statement(self) -> global___WebACLRateBasedStatementTwo: ...
    @property
    def and_statement(self) -> global___WebACLAndStatementTwo: ...
    @property
    def or_statement(self) -> global___WebACLOrStatementTwo: ...
    @property
    def not_statement(self) -> global___WebACLNotStatementTwo: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        byte_match_statement: global___WebACLByteMatchStatement | None = ...,
        sqli_match_statement: global___WebACLSqliMatchStatement | None = ...,
        xss_match_statement: global___WebACLXssMatchStatement | None = ...,
        size_constraint_statement: global___WebACLSizeConstraintStatement | None = ...,
        geo_match_statement: global___WebACLGeoMatchStatement | None = ...,
        rule_group_reference_statement: global___WebACLRuleGroupReferenceStatement | None = ...,
        ip_set_reference_statement: global___WebACLIPSetReferenceStatement | None = ...,
        regex_pattern_set_reference_statement: global___WebACLRegexPatternSetReferenceStatement | None = ...,
        managed_rule_group_statement: global___WebACLManagedRuleGroupStatement | None = ...,
        rate_based_statement: global___WebACLRateBasedStatementTwo | None = ...,
        and_statement: global___WebACLAndStatementTwo | None = ...,
        or_statement: global___WebACLOrStatementTwo | None = ...,
        not_statement: global___WebACLNotStatementTwo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["and_statement", b"and_statement", "byte_match_statement", b"byte_match_statement", "geo_match_statement", b"geo_match_statement", "ip_set_reference_statement", b"ip_set_reference_statement", "managed_rule_group_statement", b"managed_rule_group_statement", "not_statement", b"not_statement", "or_statement", b"or_statement", "rate_based_statement", b"rate_based_statement", "regex_pattern_set_reference_statement", b"regex_pattern_set_reference_statement", "resource_info", b"resource_info", "rule_group_reference_statement", b"rule_group_reference_statement", "size_constraint_statement", b"size_constraint_statement", "sqli_match_statement", b"sqli_match_statement", "xss_match_statement", b"xss_match_statement"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["and_statement", b"and_statement", "byte_match_statement", b"byte_match_statement", "geo_match_statement", b"geo_match_statement", "ip_set_reference_statement", b"ip_set_reference_statement", "managed_rule_group_statement", b"managed_rule_group_statement", "not_statement", b"not_statement", "or_statement", b"or_statement", "rate_based_statement", b"rate_based_statement", "regex_pattern_set_reference_statement", b"regex_pattern_set_reference_statement", "resource_info", b"resource_info", "rule_group_reference_statement", b"rule_group_reference_statement", "size_constraint_statement", b"size_constraint_statement", "sqli_match_statement", b"sqli_match_statement", "xss_match_statement", b"xss_match_statement"]) -> None: ...

global___WebACLStatementTwo = WebACLStatementTwo

@typing_extensions.final
class WebACLRateBasedStatementOne(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    LIMIT_FIELD_NUMBER: builtins.int
    AGGREGATE_KEY_TYPE_FIELD_NUMBER: builtins.int
    SCOPE_DOWN_STATEMENT_FIELD_NUMBER: builtins.int
    FORWARDED_IP_CONFIG_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    limit: builtins.int
    aggregate_key_type: builtins.str
    @property
    def scope_down_statement(self) -> global___WebACLStatementTwo: ...
    @property
    def forwarded_ip_config(self) -> global___WebACLForwardedIPConfiguration: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        limit: builtins.int = ...,
        aggregate_key_type: builtins.str = ...,
        scope_down_statement: global___WebACLStatementTwo | None = ...,
        forwarded_ip_config: global___WebACLForwardedIPConfiguration | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["forwarded_ip_config", b"forwarded_ip_config", "resource_info", b"resource_info", "scope_down_statement", b"scope_down_statement"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["aggregate_key_type", b"aggregate_key_type", "forwarded_ip_config", b"forwarded_ip_config", "limit", b"limit", "resource_info", b"resource_info", "scope_down_statement", b"scope_down_statement"]) -> None: ...

global___WebACLRateBasedStatementOne = WebACLRateBasedStatementOne

@typing_extensions.final
class WebACLAndStatementOne(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    STATEMENTS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def statements(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___WebACLStatementTwo]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        statements: collections.abc.Iterable[global___WebACLStatementTwo] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "statements", b"statements"]) -> None: ...

global___WebACLAndStatementOne = WebACLAndStatementOne

@typing_extensions.final
class WebACLOrStatementOne(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    STATEMENTS_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def statements(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___WebACLStatementTwo]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        statements: collections.abc.Iterable[global___WebACLStatementTwo] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "statements", b"statements"]) -> None: ...

global___WebACLOrStatementOne = WebACLOrStatementOne

@typing_extensions.final
class WebACLNotStatementOne(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    STATEMENT_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def statement(self) -> global___WebACLStatementTwo: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        statement: global___WebACLStatementTwo | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "statement", b"statement"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info", "statement", b"statement"]) -> None: ...

global___WebACLNotStatementOne = WebACLNotStatementOne

@typing_extensions.final
class WebACLStatementOne(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    BYTE_MATCH_STATEMENT_FIELD_NUMBER: builtins.int
    SQLI_MATCH_STATEMENT_FIELD_NUMBER: builtins.int
    XSS_MATCH_STATEMENT_FIELD_NUMBER: builtins.int
    SIZE_CONSTRAINT_STATEMENT_FIELD_NUMBER: builtins.int
    GEO_MATCH_STATEMENT_FIELD_NUMBER: builtins.int
    RULE_GROUP_REFERENCE_STATEMENT_FIELD_NUMBER: builtins.int
    IP_SET_REFERENCE_STATEMENT_FIELD_NUMBER: builtins.int
    REGEX_PATTERN_SET_REFERENCE_STATEMENT_FIELD_NUMBER: builtins.int
    MANAGED_RULE_GROUP_STATEMENT_FIELD_NUMBER: builtins.int
    RATE_BASED_STATEMENT_FIELD_NUMBER: builtins.int
    AND_STATEMENT_FIELD_NUMBER: builtins.int
    OR_STATEMENT_FIELD_NUMBER: builtins.int
    NOT_STATEMENT_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def byte_match_statement(self) -> global___WebACLByteMatchStatement: ...
    @property
    def sqli_match_statement(self) -> global___WebACLSqliMatchStatement: ...
    @property
    def xss_match_statement(self) -> global___WebACLXssMatchStatement: ...
    @property
    def size_constraint_statement(self) -> global___WebACLSizeConstraintStatement: ...
    @property
    def geo_match_statement(self) -> global___WebACLGeoMatchStatement: ...
    @property
    def rule_group_reference_statement(self) -> global___WebACLRuleGroupReferenceStatement: ...
    @property
    def ip_set_reference_statement(self) -> global___WebACLIPSetReferenceStatement: ...
    @property
    def regex_pattern_set_reference_statement(self) -> global___WebACLRegexPatternSetReferenceStatement: ...
    @property
    def managed_rule_group_statement(self) -> global___WebACLManagedRuleGroupStatement: ...
    @property
    def rate_based_statement(self) -> global___WebACLRateBasedStatementOne: ...
    @property
    def and_statement(self) -> global___WebACLAndStatementOne: ...
    @property
    def or_statement(self) -> global___WebACLOrStatementOne: ...
    @property
    def not_statement(self) -> global___WebACLNotStatementOne: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        byte_match_statement: global___WebACLByteMatchStatement | None = ...,
        sqli_match_statement: global___WebACLSqliMatchStatement | None = ...,
        xss_match_statement: global___WebACLXssMatchStatement | None = ...,
        size_constraint_statement: global___WebACLSizeConstraintStatement | None = ...,
        geo_match_statement: global___WebACLGeoMatchStatement | None = ...,
        rule_group_reference_statement: global___WebACLRuleGroupReferenceStatement | None = ...,
        ip_set_reference_statement: global___WebACLIPSetReferenceStatement | None = ...,
        regex_pattern_set_reference_statement: global___WebACLRegexPatternSetReferenceStatement | None = ...,
        managed_rule_group_statement: global___WebACLManagedRuleGroupStatement | None = ...,
        rate_based_statement: global___WebACLRateBasedStatementOne | None = ...,
        and_statement: global___WebACLAndStatementOne | None = ...,
        or_statement: global___WebACLOrStatementOne | None = ...,
        not_statement: global___WebACLNotStatementOne | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["and_statement", b"and_statement", "byte_match_statement", b"byte_match_statement", "geo_match_statement", b"geo_match_statement", "ip_set_reference_statement", b"ip_set_reference_statement", "managed_rule_group_statement", b"managed_rule_group_statement", "not_statement", b"not_statement", "or_statement", b"or_statement", "rate_based_statement", b"rate_based_statement", "regex_pattern_set_reference_statement", b"regex_pattern_set_reference_statement", "resource_info", b"resource_info", "rule_group_reference_statement", b"rule_group_reference_statement", "size_constraint_statement", b"size_constraint_statement", "sqli_match_statement", b"sqli_match_statement", "xss_match_statement", b"xss_match_statement"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["and_statement", b"and_statement", "byte_match_statement", b"byte_match_statement", "geo_match_statement", b"geo_match_statement", "ip_set_reference_statement", b"ip_set_reference_statement", "managed_rule_group_statement", b"managed_rule_group_statement", "not_statement", b"not_statement", "or_statement", b"or_statement", "rate_based_statement", b"rate_based_statement", "regex_pattern_set_reference_statement", b"regex_pattern_set_reference_statement", "resource_info", b"resource_info", "rule_group_reference_statement", b"rule_group_reference_statement", "size_constraint_statement", b"size_constraint_statement", "sqli_match_statement", b"sqli_match_statement", "xss_match_statement", b"xss_match_statement"]) -> None: ...

global___WebACLStatementOne = WebACLStatementOne

@typing_extensions.final
class WebACLRuleAction(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class AllowEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    @typing_extensions.final
    class BlockEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    @typing_extensions.final
    class CountEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    ALLOW_FIELD_NUMBER: builtins.int
    BLOCK_FIELD_NUMBER: builtins.int
    COUNT_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def allow(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def block(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def count(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        allow: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        block: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        count: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["allow", b"allow", "block", b"block", "count", b"count", "resource_info", b"resource_info"]) -> None: ...

global___WebACLRuleAction = WebACLRuleAction

@typing_extensions.final
class WebACLOverrideAction(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class CountEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    @typing_extensions.final
    class NoneEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    COUNT_FIELD_NUMBER: builtins.int
    NONE_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def count(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    @property
    def none(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        count: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        none: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["count", b"count", "none", b"none", "resource_info", b"resource_info"]) -> None: ...

global___WebACLOverrideAction = WebACLOverrideAction

@typing_extensions.final
class WebACLVisibilityConfig(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    SAMPLED_REQUESTS_ENABLED_FIELD_NUMBER: builtins.int
    CLOUD_WATCH_METRICS_ENABLED_FIELD_NUMBER: builtins.int
    METRIC_NAME_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    sampled_requests_enabled: builtins.bool
    cloud_watch_metrics_enabled: builtins.bool
    metric_name: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        sampled_requests_enabled: builtins.bool = ...,
        cloud_watch_metrics_enabled: builtins.bool = ...,
        metric_name: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["cloud_watch_metrics_enabled", b"cloud_watch_metrics_enabled", "metric_name", b"metric_name", "resource_info", b"resource_info", "sampled_requests_enabled", b"sampled_requests_enabled"]) -> None: ...

global___WebACLVisibilityConfig = WebACLVisibilityConfig

@typing_extensions.final
class WebACLRule(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    PRIORITY_FIELD_NUMBER: builtins.int
    STATEMENT_FIELD_NUMBER: builtins.int
    ACTION_FIELD_NUMBER: builtins.int
    OVERRIDE_ACTION_FIELD_NUMBER: builtins.int
    VISIBILITY_CONFIG_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    name: builtins.str
    priority: builtins.int
    @property
    def statement(self) -> global___WebACLStatementOne: ...
    @property
    def action(self) -> global___WebACLRuleAction: ...
    @property
    def override_action(self) -> global___WebACLOverrideAction: ...
    @property
    def visibility_config(self) -> global___WebACLVisibilityConfig: ...
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        name: builtins.str = ...,
        priority: builtins.int = ...,
        statement: global___WebACLStatementOne | None = ...,
        action: global___WebACLRuleAction | None = ...,
        override_action: global___WebACLOverrideAction | None = ...,
        visibility_config: global___WebACLVisibilityConfig | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["action", b"action", "override_action", b"override_action", "resource_info", b"resource_info", "statement", b"statement", "visibility_config", b"visibility_config"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["action", b"action", "name", b"name", "override_action", b"override_action", "priority", b"priority", "resource_info", b"resource_info", "statement", b"statement", "visibility_config", b"visibility_config"]) -> None: ...

global___WebACLRule = WebACLRule

@typing_extensions.final
class WebACL(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing_extensions.final
    class TagsEntry(google.protobuf.message.Message):
        DESCRIPTOR: google.protobuf.descriptor.Descriptor

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["key", b"key", "value", b"value"]) -> None: ...

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    DEFAULT_ACTION_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    SCOPE_FIELD_NUMBER: builtins.int
    RULES_FIELD_NUMBER: builtins.int
    VISIBILITY_CONFIG_FIELD_NUMBER: builtins.int
    TAGS_FIELD_NUMBER: builtins.int
    ARN_FIELD_NUMBER: builtins.int
    CAPACITY_FIELD_NUMBER: builtins.int
    LABEL_NAMESPACE_FIELD_NUMBER: builtins.int
    MANAGED_BY_FIREWALL_MANAGER_FIELD_NUMBER: builtins.int
    CAPTCHA_CONFIG_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    @property
    def default_action(self) -> global___WebACLDefaultAction: ...
    description: builtins.str
    name: builtins.str
    scope: builtins.str
    @property
    def rules(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___WebACLRule]: ...
    @property
    def visibility_config(self) -> global___WebACLVisibilityConfig: ...
    @property
    def tags(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]: ...
    arn: builtins.str
    capacity: builtins.str
    label_namespace: builtins.str
    managed_by_firewall_manager: builtins.str
    captcha_config: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        default_action: global___WebACLDefaultAction | None = ...,
        description: builtins.str = ...,
        name: builtins.str = ...,
        scope: builtins.str = ...,
        rules: collections.abc.Iterable[global___WebACLRule] | None = ...,
        visibility_config: global___WebACLVisibilityConfig | None = ...,
        tags: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        arn: builtins.str = ...,
        capacity: builtins.str = ...,
        label_namespace: builtins.str = ...,
        managed_by_firewall_manager: builtins.str = ...,
        captcha_config: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["default_action", b"default_action", "resource_info", b"resource_info", "visibility_config", b"visibility_config"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["arn", b"arn", "capacity", b"capacity", "captcha_config", b"captcha_config", "default_action", b"default_action", "description", b"description", "label_namespace", b"label_namespace", "managed_by_firewall_manager", b"managed_by_firewall_manager", "name", b"name", "resource_info", b"resource_info", "rules", b"rules", "scope", b"scope", "tags", b"tags", "visibility_config", b"visibility_config"]) -> None: ...

global___WebACL = WebACL

@typing_extensions.final
class WebACLAssociation(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    RESOURCE_INFO_FIELD_NUMBER: builtins.int
    RESOURCE_ARN_FIELD_NUMBER: builtins.int
    WEB_A_C_L_ARN_FIELD_NUMBER: builtins.int
    @property
    def resource_info(self) -> shared.shared_pb2.ResourceInfo: ...
    resource_arn: builtins.str
    web_a_c_l_arn: builtins.str
    def __init__(
        self,
        *,
        resource_info: shared.shared_pb2.ResourceInfo | None = ...,
        resource_arn: builtins.str = ...,
        web_a_c_l_arn: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["resource_info", b"resource_info"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["resource_arn", b"resource_arn", "resource_info", b"resource_info", "web_a_c_l_arn", b"web_a_c_l_arn"]) -> None: ...

global___WebACLAssociation = WebACLAssociation
