# noqa: D100, D101, D102, D103, D104, D107, D400, D415
# ruff: noqa
# type: ignore
# pylint: skip-file
# Generated by protoc - do not edit
# Standard
from collections.abc import Iterable as _Iterable
from collections.abc import Mapping as _Mapping
from typing import ClassVar as _ClassVar
from typing import Optional as _Optional
from typing import Union as _Union

# Third-Party
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import struct_pb2 as _struct_pb2
from google.protobuf.internal import containers as _containers
from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper

DESCRIPTOR: _descriptor.FileDescriptor

class GetPluginConfigRequest(_message.Message):
    __slots__ = ("name",)
    NAME_FIELD_NUMBER: _ClassVar[int]
    name: str
    def __init__(self, name: _Optional[str] = ...) -> None: ...

class GetPluginConfigResponse(_message.Message):
    __slots__ = ("found", "config")
    FOUND_FIELD_NUMBER: _ClassVar[int]
    CONFIG_FIELD_NUMBER: _ClassVar[int]
    found: bool
    config: _struct_pb2.Struct
    def __init__(self, found: bool = ..., config: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ...

class GetPluginConfigsRequest(_message.Message):
    __slots__ = ()
    def __init__(self) -> None: ...

class GetPluginConfigsResponse(_message.Message):
    __slots__ = ("configs",)
    CONFIGS_FIELD_NUMBER: _ClassVar[int]
    configs: _containers.RepeatedCompositeFieldContainer[_struct_pb2.Struct]
    def __init__(self, configs: _Optional[_Iterable[_Union[_struct_pb2.Struct, _Mapping]]] = ...) -> None: ...

class InvokeHookRequest(_message.Message):
    __slots__ = ("hook_type", "plugin_name", "payload", "context")
    HOOK_TYPE_FIELD_NUMBER: _ClassVar[int]
    PLUGIN_NAME_FIELD_NUMBER: _ClassVar[int]
    PAYLOAD_FIELD_NUMBER: _ClassVar[int]
    CONTEXT_FIELD_NUMBER: _ClassVar[int]
    hook_type: str
    plugin_name: str
    payload: _struct_pb2.Struct
    context: PluginContext
    def __init__(
        self,
        hook_type: _Optional[str] = ...,
        plugin_name: _Optional[str] = ...,
        payload: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...,
        context: _Optional[_Union[PluginContext, _Mapping]] = ...,
    ) -> None: ...

class InvokeHookResponse(_message.Message):
    __slots__ = ("plugin_name", "result", "context", "error", "result_base")
    PLUGIN_NAME_FIELD_NUMBER: _ClassVar[int]
    RESULT_FIELD_NUMBER: _ClassVar[int]
    CONTEXT_FIELD_NUMBER: _ClassVar[int]
    ERROR_FIELD_NUMBER: _ClassVar[int]
    RESULT_BASE_FIELD_NUMBER: _ClassVar[int]
    plugin_name: str
    result: _struct_pb2.Struct
    context: PluginContext
    error: PluginError
    result_base: PluginResultBase
    def __init__(
        self,
        plugin_name: _Optional[str] = ...,
        result: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...,
        context: _Optional[_Union[PluginContext, _Mapping]] = ...,
        error: _Optional[_Union[PluginError, _Mapping]] = ...,
        result_base: _Optional[_Union[PluginResultBase, _Mapping]] = ...,
    ) -> None: ...

class GlobalContext(_message.Message):
    __slots__ = ("request_id", "server_id", "tenant_id", "user_string", "user_struct", "metadata", "state")
    REQUEST_ID_FIELD_NUMBER: _ClassVar[int]
    SERVER_ID_FIELD_NUMBER: _ClassVar[int]
    TENANT_ID_FIELD_NUMBER: _ClassVar[int]
    USER_STRING_FIELD_NUMBER: _ClassVar[int]
    USER_STRUCT_FIELD_NUMBER: _ClassVar[int]
    METADATA_FIELD_NUMBER: _ClassVar[int]
    STATE_FIELD_NUMBER: _ClassVar[int]
    request_id: str
    server_id: str
    tenant_id: str
    user_string: str
    user_struct: _struct_pb2.Struct
    metadata: _struct_pb2.Struct
    state: _struct_pb2.Struct
    def __init__(
        self,
        request_id: _Optional[str] = ...,
        server_id: _Optional[str] = ...,
        tenant_id: _Optional[str] = ...,
        user_string: _Optional[str] = ...,
        user_struct: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...,
        metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...,
        state: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...,
    ) -> None: ...

class PluginContext(_message.Message):
    __slots__ = ("global_context", "state", "metadata")
    GLOBAL_CONTEXT_FIELD_NUMBER: _ClassVar[int]
    STATE_FIELD_NUMBER: _ClassVar[int]
    METADATA_FIELD_NUMBER: _ClassVar[int]
    global_context: GlobalContext
    state: _struct_pb2.Struct
    metadata: _struct_pb2.Struct
    def __init__(
        self,
        global_context: _Optional[_Union[GlobalContext, _Mapping]] = ...,
        state: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...,
        metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...,
    ) -> None: ...

class PluginViolation(_message.Message):
    __slots__ = ("reason", "description", "code", "plugin_name", "details", "mcp_error_code")
    REASON_FIELD_NUMBER: _ClassVar[int]
    DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
    CODE_FIELD_NUMBER: _ClassVar[int]
    PLUGIN_NAME_FIELD_NUMBER: _ClassVar[int]
    DETAILS_FIELD_NUMBER: _ClassVar[int]
    MCP_ERROR_CODE_FIELD_NUMBER: _ClassVar[int]
    reason: str
    description: str
    code: str
    plugin_name: str
    details: _struct_pb2.Struct
    mcp_error_code: int
    def __init__(
        self,
        reason: _Optional[str] = ...,
        description: _Optional[str] = ...,
        code: _Optional[str] = ...,
        plugin_name: _Optional[str] = ...,
        details: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...,
        mcp_error_code: _Optional[int] = ...,
    ) -> None: ...

class PluginResultBase(_message.Message):
    __slots__ = ("continue_processing", "violation", "metadata")
    CONTINUE_PROCESSING_FIELD_NUMBER: _ClassVar[int]
    VIOLATION_FIELD_NUMBER: _ClassVar[int]
    METADATA_FIELD_NUMBER: _ClassVar[int]
    continue_processing: bool
    violation: PluginViolation
    metadata: _struct_pb2.Struct
    def __init__(self, continue_processing: bool = ..., violation: _Optional[_Union[PluginViolation, _Mapping]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ...

class PluginError(_message.Message):
    __slots__ = ("message", "plugin_name", "code", "details", "mcp_error_code")
    MESSAGE_FIELD_NUMBER: _ClassVar[int]
    PLUGIN_NAME_FIELD_NUMBER: _ClassVar[int]
    CODE_FIELD_NUMBER: _ClassVar[int]
    DETAILS_FIELD_NUMBER: _ClassVar[int]
    MCP_ERROR_CODE_FIELD_NUMBER: _ClassVar[int]
    message: str
    plugin_name: str
    code: str
    details: _struct_pb2.Struct
    mcp_error_code: int
    def __init__(
        self,
        message: _Optional[str] = ...,
        plugin_name: _Optional[str] = ...,
        code: _Optional[str] = ...,
        details: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...,
        mcp_error_code: _Optional[int] = ...,
    ) -> None: ...

class HealthCheckRequest(_message.Message):
    __slots__ = ("service",)
    SERVICE_FIELD_NUMBER: _ClassVar[int]
    service: str
    def __init__(self, service: _Optional[str] = ...) -> None: ...

class HealthCheckResponse(_message.Message):
    __slots__ = ("status",)

    class ServingStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
        __slots__ = ()
        UNKNOWN: _ClassVar[HealthCheckResponse.ServingStatus]
        SERVING: _ClassVar[HealthCheckResponse.ServingStatus]
        NOT_SERVING: _ClassVar[HealthCheckResponse.ServingStatus]
        SERVICE_UNKNOWN: _ClassVar[HealthCheckResponse.ServingStatus]

    UNKNOWN: HealthCheckResponse.ServingStatus
    SERVING: HealthCheckResponse.ServingStatus
    NOT_SERVING: HealthCheckResponse.ServingStatus
    SERVICE_UNKNOWN: HealthCheckResponse.ServingStatus
    STATUS_FIELD_NUMBER: _ClassVar[int]
    status: HealthCheckResponse.ServingStatus
    def __init__(self, status: _Optional[_Union[HealthCheckResponse.ServingStatus, str]] = ...) -> None: ...
