# This file was auto-generated by Fern from our API Definition.

from ..core.unchecked_base_model import UncheckedBaseModel
import typing
from .fine_tuning_response_model_state_value import FineTuningResponseModelStateValue
from .verification_attempt_response import VerificationAttemptResponse
from .manual_verification_response import ManualVerificationResponse
from ..core.pydantic_utilities import IS_PYDANTIC_V2
import pydantic


class FineTuningResponse(UncheckedBaseModel):
    is_allowed_to_fine_tune: typing.Optional[bool] = None
    state: typing.Optional[typing.Dict[str, FineTuningResponseModelStateValue]] = None
    verification_failures: typing.Optional[typing.List[str]] = None
    verification_attempts_count: typing.Optional[int] = None
    manual_verification_requested: typing.Optional[bool] = None
    language: typing.Optional[str] = None
    progress: typing.Optional[typing.Dict[str, float]] = None
    message: typing.Optional[typing.Dict[str, str]] = None
    dataset_duration_seconds: typing.Optional[float] = None
    verification_attempts: typing.Optional[typing.List[VerificationAttemptResponse]] = None
    slice_ids: typing.Optional[typing.List[str]] = None
    manual_verification: typing.Optional[ManualVerificationResponse] = None
    max_verification_attempts: typing.Optional[int] = None
    next_max_verification_attempts_reset_unix_ms: typing.Optional[int] = None
    finetuning_state: typing.Optional[typing.Optional[typing.Any]] = None

    if IS_PYDANTIC_V2:
        model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)  # type: ignore # Pydantic v2
    else:

        class Config:
            frozen = True
            smart_union = True
            extra = pydantic.Extra.allow
