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

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


class CreateDatapointRequestTypedDict(TypedDict):
    project: str
    r"""Name for the project to which the datapoint belongs"""
    inputs: 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]]
    r"""Expected output JSON object for the datapoint"""
    linked_event: NotRequired[str]
    r"""Event id for the event from which the datapoint was created"""
    linked_datasets: NotRequired[List[str]]
    r"""Ids of all datasets that include the datapoint"""
    metadata: NotRequired[Dict[str, Any]]
    r"""Any additional metadata for the datapoint"""


class CreateDatapointRequest(BaseModel):
    project: str
    r"""Name for the project to which the datapoint belongs"""

    inputs: Dict[str, Any]
    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
    r"""Expected output JSON object for the datapoint"""

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

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

    metadata: Optional[Dict[str, Any]] = None
    r"""Any additional metadata for the datapoint"""
