"""
@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 qwak.feature_store.entities.entity_pb2
import qwak.feature_store.features.feature_set_types_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 _ValueType:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

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

class ValueType(_ValueType, metaclass=_ValueTypeEnumTypeWrapper): ...

INVALID: ValueType.ValueType  # 0
"""An invalid state ValueType, the default if unset"""
STRING: ValueType.ValueType  # 1
"""String"""
INT: ValueType.ValueType  # 2
"""Integer"""
global___ValueType = ValueType

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

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

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

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

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

    FEATURESET_NAME_FIELD_NUMBER: builtins.int
    STREAMING_FEATURE_SET_FIELD_NUMBER: builtins.int
    BATCH_FEATURE_SET_FIELD_NUMBER: builtins.int
    STREAMING_AGGREGATION_FEATURE_SET_FIELD_NUMBER: builtins.int
    EXTRA_DEPLOYMENT_CONFIGURATION_FIELD_NUMBER: builtins.int
    EXTRA_ENV_CONFIGURATION_FIELD_NUMBER: builtins.int
    ENTITY_FIELD_NUMBER: builtins.int
    FEATURESET_ID_FIELD_NUMBER: builtins.int
    SECRET_SERVICE_URL_FIELD_NUMBER: builtins.int
    RUN_ID_FIELD_NUMBER: builtins.int
    QWAK_INTERNAL_PROTOCOL_VERSION_FIELD_NUMBER: builtins.int
    FEATURESET_VERSION_FIELD_NUMBER: builtins.int
    featureset_name: builtins.str
    """FeatureSet name"""
    @property
    def streaming_feature_set(self) -> qwak.feature_store.features.feature_set_types_pb2.StreamingFeatureSetV1: ...
    @property
    def batch_feature_set(self) -> qwak.feature_store.features.feature_set_types_pb2.BatchFeatureSetV1: ...
    @property
    def streaming_aggregation_feature_set(self) -> qwak.feature_store.features.feature_set_types_pb2.StreamingAggregationFeatureSet: ...
    @property
    def extra_deployment_configuration(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
        """Spark conf passthrough"""
    @property
    def extra_env_configuration(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
        """Config map configuration passthrough"""
    @property
    def entity(self) -> qwak.feature_store.entities.entity_pb2.EntityDefinition:
        """Entity definition of the FeatureSet"""
    featureset_id: builtins.str
    """FeatureSet id"""
    secret_service_url: builtins.str
    """Secret service url of the relevant environment"""
    run_id: builtins.int
    """Run id which represents the job id"""
    qwak_internal_protocol_version: builtins.int
    """Qwak featureset protocol version"""
    featureset_version: builtins.int
    """Featureset version"""
    def __init__(
        self,
        *,
        featureset_name: builtins.str = ...,
        streaming_feature_set: qwak.feature_store.features.feature_set_types_pb2.StreamingFeatureSetV1 | None = ...,
        batch_feature_set: qwak.feature_store.features.feature_set_types_pb2.BatchFeatureSetV1 | None = ...,
        streaming_aggregation_feature_set: qwak.feature_store.features.feature_set_types_pb2.StreamingAggregationFeatureSet | None = ...,
        extra_deployment_configuration: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        extra_env_configuration: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        entity: qwak.feature_store.entities.entity_pb2.EntityDefinition | None = ...,
        featureset_id: builtins.str = ...,
        secret_service_url: builtins.str = ...,
        run_id: builtins.int = ...,
        qwak_internal_protocol_version: builtins.int = ...,
        featureset_version: builtins.int = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["batch_feature_set", b"batch_feature_set", "entity", b"entity", "feature_set", b"feature_set", "streaming_aggregation_feature_set", b"streaming_aggregation_feature_set", "streaming_feature_set", b"streaming_feature_set"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["batch_feature_set", b"batch_feature_set", "entity", b"entity", "extra_deployment_configuration", b"extra_deployment_configuration", "extra_env_configuration", b"extra_env_configuration", "feature_set", b"feature_set", "featureset_id", b"featureset_id", "featureset_name", b"featureset_name", "featureset_version", b"featureset_version", "qwak_internal_protocol_version", b"qwak_internal_protocol_version", "run_id", b"run_id", "secret_service_url", b"secret_service_url", "streaming_aggregation_feature_set", b"streaming_aggregation_feature_set", "streaming_feature_set", b"streaming_feature_set"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["feature_set", b"feature_set"]) -> typing_extensions.Literal["streaming_feature_set", "batch_feature_set", "streaming_aggregation_feature_set"] | None: ...

global___FeatureSetDeployment = FeatureSetDeployment

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

    BATCH_EXECUTION_DATE_FIELD_NUMBER: builtins.int
    TRY_NUMBER_FIELD_NUMBER: builtins.int
    BATCH_TRIGGER_DATE_FIELD_NUMBER: builtins.int
    @property
    def batch_execution_date(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Execution date"""
    try_number: builtins.int
    """Try number"""
    @property
    def batch_trigger_date(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Outside system trigger date"""
    def __init__(
        self,
        *,
        batch_execution_date: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        try_number: builtins.int = ...,
        batch_trigger_date: google.protobuf.timestamp_pb2.Timestamp | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["batch_execution_date", b"batch_execution_date", "batch_trigger_date", b"batch_trigger_date"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["batch_execution_date", b"batch_execution_date", "batch_trigger_date", b"batch_trigger_date", "try_number", b"try_number"]) -> None: ...

global___BatchDetails = BatchDetails

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

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

global___ExecutionIdentifier = ExecutionIdentifier

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

    NAME_FIELD_NUMBER: builtins.int
    ID_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    ENTITY_FIELD_NUMBER: builtins.int
    FEATURE_SET_TYPE_FIELD_NUMBER: builtins.int
    name: builtins.str
    """Name of feature"""
    id: builtins.str
    """id of the feature"""
    @property
    def metadata(self) -> global___FeatureSetUserMetadata:
        """User generated metadata of the feature set"""
    @property
    def entity(self) -> global___EntityDefinition:
        """Entity specification used by the feature"""
    @property
    def feature_set_type(self) -> global___FeatureSetType:
        """The type of the Entity"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        id: builtins.str = ...,
        metadata: global___FeatureSetUserMetadata | None = ...,
        entity: global___EntityDefinition | None = ...,
        feature_set_type: global___FeatureSetType | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["entity", b"entity", "feature_set_type", b"feature_set_type", "metadata", b"metadata"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["entity", b"entity", "feature_set_type", b"feature_set_type", "id", b"id", "metadata", b"metadata", "name", b"name"]) -> None: ...

global___FeatureSetDeploymentSpec = FeatureSetDeploymentSpec

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

    OWNER_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    DISPLAY_NAME_FIELD_NUMBER: builtins.int
    owner: builtins.str
    """Feature set owner"""
    description: builtins.str
    """Human readable description of the feature set"""
    display_name: builtins.str
    """User friendly name of the feature set"""
    def __init__(
        self,
        *,
        owner: builtins.str = ...,
        description: builtins.str = ...,
        display_name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "display_name", b"display_name", "owner", b"owner"]) -> None: ...

global___FeatureSetUserMetadata = FeatureSetUserMetadata

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

    STREAMING_FEATURE_SET_FIELD_NUMBER: builtins.int
    @property
    def streaming_feature_set(self) -> global___StreamingFeatureSet: ...
    def __init__(
        self,
        *,
        streaming_feature_set: global___StreamingFeatureSet | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["set_type", b"set_type", "streaming_feature_set", b"streaming_feature_set"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["set_type", b"set_type", "streaming_feature_set", b"streaming_feature_set"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["set_type", b"set_type"]) -> typing_extensions.Literal["streaming_feature_set"] | None: ...

global___FeatureSetType = FeatureSetType

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

    DATA_SOURCE_FIELD_NUMBER: builtins.int
    @property
    def data_source(self) -> global___StreamingDataSource: ...
    def __init__(
        self,
        *,
        data_source: global___StreamingDataSource | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["data_source", b"data_source"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["data_source", b"data_source"]) -> None: ...

global___StreamingFeatureSet = StreamingFeatureSet

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

    CONSUMER_TOPIC_FIELD_NUMBER: builtins.int
    CONSUMER_BOOTSTRAP_SERVER_FIELD_NUMBER: builtins.int
    CONSUMER_TIMEOUT_FIELD_NUMBER: builtins.int
    CONSUMER_GROUP_FIELD_NUMBER: builtins.int
    AUTO_OFFSET_TYPE_FIELD_NUMBER: builtins.int
    SECRET_USERNAME_FIELD_NUMBER: builtins.int
    SECRET_PASSWORD_FIELD_NUMBER: builtins.int
    CONSUMER_CONFIGURATION_FIELD_NUMBER: builtins.int
    consumer_topic: builtins.str
    consumer_bootstrap_server: builtins.str
    consumer_timeout: builtins.str
    consumer_group: builtins.str
    auto_offset_type: builtins.str
    secret_username: builtins.str
    secret_password: builtins.str
    consumer_configuration: builtins.str
    def __init__(
        self,
        *,
        consumer_topic: builtins.str = ...,
        consumer_bootstrap_server: builtins.str = ...,
        consumer_timeout: builtins.str = ...,
        consumer_group: builtins.str = ...,
        auto_offset_type: builtins.str = ...,
        secret_username: builtins.str = ...,
        secret_password: builtins.str = ...,
        consumer_configuration: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["auto_offset_type", b"auto_offset_type", "consumer_bootstrap_server", b"consumer_bootstrap_server", "consumer_configuration", b"consumer_configuration", "consumer_group", b"consumer_group", "consumer_timeout", b"consumer_timeout", "consumer_topic", b"consumer_topic", "secret_password", b"secret_password", "secret_username", b"secret_username"]) -> None: ...

global___KafkaSource = KafkaSource

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

    KAFKA_SOURCE_FIELD_NUMBER: builtins.int
    @property
    def kafka_source(self) -> global___KafkaSource: ...
    def __init__(
        self,
        *,
        kafka_source: global___KafkaSource | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["kafka_source", b"kafka_source", "type", b"type"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["kafka_source", b"kafka_source", "type", b"type"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["type", b"type"]) -> typing_extensions.Literal["kafka_source"] | None: ...

global___StreamingDataSource = StreamingDataSource

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

    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___ValueType.ValueType
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        keys: collections.abc.Iterable[builtins.str] | None = ...,
        description: builtins.str = ...,
        value_type: global___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
