"""
@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.internal.enum_type_wrapper
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 RequestedEntitiesMatrixRequest(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ENTITIES_TO_FEATURES_FIELD_NUMBER: builtins.int
    ENTITY_VALUES_MATRIX_FIELD_NUMBER: builtins.int
    REQUEST_META_DATA_FIELD_NUMBER: builtins.int
    @property
    def entities_to_features(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___EntityToFeatures]: ...
    @property
    def entity_values_matrix(self) -> global___RequestedEntitiesMatrix: ...
    @property
    def request_meta_data(self) -> global___RequestMetaData: ...
    def __init__(
        self,
        *,
        entities_to_features: collections.abc.Iterable[global___EntityToFeatures] | None = ...,
        entity_values_matrix: global___RequestedEntitiesMatrix | None = ...,
        request_meta_data: global___RequestMetaData | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["entity_values_matrix", b"entity_values_matrix", "request_meta_data", b"request_meta_data"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["entities_to_features", b"entities_to_features", "entity_values_matrix", b"entity_values_matrix", "request_meta_data", b"request_meta_data"]) -> None: ...

global___RequestedEntitiesMatrixRequest = RequestedEntitiesMatrixRequest

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

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

global___RequestMetaData = RequestMetaData

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

    HEADER_FIELD_NUMBER: builtins.int
    ROWS_FIELD_NUMBER: builtins.int
    @property
    def header(self) -> global___EntitiesHeader:
        """e.g: this is a matrix
               user_id | post_id  -> this is a header
         0        107     10008     -> this is a row
         1        108     10087     -> this is a row
        """
    @property
    def rows(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___EntityValueRow]: ...
    def __init__(
        self,
        *,
        header: global___EntitiesHeader | None = ...,
        rows: collections.abc.Iterable[global___EntityValueRow] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["header", b"header"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["header", b"header", "rows", b"rows"]) -> None: ...

global___RequestedEntitiesMatrix = RequestedEntitiesMatrix

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

    ENTITY_NAMES_FIELD_NUMBER: builtins.int
    @property
    def entity_names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """e.g:
         user_id | post_id -> this is a header
        """
    def __init__(
        self,
        *,
        entity_names: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["entity_names", b"entity_names"]) -> None: ...

global___EntitiesHeader = EntitiesHeader

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

    INDEX_FIELD_NUMBER: builtins.int
    ENTITY_VALUES_FIELD_NUMBER: builtins.int
    index: builtins.int
    """e.g:
     index | user_id | post_id
     0        107     10008     -> this is a row
     1        108     10087     -> this is a row
    """
    @property
    def entity_values(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ...
    def __init__(
        self,
        *,
        index: builtins.int = ...,
        entity_values: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["entity_values", b"entity_values", "index", b"index"]) -> None: ...

global___EntityValueRow = EntityValueRow

class EntityToFeatures(google.protobuf.message.Message):
    """e.g:
    user_id -> ["name", "address", "last_login"]
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    FEATURES_FIELD_NUMBER: builtins.int
    ENTITY_NAME_FIELD_NUMBER: builtins.int
    @property
    def features(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Feature]:
        """Features to get from a key value"""
    entity_name: builtins.str
    """Entity name"""
    def __init__(
        self,
        *,
        features: collections.abc.Iterable[global___Feature] | None = ...,
        entity_name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["entity_name", b"entity_name", "features", b"features"]) -> None: ...

global___EntityToFeatures = EntityToFeatures

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

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

        NAME_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        name: builtins.str
        """Entity name - such as uuid, site id, etc."""
        value: builtins.str
        """Entity value to fetch"""
        def __init__(
            self,
            *,
            name: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "value", b"value"]) -> None: ...

    FEATURES_FIELD_NUMBER: builtins.int
    ENTITY_FIELD_NUMBER: builtins.int
    @property
    def features(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Feature]:
        """List of features to fetch."""
    @property
    def entity(self) -> global___FeatureValuesRequest.Entity:
        """Feature is requested for a single entity (user id for example)."""
    def __init__(
        self,
        *,
        features: collections.abc.Iterable[global___Feature] | None = ...,
        entity: global___FeatureValuesRequest.Entity | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["entity", b"entity"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["entity", b"entity", "features", b"features"]) -> None: ...

global___FeatureValuesRequest = FeatureValuesRequest

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

    BATCH_FEATURE_FIELD_NUMBER: builtins.int
    ON_THE_FLY_FEATURE_FIELD_NUMBER: builtins.int
    STREAMING_FEATURE_FIELD_NUMBER: builtins.int
    STREAMING_AGGREGATION_FIELD_NUMBER: builtins.int
    BATCH_V1_FEATURE_FIELD_NUMBER: builtins.int
    STREAMING_V1_FEATURE_FIELD_NUMBER: builtins.int
    @property
    def batch_feature(self) -> global___BatchFeature: ...
    @property
    def on_the_fly_feature(self) -> global___OnTheFlyFeature: ...
    @property
    def streaming_feature(self) -> global___StreamingFeature: ...
    @property
    def streaming_aggregation(self) -> global___StreamingAggregationFeature: ...
    @property
    def batch_v1_feature(self) -> global___BatchV1Feature: ...
    @property
    def streaming_v1_feature(self) -> global___StreamingV1Feature: ...
    def __init__(
        self,
        *,
        batch_feature: global___BatchFeature | None = ...,
        on_the_fly_feature: global___OnTheFlyFeature | None = ...,
        streaming_feature: global___StreamingFeature | None = ...,
        streaming_aggregation: global___StreamingAggregationFeature | None = ...,
        batch_v1_feature: global___BatchV1Feature | None = ...,
        streaming_v1_feature: global___StreamingV1Feature | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["batch_feature", b"batch_feature", "batch_v1_feature", b"batch_v1_feature", "on_the_fly_feature", b"on_the_fly_feature", "streaming_aggregation", b"streaming_aggregation", "streaming_feature", b"streaming_feature", "streaming_v1_feature", b"streaming_v1_feature", "type", b"type"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["batch_feature", b"batch_feature", "batch_v1_feature", b"batch_v1_feature", "on_the_fly_feature", b"on_the_fly_feature", "streaming_aggregation", b"streaming_aggregation", "streaming_feature", b"streaming_feature", "streaming_v1_feature", b"streaming_v1_feature", "type", b"type"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["type", b"type"]) -> typing_extensions.Literal["batch_feature", "on_the_fly_feature", "streaming_feature", "streaming_aggregation", "batch_v1_feature", "streaming_v1_feature"] | None: ...

global___Feature = Feature

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

    NAME_FIELD_NUMBER: builtins.int
    name: builtins.str
    """The feature name"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["name", b"name"]) -> None: ...

global___BatchFeature = BatchFeature

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

    NAME_FIELD_NUMBER: builtins.int
    name: builtins.str
    """The feature name"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["name", b"name"]) -> None: ...

global___BatchV1Feature = BatchV1Feature

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

    NAME_FIELD_NUMBER: builtins.int
    name: builtins.str
    """The feature name"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["name", b"name"]) -> None: ...

global___StreamingFeature = StreamingFeature

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

    NAME_FIELD_NUMBER: builtins.int
    name: builtins.str
    """The feature name"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["name", b"name"]) -> None: ...

global___StreamingV1Feature = StreamingV1Feature

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

    NAME_FIELD_NUMBER: builtins.int
    name: builtins.str
    """The feature name"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["name", b"name"]) -> None: ...

global___StreamingAggregationFeature = StreamingAggregationFeature

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

    NAME_FIELD_NUMBER: builtins.int
    ON_THE_FLY_DATA_FIELD_NUMBER: builtins.int
    name: builtins.str
    """The feature name"""
    @property
    def on_the_fly_data(self) -> global___OnTheFlyData:
        """The data to transform"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        on_the_fly_data: global___OnTheFlyData | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["on_the_fly_data", b"on_the_fly_data"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "on_the_fly_data", b"on_the_fly_data"]) -> None: ...

global___OnTheFlyFeature = OnTheFlyFeature

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

    PANDAS_DF_AS_JSON_FIELD_NUMBER: builtins.int
    FEATURE_VALUES_FIELD_NUMBER: builtins.int
    pandas_df_as_json: builtins.str
    feature_values: builtins.str
    def __init__(
        self,
        *,
        pandas_df_as_json: builtins.str = ...,
        feature_values: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["feature_values", b"feature_values", "pandas_df_as_json", b"pandas_df_as_json"]) -> None: ...

global___MultiFeatureValuesResponse = MultiFeatureValuesResponse

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

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

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

        class _ValueStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[FeatureValuesResponse.FeatureValue._ValueStatus.ValueType], builtins.type):  # noqa: F821
            DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
            INVALID: FeatureValuesResponse.FeatureValue._ValueStatus.ValueType  # 0
            """Feature value could not be obtained"""
            VALID: FeatureValuesResponse.FeatureValue._ValueStatus.ValueType  # 1
            """Feature value is set"""

        class ValueStatus(_ValueStatus, metaclass=_ValueStatusEnumTypeWrapper): ...
        INVALID: FeatureValuesResponse.FeatureValue.ValueStatus.ValueType  # 0
        """Feature value could not be obtained"""
        VALID: FeatureValuesResponse.FeatureValue.ValueStatus.ValueType  # 1
        """Feature value is set"""

        FEATURE_NAME_FIELD_NUMBER: builtins.int
        FEATURE_VALUE_FIELD_NUMBER: builtins.int
        STATUS_FIELD_NUMBER: builtins.int
        feature_name: builtins.str
        """Name of requested feature"""
        @property
        def feature_value(self) -> global___Value:
            """Feature value as fetched from the service"""
        status: global___FeatureValuesResponse.FeatureValue.ValueStatus.ValueType
        """Feature value status"""
        def __init__(
            self,
            *,
            feature_name: builtins.str = ...,
            feature_value: global___Value | None = ...,
            status: global___FeatureValuesResponse.FeatureValue.ValueStatus.ValueType = ...,
        ) -> None: ...
        def HasField(self, field_name: typing_extensions.Literal["feature_value", b"feature_value"]) -> builtins.bool: ...
        def ClearField(self, field_name: typing_extensions.Literal["feature_name", b"feature_name", "feature_value", b"feature_value", "status", b"status"]) -> None: ...

    FEATURE_VALUES_FIELD_NUMBER: builtins.int
    @property
    def feature_values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FeatureValuesResponse.FeatureValue]:
        """List of of features values, containing name and value data."""
    def __init__(
        self,
        *,
        feature_values: collections.abc.Iterable[global___FeatureValuesResponse.FeatureValue] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["feature_values", b"feature_values"]) -> None: ...

global___FeatureValuesResponse = FeatureValuesResponse

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

    USER_DATA_FIELD_NUMBER: builtins.int
    SCHEMA_DATA_FIELD_NUMBER: builtins.int
    user_data: builtins.str
    schema_data: builtins.str
    def __init__(
        self,
        *,
        user_data: builtins.str = ...,
        schema_data: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["data", b"data", "schema_data", b"schema_data", "user_data", b"user_data"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["data", b"data", "schema_data", b"schema_data", "user_data", b"user_data"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["data", b"data"]) -> typing_extensions.Literal["user_data", "schema_data"] | None: ...

global___OnTheFlyData = OnTheFlyData

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
    TIMESTAMP_VAL_FIELD_NUMBER: builtins.int
    ARRAY_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
    @property
    def timestamp_val(self) -> google.protobuf.timestamp_pb2.Timestamp: ...
    @property
    def array_val(self) -> global___Array: ...
    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 = ...,
        timestamp_val: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        array_val: global___Array | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["array_val", b"array_val", "bool_val", b"bool_val", "bytes_val", b"bytes_val", "double_val", b"double_val", "float_val", b"float_val", "int32_val", b"int32_val", "int64_val", b"int64_val", "string_val", b"string_val", "timestamp_val", b"timestamp_val", "val", b"val"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["array_val", b"array_val", "bool_val", b"bool_val", "bytes_val", b"bytes_val", "double_val", b"double_val", "float_val", b"float_val", "int32_val", b"int32_val", "int64_val", b"int64_val", "string_val", b"string_val", "timestamp_val", b"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", "timestamp_val", "array_val"] | None: ...

global___Value = Value

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

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

global___Array = Array
