"""Code generated by Speakeasy (https://speakeasyapi.dev). DO NOT EDIT."""

from __future__ import annotations
import dataclasses
from .datasetresponse import DatasetResponse
from .finetunedmodelresponse import FineTunedModelResponse
from .metricresponse import MetricResponse
from .promptresponse import PromptResponse
from dataclasses_json import Undefined, dataclass_json
from honeyhive import utils
from typing import List, Optional


@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
class TaskUpdateQuery:
    r"""The request object for updating a task"""
    datasets: Optional[List[DatasetResponse]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('datasets'), 'exclude': lambda f: f is None }})
    r"""The new datasets for the task"""
    fine_tuned_models: Optional[List[FineTunedModelResponse]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('fine_tuned_models'), 'exclude': lambda f: f is None }})
    r"""The new fine-tuned models for the task"""
    metrics: Optional[List[MetricResponse]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('metrics'), 'exclude': lambda f: f is None }})
    r"""The new metrics for the task"""
    name: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('name'), 'exclude': lambda f: f is None }})
    r"""The new name of the task"""
    prompts: Optional[List[PromptResponse]] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('prompts'), 'exclude': lambda f: f is None }})
    r"""The new prompts for the task"""
    task_id: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('task_id'), 'exclude': lambda f: f is None }})
    r"""The id of the task being updated"""
    type: Optional[str] = dataclasses.field(default=None, metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('type'), 'exclude': lambda f: f is None }})
    r"""The new type of the task"""
    

