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

import builtins
import dbtlabs.proto.public.v1.events.fusion.compat.otlp_pb2
import dbtlabs.proto.public.v1.events.fusion.phase.phase_pb2
import google.protobuf.descriptor
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

@typing.final
class LogMessage(google.protobuf.message.Message):
    """Generic event for log messages that do not cary special meaning
    or additional metadata beyond the standard fields
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CODE_FIELD_NUMBER: builtins.int
    DBT_CORE_EVENT_CODE_FIELD_NUMBER: builtins.int
    ORIGINAL_SEVERITY_NUMBER_FIELD_NUMBER: builtins.int
    ORIGINAL_SEVERITY_TEXT_FIELD_NUMBER: builtins.int
    UNIQUE_ID_FIELD_NUMBER: builtins.int
    FILE_FIELD_NUMBER: builtins.int
    LINE_FIELD_NUMBER: builtins.int
    PHASE_FIELD_NUMBER: builtins.int
    PACKAGE_NAME_FIELD_NUMBER: builtins.int
    code: builtins.int
    """Optional fusion error/warning code"""
    dbt_core_event_code: builtins.str
    """Optional legacy dbt-core code (e.g. "Z048") if this event has a strict mapping to a dbt core event."""
    original_severity_number: dbtlabs.proto.public.v1.events.fusion.compat.otlp_pb2.SeverityNumber.ValueType
    """Original severity before user up/down-grade configuration applied."""
    original_severity_text: builtins.str
    unique_id: builtins.str
    """If this log message is emitted in the context of a specific node,
    this field should be set to the node's unique FQN.
    """
    file: builtins.str
    """Fusion source code file name where the log was created. Only available in debug builds."""
    line: builtins.int
    """Fusion source code file line number where the log was created. Only available in debug builds."""
    phase: dbtlabs.proto.public.v1.events.fusion.phase.phase_pb2.ExecutionPhase.ValueType
    """Execution phase (if known) during which this log was emitted."""
    package_name: builtins.str
    """Package name of the project dependency for which this log was emitted. Not set for the root project."""
    def __init__(
        self,
        *,
        code: builtins.int | None = ...,
        dbt_core_event_code: builtins.str | None = ...,
        original_severity_number: dbtlabs.proto.public.v1.events.fusion.compat.otlp_pb2.SeverityNumber.ValueType = ...,
        original_severity_text: builtins.str = ...,
        unique_id: builtins.str | None = ...,
        file: builtins.str | None = ...,
        line: builtins.int | None = ...,
        phase: dbtlabs.proto.public.v1.events.fusion.phase.phase_pb2.ExecutionPhase.ValueType | None = ...,
        package_name: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_code", b"_code", "_dbt_core_event_code", b"_dbt_core_event_code", "_file", b"_file", "_line", b"_line", "_package_name", b"_package_name", "_phase", b"_phase", "_unique_id", b"_unique_id", "code", b"code", "dbt_core_event_code", b"dbt_core_event_code", "file", b"file", "line", b"line", "package_name", b"package_name", "phase", b"phase", "unique_id", b"unique_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_code", b"_code", "_dbt_core_event_code", b"_dbt_core_event_code", "_file", b"_file", "_line", b"_line", "_package_name", b"_package_name", "_phase", b"_phase", "_unique_id", b"_unique_id", "code", b"code", "dbt_core_event_code", b"dbt_core_event_code", "file", b"file", "line", b"line", "original_severity_number", b"original_severity_number", "original_severity_text", b"original_severity_text", "package_name", b"package_name", "phase", b"phase", "unique_id", b"unique_id"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_code", b"_code"]) -> typing.Literal["code"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_dbt_core_event_code", b"_dbt_core_event_code"]) -> typing.Literal["dbt_core_event_code"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_file", b"_file"]) -> typing.Literal["file"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_line", b"_line"]) -> typing.Literal["line"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_package_name", b"_package_name"]) -> typing.Literal["package_name"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_phase", b"_phase"]) -> typing.Literal["phase"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_unique_id", b"_unique_id"]) -> typing.Literal["unique_id"] | None: ...

Global___LogMessage: typing_extensions.TypeAlias = LogMessage

@typing.final
class UserLogMessage(google.protobuf.message.Message):
    """Event emitted when user explicitly logs messages via jinja's print() or log() functions.
    This event maps to dbt-core's JinjaLogInfo (I061-I063) events.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    IS_PRINT_FIELD_NUMBER: builtins.int
    DBT_CORE_EVENT_CODE_FIELD_NUMBER: builtins.int
    UNIQUE_ID_FIELD_NUMBER: builtins.int
    PHASE_FIELD_NUMBER: builtins.int
    PACKAGE_NAME_FIELD_NUMBER: builtins.int
    LINE_FIELD_NUMBER: builtins.int
    COLUMN_FIELD_NUMBER: builtins.int
    RELATIVE_PATH_FIELD_NUMBER: builtins.int
    is_print: builtins.bool
    """True if this message was emitted via print(), false if via log()"""
    dbt_core_event_code: builtins.str
    """Legacy dbt-core event code:
    - "I062" (JinjaLogInfo) for log info level
    - "I063" (JinjaLogDebug) for log debug level
    - "I061" (JinjaLogWarning) for log warning level
    - "Z052" (PrintEvent) for print statements
    """
    unique_id: builtins.str
    """If this log message is emitted in the context of a specific node,
    this field should be set to the node's unique FQN.
    """
    phase: dbtlabs.proto.public.v1.events.fusion.phase.phase_pb2.ExecutionPhase.ValueType
    """Execution phase (if known) during which this log was emitted."""
    package_name: builtins.str
    """Package name (project or dependency) from which this log was emitted."""
    line: builtins.int
    """Location within the SQL/Jinja file where print() or log() was called.
    Line number (1-indexed) of the print/log call in the SQL file.
    """
    column: builtins.int
    """Column number (0-indexed) of the print/log call in the SQL file."""
    relative_path: builtins.str
    """Relative path to the SQL file containing the print/log call."""
    def __init__(
        self,
        *,
        is_print: builtins.bool = ...,
        dbt_core_event_code: builtins.str = ...,
        unique_id: builtins.str | None = ...,
        phase: dbtlabs.proto.public.v1.events.fusion.phase.phase_pb2.ExecutionPhase.ValueType | None = ...,
        package_name: builtins.str | None = ...,
        line: builtins.int | None = ...,
        column: builtins.int | None = ...,
        relative_path: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_column", b"_column", "_line", b"_line", "_package_name", b"_package_name", "_phase", b"_phase", "_relative_path", b"_relative_path", "_unique_id", b"_unique_id", "column", b"column", "line", b"line", "package_name", b"package_name", "phase", b"phase", "relative_path", b"relative_path", "unique_id", b"unique_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_column", b"_column", "_line", b"_line", "_package_name", b"_package_name", "_phase", b"_phase", "_relative_path", b"_relative_path", "_unique_id", b"_unique_id", "column", b"column", "dbt_core_event_code", b"dbt_core_event_code", "is_print", b"is_print", "line", b"line", "package_name", b"package_name", "phase", b"phase", "relative_path", b"relative_path", "unique_id", b"unique_id"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_column", b"_column"]) -> typing.Literal["column"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_line", b"_line"]) -> typing.Literal["line"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_package_name", b"_package_name"]) -> typing.Literal["package_name"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_phase", b"_phase"]) -> typing.Literal["phase"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_relative_path", b"_relative_path"]) -> typing.Literal["relative_path"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_unique_id", b"_unique_id"]) -> typing.Literal["unique_id"] | None: ...

Global___UserLogMessage: typing_extensions.TypeAlias = UserLogMessage
