# This file was auto-generated by Fern from our API Definition.

import typing

import pydantic
from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel


class ReturnPrompt(UniversalBaseModel):
    """
    A specific prompt version returned from the server
    """

    created_on: int = pydantic.Field()
    """
    Time at which the Prompt was created. Measured in seconds since the Unix epoch.
    """

    id: str = pydantic.Field()
    """
    Identifier for a Prompt. Formatted as a UUID.
    """

    modified_on: int = pydantic.Field()
    """
    Time at which the Prompt was last modified. Measured in seconds since the Unix epoch.
    """

    name: str = pydantic.Field()
    """
    Name applied to all versions of a particular Prompt.
    """

    text: str = pydantic.Field()
    """
    Instructions used to shape EVI's behavior, responses, and style.
    
    You can use the Prompt to define a specific goal or role for EVI, specifying how it should act or what it should focus on during the conversation. For example, EVI can be instructed to act as a customer support representative, a fitness coach, or a travel advisor, each with its own set of behaviors and response styles. For help writing a system prompt, see our [Prompting Guide](/docs/speech-to-speech-evi/guides/prompting).
    """

    version: int = pydantic.Field()
    """
    Version number for a Prompt. Version numbers should be integers. The combination of configId and version number is unique.
    """

    version_description: typing.Optional[str] = pydantic.Field(default=None)
    """
    An optional description of the Prompt version.
    """

    version_type: str = pydantic.Field()
    """
    Indicates whether this prompt is using a fixed version number or auto-updating to the latest version. Values from the VersionType enum.
    """

    if IS_PYDANTIC_V2:
        model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)  # type: ignore # Pydantic v2
    else:

        class Config:
            frozen = True
            smart_union = True
            extra = pydantic.Extra.allow
