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

from __future__ import annotations
from enum import Enum
from honeyhive.types import BaseModel
from typing import List, Optional, TypedDict
from typing_extensions import NotRequired


class DatasetType(str, Enum):
    r"""What the dataset is to be used for - \"evaluation\" or \"fine-tuning\" """

    EVALUATION = "evaluation"
    FINE_TUNING = "fine-tuning"


class PipelineType(str, Enum):
    r"""The type of data included in the dataset - \"event\" (default) or \"session\" """

    EVENT = "event"
    SESSION = "session"


class DatasetTypedDict(TypedDict):
    project: NotRequired[str]
    r"""UUID of the project associated with this dataset"""
    name: NotRequired[str]
    r"""Name of the dataset"""
    description: NotRequired[str]
    r"""A description for the dataset"""
    type: NotRequired[DatasetType]
    r"""What the dataset is to be used for - \"evaluation\" or \"fine-tuning\" """
    datapoints: NotRequired[List[str]]
    r"""List of unique datapoint ids to be included in this dataset"""
    num_points: NotRequired[int]
    r"""Number of datapoints included in the dataset"""
    linked_evals: NotRequired[List[str]]
    saved: NotRequired[bool]
    r"""Whether the dataset has been saved or detected"""
    pipeline_type: NotRequired[PipelineType]
    r"""The type of data included in the dataset - \"event\" (default) or \"session\" """
    created_at: NotRequired[str]
    r"""Timestamp of when the dataset was created"""
    updated_at: NotRequired[str]
    r"""Timestamp of when the dataset was last updated"""


class Dataset(BaseModel):
    project: Optional[str] = None
    r"""UUID of the project associated with this dataset"""

    name: Optional[str] = None
    r"""Name of the dataset"""

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

    type: Optional[DatasetType] = None
    r"""What the dataset is to be used for - \"evaluation\" or \"fine-tuning\" """

    datapoints: Optional[List[str]] = None
    r"""List of unique datapoint ids to be included in this dataset"""

    num_points: Optional[int] = None
    r"""Number of datapoints included in the dataset"""

    linked_evals: Optional[List[str]] = None

    saved: Optional[bool] = None
    r"""Whether the dataset has been saved or detected"""

    pipeline_type: Optional[PipelineType] = None
    r"""The type of data included in the dataset - \"event\" (default) or \"session\" """

    created_at: Optional[str] = None
    r"""Timestamp of when the dataset was created"""

    updated_at: Optional[str] = None
    r"""Timestamp of when the dataset was last updated"""
