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

from __future__ import annotations
import dataclasses
from .llmevaluationcriteriatype import LLMEvaluationCriteriaType
from dataclasses_json import Undefined, dataclass_json
from gantry import utils


@dataclass_json(undefined=Undefined.EXCLUDE)
@dataclasses.dataclass
class EvalCriteria:
    r"""Criteria that was used in running an evaluation
    These are stored on the evaluation object itself
    so that we know what criteria was used to run the evaluation. This
    is to future proof the eval in case the criteria is changed after the eval
    """
    criteria_type: LLMEvaluationCriteriaType = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('criteria_type') }})
    r"""An enumeration."""
    id: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('id') }})
    name: str = dataclasses.field(metadata={'dataclasses_json': { 'letter_case': utils.get_field_name('name') }})
    

