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

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 google.protobuf.timestamp_pb2
import sys
import typing
import yandex.cloud.ai.assistants.v1.searchindex.search_index_pb2
import yandex.cloud.ai.files.v1.file_pb2

if sys.version_info >= (3, 10):
    import typing as typing_extensions
else:
    import typing_extensions

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

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

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

    class _MessageStatusEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Message._MessageStatus.ValueType], builtins.type):
        DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor
        MESSAGE_STATUS_UNSPECIFIED: Message._MessageStatus.ValueType  # 0
        """Unspecified message status."""
        COMPLETED: Message._MessageStatus.ValueType  # 1
        """Message was successfully created by a user or generated by an assistant."""
        TRUNCATED: Message._MessageStatus.ValueType  # 2
        """Message generation was truncated due to reaching the maximum allowed number of tokens."""
        FILTERED_CONTENT: Message._MessageStatus.ValueType  # 3
        """Message generation was stopped because potentially sensitive content was detected either in the prompt or in the generated response."""

    class MessageStatus(_MessageStatus, metaclass=_MessageStatusEnumTypeWrapper):
        """Enum representing the status of a message."""

    MESSAGE_STATUS_UNSPECIFIED: Message.MessageStatus.ValueType  # 0
    """Unspecified message status."""
    COMPLETED: Message.MessageStatus.ValueType  # 1
    """Message was successfully created by a user or generated by an assistant."""
    TRUNCATED: Message.MessageStatus.ValueType  # 2
    """Message generation was truncated due to reaching the maximum allowed number of tokens."""
    FILTERED_CONTENT: Message.MessageStatus.ValueType  # 3
    """Message generation was stopped because potentially sensitive content was detected either in the prompt or in the generated response."""

    @typing.final
    class LabelsEntry(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: ...

    ID_FIELD_NUMBER: builtins.int
    THREAD_ID_FIELD_NUMBER: builtins.int
    CREATED_BY_FIELD_NUMBER: builtins.int
    CREATED_AT_FIELD_NUMBER: builtins.int
    AUTHOR_FIELD_NUMBER: builtins.int
    LABELS_FIELD_NUMBER: builtins.int
    CONTENT_FIELD_NUMBER: builtins.int
    STATUS_FIELD_NUMBER: builtins.int
    CITATIONS_FIELD_NUMBER: builtins.int
    id: builtins.str
    """Unique identifier of the message."""
    thread_id: builtins.str
    """ID of the thread that this message belongs to."""
    created_by: builtins.str
    """Identifier of the subject who created this message."""
    status: global___Message.MessageStatus.ValueType
    """Status of the message."""
    @property
    def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """Timestamp representing when the message was created."""

    @property
    def author(self) -> global___Author:
        """Author of the message, containing details about the message's creator."""

    @property
    def labels(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
        """Set of key-value pairs that can be used to organize and categorize the message."""

    @property
    def content(self) -> global___MessageContent:
        """Content of the message."""

    @property
    def citations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Citation]:
        """List of citations used to generate the message."""

    def __init__(
        self,
        *,
        id: builtins.str = ...,
        thread_id: builtins.str = ...,
        created_by: builtins.str = ...,
        created_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        author: global___Author | None = ...,
        labels: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        content: global___MessageContent | None = ...,
        status: global___Message.MessageStatus.ValueType = ...,
        citations: collections.abc.Iterable[global___Citation] | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["author", b"author", "content", b"content", "created_at", b"created_at"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["author", b"author", "citations", b"citations", "content", b"content", "created_at", b"created_at", "created_by", b"created_by", "id", b"id", "labels", b"labels", "status", b"status", "thread_id", b"thread_id"]) -> None: ...

global___Message = Message

@typing.final
class MessageContent(google.protobuf.message.Message):
    """Represents the content of a message, which can consist of multiple parts."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONTENT_FIELD_NUMBER: builtins.int
    @property
    def content(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ContentPart]:
        """A list of content parts that make up the message."""

    def __init__(
        self,
        *,
        content: collections.abc.Iterable[global___ContentPart] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["content", b"content"]) -> None: ...

global___MessageContent = MessageContent

@typing.final
class MessageData(google.protobuf.message.Message):
    """Represents the data required to create or initialize a message in a thread.
    This message is used, for example, to initialize a thread with some messages upon its creation.
    """

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    @typing.final
    class LabelsEntry(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: ...

    AUTHOR_FIELD_NUMBER: builtins.int
    LABELS_FIELD_NUMBER: builtins.int
    CONTENT_FIELD_NUMBER: builtins.int
    @property
    def author(self) -> global___Author:
        """Author of the message, containing details about the message's creator."""

    @property
    def labels(self) -> google.protobuf.internal.containers.ScalarMap[builtins.str, builtins.str]:
        """Set of key-value pairs that can be used to organize and categorize the message."""

    @property
    def content(self) -> global___MessageContent:
        """Content of the message."""

    def __init__(
        self,
        *,
        author: global___Author | None = ...,
        labels: collections.abc.Mapping[builtins.str, builtins.str] | None = ...,
        content: global___MessageContent | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["author", b"author", "content", b"content"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["author", b"author", "content", b"content", "labels", b"labels"]) -> None: ...

global___MessageData = MessageData

@typing.final
class Text(google.protobuf.message.Message):
    """Text represents a textual content part of a message."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONTENT_FIELD_NUMBER: builtins.int
    content: builtins.str
    """Text content of the message."""
    def __init__(
        self,
        *,
        content: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["content", b"content"]) -> None: ...

global___Text = Text

@typing.final
class ContentPart(google.protobuf.message.Message):
    """ContentPart represents an individual part of the message content, which can be of various types."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TEXT_FIELD_NUMBER: builtins.int
    @property
    def text(self) -> global___Text:
        """Text content of the message part."""

    def __init__(
        self,
        *,
        text: global___Text | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["PartType", b"PartType", "text", b"text"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["PartType", b"PartType", "text", b"text"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["PartType", b"PartType"]) -> typing.Literal["text"] | None: ...

global___ContentPart = ContentPart

@typing.final
class Author(google.protobuf.message.Message):
    """Author of the message, containing details about the message's creator."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ID_FIELD_NUMBER: builtins.int
    ROLE_FIELD_NUMBER: builtins.int
    id: builtins.str
    """Unique identifier of the author. This could be either the user's ID or the assistant's ID, depending on the role."""
    role: builtins.str
    """Role of the author, indicating whether the message was created by a "user" or an "assistant"."""
    def __init__(
        self,
        *,
        id: builtins.str = ...,
        role: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["id", b"id", "role", b"role"]) -> None: ...

global___Author = Author

@typing.final
class Citation(google.protobuf.message.Message):
    """Represents a citation used for generating a message."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SOURCES_FIELD_NUMBER: builtins.int
    @property
    def sources(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Source]:
        """List of sources for citation."""

    def __init__(
        self,
        *,
        sources: collections.abc.Iterable[global___Source] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["sources", b"sources"]) -> None: ...

global___Citation = Citation

@typing.final
class Source(google.protobuf.message.Message):
    """Represents a source used for generating a message citation."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CHUNK_FIELD_NUMBER: builtins.int
    @property
    def chunk(self) -> global___FileChunk:
        """File chunk source."""

    def __init__(
        self,
        *,
        chunk: global___FileChunk | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["SourceType", b"SourceType", "chunk", b"chunk"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["SourceType", b"SourceType", "chunk", b"chunk"]) -> None: ...
    def WhichOneof(self, oneof_group: typing.Literal["SourceType", b"SourceType"]) -> typing.Literal["chunk"] | None: ...

global___Source = Source

@typing.final
class FileChunk(google.protobuf.message.Message):
    """FileChunk represents a chunk of a file used as a source."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    SEARCH_INDEX_FIELD_NUMBER: builtins.int
    SOURCE_FILE_FIELD_NUMBER: builtins.int
    CONTENT_FIELD_NUMBER: builtins.int
    @property
    def search_index(self) -> yandex.cloud.ai.assistants.v1.searchindex.search_index_pb2.SearchIndex:
        """Search index associated with the file chunk."""

    @property
    def source_file(self) -> yandex.cloud.ai.files.v1.file_pb2.File:
        """The original file from which the chunk is derived."""

    @property
    def content(self) -> global___ChunkContent:
        """Content of the file chunk."""

    def __init__(
        self,
        *,
        search_index: yandex.cloud.ai.assistants.v1.searchindex.search_index_pb2.SearchIndex | None = ...,
        source_file: yandex.cloud.ai.files.v1.file_pb2.File | None = ...,
        content: global___ChunkContent | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing.Literal["content", b"content", "search_index", b"search_index", "source_file", b"source_file"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing.Literal["content", b"content", "search_index", b"search_index", "source_file", b"source_file"]) -> None: ...

global___FileChunk = FileChunk

@typing.final
class ChunkContent(google.protobuf.message.Message):
    """Represents the content of a file chunk."""

    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CONTENT_FIELD_NUMBER: builtins.int
    @property
    def content(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ContentPart]:
        """A list of content parts that make up the chunk."""

    def __init__(
        self,
        *,
        content: collections.abc.Iterable[global___ContentPart] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing.Literal["content", b"content"]) -> None: ...

global___ChunkContent = ChunkContent
