"""
@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.message
import google.protobuf.timestamp_pb2
import qwak.model_descriptor.open_ai_descriptor_pb2
import sys

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

DESCRIPTOR: google.protobuf.descriptor.FileDescriptor

class Prompt(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    DEFAULT_VERSION_DEFINITION_FIELD_NUMBER: builtins.int
    METADATA_FIELD_NUMBER: builtins.int
    PROMPT_SPEC_FIELD_NUMBER: builtins.int
    name: builtins.str
    """Prompt name"""
    @property
    def default_version_definition(self) -> global___PromptVersionDefinition:
        """Prompt default version definition"""
    @property
    def metadata(self) -> global___PromptMetadata:
        """Prompt metadata"""
    @property
    def prompt_spec(self) -> global___PromptSpec:
        """Prompt spec"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        default_version_definition: global___PromptVersionDefinition | None = ...,
        metadata: global___PromptMetadata | None = ...,
        prompt_spec: global___PromptSpec | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["default_version_definition", b"default_version_definition", "metadata", b"metadata", "prompt_spec", b"prompt_spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["default_version_definition", b"default_version_definition", "metadata", b"metadata", "name", b"name", "prompt_spec", b"prompt_spec"]) -> None: ...

global___Prompt = Prompt

class PromptVersion(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    PROMPT_NAME_FIELD_NUMBER: builtins.int
    PROMPT_VERSION_DEFINITION_FIELD_NUMBER: builtins.int
    prompt_name: builtins.str
    """Prompt name"""
    @property
    def prompt_version_definition(self) -> global___PromptVersionDefinition:
        """Prompt version definition"""
    def __init__(
        self,
        *,
        prompt_name: builtins.str = ...,
        prompt_version_definition: global___PromptVersionDefinition | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["prompt_version_definition", b"prompt_version_definition"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["prompt_name", b"prompt_name", "prompt_version_definition", b"prompt_version_definition"]) -> None: ...

global___PromptVersion = PromptVersion

class PromptVersionDefinition(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    VERSION_NUMBER_FIELD_NUMBER: builtins.int
    VERSION_SPEC_FIELD_NUMBER: builtins.int
    VERSION_METADATA_FIELD_NUMBER: builtins.int
    version_number: builtins.int
    """Prompt version number"""
    @property
    def version_spec(self) -> global___PromptVersionSpec:
        """Prompt spec"""
    @property
    def version_metadata(self) -> global___PromptVersionMetadata:
        """Prompt version metadata"""
    def __init__(
        self,
        *,
        version_number: builtins.int = ...,
        version_spec: global___PromptVersionSpec | None = ...,
        version_metadata: global___PromptVersionMetadata | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["version_metadata", b"version_metadata", "version_spec", b"version_spec"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["version_metadata", b"version_metadata", "version_number", b"version_number", "version_spec", b"version_spec"]) -> None: ...

global___PromptVersionDefinition = PromptVersionDefinition

class PromptBrief(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    NAME_FIELD_NUMBER: builtins.int
    VERSION_BRIEFS_FIELD_NUMBER: builtins.int
    name: builtins.str
    """Prompt name"""
    @property
    def version_briefs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___PromptVersionBrief]:
        """Prompt version briefs"""
    def __init__(
        self,
        *,
        name: builtins.str = ...,
        version_briefs: collections.abc.Iterable[global___PromptVersionBrief] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["name", b"name", "version_briefs", b"version_briefs"]) -> None: ...

global___PromptBrief = PromptBrief

class PromptVersionBrief(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    VERSION_NUMBER_FIELD_NUMBER: builtins.int
    MODEL_PROVIDER_BRIEF_FIELD_NUMBER: builtins.int
    version_number: builtins.int
    """Prompt version number"""
    @property
    def model_provider_brief(self) -> global___ModelProviderBrief: ...
    def __init__(
        self,
        *,
        version_number: builtins.int = ...,
        model_provider_brief: global___ModelProviderBrief | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["model_provider_brief", b"model_provider_brief", "optional_model_provider_brief", b"optional_model_provider_brief"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["model_provider_brief", b"model_provider_brief", "optional_model_provider_brief", b"optional_model_provider_brief", "version_number", b"version_number"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["optional_model_provider_brief", b"optional_model_provider_brief"]) -> typing_extensions.Literal["model_provider_brief"] | None: ...

global___PromptVersionBrief = PromptVersionBrief

class ModelProviderBrief(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    MODEL_PROVIDER_CASE_NUMBER_FIELD_NUMBER: builtins.int
    model_provider_case_number: builtins.int
    """model provider case number as derived from `PromptModelDescriptor.ModelProviderCase`"""
    def __init__(
        self,
        *,
        model_provider_case_number: builtins.int = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["model_provider_case_number", b"model_provider_case_number"]) -> None: ...

global___ModelProviderBrief = ModelProviderBrief

class PromptSpec(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DESCRIPTION_FIELD_NUMBER: builtins.int
    description: builtins.str
    """Prompt description"""
    def __init__(
        self,
        *,
        description: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["description", b"description"]) -> None: ...

global___PromptSpec = PromptSpec

class PromptVersionSpec(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    DESCRIPTION_FIELD_NUMBER: builtins.int
    PROMPT_TEMPLATE_FIELD_NUMBER: builtins.int
    MODEL_DESCRIPTOR_FIELD_NUMBER: builtins.int
    description: builtins.str
    """Prompt version description"""
    @property
    def prompt_template(self) -> global___PromptTemplate:
        """The template of the prompt"""
    @property
    def model_descriptor(self) -> global___PromptModelDescriptor: ...
    def __init__(
        self,
        *,
        description: builtins.str = ...,
        prompt_template: global___PromptTemplate | None = ...,
        model_descriptor: global___PromptModelDescriptor | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["model_descriptor", b"model_descriptor", "optional_model_descriptor", b"optional_model_descriptor", "prompt_template", b"prompt_template"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["description", b"description", "model_descriptor", b"model_descriptor", "optional_model_descriptor", b"optional_model_descriptor", "prompt_template", b"prompt_template"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["optional_model_descriptor", b"optional_model_descriptor"]) -> typing_extensions.Literal["model_descriptor"] | None: ...

global___PromptVersionSpec = PromptVersionSpec

class PromptTemplate(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CHAT_PROMPT_TEMPLATE_FIELD_NUMBER: builtins.int
    @property
    def chat_prompt_template(self) -> global___ChatPromptTemplate:
        """Chat prompt template"""
    def __init__(
        self,
        *,
        chat_prompt_template: global___ChatPromptTemplate | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["chat_prompt_template", b"chat_prompt_template", "type", b"type"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["chat_prompt_template", b"chat_prompt_template", "type", b"type"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["type", b"type"]) -> typing_extensions.Literal["chat_prompt_template"] | None: ...

global___PromptTemplate = PromptTemplate

class ChatPromptTemplate(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CHAT_MESSAGES_FIELD_NUMBER: builtins.int
    @property
    def chat_messages(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ChatMessage]:
        """Templated chat message"""
    def __init__(
        self,
        *,
        chat_messages: collections.abc.Iterable[global___ChatMessage] | None = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["chat_messages", b"chat_messages"]) -> None: ...

global___ChatPromptTemplate = ChatPromptTemplate

class ChatMessage(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    ROLE_FIELD_NUMBER: builtins.int
    TEMPLATE_FIELD_NUMBER: builtins.int
    @property
    def role(self) -> global___PromptMessageRole:
        """Role"""
    @property
    def template(self) -> global___ChatMessageTemplate:
        """Chat message template"""
    def __init__(
        self,
        *,
        role: global___PromptMessageRole | None = ...,
        template: global___ChatMessageTemplate | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["role", b"role", "template", b"template"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["role", b"role", "template", b"template"]) -> None: ...

global___ChatMessage = ChatMessage

class ChatMessageTemplate(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TEXT_TEMPLATE_FIELD_NUMBER: builtins.int
    @property
    def text_template(self) -> global___TextTemplate:
        """Text message template"""
    def __init__(
        self,
        *,
        text_template: global___TextTemplate | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["text_template", b"text_template", "type", b"type"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["text_template", b"text_template", "type", b"type"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["type", b"type"]) -> typing_extensions.Literal["text_template"] | None: ...

global___ChatMessageTemplate = ChatMessageTemplate

class TextTemplate(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    TEMPLATE_FIELD_NUMBER: builtins.int
    template: builtins.str
    """Text template"""
    def __init__(
        self,
        *,
        template: builtins.str = ...,
    ) -> None: ...
    def ClearField(self, field_name: typing_extensions.Literal["template", b"template"]) -> None: ...

global___TextTemplate = TextTemplate

class PromptMessageRole(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    HUMAN_ROLE_FIELD_NUMBER: builtins.int
    SYSTEM_ROLE_FIELD_NUMBER: builtins.int
    AI_ROLE_FIELD_NUMBER: builtins.int
    @property
    def human_role(self) -> global___HumanPromptMessageRole:
        """Human role"""
    @property
    def system_role(self) -> global___SystemPromptMessageRole:
        """System role"""
    @property
    def ai_role(self) -> global___AIPromptMessageRole:
        """AI role"""
    def __init__(
        self,
        *,
        human_role: global___HumanPromptMessageRole | None = ...,
        system_role: global___SystemPromptMessageRole | None = ...,
        ai_role: global___AIPromptMessageRole | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["ai_role", b"ai_role", "human_role", b"human_role", "role", b"role", "system_role", b"system_role"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["ai_role", b"ai_role", "human_role", b"human_role", "role", b"role", "system_role", b"system_role"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["role", b"role"]) -> typing_extensions.Literal["human_role", "system_role", "ai_role"] | None: ...

global___PromptMessageRole = PromptMessageRole

class HumanPromptMessageRole(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___HumanPromptMessageRole = HumanPromptMessageRole

class SystemPromptMessageRole(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___SystemPromptMessageRole = SystemPromptMessageRole

class AIPromptMessageRole(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

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

global___AIPromptMessageRole = AIPromptMessageRole

class PromptModelDescriptor(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    OPEN_AI_PROVIDER_FIELD_NUMBER: builtins.int
    @property
    def open_ai_provider(self) -> global___PromptOpenAIProvider:
        """OpenAI provider"""
    def __init__(
        self,
        *,
        open_ai_provider: global___PromptOpenAIProvider | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["model_provider", b"model_provider", "open_ai_provider", b"open_ai_provider"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["model_provider", b"model_provider", "open_ai_provider", b"open_ai_provider"]) -> None: ...
    def WhichOneof(self, oneof_group: typing_extensions.Literal["model_provider", b"model_provider"]) -> typing_extensions.Literal["open_ai_provider"] | None: ...

global___PromptModelDescriptor = PromptModelDescriptor

class PromptOpenAIProvider(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    OPEN_AI_MODEL_DESCRIPTOR_FIELD_NUMBER: builtins.int
    @property
    def open_ai_model_descriptor(self) -> qwak.model_descriptor.open_ai_descriptor_pb2.OpenAIModelDescriptor:
        """OpenAI model descriptor"""
    def __init__(
        self,
        *,
        open_ai_model_descriptor: qwak.model_descriptor.open_ai_descriptor_pb2.OpenAIModelDescriptor | None = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["open_ai_model_descriptor", b"open_ai_model_descriptor"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["open_ai_model_descriptor", b"open_ai_model_descriptor"]) -> None: ...

global___PromptOpenAIProvider = PromptOpenAIProvider

class PromptMetadata(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CREATED_AT_FIELD_NUMBER: builtins.int
    CREATED_BY_FIELD_NUMBER: builtins.int
    @property
    def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """When the prompt was created"""
    created_by: builtins.str
    """User who created the prompt"""
    def __init__(
        self,
        *,
        created_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        created_by: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["created_at", b"created_at"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "created_by", b"created_by"]) -> None: ...

global___PromptMetadata = PromptMetadata

class PromptVersionMetadata(google.protobuf.message.Message):
    DESCRIPTOR: google.protobuf.descriptor.Descriptor

    CREATED_AT_FIELD_NUMBER: builtins.int
    CREATED_BY_FIELD_NUMBER: builtins.int
    @property
    def created_at(self) -> google.protobuf.timestamp_pb2.Timestamp:
        """When the prompt version was created"""
    created_by: builtins.str
    """User who created the prompt version"""
    def __init__(
        self,
        *,
        created_at: google.protobuf.timestamp_pb2.Timestamp | None = ...,
        created_by: builtins.str = ...,
    ) -> None: ...
    def HasField(self, field_name: typing_extensions.Literal["created_at", b"created_at"]) -> builtins.bool: ...
    def ClearField(self, field_name: typing_extensions.Literal["created_at", b"created_at", "created_by", b"created_by"]) -> None: ...

global___PromptVersionMetadata = PromptVersionMetadata
