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

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


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


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


class CreateJudgeRequestTypedDict(TypedDict):
    name: str
    description: str
    model_name: str
    output: CreateJudgeRequestOutputTypedDict
    instructions: str
    tools: List[str]


class CreateJudgeRequest(BaseModel):
    name: str

    description: str

    model_name: str

    output: CreateJudgeRequestOutput

    instructions: str

    tools: List[str]
