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

import datetime as dt
import typing
import uuid

import pydantic
import typing_extensions
from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
from ...core.serialization import FieldMetadata


class ExportedCopilot(UniversalBaseModel):
    id: uuid.UUID = pydantic.Field()
    """
    The unique identifier of the copilot.
    """

    name: str = pydantic.Field()
    """
    The name of the deployed copilot version.
    """

    description: str = pydantic.Field()
    """
    The description of the deployed copilot version.
    """

    model_configuration: typing_extensions.Annotated[typing.Any, FieldMetadata(alias="modelConfiguration")] = (
        pydantic.Field()
    )
    """
    Model configuration including provider, model name, temperature, and other settings.
    """

    ai_endpoint_configuration: typing_extensions.Annotated[
        typing.Any, FieldMetadata(alias="aiEndpointConfiguration")
    ] = pydantic.Field()
    """
    AI endpoint configuration including base URL and authentication details.
    """

    tool_configurations: typing_extensions.Annotated[typing.Any, FieldMetadata(alias="toolConfigurations")] = (
        pydantic.Field()
    )
    """
    List of tool configurations available to the copilot.
    """

    inputs: typing.Any = pydantic.Field()
    """
    Input variable configurations for the copilot.
    """

    deployment_configuration: typing_extensions.Annotated[
        typing.Any, FieldMetadata(alias="deploymentConfiguration")
    ] = pydantic.Field()
    """
    Deployment settings and configuration.
    """

    agent_created_datetime: typing_extensions.Annotated[dt.datetime, FieldMetadata(alias="agentCreatedDatetime")] = (
        pydantic.Field()
    )
    """
    ISO 8601 timestamp when the copilot was originally created.
    """

    version_created_datetime: typing_extensions.Annotated[
        dt.datetime, FieldMetadata(alias="versionCreatedDatetime")
    ] = pydantic.Field()
    """
    ISO 8601 timestamp when the deployed version was created.
    """

    is_deployed: typing_extensions.Annotated[bool, FieldMetadata(alias="isDeployed")] = pydantic.Field()
    """
    Indicates if the copilot is currently deployed (always true for export results).
    """

    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
