"""
@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.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 AgentToolCallPermissionCheck(google.protobuf.message.Message):
    """Possible values for AgentToolCallPermissionCheck.response_type:
      "approved"       - user approved the tool call
      "rejected"       - user rejected the tool call
      "approved_session" - user approved the tool for the rest of the session

    Fired when a user approves or rejects a tool call proposed by the agent.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ENRICHMENT_FIELD_NUMBER: builtins.int
    CTX_FIELD_NUMBER: builtins.int
    COPILOT_REQUEST_ID_FIELD_NUMBER: builtins.int
    THREAD_ID_FIELD_NUMBER: builtins.int
    TOOL_NAME_FIELD_NUMBER: builtins.int
    TOOL_PARAMETERS_FIELD_NUMBER: builtins.int
    RESPONSE_TYPE_FIELD_NUMBER: builtins.int
    CALL_ID_FIELD_NUMBER: builtins.int
    copilot_request_id: builtins.str
    """Identifies a single agent request/trace (a conversation consists of multiple traces)"""
    thread_id: builtins.str
    """Agent thread for multi-turn correlation"""
    tool_name: builtins.str
    """Which tool was proposed (e.g. "write_file", "execute_sql")"""
    tool_parameters: builtins.str
    """JSON-encoded tool call parameters"""
    response_type: builtins.str
    """User's decision; see response_type values documented above"""
    call_id: builtins.str
    """Model-generated tool call identifier (e.g. "toolu_01abc...")
    Unique per tool invocation within a run; useful for deduplication
    and joining with backend ToolCalled events.
    """
    @property
    def enrichment(self) -> dbtlabs.proto.public.v1.events.vortex_pb2.VortexMessageEnrichment:
        """Server enrichment for this event"""

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

    def __init__(
        self,
        *,
        enrichment: dbtlabs.proto.public.v1.events.vortex_pb2.VortexMessageEnrichment | None = ...,
        ctx: dbtlabs.proto.public.v1.common.vortex_telemetry_contexts_pb2.VortexTelemetryDbtCloudContext | None = ...,
        copilot_request_id: builtins.str = ...,
        thread_id: builtins.str = ...,
        tool_name: builtins.str = ...,
        tool_parameters: builtins.str = ...,
        response_type: builtins.str = ...,
        call_id: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["ctx", b"ctx", "enrichment", b"enrichment"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["call_id", b"call_id", "copilot_request_id", b"copilot_request_id", "ctx", b"ctx", "enrichment", b"enrichment", "response_type", b"response_type", "thread_id", b"thread_id", "tool_name", b"tool_name", "tool_parameters", b"tool_parameters"]) -> None: ...

Global___AgentToolCallPermissionCheck: typing_extensions.TypeAlias = AgentToolCallPermissionCheck
