"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
# @generated-id: f6ad6fb901a0

from __future__ import annotations
from .judgeclassificationoutput import (
    JudgeClassificationOutput,
    JudgeClassificationOutputTypedDict,
)
from .judgeregressionoutput import JudgeRegressionOutput, JudgeRegressionOutputTypedDict
from mistralai.client.types import BaseModel
from pydantic import Field
from typing import List, Union
from typing_extensions import Annotated, TypeAliasType, TypedDict


UpdateJudgeRequestOutputTypedDict = TypeAliasType(
    "UpdateJudgeRequestOutputTypedDict",
    Union[JudgeClassificationOutputTypedDict, JudgeRegressionOutputTypedDict],
)


UpdateJudgeRequestOutput = Annotated[
    Union[JudgeClassificationOutput, JudgeRegressionOutput], Field(discriminator="type")
]


class UpdateJudgeRequestTypedDict(TypedDict):
    name: str
    description: str
    model_name: str
    output: UpdateJudgeRequestOutputTypedDict
    instructions: str
    tools: List[str]


class UpdateJudgeRequest(BaseModel):
    name: str

    description: str

    model_name: str

    output: UpdateJudgeRequestOutput

    instructions: str

    tools: List[str]
