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

import builtins
import collections.abc
import google.protobuf.descriptor
import google.protobuf.internal.containers
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

@typing.final
class GetProjectsRequest(google.protobuf.message.Message):
    """*
    This file defines messages and methods for managing projects.
    Projects contain configurations and metadata.

    *
    Empty request to retrieve all projects.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___GetProjectsRequest = GetProjectsRequest

@typing.final
class Project(google.protobuf.message.Message):
    """*
    A project represents a collection of intents.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    id: builtins.str
    """Unique ID of the project."""
    name: builtins.str
    """Name of the project."""
    def __init__(
        self,
        *,
        id: builtins.str = ...,
        name: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["id", b"id", "name", b"name"]) -> None: ...

global___Project = Project

@typing.final
class AddProjectRequest(google.protobuf.message.Message):
    """*
    Request to add a new project.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    EMBEDDING_MODEL_FIELD_NUMBER: builtins.int
    FALLBACK_MESSAGES_FIELD_NUMBER: builtins.int
    DEFAULT_THRESHOLD_FIELD_NUMBER: builtins.int
    TEAM_ID_FIELD_NUMBER: builtins.int
    DEBUG_MODE_FIELD_NUMBER: builtins.int
    EXCLUDE_OUTPUT_FROM_SEARCH_FIELD_NUMBER: builtins.int
    HISTORY_FIELD_NUMBER: builtins.int
    CONFIG_SLUG_FIELD_NUMBER: builtins.int
    SLUG_FIELD_NUMBER: builtins.int
    name: builtins.str
    """Name of the project."""
    description: builtins.str
    """Description of the project."""
    default_threshold: builtins.float
    """Default threshold for search queries."""
    team_id: builtins.str
    """ID of the associated team."""
    debug_mode: builtins.bool
    """Enables debug mode for the project."""
    exclude_output_from_search: builtins.bool
    """Exclude output from search queries."""
    config_slug: builtins.str
    """Configuration-specific identifier."""
    slug: builtins.str
    """URL-friendly identifier of the project."""
    @property
    def embedding_model(self) -> global___EmbeddingModel:
        """Model used for vectorization."""

    @property
    def fallback_messages(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FallbackMessage]:
        """Predefined fallback messages for different channels."""

    @property
    def history(self) -> global___History:
        """Metadata about creation and changes."""

    def __init__(
        self,
        *,
        name: builtins.str = ...,
        description: builtins.str = ...,
        embedding_model: global___EmbeddingModel | None = ...,
        fallback_messages: collections.abc.Iterable[global___FallbackMessage] | None = ...,
        default_threshold: builtins.float = ...,
        team_id: builtins.str = ...,
        debug_mode: builtins.bool = ...,
        exclude_output_from_search: builtins.bool = ...,
        history: global___History | None = ...,
        config_slug: builtins.str = ...,
        slug: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["embedding_model", b"embedding_model", "history", b"history"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["config_slug", b"config_slug", "debug_mode", b"debug_mode", "default_threshold", b"default_threshold", "description", b"description", "embedding_model", b"embedding_model", "exclude_output_from_search", b"exclude_output_from_search", "fallback_messages", b"fallback_messages", "history", b"history", "name", b"name", "slug", b"slug", "team_id", b"team_id"]) -> None: ...

global___AddProjectRequest = AddProjectRequest

@typing.final
class FallbackMessage(google.protobuf.message.Message):
    """*
    Represents a fallback message used when no direct answer or match is found.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

    class _ChannelEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[FallbackMessage._Channel.ValueType], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        CHAT: FallbackMessage._Channel.ValueType  # 0
        EMAIL: FallbackMessage._Channel.ValueType  # 1
        VOICE: FallbackMessage._Channel.ValueType  # 2

    class Channel(_Channel, metaclass=_ChannelEnumTypeWrapper): ...
    CHAT: FallbackMessage.Channel.ValueType  # 0
    EMAIL: FallbackMessage.Channel.ValueType  # 1
    VOICE: FallbackMessage.Channel.ValueType  # 2

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

        KEY_FIELD_NUMBER: builtins.int
        VALUE_FIELD_NUMBER: builtins.int
        key: builtins.str
        value: builtins.str
        def __init__(
            self,
            *,
            key: builtins.str = ...,
            value: builtins.str = ...,
        ) -> None: ...
        def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ...

    MESSAGE_FIELD_NUMBER: builtins.int
    CHANNEL_FIELD_NUMBER: builtins.int
    MESSAGE_MAP_FIELD_NUMBER: builtins.int
    message: builtins.str
    """The fallback message text."""
    channel: global___FallbackMessage.Channel.ValueType
    """The channel for which this message is intended (e.g., CHAT, EMAIL, VOICE)."""
    @property
    def message_map(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
        """Map for structured fallback messages."""

    def __init__(
        self,
        *,
        message: builtins.str = ...,
        channel: global___FallbackMessage.Channel.ValueType = ...,
        message_map: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["channel", b"channel", "message", b"message", "message_map", b"message_map"]) -> None: ...

global___FallbackMessage = FallbackMessage

@typing.final
class History(google.protobuf.message.Message):
    """*
    Stores metadata about the history of a project.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CREATOR_ID_FIELD_NUMBER: builtins.int
    CHANGED_BY_FIELD_NUMBER: builtins.int
    CREATION_DATE_FIELD_NUMBER: builtins.int
    LAST_EDIT_DATE_FIELD_NUMBER: builtins.int
    creator_id: builtins.str
    """IDs of the creator and last editor."""
    changed_by: builtins.str
    """ID of the last person who changed the project."""
    creation_date: builtins.str
    """Creation date of the project."""
    last_edit_date: builtins.str
    """Date of the last edit to the project."""
    def __init__(
        self,
        *,
        creator_id: builtins.str = ...,
        changed_by: builtins.str = ...,
        creation_date: builtins.str = ...,
        last_edit_date: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["changed_by", b"changed_by", "creation_date", b"creation_date", "creator_id", b"creator_id", "last_edit_date", b"last_edit_date"]) -> None: ...

global___History = History

@typing.final
class AddProjectResponse(google.protobuf.message.Message):
    """*
    Response message for project creation.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROJECT_ID_FIELD_NUMBER: builtins.int
    project_id: builtins.str
    """ID of the newly created project."""
    def __init__(
        self,
        *,
        project_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["project_id", b"project_id"]) -> None: ...

global___AddProjectResponse = AddProjectResponse

@typing.final
class RemoveProjectRequest(google.protobuf.message.Message):
    """*
    Request to remove a project.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROJECT_ID_FIELD_NUMBER: builtins.int
    project_id: builtins.str
    """ID of the project to remove."""
    def __init__(
        self,
        *,
        project_id: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["project_id", b"project_id"]) -> None: ...

global___RemoveProjectRequest = RemoveProjectRequest

@typing.final
class RemoveProjectResponse(google.protobuf.message.Message):
    """*
    Response message for project removal.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___RemoveProjectResponse = RemoveProjectResponse

@typing.final
class GetEmbeddingModelsRequest(google.protobuf.message.Message):
    """*
    Request to retrieve all available embedding models.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___GetEmbeddingModelsRequest = GetEmbeddingModelsRequest

@typing.final
class EmbeddingModel(google.protobuf.message.Message):
    """*
    Represents a model for vectorizing content.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    DIMENSIONS_FIELD_NUMBER: builtins.int
    BASE_LIBRARY_FIELD_NUMBER: builtins.int
    LOCALE_FIELD_NUMBER: builtins.int
    name: builtins.str
    """Name of the embedding model."""
    dimensions: builtins.int
    """Number of dimensions of the embedding."""
    base_library: builtins.str
    """Base library used for the embedding model."""
    @property
    def locale(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]:
        """List of supported locales for the embedding model."""

    def __init__(
        self,
        *,
        name: builtins.str = ...,
        dimensions: builtins.int = ...,
        base_library: builtins.str = ...,
        locale: collections.abc.Iterable[builtins.str] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["base_library", b"base_library", "dimensions", b"dimensions", "locale", b"locale", "name", b"name"]) -> None: ...

global___EmbeddingModel = EmbeddingModel

@typing.final
class UpdateProjectRequest(google.protobuf.message.Message):
    """*
    Request to update an existing project or create a new one if no project_id is provided.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROJECT_ID_FIELD_NUMBER: builtins.int
    NAME_FIELD_NUMBER: builtins.int
    DESCRIPTION_FIELD_NUMBER: builtins.int
    EMBEDDING_MODEL_FIELD_NUMBER: builtins.int
    FALLBACK_MESSAGES_FIELD_NUMBER: builtins.int
    DEFAULT_THRESHOLD_FIELD_NUMBER: builtins.int
    DEBUG_MODE_FIELD_NUMBER: builtins.int
    EXCLUDE_OUTPUT_FROM_SEARCH_FIELD_NUMBER: builtins.int
    HISTORY_FIELD_NUMBER: builtins.int
    CONFIG_SLUG_FIELD_NUMBER: builtins.int
    SLUG_FIELD_NUMBER: builtins.int
    project_id: builtins.str
    """ID of the project to update. If missing, a new project is created."""
    name: builtins.str
    """Name of the project."""
    description: builtins.str
    """Description of the project."""
    default_threshold: builtins.float
    """Default threshold for search queries."""
    debug_mode: builtins.bool
    """Enables debug mode for the project."""
    exclude_output_from_search: builtins.bool
    """Exclude output from search queries."""
    config_slug: builtins.str
    """Configuration-specific identifier."""
    slug: builtins.str
    """URL-friendly identifier of the project."""
    @property
    def embedding_model(self) -> global___EmbeddingModel:
        """Model used for vectorization."""

    @property
    def fallback_messages(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FallbackMessage]:
        """Predefined fallback messages for different channels."""

    @property
    def history(self) -> global___History:
        """Metadata about creation and changes."""

    def __init__(
        self,
        *,
        project_id: builtins.str = ...,
        name: builtins.str = ...,
        description: builtins.str = ...,
        embedding_model: global___EmbeddingModel | None = ...,
        fallback_messages: collections.abc.Iterable[global___FallbackMessage] | None = ...,
        default_threshold: builtins.float = ...,
        debug_mode: builtins.bool = ...,
        exclude_output_from_search: builtins.bool = ...,
        history: global___History | None = ...,
        config_slug: builtins.str = ...,
        slug: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["embedding_model", b"embedding_model", "history", b"history"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["config_slug", b"config_slug", "debug_mode", b"debug_mode", "default_threshold", b"default_threshold", "description", b"description", "embedding_model", b"embedding_model", "exclude_output_from_search", b"exclude_output_from_search", "fallback_messages", b"fallback_messages", "history", b"history", "name", b"name", "project_id", b"project_id", "slug", b"slug"]) -> None: ...

global___UpdateProjectRequest = UpdateProjectRequest

@typing.final
class UpdateProjectResponse(google.protobuf.message.Message):
    """*
    Response message for project update or creation.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    def __init__(
        self,
    ) -> None: ...

global___UpdateProjectResponse = UpdateProjectResponse
