"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.descriptor_pb2
import google.protobuf.duration_pb2
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.internal.extension_dict
import google.protobuf.message
import google.protobuf.timestamp_pb2
import sys
import typing

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class _KnownRegex:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _KnownRegexEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_KnownRegex.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    UNKNOWN: _KnownRegex.ValueType  # 0
    HTTP_HEADER_NAME: _KnownRegex.ValueType  # 1
    """HTTP header name as defined by RFC 7230."""
    HTTP_HEADER_VALUE: _KnownRegex.ValueType  # 2
    """HTTP header value as defined by RFC 7230."""

class KnownRegex(_KnownRegex, metaclass=_KnownRegexEnumTypeWrapper):
    """WellKnownRegex contain some well-known patterns."""

UNKNOWN: KnownRegex.ValueType  # 0
HTTP_HEADER_NAME: KnownRegex.ValueType  # 1
"""HTTP header name as defined by RFC 7230."""
HTTP_HEADER_VALUE: KnownRegex.ValueType  # 2
"""HTTP header value as defined by RFC 7230."""
global___KnownRegex = KnownRegex

class FieldRules(google.protobuf.message.Message):
    """FieldRules encapsulates the rules for each type of field. Depending on the
    field, the correct set should be used to ensure proper validations.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MESSAGE_FIELD_NUMBER: builtins.int
    FLOAT_FIELD_NUMBER: builtins.int
    DOUBLE_FIELD_NUMBER: builtins.int
    INT32_FIELD_NUMBER: builtins.int
    INT64_FIELD_NUMBER: builtins.int
    UINT32_FIELD_NUMBER: builtins.int
    UINT64_FIELD_NUMBER: builtins.int
    SINT32_FIELD_NUMBER: builtins.int
    SINT64_FIELD_NUMBER: builtins.int
    FIXED32_FIELD_NUMBER: builtins.int
    FIXED64_FIELD_NUMBER: builtins.int
    SFIXED32_FIELD_NUMBER: builtins.int
    SFIXED64_FIELD_NUMBER: builtins.int
    BOOL_FIELD_NUMBER: builtins.int
    STRING_FIELD_NUMBER: builtins.int
    BYTES_FIELD_NUMBER: builtins.int
    ENUM_FIELD_NUMBER: builtins.int
    REPEATED_FIELD_NUMBER: builtins.int
    MAP_FIELD_NUMBER: builtins.int
    ANY_FIELD_NUMBER: builtins.int
    DURATION_FIELD_NUMBER: builtins.int
    TIMESTAMP_FIELD_NUMBER: builtins.int
    @property
    def message(self) -> global___MessageRules: ...
    @property
    def float(self) -> global___FloatRules:
        """Scalar Field Types"""
    @property
    def double(self) -> global___DoubleRules: ...
    @property
    def int32(self) -> global___Int32Rules: ...
    @property
    def int64(self) -> global___Int64Rules: ...
    @property
    def uint32(self) -> global___UInt32Rules: ...
    @property
    def uint64(self) -> global___UInt64Rules: ...
    @property
    def sint32(self) -> global___SInt32Rules: ...
    @property
    def sint64(self) -> global___SInt64Rules: ...
    @property
    def fixed32(self) -> global___Fixed32Rules: ...
    @property
    def fixed64(self) -> global___Fixed64Rules: ...
    @property
    def sfixed32(self) -> global___SFixed32Rules: ...
    @property
    def sfixed64(self) -> global___SFixed64Rules: ...
    @property
    def bool(self) -> global___BoolRules: ...
    @property
    def string(self) -> global___StringRules: ...
    @property
    def bytes(self) -> global___BytesRules: ...
    @property
    def enum(self) -> global___EnumRules:
        """Complex Field Types"""
    @property
    def repeated(self) -> global___RepeatedRules: ...
    @property
    def map(self) -> global___MapRules: ...
    @property
    def any(self) -> global___AnyRules:
        """Well-Known Field Types"""
    @property
    def duration(self) -> global___DurationRules: ...
    @property
    def timestamp(self) -> global___TimestampRules: ...
    def __init__(
        self,
        *,
        message: global___MessageRules | None = ...,
        float: global___FloatRules | None = ...,
        double: global___DoubleRules | None = ...,
        int32: global___Int32Rules | None = ...,
        int64: global___Int64Rules | None = ...,
        uint32: global___UInt32Rules | None = ...,
        uint64: global___UInt64Rules | None = ...,
        sint32: global___SInt32Rules | None = ...,
        sint64: global___SInt64Rules | None = ...,
        fixed32: global___Fixed32Rules | None = ...,
        fixed64: global___Fixed64Rules | None = ...,
        sfixed32: global___SFixed32Rules | None = ...,
        sfixed64: global___SFixed64Rules | None = ...,
        bool: global___BoolRules | None = ...,
        string: global___StringRules | None = ...,
        bytes: global___BytesRules | None = ...,
        enum: global___EnumRules | None = ...,
        repeated: global___RepeatedRules | None = ...,
        map: global___MapRules | None = ...,
        any: global___AnyRules | None = ...,
        duration: global___DurationRules | None = ...,
        timestamp: global___TimestampRules | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["any", b"any", "bool", b"bool", "bytes", b"bytes", "double", b"double", "duration", b"duration", "enum", b"enum", "fixed32", b"fixed32", "fixed64", b"fixed64", "float", b"float", "int32", b"int32", "int64", b"int64", "map", b"map", "message", b"message", "repeated", b"repeated", "sfixed32", b"sfixed32", "sfixed64", b"sfixed64", "sint32", b"sint32", "sint64", b"sint64", "string", b"string", "timestamp", b"timestamp", "type", b"type", "uint32", b"uint32", "uint64", b"uint64"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["any", b"any", "bool", b"bool", "bytes", b"bytes", "double", b"double", "duration", b"duration", "enum", b"enum", "fixed32", b"fixed32", "fixed64", b"fixed64", "float", b"float", "int32", b"int32", "int64", b"int64", "map", b"map", "message", b"message", "repeated", b"repeated", "sfixed32", b"sfixed32", "sfixed64", b"sfixed64", "sint32", b"sint32", "sint64", b"sint64", "string", b"string", "timestamp", b"timestamp", "type", b"type", "uint32", b"uint32", "uint64", b"uint64"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["type", b"type"]) -> typing_extensions.Literal["float", "double", "int32", "int64", "uint32", "uint64", "sint32", "sint64", "fixed32", "fixed64", "sfixed32", "sfixed64", "bool", "string", "bytes", "enum", "repeated", "map", "any", "duration", "timestamp"] | None: ...

global___FieldRules = FieldRules

class FloatRules(google.protobuf.message.Message):
    """FloatRules describes the constraints applied to `float` values"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONST_FIELD_NUMBER: builtins.int
    LT_FIELD_NUMBER: builtins.int
    LTE_FIELD_NUMBER: builtins.int
    GT_FIELD_NUMBER: builtins.int
    GTE_FIELD_NUMBER: builtins.int
    IN_FIELD_NUMBER: builtins.int
    NOT_IN_FIELD_NUMBER: builtins.int
    IGNORE_EMPTY_FIELD_NUMBER: builtins.int
    const: builtins.float
    """Const specifies that this field must be exactly the specified value"""
    lt: builtins.float
    """Lt specifies that this field must be less than the specified value,
    exclusive
    """
    lte: builtins.float
    """Lte specifies that this field must be less than or equal to the
    specified value, inclusive
    """
    gt: builtins.float
    """Gt specifies that this field must be greater than the specified value,
    exclusive. If the value of Gt is larger than a specified Lt or Lte, the
    range is reversed.
    """
    gte: builtins.float
    """Gte specifies that this field must be greater than or equal to the
    specified value, inclusive. If the value of Gte is larger than a
    specified Lt or Lte, the range is reversed.
    """
    @property
    def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]:
        """NotIn specifies that this field cannot be equal to one of the specified
        values
        """
    ignore_empty: builtins.bool
    """IgnoreEmpty specifies that the validation rules of this field should be
    evaluated only if the field is not empty
    """
    def __init__(
        self,
        *,
        const: builtins.float | None = ...,
        lt: builtins.float | None = ...,
        lte: builtins.float | None = ...,
        gt: builtins.float | None = ...,
        gte: builtins.float | None = ...,
        not_in: collections.abc.Iterable[builtins.float] | None = ...,
        ignore_empty: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "ignore_empty", b"ignore_empty", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "ignore_empty", b"ignore_empty", "in", b"in", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ...

global___FloatRules = FloatRules

class DoubleRules(google.protobuf.message.Message):
    """DoubleRules describes the constraints applied to `double` values"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONST_FIELD_NUMBER: builtins.int
    LT_FIELD_NUMBER: builtins.int
    LTE_FIELD_NUMBER: builtins.int
    GT_FIELD_NUMBER: builtins.int
    GTE_FIELD_NUMBER: builtins.int
    IN_FIELD_NUMBER: builtins.int
    NOT_IN_FIELD_NUMBER: builtins.int
    IGNORE_EMPTY_FIELD_NUMBER: builtins.int
    const: builtins.float
    """Const specifies that this field must be exactly the specified value"""
    lt: builtins.float
    """Lt specifies that this field must be less than the specified value,
    exclusive
    """
    lte: builtins.float
    """Lte specifies that this field must be less than or equal to the
    specified value, inclusive
    """
    gt: builtins.float
    """Gt specifies that this field must be greater than the specified value,
    exclusive. If the value of Gt is larger than a specified Lt or Lte, the
    range is reversed.
    """
    gte: builtins.float
    """Gte specifies that this field must be greater than or equal to the
    specified value, inclusive. If the value of Gte is larger than a
    specified Lt or Lte, the range is reversed.
    """
    @property
    def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]:
        """NotIn specifies that this field cannot be equal to one of the specified
        values
        """
    ignore_empty: builtins.bool
    """IgnoreEmpty specifies that the validation rules of this field should be
    evaluated only if the field is not empty
    """
    def __init__(
        self,
        *,
        const: builtins.float | None = ...,
        lt: builtins.float | None = ...,
        lte: builtins.float | None = ...,
        gt: builtins.float | None = ...,
        gte: builtins.float | None = ...,
        not_in: collections.abc.Iterable[builtins.float] | None = ...,
        ignore_empty: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "ignore_empty", b"ignore_empty", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "ignore_empty", b"ignore_empty", "in", b"in", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ...

global___DoubleRules = DoubleRules

class Int32Rules(google.protobuf.message.Message):
    """Int32Rules describes the constraints applied to `int32` values"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONST_FIELD_NUMBER: builtins.int
    LT_FIELD_NUMBER: builtins.int
    LTE_FIELD_NUMBER: builtins.int
    GT_FIELD_NUMBER: builtins.int
    GTE_FIELD_NUMBER: builtins.int
    IN_FIELD_NUMBER: builtins.int
    NOT_IN_FIELD_NUMBER: builtins.int
    IGNORE_EMPTY_FIELD_NUMBER: builtins.int
    const: builtins.int
    """Const specifies that this field must be exactly the specified value"""
    lt: builtins.int
    """Lt specifies that this field must be less than the specified value,
    exclusive
    """
    lte: builtins.int
    """Lte specifies that this field must be less than or equal to the
    specified value, inclusive
    """
    gt: builtins.int
    """Gt specifies that this field must be greater than the specified value,
    exclusive. If the value of Gt is larger than a specified Lt or Lte, the
    range is reversed.
    """
    gte: builtins.int
    """Gte specifies that this field must be greater than or equal to the
    specified value, inclusive. If the value of Gte is larger than a
    specified Lt or Lte, the range is reversed.
    """
    @property
    def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
        """NotIn specifies that this field cannot be equal to one of the specified
        values
        """
    ignore_empty: builtins.bool
    """IgnoreEmpty specifies that the validation rules of this field should be
    evaluated only if the field is not empty
    """
    def __init__(
        self,
        *,
        const: builtins.int | None = ...,
        lt: builtins.int | None = ...,
        lte: builtins.int | None = ...,
        gt: builtins.int | None = ...,
        gte: builtins.int | None = ...,
        not_in: collections.abc.Iterable[builtins.int] | None = ...,
        ignore_empty: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "ignore_empty", b"ignore_empty", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "ignore_empty", b"ignore_empty", "in", b"in", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ...

global___Int32Rules = Int32Rules

class Int64Rules(google.protobuf.message.Message):
    """Int64Rules describes the constraints applied to `int64` values"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONST_FIELD_NUMBER: builtins.int
    LT_FIELD_NUMBER: builtins.int
    LTE_FIELD_NUMBER: builtins.int
    GT_FIELD_NUMBER: builtins.int
    GTE_FIELD_NUMBER: builtins.int
    IN_FIELD_NUMBER: builtins.int
    NOT_IN_FIELD_NUMBER: builtins.int
    IGNORE_EMPTY_FIELD_NUMBER: builtins.int
    const: builtins.int
    """Const specifies that this field must be exactly the specified value"""
    lt: builtins.int
    """Lt specifies that this field must be less than the specified value,
    exclusive
    """
    lte: builtins.int
    """Lte specifies that this field must be less than or equal to the
    specified value, inclusive
    """
    gt: builtins.int
    """Gt specifies that this field must be greater than the specified value,
    exclusive. If the value of Gt is larger than a specified Lt or Lte, the
    range is reversed.
    """
    gte: builtins.int
    """Gte specifies that this field must be greater than or equal to the
    specified value, inclusive. If the value of Gte is larger than a
    specified Lt or Lte, the range is reversed.
    """
    @property
    def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
        """NotIn specifies that this field cannot be equal to one of the specified
        values
        """
    ignore_empty: builtins.bool
    """IgnoreEmpty specifies that the validation rules of this field should be
    evaluated only if the field is not empty
    """
    def __init__(
        self,
        *,
        const: builtins.int | None = ...,
        lt: builtins.int | None = ...,
        lte: builtins.int | None = ...,
        gt: builtins.int | None = ...,
        gte: builtins.int | None = ...,
        not_in: collections.abc.Iterable[builtins.int] | None = ...,
        ignore_empty: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "ignore_empty", b"ignore_empty", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "ignore_empty", b"ignore_empty", "in", b"in", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ...

global___Int64Rules = Int64Rules

class UInt32Rules(google.protobuf.message.Message):
    """UInt32Rules describes the constraints applied to `uint32` values"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONST_FIELD_NUMBER: builtins.int
    LT_FIELD_NUMBER: builtins.int
    LTE_FIELD_NUMBER: builtins.int
    GT_FIELD_NUMBER: builtins.int
    GTE_FIELD_NUMBER: builtins.int
    IN_FIELD_NUMBER: builtins.int
    NOT_IN_FIELD_NUMBER: builtins.int
    IGNORE_EMPTY_FIELD_NUMBER: builtins.int
    const: builtins.int
    """Const specifies that this field must be exactly the specified value"""
    lt: builtins.int
    """Lt specifies that this field must be less than the specified value,
    exclusive
    """
    lte: builtins.int
    """Lte specifies that this field must be less than or equal to the
    specified value, inclusive
    """
    gt: builtins.int
    """Gt specifies that this field must be greater than the specified value,
    exclusive. If the value of Gt is larger than a specified Lt or Lte, the
    range is reversed.
    """
    gte: builtins.int
    """Gte specifies that this field must be greater than or equal to the
    specified value, inclusive. If the value of Gte is larger than a
    specified Lt or Lte, the range is reversed.
    """
    @property
    def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
        """NotIn specifies that this field cannot be equal to one of the specified
        values
        """
    ignore_empty: builtins.bool
    """IgnoreEmpty specifies that the validation rules of this field should be
    evaluated only if the field is not empty
    """
    def __init__(
        self,
        *,
        const: builtins.int | None = ...,
        lt: builtins.int | None = ...,
        lte: builtins.int | None = ...,
        gt: builtins.int | None = ...,
        gte: builtins.int | None = ...,
        not_in: collections.abc.Iterable[builtins.int] | None = ...,
        ignore_empty: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "ignore_empty", b"ignore_empty", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "ignore_empty", b"ignore_empty", "in", b"in", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ...

global___UInt32Rules = UInt32Rules

class UInt64Rules(google.protobuf.message.Message):
    """UInt64Rules describes the constraints applied to `uint64` values"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONST_FIELD_NUMBER: builtins.int
    LT_FIELD_NUMBER: builtins.int
    LTE_FIELD_NUMBER: builtins.int
    GT_FIELD_NUMBER: builtins.int
    GTE_FIELD_NUMBER: builtins.int
    IN_FIELD_NUMBER: builtins.int
    NOT_IN_FIELD_NUMBER: builtins.int
    IGNORE_EMPTY_FIELD_NUMBER: builtins.int
    const: builtins.int
    """Const specifies that this field must be exactly the specified value"""
    lt: builtins.int
    """Lt specifies that this field must be less than the specified value,
    exclusive
    """
    lte: builtins.int
    """Lte specifies that this field must be less than or equal to the
    specified value, inclusive
    """
    gt: builtins.int
    """Gt specifies that this field must be greater than the specified value,
    exclusive. If the value of Gt is larger than a specified Lt or Lte, the
    range is reversed.
    """
    gte: builtins.int
    """Gte specifies that this field must be greater than or equal to the
    specified value, inclusive. If the value of Gte is larger than a
    specified Lt or Lte, the range is reversed.
    """
    @property
    def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
        """NotIn specifies that this field cannot be equal to one of the specified
        values
        """
    ignore_empty: builtins.bool
    """IgnoreEmpty specifies that the validation rules of this field should be
    evaluated only if the field is not empty
    """
    def __init__(
        self,
        *,
        const: builtins.int | None = ...,
        lt: builtins.int | None = ...,
        lte: builtins.int | None = ...,
        gt: builtins.int | None = ...,
        gte: builtins.int | None = ...,
        not_in: collections.abc.Iterable[builtins.int] | None = ...,
        ignore_empty: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "ignore_empty", b"ignore_empty", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "ignore_empty", b"ignore_empty", "in", b"in", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ...

global___UInt64Rules = UInt64Rules

class SInt32Rules(google.protobuf.message.Message):
    """SInt32Rules describes the constraints applied to `sint32` values"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONST_FIELD_NUMBER: builtins.int
    LT_FIELD_NUMBER: builtins.int
    LTE_FIELD_NUMBER: builtins.int
    GT_FIELD_NUMBER: builtins.int
    GTE_FIELD_NUMBER: builtins.int
    IN_FIELD_NUMBER: builtins.int
    NOT_IN_FIELD_NUMBER: builtins.int
    IGNORE_EMPTY_FIELD_NUMBER: builtins.int
    const: builtins.int
    """Const specifies that this field must be exactly the specified value"""
    lt: builtins.int
    """Lt specifies that this field must be less than the specified value,
    exclusive
    """
    lte: builtins.int
    """Lte specifies that this field must be less than or equal to the
    specified value, inclusive
    """
    gt: builtins.int
    """Gt specifies that this field must be greater than the specified value,
    exclusive. If the value of Gt is larger than a specified Lt or Lte, the
    range is reversed.
    """
    gte: builtins.int
    """Gte specifies that this field must be greater than or equal to the
    specified value, inclusive. If the value of Gte is larger than a
    specified Lt or Lte, the range is reversed.
    """
    @property
    def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
        """NotIn specifies that this field cannot be equal to one of the specified
        values
        """
    ignore_empty: builtins.bool
    """IgnoreEmpty specifies that the validation rules of this field should be
    evaluated only if the field is not empty
    """
    def __init__(
        self,
        *,
        const: builtins.int | None = ...,
        lt: builtins.int | None = ...,
        lte: builtins.int | None = ...,
        gt: builtins.int | None = ...,
        gte: builtins.int | None = ...,
        not_in: collections.abc.Iterable[builtins.int] | None = ...,
        ignore_empty: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "ignore_empty", b"ignore_empty", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "ignore_empty", b"ignore_empty", "in", b"in", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ...

global___SInt32Rules = SInt32Rules

class SInt64Rules(google.protobuf.message.Message):
    """SInt64Rules describes the constraints applied to `sint64` values"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONST_FIELD_NUMBER: builtins.int
    LT_FIELD_NUMBER: builtins.int
    LTE_FIELD_NUMBER: builtins.int
    GT_FIELD_NUMBER: builtins.int
    GTE_FIELD_NUMBER: builtins.int
    IN_FIELD_NUMBER: builtins.int
    NOT_IN_FIELD_NUMBER: builtins.int
    IGNORE_EMPTY_FIELD_NUMBER: builtins.int
    const: builtins.int
    """Const specifies that this field must be exactly the specified value"""
    lt: builtins.int
    """Lt specifies that this field must be less than the specified value,
    exclusive
    """
    lte: builtins.int
    """Lte specifies that this field must be less than or equal to the
    specified value, inclusive
    """
    gt: builtins.int
    """Gt specifies that this field must be greater than the specified value,
    exclusive. If the value of Gt is larger than a specified Lt or Lte, the
    range is reversed.
    """
    gte: builtins.int
    """Gte specifies that this field must be greater than or equal to the
    specified value, inclusive. If the value of Gte is larger than a
    specified Lt or Lte, the range is reversed.
    """
    @property
    def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
        """NotIn specifies that this field cannot be equal to one of the specified
        values
        """
    ignore_empty: builtins.bool
    """IgnoreEmpty specifies that the validation rules of this field should be
    evaluated only if the field is not empty
    """
    def __init__(
        self,
        *,
        const: builtins.int | None = ...,
        lt: builtins.int | None = ...,
        lte: builtins.int | None = ...,
        gt: builtins.int | None = ...,
        gte: builtins.int | None = ...,
        not_in: collections.abc.Iterable[builtins.int] | None = ...,
        ignore_empty: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "ignore_empty", b"ignore_empty", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "ignore_empty", b"ignore_empty", "in", b"in", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ...

global___SInt64Rules = SInt64Rules

class Fixed32Rules(google.protobuf.message.Message):
    """Fixed32Rules describes the constraints applied to `fixed32` values"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONST_FIELD_NUMBER: builtins.int
    LT_FIELD_NUMBER: builtins.int
    LTE_FIELD_NUMBER: builtins.int
    GT_FIELD_NUMBER: builtins.int
    GTE_FIELD_NUMBER: builtins.int
    IN_FIELD_NUMBER: builtins.int
    NOT_IN_FIELD_NUMBER: builtins.int
    IGNORE_EMPTY_FIELD_NUMBER: builtins.int
    const: builtins.int
    """Const specifies that this field must be exactly the specified value"""
    lt: builtins.int
    """Lt specifies that this field must be less than the specified value,
    exclusive
    """
    lte: builtins.int
    """Lte specifies that this field must be less than or equal to the
    specified value, inclusive
    """
    gt: builtins.int
    """Gt specifies that this field must be greater than the specified value,
    exclusive. If the value of Gt is larger than a specified Lt or Lte, the
    range is reversed.
    """
    gte: builtins.int
    """Gte specifies that this field must be greater than or equal to the
    specified value, inclusive. If the value of Gte is larger than a
    specified Lt or Lte, the range is reversed.
    """
    @property
    def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
        """NotIn specifies that this field cannot be equal to one of the specified
        values
        """
    ignore_empty: builtins.bool
    """IgnoreEmpty specifies that the validation rules of this field should be
    evaluated only if the field is not empty
    """
    def __init__(
        self,
        *,
        const: builtins.int | None = ...,
        lt: builtins.int | None = ...,
        lte: builtins.int | None = ...,
        gt: builtins.int | None = ...,
        gte: builtins.int | None = ...,
        not_in: collections.abc.Iterable[builtins.int] | None = ...,
        ignore_empty: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "ignore_empty", b"ignore_empty", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "ignore_empty", b"ignore_empty", "in", b"in", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ...

global___Fixed32Rules = Fixed32Rules

class Fixed64Rules(google.protobuf.message.Message):
    """Fixed64Rules describes the constraints applied to `fixed64` values"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONST_FIELD_NUMBER: builtins.int
    LT_FIELD_NUMBER: builtins.int
    LTE_FIELD_NUMBER: builtins.int
    GT_FIELD_NUMBER: builtins.int
    GTE_FIELD_NUMBER: builtins.int
    IN_FIELD_NUMBER: builtins.int
    NOT_IN_FIELD_NUMBER: builtins.int
    IGNORE_EMPTY_FIELD_NUMBER: builtins.int
    const: builtins.int
    """Const specifies that this field must be exactly the specified value"""
    lt: builtins.int
    """Lt specifies that this field must be less than the specified value,
    exclusive
    """
    lte: builtins.int
    """Lte specifies that this field must be less than or equal to the
    specified value, inclusive
    """
    gt: builtins.int
    """Gt specifies that this field must be greater than the specified value,
    exclusive. If the value of Gt is larger than a specified Lt or Lte, the
    range is reversed.
    """
    gte: builtins.int
    """Gte specifies that this field must be greater than or equal to the
    specified value, inclusive. If the value of Gte is larger than a
    specified Lt or Lte, the range is reversed.
    """
    @property
    def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
        """NotIn specifies that this field cannot be equal to one of the specified
        values
        """
    ignore_empty: builtins.bool
    """IgnoreEmpty specifies that the validation rules of this field should be
    evaluated only if the field is not empty
    """
    def __init__(
        self,
        *,
        const: builtins.int | None = ...,
        lt: builtins.int | None = ...,
        lte: builtins.int | None = ...,
        gt: builtins.int | None = ...,
        gte: builtins.int | None = ...,
        not_in: collections.abc.Iterable[builtins.int] | None = ...,
        ignore_empty: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "ignore_empty", b"ignore_empty", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "ignore_empty", b"ignore_empty", "in", b"in", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ...

global___Fixed64Rules = Fixed64Rules

class SFixed32Rules(google.protobuf.message.Message):
    """SFixed32Rules describes the constraints applied to `sfixed32` values"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONST_FIELD_NUMBER: builtins.int
    LT_FIELD_NUMBER: builtins.int
    LTE_FIELD_NUMBER: builtins.int
    GT_FIELD_NUMBER: builtins.int
    GTE_FIELD_NUMBER: builtins.int
    IN_FIELD_NUMBER: builtins.int
    NOT_IN_FIELD_NUMBER: builtins.int
    IGNORE_EMPTY_FIELD_NUMBER: builtins.int
    const: builtins.int
    """Const specifies that this field must be exactly the specified value"""
    lt: builtins.int
    """Lt specifies that this field must be less than the specified value,
    exclusive
    """
    lte: builtins.int
    """Lte specifies that this field must be less than or equal to the
    specified value, inclusive
    """
    gt: builtins.int
    """Gt specifies that this field must be greater than the specified value,
    exclusive. If the value of Gt is larger than a specified Lt or Lte, the
    range is reversed.
    """
    gte: builtins.int
    """Gte specifies that this field must be greater than or equal to the
    specified value, inclusive. If the value of Gte is larger than a
    specified Lt or Lte, the range is reversed.
    """
    @property
    def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
        """NotIn specifies that this field cannot be equal to one of the specified
        values
        """
    ignore_empty: builtins.bool
    """IgnoreEmpty specifies that the validation rules of this field should be
    evaluated only if the field is not empty
    """
    def __init__(
        self,
        *,
        const: builtins.int | None = ...,
        lt: builtins.int | None = ...,
        lte: builtins.int | None = ...,
        gt: builtins.int | None = ...,
        gte: builtins.int | None = ...,
        not_in: collections.abc.Iterable[builtins.int] | None = ...,
        ignore_empty: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "ignore_empty", b"ignore_empty", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "ignore_empty", b"ignore_empty", "in", b"in", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ...

global___SFixed32Rules = SFixed32Rules

class SFixed64Rules(google.protobuf.message.Message):
    """SFixed64Rules describes the constraints applied to `sfixed64` values"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONST_FIELD_NUMBER: builtins.int
    LT_FIELD_NUMBER: builtins.int
    LTE_FIELD_NUMBER: builtins.int
    GT_FIELD_NUMBER: builtins.int
    GTE_FIELD_NUMBER: builtins.int
    IN_FIELD_NUMBER: builtins.int
    NOT_IN_FIELD_NUMBER: builtins.int
    IGNORE_EMPTY_FIELD_NUMBER: builtins.int
    const: builtins.int
    """Const specifies that this field must be exactly the specified value"""
    lt: builtins.int
    """Lt specifies that this field must be less than the specified value,
    exclusive
    """
    lte: builtins.int
    """Lte specifies that this field must be less than or equal to the
    specified value, inclusive
    """
    gt: builtins.int
    """Gt specifies that this field must be greater than the specified value,
    exclusive. If the value of Gt is larger than a specified Lt or Lte, the
    range is reversed.
    """
    gte: builtins.int
    """Gte specifies that this field must be greater than or equal to the
    specified value, inclusive. If the value of Gte is larger than a
    specified Lt or Lte, the range is reversed.
    """
    @property
    def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
        """NotIn specifies that this field cannot be equal to one of the specified
        values
        """
    ignore_empty: builtins.bool
    """IgnoreEmpty specifies that the validation rules of this field should be
    evaluated only if the field is not empty
    """
    def __init__(
        self,
        *,
        const: builtins.int | None = ...,
        lt: builtins.int | None = ...,
        lte: builtins.int | None = ...,
        gt: builtins.int | None = ...,
        gte: builtins.int | None = ...,
        not_in: collections.abc.Iterable[builtins.int] | None = ...,
        ignore_empty: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "ignore_empty", b"ignore_empty", "lt", b"lt", "lte", b"lte"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "ignore_empty", b"ignore_empty", "in", b"in", "lt", b"lt", "lte", b"lte", "not_in", b"not_in"]) -> None: ...

global___SFixed64Rules = SFixed64Rules

class BoolRules(google.protobuf.message.Message):
    """BoolRules describes the constraints applied to `bool` values"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONST_FIELD_NUMBER: builtins.int
    const: builtins.bool
    """Const specifies that this field must be exactly the specified value"""
    def __init__(
        self,
        *,
        const: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["const", b"const"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["const", b"const"]) -> None: ...

global___BoolRules = BoolRules

class StringRules(google.protobuf.message.Message):
    """StringRules describe the constraints applied to `string` values"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONST_FIELD_NUMBER: builtins.int
    LEN_FIELD_NUMBER: builtins.int
    MIN_LEN_FIELD_NUMBER: builtins.int
    MAX_LEN_FIELD_NUMBER: builtins.int
    LEN_BYTES_FIELD_NUMBER: builtins.int
    MIN_BYTES_FIELD_NUMBER: builtins.int
    MAX_BYTES_FIELD_NUMBER: builtins.int
    PATTERN_FIELD_NUMBER: builtins.int
    PREFIX_FIELD_NUMBER: builtins.int
    SUFFIX_FIELD_NUMBER: builtins.int
    CONTAINS_FIELD_NUMBER: builtins.int
    NOT_CONTAINS_FIELD_NUMBER: builtins.int
    IN_FIELD_NUMBER: builtins.int
    NOT_IN_FIELD_NUMBER: builtins.int
    EMAIL_FIELD_NUMBER: builtins.int
    HOSTNAME_FIELD_NUMBER: builtins.int
    IP_FIELD_NUMBER: builtins.int
    IPV4_FIELD_NUMBER: builtins.int
    IPV6_FIELD_NUMBER: builtins.int
    URI_FIELD_NUMBER: builtins.int
    URI_REF_FIELD_NUMBER: builtins.int
    ADDRESS_FIELD_NUMBER: builtins.int
    UUID_FIELD_NUMBER: builtins.int
    WELL_KNOWN_REGEX_FIELD_NUMBER: builtins.int
    STRICT_FIELD_NUMBER: builtins.int
    IGNORE_EMPTY_FIELD_NUMBER: builtins.int
    const: builtins.str
    """Const specifies that this field must be exactly the specified value"""
    len: builtins.int
    """Len specifies that this field must be the specified number of
    characters (Unicode code points). Note that the number of
    characters may differ from the number of bytes in the string.
    """
    min_len: builtins.int
    """MinLen specifies that this field must be the specified number of
    characters (Unicode code points) at a minimum. Note that the number of
    characters may differ from the number of bytes in the string.
    """
    max_len: builtins.int
    """MaxLen specifies that this field must be the specified number of
    characters (Unicode code points) at a maximum. Note that the number of
    characters may differ from the number of bytes in the string.
    """
    len_bytes: builtins.int
    """LenBytes specifies that this field must be the specified number of bytes"""
    min_bytes: builtins.int
    """MinBytes specifies that this field must be the specified number of bytes
    at a minimum
    """
    max_bytes: builtins.int
    """MaxBytes specifies that this field must be the specified number of bytes
    at a maximum
    """
    pattern: builtins.str
    """Pattern specifes that this field must match against the specified
    regular expression (RE2 syntax). The included expression should elide
    any delimiters.
    """
    prefix: builtins.str
    """Prefix specifies that this field must have the specified substring at
    the beginning of the string.
    """
    suffix: builtins.str
    """Suffix specifies that this field must have the specified substring at
    the end of the string.
    """
    contains: builtins.str
    """Contains specifies that this field must have the specified substring
    anywhere in the string.
    """
    not_contains: builtins.str
    """NotContains specifies that this field cannot have the specified substring
    anywhere in the string.
    """
    @property
    def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """NotIn specifies that this field cannot be equal to one of the specified
        values
        """
    email: builtins.bool
    """Email specifies that the field must be a valid email address as
    defined by RFC 5322
    """
    hostname: builtins.bool
    """Hostname specifies that the field must be a valid hostname as
    defined by RFC 1034. This constraint does not support
    internationalized domain names (IDNs).
    """
    ip: builtins.bool
    """Ip specifies that the field must be a valid IP (v4 or v6) address.
    Valid IPv6 addresses should not include surrounding square brackets.
    """
    ipv4: builtins.bool
    """Ipv4 specifies that the field must be a valid IPv4 address."""
    ipv6: builtins.bool
    """Ipv6 specifies that the field must be a valid IPv6 address. Valid
    IPv6 addresses should not include surrounding square brackets.
    """
    uri: builtins.bool
    """Uri specifies that the field must be a valid, absolute URI as defined
    by RFC 3986
    """
    uri_ref: builtins.bool
    """UriRef specifies that the field must be a valid URI as defined by RFC
    3986 and may be relative or absolute.
    """
    address: builtins.bool
    """Address specifies that the field must be either a valid hostname as
    defined by RFC 1034 (which does not support internationalized domain
    names or IDNs), or it can be a valid IP (v4 or v6).
    """
    uuid: builtins.bool
    """Uuid specifies that the field must be a valid UUID as defined by
    RFC 4122
    """
    well_known_regex: global___KnownRegex.ValueType
    """WellKnownRegex specifies a common well known pattern defined as a regex."""
    strict: builtins.bool
    """This applies to regexes HTTP_HEADER_NAME and HTTP_HEADER_VALUE to enable
    strict header validation.
    By default, this is true, and HTTP header validations are RFC-compliant.
    Setting to false will enable a looser validations that only disallows
    \\r\\n\\0 characters, which can be used to bypass header matching rules.
    """
    ignore_empty: builtins.bool
    """IgnoreEmpty specifies that the validation rules of this field should be
    evaluated only if the field is not empty
    """
    def __init__(
        self,
        *,
        const: builtins.str | None = ...,
        len: builtins.int | None = ...,
        min_len: builtins.int | None = ...,
        max_len: builtins.int | None = ...,
        len_bytes: builtins.int | None = ...,
        min_bytes: builtins.int | None = ...,
        max_bytes: builtins.int | None = ...,
        pattern: builtins.str | None = ...,
        prefix: builtins.str | None = ...,
        suffix: builtins.str | None = ...,
        contains: builtins.str | None = ...,
        not_contains: builtins.str | None = ...,
        not_in: collections.abc.Iterable[builtins.str] | None = ...,
        email: builtins.bool | None = ...,
        hostname: builtins.bool | None = ...,
        ip: builtins.bool | None = ...,
        ipv4: builtins.bool | None = ...,
        ipv6: builtins.bool | None = ...,
        uri: builtins.bool | None = ...,
        uri_ref: builtins.bool | None = ...,
        address: builtins.bool | None = ...,
        uuid: builtins.bool | None = ...,
        well_known_regex: global___KnownRegex.ValueType | None = ...,
        strict: builtins.bool | None = ...,
        ignore_empty: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["address", b"address", "const", b"const", "contains", b"contains", "email", b"email", "hostname", b"hostname", "ignore_empty", b"ignore_empty", "ip", b"ip", "ipv4", b"ipv4", "ipv6", b"ipv6", "len", b"len", "len_bytes", b"len_bytes", "max_bytes", b"max_bytes", "max_len", b"max_len", "min_bytes", b"min_bytes", "min_len", b"min_len", "not_contains", b"not_contains", "pattern", b"pattern", "prefix", b"prefix", "strict", b"strict", "suffix", b"suffix", "uri", b"uri", "uri_ref", b"uri_ref", "uuid", b"uuid", "well_known", b"well_known", "well_known_regex", b"well_known_regex"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["address", b"address", "const", b"const", "contains", b"contains", "email", b"email", "hostname", b"hostname", "ignore_empty", b"ignore_empty", "in", b"in", "ip", b"ip", "ipv4", b"ipv4", "ipv6", b"ipv6", "len", b"len", "len_bytes", b"len_bytes", "max_bytes", b"max_bytes", "max_len", b"max_len", "min_bytes", b"min_bytes", "min_len", b"min_len", "not_contains", b"not_contains", "not_in", b"not_in", "pattern", b"pattern", "prefix", b"prefix", "strict", b"strict", "suffix", b"suffix", "uri", b"uri", "uri_ref", b"uri_ref", "uuid", b"uuid", "well_known", b"well_known", "well_known_regex", b"well_known_regex"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["well_known", b"well_known"]) -> typing_extensions.Literal["email", "hostname", "ip", "ipv4", "ipv6", "uri", "uri_ref", "address", "uuid", "well_known_regex"] | None: ...

global___StringRules = StringRules

class BytesRules(google.protobuf.message.Message):
    """BytesRules describe the constraints applied to `bytes` values"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONST_FIELD_NUMBER: builtins.int
    LEN_FIELD_NUMBER: builtins.int
    MIN_LEN_FIELD_NUMBER: builtins.int
    MAX_LEN_FIELD_NUMBER: builtins.int
    PATTERN_FIELD_NUMBER: builtins.int
    PREFIX_FIELD_NUMBER: builtins.int
    SUFFIX_FIELD_NUMBER: builtins.int
    CONTAINS_FIELD_NUMBER: builtins.int
    IN_FIELD_NUMBER: builtins.int
    NOT_IN_FIELD_NUMBER: builtins.int
    IP_FIELD_NUMBER: builtins.int
    IPV4_FIELD_NUMBER: builtins.int
    IPV6_FIELD_NUMBER: builtins.int
    IGNORE_EMPTY_FIELD_NUMBER: builtins.int
    const: builtins.bytes
    """Const specifies that this field must be exactly the specified value"""
    len: builtins.int
    """Len specifies that this field must be the specified number of bytes"""
    min_len: builtins.int
    """MinLen specifies that this field must be the specified number of bytes
    at a minimum
    """
    max_len: builtins.int
    """MaxLen specifies that this field must be the specified number of bytes
    at a maximum
    """
    pattern: builtins.str
    """Pattern specifes that this field must match against the specified
    regular expression (RE2 syntax). The included expression should elide
    any delimiters.
    """
    prefix: builtins.bytes
    """Prefix specifies that this field must have the specified bytes at the
    beginning of the string.
    """
    suffix: builtins.bytes
    """Suffix specifies that this field must have the specified bytes at the
    end of the string.
    """
    contains: builtins.bytes
    """Contains specifies that this field must have the specified bytes
    anywhere in the string.
    """
    @property
    def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]:
        """NotIn specifies that this field cannot be equal to one of the specified
        values
        """
    ip: builtins.bool
    """Ip specifies that the field must be a valid IP (v4 or v6) address in
    byte format
    """
    ipv4: builtins.bool
    """Ipv4 specifies that the field must be a valid IPv4 address in byte
    format
    """
    ipv6: builtins.bool
    """Ipv6 specifies that the field must be a valid IPv6 address in byte
    format
    """
    ignore_empty: builtins.bool
    """IgnoreEmpty specifies that the validation rules of this field should be
    evaluated only if the field is not empty
    """
    def __init__(
        self,
        *,
        const: builtins.bytes | None = ...,
        len: builtins.int | None = ...,
        min_len: builtins.int | None = ...,
        max_len: builtins.int | None = ...,
        pattern: builtins.str | None = ...,
        prefix: builtins.bytes | None = ...,
        suffix: builtins.bytes | None = ...,
        contains: builtins.bytes | None = ...,
        not_in: collections.abc.Iterable[builtins.bytes] | None = ...,
        ip: builtins.bool | None = ...,
        ipv4: builtins.bool | None = ...,
        ipv6: builtins.bool | None = ...,
        ignore_empty: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["const", b"const", "contains", b"contains", "ignore_empty", b"ignore_empty", "ip", b"ip", "ipv4", b"ipv4", "ipv6", b"ipv6", "len", b"len", "max_len", b"max_len", "min_len", b"min_len", "pattern", b"pattern", "prefix", b"prefix", "suffix", b"suffix", "well_known", b"well_known"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["const", b"const", "contains", b"contains", "ignore_empty", b"ignore_empty", "in", b"in", "ip", b"ip", "ipv4", b"ipv4", "ipv6", b"ipv6", "len", b"len", "max_len", b"max_len", "min_len", b"min_len", "not_in", b"not_in", "pattern", b"pattern", "prefix", b"prefix", "suffix", b"suffix", "well_known", b"well_known"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["well_known", b"well_known"]) -> typing_extensions.Literal["ip", "ipv4", "ipv6"] | None: ...

global___BytesRules = BytesRules

class EnumRules(google.protobuf.message.Message):
    """EnumRules describe the constraints applied to enum values"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONST_FIELD_NUMBER: builtins.int
    DEFINED_ONLY_FIELD_NUMBER: builtins.int
    IN_FIELD_NUMBER: builtins.int
    NOT_IN_FIELD_NUMBER: builtins.int
    const: builtins.int
    """Const specifies that this field must be exactly the specified value"""
    defined_only: builtins.bool
    """DefinedOnly specifies that this field must be only one of the defined
    values for this enum, failing on any undefined value.
    """
    @property
    def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]:
        """NotIn specifies that this field cannot be equal to one of the specified
        values
        """
    def __init__(
        self,
        *,
        const: builtins.int | None = ...,
        defined_only: builtins.bool | None = ...,
        not_in: collections.abc.Iterable[builtins.int] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["const", b"const", "defined_only", b"defined_only"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["const", b"const", "defined_only", b"defined_only", "in", b"in", "not_in", b"not_in"]) -> None: ...

global___EnumRules = EnumRules

class MessageRules(google.protobuf.message.Message):
    """MessageRules describe the constraints applied to embedded message values.
    For message-type fields, validation is performed recursively.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SKIP_FIELD_NUMBER: builtins.int
    REQUIRED_FIELD_NUMBER: builtins.int
    skip: builtins.bool
    """Skip specifies that the validation rules of this field should not be
    evaluated
    """
    required: builtins.bool
    """Required specifies that this field must be set"""
    def __init__(
        self,
        *,
        skip: builtins.bool | None = ...,
        required: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["required", b"required", "skip", b"skip"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["required", b"required", "skip", b"skip"]) -> None: ...

global___MessageRules = MessageRules

class RepeatedRules(google.protobuf.message.Message):
    """RepeatedRules describe the constraints applied to `repeated` values"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MIN_ITEMS_FIELD_NUMBER: builtins.int
    MAX_ITEMS_FIELD_NUMBER: builtins.int
    UNIQUE_FIELD_NUMBER: builtins.int
    ITEMS_FIELD_NUMBER: builtins.int
    IGNORE_EMPTY_FIELD_NUMBER: builtins.int
    min_items: builtins.int
    """MinItems specifies that this field must have the specified number of
    items at a minimum
    """
    max_items: builtins.int
    """MaxItems specifies that this field must have the specified number of
    items at a maximum
    """
    unique: builtins.bool
    """Unique specifies that all elements in this field must be unique. This
    contraint is only applicable to scalar and enum types (messages are not
    supported).
    """
    @property
    def items(self) -> global___FieldRules:
        """Items specifies the contraints to be applied to each item in the field.
        Repeated message fields will still execute validation against each item
        unless skip is specified here.
        """
    ignore_empty: builtins.bool
    """IgnoreEmpty specifies that the validation rules of this field should be
    evaluated only if the field is not empty
    """
    def __init__(
        self,
        *,
        min_items: builtins.int | None = ...,
        max_items: builtins.int | None = ...,
        unique: builtins.bool | None = ...,
        items: global___FieldRules | None = ...,
        ignore_empty: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["ignore_empty", b"ignore_empty", "items", b"items", "max_items", b"max_items", "min_items", b"min_items", "unique", b"unique"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["ignore_empty", b"ignore_empty", "items", b"items", "max_items", b"max_items", "min_items", b"min_items", "unique", b"unique"]) -> None: ...

global___RepeatedRules = RepeatedRules

class MapRules(google.protobuf.message.Message):
    """MapRules describe the constraints applied to `map` values"""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MIN_PAIRS_FIELD_NUMBER: builtins.int
    MAX_PAIRS_FIELD_NUMBER: builtins.int
    NO_SPARSE_FIELD_NUMBER: builtins.int
    KEYS_FIELD_NUMBER: builtins.int
    VALUES_FIELD_NUMBER: builtins.int
    IGNORE_EMPTY_FIELD_NUMBER: builtins.int
    min_pairs: builtins.int
    """MinPairs specifies that this field must have the specified number of
    KVs at a minimum
    """
    max_pairs: builtins.int
    """MaxPairs specifies that this field must have the specified number of
    KVs at a maximum
    """
    no_sparse: builtins.bool
    """NoSparse specifies values in this field cannot be unset. This only
    applies to map's with message value types.
    """
    @property
    def keys(self) -> global___FieldRules:
        """Keys specifies the constraints to be applied to each key in the field."""
    @property
    def values(self) -> global___FieldRules:
        """Values specifies the constraints to be applied to the value of each key
        in the field. Message values will still have their validations evaluated
        unless skip is specified here.
        """
    ignore_empty: builtins.bool
    """IgnoreEmpty specifies that the validation rules of this field should be
    evaluated only if the field is not empty
    """
    def __init__(
        self,
        *,
        min_pairs: builtins.int | None = ...,
        max_pairs: builtins.int | None = ...,
        no_sparse: builtins.bool | None = ...,
        keys: global___FieldRules | None = ...,
        values: global___FieldRules | None = ...,
        ignore_empty: builtins.bool | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["ignore_empty", b"ignore_empty", "keys", b"keys", "max_pairs", b"max_pairs", "min_pairs", b"min_pairs", "no_sparse", b"no_sparse", "values", b"values"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["ignore_empty", b"ignore_empty", "keys", b"keys", "max_pairs", b"max_pairs", "min_pairs", b"min_pairs", "no_sparse", b"no_sparse", "values", b"values"]) -> None: ...

global___MapRules = MapRules

class AnyRules(google.protobuf.message.Message):
    """AnyRules describe constraints applied exclusively to the
    `google.protobuf.Any` well-known type
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    REQUIRED_FIELD_NUMBER: builtins.int
    IN_FIELD_NUMBER: builtins.int
    NOT_IN_FIELD_NUMBER: builtins.int
    required: builtins.bool
    """Required specifies that this field must be set"""
    @property
    def not_in(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """NotIn specifies that this field's `type_url` must not be equal to any of
        the specified values.
        """
    def __init__(
        self,
        *,
        required: builtins.bool | None = ...,
        not_in: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["required", b"required"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["in", b"in", "not_in", b"not_in", "required", b"required"]) -> None: ...

global___AnyRules = AnyRules

class DurationRules(google.protobuf.message.Message):
    """DurationRules describe the constraints applied exclusively to the
    `google.protobuf.Duration` well-known type
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    REQUIRED_FIELD_NUMBER: builtins.int
    CONST_FIELD_NUMBER: builtins.int
    LT_FIELD_NUMBER: builtins.int
    LTE_FIELD_NUMBER: builtins.int
    GT_FIELD_NUMBER: builtins.int
    GTE_FIELD_NUMBER: builtins.int
    IN_FIELD_NUMBER: builtins.int
    NOT_IN_FIELD_NUMBER: builtins.int
    required: builtins.bool
    """Required specifies that this field must be set"""
    @property
    def const(self) -> google.protobuf.duration_pb2.Duration:
        """Const specifies that this field must be exactly the specified value"""
    @property
    def lt(self) -> google.protobuf.duration_pb2.Duration:
        """Lt specifies that this field must be less than the specified value,
        exclusive
        """
    @property
    def lte(self) -> google.protobuf.duration_pb2.Duration:
        """Lt specifies that this field must be less than the specified value,
        inclusive
        """
    @property
    def gt(self) -> google.protobuf.duration_pb2.Duration:
        """Gt specifies that this field must be greater than the specified value,
        exclusive
        """
    @property
    def gte(self) -> google.protobuf.duration_pb2.Duration:
        """Gte specifies that this field must be greater than the specified value,
        inclusive
        """
    @property
    def not_in(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.duration_pb2.Duration]:
        """NotIn specifies that this field cannot be equal to one of the specified
        values
        """
    def __init__(
        self,
        *,
        required: builtins.bool | None = ...,
        const: google.protobuf.duration_pb2.Duration | None = ...,
        lt: google.protobuf.duration_pb2.Duration | None = ...,
        lte: google.protobuf.duration_pb2.Duration | None = ...,
        gt: google.protobuf.duration_pb2.Duration | None = ...,
        gte: google.protobuf.duration_pb2.Duration | None = ...,
        not_in: collections.abc.Iterable[google.protobuf.duration_pb2.Duration] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "lt", b"lt", "lte", b"lte", "required", b"required"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gte", b"gte", "in", b"in", "lt", b"lt", "lte", b"lte", "not_in", b"not_in", "required", b"required"]) -> None: ...

global___DurationRules = DurationRules

class TimestampRules(google.protobuf.message.Message):
    """TimestampRules describe the constraints applied exclusively to the
    `google.protobuf.Timestamp` well-known type
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    REQUIRED_FIELD_NUMBER: builtins.int
    CONST_FIELD_NUMBER: builtins.int
    LT_FIELD_NUMBER: builtins.int
    LTE_FIELD_NUMBER: builtins.int
    GT_FIELD_NUMBER: builtins.int
    GTE_FIELD_NUMBER: builtins.int
    LT_NOW_FIELD_NUMBER: builtins.int
    GT_NOW_FIELD_NUMBER: builtins.int
    WITHIN_FIELD_NUMBER: builtins.int
    required: builtins.bool
    """Required specifies that this field must be set"""
    @property
    def const(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Const specifies that this field must be exactly the specified value"""
    @property
    def lt(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Lt specifies that this field must be less than the specified value,
        exclusive
        """
    @property
    def lte(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Lte specifies that this field must be less than the specified value,
        inclusive
        """
    @property
    def gt(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Gt specifies that this field must be greater than the specified value,
        exclusive
        """
    @property
    def gte(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Gte specifies that this field must be greater than the specified value,
        inclusive
        """
    lt_now: builtins.bool
    """LtNow specifies that this must be less than the current time. LtNow
    can only be used with the Within rule.
    """
    gt_now: builtins.bool
    """GtNow specifies that this must be greater than the current time. GtNow
    can only be used with the Within rule.
    """
    @property
    def within(self) -> google.protobuf.duration_pb2.Duration:
        """Within specifies that this field must be within this duration of the
        current time. This constraint can be used alone or with the LtNow and
        GtNow rules.
        """
    def __init__(
        self,
        *,
        required: builtins.bool | None = ...,
        const: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        lt: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        lte: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        gt: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        gte: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        lt_now: builtins.bool | None = ...,
        gt_now: builtins.bool | None = ...,
        within: google.protobuf.duration_pb2.Duration | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gt_now", b"gt_now", "gte", b"gte", "lt", b"lt", "lt_now", b"lt_now", "lte", b"lte", "required", b"required", "within", b"within"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["const", b"const", "gt", b"gt", "gt_now", b"gt_now", "gte", b"gte", "lt", b"lt", "lt_now", b"lt_now", "lte", b"lte", "required", b"required", "within", b"within"]) -> None: ...

global___TimestampRules = TimestampRules

DISABLED_FIELD_NUMBER: builtins.int
IGNORED_FIELD_NUMBER: builtins.int
REQUIRED_FIELD_NUMBER: builtins.int
RULES_FIELD_NUMBER: builtins.int
disabled: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, builtins.bool]
"""Disabled nullifies any validation rules for this message, including any
message fields associated with it that do support validation.
"""
ignored: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.MessageOptions, builtins.bool]
"""Ignore skips generation of validation methods for this message."""
required: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.OneofOptions, builtins.bool]
"""Required ensures that exactly one the field options in a oneof is set;
validation fails if no fields in the oneof are set.
"""
rules: google.protobuf.internal.extension_dict._ExtensionFieldDescriptor[google.protobuf.descriptor_pb2.FieldOptions, global___FieldRules]
"""Rules specify the validations to be performed on this field. By default,
no validation is performed against a field.
"""
