"""
@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
    RELATIVE_PATH_FIELD_NUMBER: builtins.int
    CODE_LINE_FIELD_NUMBER: builtins.int
    CODE_COLUMN_FIELD_NUMBER: builtins.int
    EXPANDED_RELATIVE_PATH_FIELD_NUMBER: builtins.int
    EXPANDED_LINE_FIELD_NUMBER: builtins.int
    EXPANDED_COLUMN_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 id.
    """
    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."""
    relative_path: builtins.str
    """Relative path to the project file where this log message originated."""
    code_line: builtins.int
    """1-indexed line number in the project file where this log message originated."""
    code_column: builtins.int
    """0-indexed column number in the project file where this log message originated."""
    expanded_relative_path: builtins.str
    """Optional expanded (compiled) file location for this log message."""
    expanded_line: builtins.int
    expanded_column: builtins.int
    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 = ...,
        relative_path: builtins.str | None = ...,
        code_line: builtins.int | None = ...,
        code_column: builtins.int | None = ...,
        expanded_relative_path: builtins.str | None = ...,
        expanded_line: builtins.int | None = ...,
        expanded_column: builtins.int | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_code", b"_code", "_code_column", b"_code_column", "_code_line", b"_code_line", "_dbt_core_event_code", b"_dbt_core_event_code", "_expanded_column", b"_expanded_column", "_expanded_line", b"_expanded_line", "_expanded_relative_path", b"_expanded_relative_path", "_file", b"_file", "_line", b"_line", "_package_name", b"_package_name", "_phase", b"_phase", "_relative_path", b"_relative_path", "_unique_id", b"_unique_id", "code", b"code", "code_column", b"code_column", "code_line", b"code_line", "dbt_core_event_code", b"dbt_core_event_code", "expanded_column", b"expanded_column", "expanded_line", b"expanded_line", "expanded_relative_path", b"expanded_relative_path", "file", b"file", "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["_code", b"_code", "_code_column", b"_code_column", "_code_line", b"_code_line", "_dbt_core_event_code", b"_dbt_core_event_code", "_expanded_column", b"_expanded_column", "_expanded_line", b"_expanded_line", "_expanded_relative_path", b"_expanded_relative_path", "_file", b"_file", "_line", b"_line", "_package_name", b"_package_name", "_phase", b"_phase", "_relative_path", b"_relative_path", "_unique_id", b"_unique_id", "code", b"code", "code_column", b"code_column", "code_line", b"code_line", "dbt_core_event_code", b"dbt_core_event_code", "expanded_column", b"expanded_column", "expanded_line", b"expanded_line", "expanded_relative_path", b"expanded_relative_path", "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", "relative_path", b"relative_path", "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["_code_column", b"_code_column"]) -> typing.Literal["code_column"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_code_line", b"_code_line"]) -> typing.Literal["code_line"] | 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["_expanded_column", b"_expanded_column"]) -> typing.Literal["expanded_column"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_expanded_line", b"_expanded_line"]) -> typing.Literal["expanded_line"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_expanded_relative_path", b"_expanded_relative_path"]) -> typing.Literal["expanded_relative_path"] | 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["_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___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

@typing.final
class ProgressMessage(google.protobuf.message.Message):
    """A variation of a log message indicating execution progress. Unlike regular
    log messages, progress messages specify an action and a target, as well
    as optional description.
    Used by various commands (debug, deps, etc.) to report progress steps.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DBT_CORE_EVENT_CODE_FIELD_NUMBER: builtins.int
    ACTION_FIELD_NUMBER: builtins.int
    TARGET_FIELD_NUMBER: builtins.int
    DESCRIPTION_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
    dbt_core_event_code: builtins.str
    """Optional legacy dbt-core code (e.g. "Z047" for DebugCmdOut) if this event has a strict mapping to a dbt core event."""
    action: builtins.str
    """The action being performed (e.g., "Debugging", "Loading")."""
    target: builtins.str
    """The text describing the target of the action (e.g., "project", "dependencies")."""
    description: builtins.str
    """Optional additional description providing more context."""
    unique_id: builtins.str
    """If this progress message is emitted in the context of a specific node,
    this field should be set to the node's unique id.
    """
    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."""
    def __init__(
        self,
        *,
        dbt_core_event_code: builtins.str | None = ...,
        action: builtins.str = ...,
        target: builtins.str = ...,
        description: builtins.str | None = ...,
        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 = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_dbt_core_event_code", b"_dbt_core_event_code", "_description", b"_description", "_file", b"_file", "_line", b"_line", "_phase", b"_phase", "_unique_id", b"_unique_id", "dbt_core_event_code", b"dbt_core_event_code", "description", b"description", "file", b"file", "line", b"line", "phase", b"phase", "unique_id", b"unique_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_dbt_core_event_code", b"_dbt_core_event_code", "_description", b"_description", "_file", b"_file", "_line", b"_line", "_phase", b"_phase", "_unique_id", b"_unique_id", "action", b"action", "dbt_core_event_code", b"dbt_core_event_code", "description", b"description", "file", b"file", "line", b"line", "phase", b"phase", "target", b"target", "unique_id", b"unique_id"]) -> 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["_description", b"_description"]) -> typing.Literal["description"] | 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["_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___ProgressMessage: typing_extensions.TypeAlias = ProgressMessage

@typing.final
class StateModifiedDiff(google.protobuf.message.Message):
    """Event emitted when comparing nodes/configs for state modification details."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    UNIQUE_ID_FIELD_NUMBER: builtins.int
    NODE_TYPE_OR_CATEGORY_FIELD_NUMBER: builtins.int
    CHECK_FIELD_NUMBER: builtins.int
    SELF_VALUE_FIELD_NUMBER: builtins.int
    OTHER_VALUE_FIELD_NUMBER: builtins.int
    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 id.
    """
    node_type_or_category: builtins.str
    """Node type or comparison category being evaluated."""
    check: builtins.str
    """Name of the specific comparison check."""
    self_value: builtins.str
    """Optional self/other values for the failed check."""
    other_value: builtins.str
    def __init__(
        self,
        *,
        unique_id: builtins.str | None = ...,
        node_type_or_category: builtins.str = ...,
        check: builtins.str = ...,
        self_value: builtins.str | None = ...,
        other_value: builtins.str | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["_other_value", b"_other_value", "_self_value", b"_self_value", "_unique_id", b"_unique_id", "other_value", b"other_value", "self_value", b"self_value", "unique_id", b"unique_id"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["_other_value", b"_other_value", "_self_value", b"_self_value", "_unique_id", b"_unique_id", "check", b"check", "node_type_or_category", b"node_type_or_category", "other_value", b"other_value", "self_value", b"self_value", "unique_id", b"unique_id"]) -> None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_other_value", b"_other_value"]) -> typing.Literal["other_value"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_self_value", b"_self_value"]) -> typing.Literal["self_value"] | None: ...
    @typing.overload
    def WhichOneof(self, oneof_group: typing.Literal["_unique_id", b"_unique_id"]) -> typing.Literal["unique_id"] | None: ...

Global___StateModifiedDiff: typing_extensions.TypeAlias = StateModifiedDiff
