"""
@generated by mypy-protobuf.  Do not edit manually!
isort:skip_file

Copyright 2018 The Feast Authors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
"""
import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
import google.protobuf.internal.enum_type_wrapper
import google.protobuf.message
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 _Null:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _NullEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_Null.ValueType], builtins.type):  # noqa: F821
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    NULL: _Null.ValueType  # 0

class Null(_Null, metaclass=_NullEnumTypeWrapper): ...

NULL: Null.ValueType  # 0
global___Null = Null

class ValueType(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

    class _EnumEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[ValueType._Enum.ValueType], builtins.type):  # noqa: F821
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        INVALID: ValueType._Enum.ValueType  # 0
        BYTES: ValueType._Enum.ValueType  # 1
        STRING: ValueType._Enum.ValueType  # 2
        INT32: ValueType._Enum.ValueType  # 3
        INT64: ValueType._Enum.ValueType  # 4
        DOUBLE: ValueType._Enum.ValueType  # 5
        FLOAT: ValueType._Enum.ValueType  # 6
        BOOL: ValueType._Enum.ValueType  # 7
        UNIX_TIMESTAMP: ValueType._Enum.ValueType  # 8
        BYTES_LIST: ValueType._Enum.ValueType  # 11
        STRING_LIST: ValueType._Enum.ValueType  # 12
        INT32_LIST: ValueType._Enum.ValueType  # 13
        INT64_LIST: ValueType._Enum.ValueType  # 14
        DOUBLE_LIST: ValueType._Enum.ValueType  # 15
        FLOAT_LIST: ValueType._Enum.ValueType  # 16
        BOOL_LIST: ValueType._Enum.ValueType  # 17
        UNIX_TIMESTAMP_LIST: ValueType._Enum.ValueType  # 18
        NULL: ValueType._Enum.ValueType  # 19

    class Enum(_Enum, metaclass=_EnumEnumTypeWrapper): ...
    INVALID: ValueType.Enum.ValueType  # 0
    BYTES: ValueType.Enum.ValueType  # 1
    STRING: ValueType.Enum.ValueType  # 2
    INT32: ValueType.Enum.ValueType  # 3
    INT64: ValueType.Enum.ValueType  # 4
    DOUBLE: ValueType.Enum.ValueType  # 5
    FLOAT: ValueType.Enum.ValueType  # 6
    BOOL: ValueType.Enum.ValueType  # 7
    UNIX_TIMESTAMP: ValueType.Enum.ValueType  # 8
    BYTES_LIST: ValueType.Enum.ValueType  # 11
    STRING_LIST: ValueType.Enum.ValueType  # 12
    INT32_LIST: ValueType.Enum.ValueType  # 13
    INT64_LIST: ValueType.Enum.ValueType  # 14
    DOUBLE_LIST: ValueType.Enum.ValueType  # 15
    FLOAT_LIST: ValueType.Enum.ValueType  # 16
    BOOL_LIST: ValueType.Enum.ValueType  # 17
    UNIX_TIMESTAMP_LIST: ValueType.Enum.ValueType  # 18
    NULL: ValueType.Enum.ValueType  # 19

    def __init__(
        self,
    ) -> None: ...

global___ValueType = ValueType

class Value(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    BYTES_VAL_FIELD_NUMBER: builtins.int
    STRING_VAL_FIELD_NUMBER: builtins.int
    INT32_VAL_FIELD_NUMBER: builtins.int
    INT64_VAL_FIELD_NUMBER: builtins.int
    DOUBLE_VAL_FIELD_NUMBER: builtins.int
    FLOAT_VAL_FIELD_NUMBER: builtins.int
    BOOL_VAL_FIELD_NUMBER: builtins.int
    UNIX_TIMESTAMP_VAL_FIELD_NUMBER: builtins.int
    BYTES_LIST_VAL_FIELD_NUMBER: builtins.int
    STRING_LIST_VAL_FIELD_NUMBER: builtins.int
    INT32_LIST_VAL_FIELD_NUMBER: builtins.int
    INT64_LIST_VAL_FIELD_NUMBER: builtins.int
    DOUBLE_LIST_VAL_FIELD_NUMBER: builtins.int
    FLOAT_LIST_VAL_FIELD_NUMBER: builtins.int
    BOOL_LIST_VAL_FIELD_NUMBER: builtins.int
    UNIX_TIMESTAMP_LIST_VAL_FIELD_NUMBER: builtins.int
    NULL_VAL_FIELD_NUMBER: builtins.int
    bytes_val: builtins.bytes
    string_val: builtins.str
    int32_val: builtins.int
    int64_val: builtins.int
    double_val: builtins.float
    float_val: builtins.float
    bool_val: builtins.bool
    unix_timestamp_val: builtins.int
    @property
    def bytes_list_val(self) -> global___BytesList: ...
    @property
    def string_list_val(self) -> global___StringList: ...
    @property
    def int32_list_val(self) -> global___Int32List: ...
    @property
    def int64_list_val(self) -> global___Int64List: ...
    @property
    def double_list_val(self) -> global___DoubleList: ...
    @property
    def float_list_val(self) -> global___FloatList: ...
    @property
    def bool_list_val(self) -> global___BoolList: ...
    @property
    def unix_timestamp_list_val(self) -> global___Int64List: ...
    null_val: global___Null.ValueType
    def __init__(
        self,
        *,
        bytes_val: builtins.bytes = ...,
        string_val: builtins.str = ...,
        int32_val: builtins.int = ...,
        int64_val: builtins.int = ...,
        double_val: builtins.float = ...,
        float_val: builtins.float = ...,
        bool_val: builtins.bool = ...,
        unix_timestamp_val: builtins.int = ...,
        bytes_list_val: global___BytesList | None = ...,
        string_list_val: global___StringList | None = ...,
        int32_list_val: global___Int32List | None = ...,
        int64_list_val: global___Int64List | None = ...,
        double_list_val: global___DoubleList | None = ...,
        float_list_val: global___FloatList | None = ...,
        bool_list_val: global___BoolList | None = ...,
        unix_timestamp_list_val: global___Int64List | None = ...,
        null_val: global___Null.ValueType = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["bool_list_val", b"bool_list_val", "bool_val", b"bool_val", "bytes_list_val", b"bytes_list_val", "bytes_val", b"bytes_val", "double_list_val", b"double_list_val", "double_val", b"double_val", "float_list_val", b"float_list_val", "float_val", b"float_val", "int32_list_val", b"int32_list_val", "int32_val", b"int32_val", "int64_list_val", b"int64_list_val", "int64_val", b"int64_val", "null_val", b"null_val", "string_list_val", b"string_list_val", "string_val", b"string_val", "unix_timestamp_list_val", b"unix_timestamp_list_val", "unix_timestamp_val", b"unix_timestamp_val", "val", b"val"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["bool_list_val", b"bool_list_val", "bool_val", b"bool_val", "bytes_list_val", b"bytes_list_val", "bytes_val", b"bytes_val", "double_list_val", b"double_list_val", "double_val", b"double_val", "float_list_val", b"float_list_val", "float_val", b"float_val", "int32_list_val", b"int32_list_val", "int32_val", b"int32_val", "int64_list_val", b"int64_list_val", "int64_val", b"int64_val", "null_val", b"null_val", "string_list_val", b"string_list_val", "string_val", b"string_val", "unix_timestamp_list_val", b"unix_timestamp_list_val", "unix_timestamp_val", b"unix_timestamp_val", "val", b"val"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["val", b"val"]) -> typing_extensions.Literal["bytes_val", "string_val", "int32_val", "int64_val", "double_val", "float_val", "bool_val", "unix_timestamp_val", "bytes_list_val", "string_list_val", "int32_list_val", "int64_list_val", "double_list_val", "float_list_val", "bool_list_val", "unix_timestamp_list_val", "null_val"] | None: ...

global___Value = Value

class BytesList(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    VAL_FIELD_NUMBER: builtins.int
    @property
    def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bytes]: ...
    def __init__(
        self,
        *,
        val: collections.abc.Iterable[builtins.bytes] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ...

global___BytesList = BytesList

class StringList(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    VAL_FIELD_NUMBER: builtins.int
    @property
    def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        val: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ...

global___StringList = StringList

class Int32List(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    VAL_FIELD_NUMBER: builtins.int
    @property
    def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    def __init__(
        self,
        *,
        val: collections.abc.Iterable[builtins.int] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ...

global___Int32List = Int32List

class Int64List(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    VAL_FIELD_NUMBER: builtins.int
    @property
    def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ...
    def __init__(
        self,
        *,
        val: collections.abc.Iterable[builtins.int] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ...

global___Int64List = Int64List

class DoubleList(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    VAL_FIELD_NUMBER: builtins.int
    @property
    def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    def __init__(
        self,
        *,
        val: collections.abc.Iterable[builtins.float] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ...

global___DoubleList = DoubleList

class FloatList(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    VAL_FIELD_NUMBER: builtins.int
    @property
    def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.float]: ...
    def __init__(
        self,
        *,
        val: collections.abc.Iterable[builtins.float] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ...

global___FloatList = FloatList

class BoolList(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    VAL_FIELD_NUMBER: builtins.int
    @property
    def val(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.bool]: ...
    def __init__(
        self,
        *,
        val: collections.abc.Iterable[builtins.bool] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ...

global___BoolList = BoolList

class RepeatedValue(google.protobuf.message.Message):
    """This is to avoid an issue of being unable to specify `repeated value` in oneofs or maps
    In JSON "val" field can be omitted
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    VAL_FIELD_NUMBER: builtins.int
    @property
    def val(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Value]: ...
    def __init__(
        self,
        *,
        val: collections.abc.Iterable[global___Value] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["val", b"val"]) -> None: ...

global___RepeatedValue = RepeatedValue
