"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from honeyhive.types import BaseModel
import pydantic
from typing import Any, Dict, List, Optional, TypedDict
from typing_extensions import Annotated, NotRequired


class DatapointTypedDict(TypedDict):
    id: NotRequired[str]
    r"""UUID for the datapoint"""
    tenant: NotRequired[str]
    project_id: NotRequired[str]
    r"""UUID for the project where the datapoint is stored"""
    created_at: NotRequired[str]
    updated_at: NotRequired[str]
    inputs: NotRequired[Dict[str, Any]]
    r"""Arbitrary JSON object containing the inputs for the datapoint"""
    history: NotRequired[List[Dict[str, Any]]]
    r"""Conversation history associated with the datapoint"""
    ground_truth: NotRequired[Dict[str, Any]]
    linked_event: NotRequired[str]
    r"""Event id for the event from which the datapoint was created"""
    linked_evals: NotRequired[List[str]]
    r"""Ids of evaluations where the datapoint is included"""
    linked_datasets: NotRequired[List[str]]
    r"""Ids of all datasets that include the datapoint"""
    saved: NotRequired[bool]
    type: NotRequired[str]
    r"""session or event - specify the type of data"""
    metadata: NotRequired[Dict[str, Any]]


class Datapoint(BaseModel):
    id: Annotated[Optional[str], pydantic.Field(alias="_id")] = None
    r"""UUID for the datapoint"""

    tenant: Optional[str] = None

    project_id: Optional[str] = None
    r"""UUID for the project where the datapoint is stored"""

    created_at: Optional[str] = None

    updated_at: Optional[str] = None

    inputs: Optional[Dict[str, Any]] = None
    r"""Arbitrary JSON object containing the inputs for the datapoint"""

    history: Optional[List[Dict[str, Any]]] = None
    r"""Conversation history associated with the datapoint"""

    ground_truth: Optional[Dict[str, Any]] = None

    linked_event: Optional[str] = None
    r"""Event id for the event from which the datapoint was created"""

    linked_evals: Optional[List[str]] = None
    r"""Ids of evaluations where the datapoint is included"""

    linked_datasets: Optional[List[str]] = None
    r"""Ids of all datasets that include the datapoint"""

    saved: Optional[bool] = None

    type: Optional[str] = None
    r"""session or event - specify the type of data"""

    metadata: Optional[Dict[str, Any]] = None
