"""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 DatasetUpdateTypedDict(TypedDict):
    dataset_id: str
    r"""The unique identifier of the dataset being updated"""
    name: NotRequired[str]
    r"""Updated name for the dataset"""
    description: NotRequired[str]
    r"""Updated description for the dataset"""
    datapoints: NotRequired[List[str]]
    r"""Updated list of datapoint ids for the dataset - note the full list is needed"""
    linked_evals: NotRequired[List[str]]
    r"""Updated list of unique evaluation run ids to be associated with this dataset"""
    metadata: NotRequired[Dict[str, Any]]
    r"""Updated metadata to track for the dataset"""


class DatasetUpdate(BaseModel):
    dataset_id: str
    r"""The unique identifier of the dataset being updated"""

    name: Optional[str] = None
    r"""Updated name for the dataset"""

    description: Optional[str] = None
    r"""Updated description for the dataset"""

    datapoints: Optional[List[str]] = None
    r"""Updated list of datapoint ids for the dataset - note the full list is needed"""

    linked_evals: Optional[List[str]] = None
    r"""Updated list of unique evaluation run ids to be associated with this dataset"""

    metadata: Optional[Dict[str, Any]] = None
    r"""Updated metadata to track for the dataset"""
