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

    ENTITY_DEFINITION_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    FEATURE_SETS_FIELD_NUMBER: builtins.int
    @property
    def entity_definition(self) -> global___EntityDefinition:
        """Complete domain definition of the data source"""
    @property
    def metadata(self) -> global___EntityMetadata:
        """System generated metadata of the entity"""
    @property
    def feature_sets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FeatureSetBrief]:
        """Linked feature sets"""
    def __init__(
        self,
        *,
        entity_definition: global___EntityDefinition | None = ...,
        metadata: global___EntityMetadata | None = ...,
        feature_sets: collections.abc.Iterable[global___FeatureSetBrief] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["entity_definition", b"entity_definition", "metadata", b"metadata"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["entity_definition", b"entity_definition", "feature_sets", b"feature_sets", "metadata", b"metadata"]) -> None: ...

global___Entity = Entity

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

    ENTITY_ID_FIELD_NUMBER: builtins.int
    ENTITY_SPEC_FIELD_NUMBER: builtins.int
    entity_id: builtins.str
    """Assigned unique id"""
    @property
    def entity_spec(self) -> global___EntitySpec:
        """Specifications of an entity"""
    def __init__(
        self,
        *,
        entity_id: builtins.str = ...,
        entity_spec: global___EntitySpec | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["entity_spec", b"entity_spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["entity_id", b"entity_id", "entity_spec", b"entity_spec"]) -> None: ...

global___EntityDefinition = EntityDefinition

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

    CREATED_AT_FIELD_NUMBER: builtins.int
    CREATED_BY_FIELD_NUMBER: builtins.int
    LAST_MODIFIED_AT_FIELD_NUMBER: builtins.int
    LAST_MODIFIED_BY_FIELD_NUMBER: builtins.int
    @property
    def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """When the entity was created"""
    created_by: builtins.str
    """Created by"""
    @property
    def last_modified_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Last modified"""
    last_modified_by: builtins.str
    """Last modified by"""
    def __init__(
        self,
        *,
        created_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        created_by: builtins.str = ...,
        last_modified_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        last_modified_by: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "last_modified_at", b"last_modified_at"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "created_by", b"created_by", "last_modified_at", b"last_modified_at", "last_modified_by", b"last_modified_by"]) -> None: ...

global___EntityMetadata = EntityMetadata

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

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

    class _ValueTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[EntitySpec._ValueType.ValueType], builtins.type):  # noqa: F821
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        INVALID: EntitySpec._ValueType.ValueType  # 0
        """An invalid state ValueType, the default if unset"""
        STRING: EntitySpec._ValueType.ValueType  # 1
        """String"""
        INT: EntitySpec._ValueType.ValueType  # 2
        """Integer"""

    class ValueType(_ValueType, metaclass=_ValueTypeEnumTypeWrapper): ...
    INVALID: EntitySpec.ValueType.ValueType  # 0
    """An invalid state ValueType, the default if unset"""
    STRING: EntitySpec.ValueType.ValueType  # 1
    """String"""
    INT: EntitySpec.ValueType.ValueType  # 2
    """Integer"""

    NAME_FIELD_NUMBER: builtins.int
    KEYS_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    VALUE_TYPE_FIELD_NUMBER: builtins.int
    name: builtins.str
    """Name - should be unique per partner id"""
    @property
    def keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """All possible entity keys - on customers data sources"""
    description: builtins.str
    """Description"""
    value_type: global___EntitySpec.ValueType.ValueType
    """Value type (int, string etc)"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        keys: collections.abc.Iterable[builtins.str] | None = ...,
        description: builtins.str = ...,
        value_type: global___EntitySpec.ValueType.ValueType = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "keys", b"keys", "name", b"name", "value_type", b"value_type"]) -> None: ...

global___EntitySpec = EntitySpec

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

    FEATURE_SET_ID_FIELD_NUMBER: builtins.int
    FEATURE_SET_NAME_FIELD_NUMBER: builtins.int
    feature_set_id: builtins.str
    """Feature set id"""
    feature_set_name: builtins.str
    """Feature set name"""
    def __init__(
        self,
        *,
        feature_set_id: builtins.str = ...,
        feature_set_name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["feature_set_id", b"feature_set_id", "feature_set_name", b"feature_set_name"]) -> None: ...

global___FeatureSetBrief = FeatureSetBrief
