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

import datetime as dt
import typing
import uuid

import pydantic

from ...core.pydantic_utilities import UniversalBaseModel
from .batch_file_status import BatchFileStatus


class BatchFileUploadResponse(UniversalBaseModel):
    """
    Response after uploading a batch manifest.
    """

    batch_file_id: uuid.UUID = pydantic.Field()
    """
    Use this ID when calling [Create Batch Transcription](/api-reference/batch-transcribe/create-batch-transcription) with standard mode
    """

    item_count: int = pydantic.Field()
    """
    Number of audio sources in the manifest
    """

    size_bytes: int = pydantic.Field()
    """
    Size of the manifest in bytes
    """

    checksum: typing.Optional[str] = pydantic.Field(default=None)
    """
    SHA256 checksum of the manifest
    """

    created_at: dt.datetime = pydantic.Field()
    """
    Upload timestamp
    """

    status: BatchFileStatus = pydantic.Field()
    """
    Validation status. Wait for `VALID` before starting a batch.
    """

    validation_errors: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
    """
    If status is `INVALID`, lists what's wrong with the manifest
    """

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