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

import builtins
import dbtlabs.proto.public.v1.common.vortex_telemetry_contexts_pb2
import dbtlabs.proto.public.v1.events.vortex_pb2
import google.protobuf.descriptor
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 _HandoffFrom:
    ValueType = typing.NewType("ValueType", builtins.int)
    V: typing_extensions.TypeAlias = ValueType

class _HandoffFromEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_HandoffFrom.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    HANDOFF_FROM_UNSPECIFIED: _HandoffFrom.ValueType  # 0
    HANDOFF_FROM_CATALOG: _HandoffFrom.ValueType  # 1

class HandoffFrom(_HandoffFrom, metaclass=_HandoffFromEnumTypeWrapper):
    """As of 2025/05, enums are not handled properly with Vortex
    so we will be documenting them but not using them in the proto
    """

HANDOFF_FROM_UNSPECIFIED: HandoffFrom.ValueType  # 0
HANDOFF_FROM_CATALOG: HandoffFrom.ValueType  # 1
Global___HandoffFrom: typing_extensions.TypeAlias = HandoffFrom

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

class _HandoffToEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_HandoffTo.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    HANDOFF_TO_UNSPECIFIED: _HandoffTo.ValueType  # 0
    HANDOFF_TO_CATALOG: _HandoffTo.ValueType  # 1
    HANDOFF_TO_IDE: _HandoffTo.ValueType  # 2
    HANDOFF_TO_CANVAS: _HandoffTo.ValueType  # 3
    HANDOFF_TO_INSIGHTS: _HandoffTo.ValueType  # 4

class HandoffTo(_HandoffTo, metaclass=_HandoffToEnumTypeWrapper): ...

HANDOFF_TO_UNSPECIFIED: HandoffTo.ValueType  # 0
HANDOFF_TO_CATALOG: HandoffTo.ValueType  # 1
HANDOFF_TO_IDE: HandoffTo.ValueType  # 2
HANDOFF_TO_CANVAS: HandoffTo.ValueType  # 3
HANDOFF_TO_INSIGHTS: HandoffTo.ValueType  # 4
Global___HandoffTo: typing_extensions.TypeAlias = HandoffTo

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

class _HandoffAssetTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_HandoffAssetType.ValueType], builtins.type):
    DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
    HANDOFF_ASSET_TYPE_UNSPECIFIED: _HandoffAssetType.ValueType  # 0
    HANDOFF_ASSET_TYPE_DBT_MODEL: _HandoffAssetType.ValueType  # 1
    HANDOFF_ASSET_TYPE_DBT_SOURCE: _HandoffAssetType.ValueType  # 2
    HANDOFF_ASSET_TYPE_DBT_SNAPSHOT: _HandoffAssetType.ValueType  # 3
    HANDOFF_ASSET_TYPE_DBT_SEED: _HandoffAssetType.ValueType  # 4
    HANDOFF_ASSET_TYPE_DBT_METRIC: _HandoffAssetType.ValueType  # 5
    HANDOFF_ASSET_TYPE_DBT_SAVED_QUERY: _HandoffAssetType.ValueType  # 6
    HANDOFF_ASSET_TYPE_DATA_WAREHOUSE_TABLE: _HandoffAssetType.ValueType  # 7
    HANDOFF_ASSET_TYPE_DATA_WAREHOUSE_VIEW: _HandoffAssetType.ValueType  # 8

class HandoffAssetType(_HandoffAssetType, metaclass=_HandoffAssetTypeEnumTypeWrapper): ...

HANDOFF_ASSET_TYPE_UNSPECIFIED: HandoffAssetType.ValueType  # 0
HANDOFF_ASSET_TYPE_DBT_MODEL: HandoffAssetType.ValueType  # 1
HANDOFF_ASSET_TYPE_DBT_SOURCE: HandoffAssetType.ValueType  # 2
HANDOFF_ASSET_TYPE_DBT_SNAPSHOT: HandoffAssetType.ValueType  # 3
HANDOFF_ASSET_TYPE_DBT_SEED: HandoffAssetType.ValueType  # 4
HANDOFF_ASSET_TYPE_DBT_METRIC: HandoffAssetType.ValueType  # 5
HANDOFF_ASSET_TYPE_DBT_SAVED_QUERY: HandoffAssetType.ValueType  # 6
HANDOFF_ASSET_TYPE_DATA_WAREHOUSE_TABLE: HandoffAssetType.ValueType  # 7
HANDOFF_ASSET_TYPE_DATA_WAREHOUSE_VIEW: HandoffAssetType.ValueType  # 8
Global___HandoffAssetType: typing_extensions.TypeAlias = HandoffAssetType

@typing.final
class Handoff(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ENRICHMENT_FIELD_NUMBER: builtins.int
    CONTEXT_FIELD_NUMBER: builtins.int
    HANDOFF_FROM_FIELD_NUMBER: builtins.int
    HANDOFF_TO_FIELD_NUMBER: builtins.int
    IS_FINAL_HANDOFF_ACTION_FIELD_NUMBER: builtins.int
    HANDOFF_ACTION_FIELD_NUMBER: builtins.int
    ASSET_TYPE_FIELD_NUMBER: builtins.int
    handoff_from: builtins.str
    """There are fields below that would have been defined as enums but Vortex doesn't support enums well

    originating feature; see HandoffFrom for possible values
    """
    handoff_to: builtins.str
    """target feature; see HandoffTo for possible values"""
    is_final_handoff_action: builtins.bool
    """true if this completes the handoff experience"""
    handoff_action: builtins.str
    """applicable only if a handoff has different types, ex. 'Catalog -> Canvas' handoff can 'create' or 'edit'"""
    asset_type: builtins.str
    """asset type of resource being handed off; see HandoffAssetType for possible values"""
    @property
    def enrichment(self) -> dbtlabs.proto.public.v1.events.vortex_pb2.VortexMessageEnrichment:
        """Server enrichment for this event"""

    @property
    def context(self) -> dbtlabs.proto.public.v1.common.vortex_telemetry_contexts_pb2.VortexTelemetryDbtCloudContext:
        """dbt Cloud Context around this request"""

    def __init__(
        self,
        *,
        enrichment: dbtlabs.proto.public.v1.events.vortex_pb2.VortexMessageEnrichment | None = ...,
        context: dbtlabs.proto.public.v1.common.vortex_telemetry_contexts_pb2.VortexTelemetryDbtCloudContext | None = ...,
        handoff_from: builtins.str = ...,
        handoff_to: builtins.str = ...,
        is_final_handoff_action: builtins.bool = ...,
        handoff_action: builtins.str = ...,
        asset_type: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["context", b"context", "enrichment", b"enrichment"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["asset_type", b"asset_type", "context", b"context", "enrichment", b"enrichment", "handoff_action", b"handoff_action", "handoff_from", b"handoff_from", "handoff_to", b"handoff_to", "is_final_handoff_action", b"is_final_handoff_action"]) -> None: ...

Global___Handoff: typing_extensions.TypeAlias = Handoff
