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

from ...core.pydantic_utilities import UniversalBaseModel
import typing
from .audio_source import AudioSource
import pydantic
from .transcription_request_info import TranscriptionRequestInfo
import uuid


class BatchTranscriptionRequest(UniversalBaseModel):
    audio_sources: typing.List[AudioSource] = pydantic.Field()
    """
    List of audio sources to transcribe with the same settings. Each item should have either audio_url or audio_file.
    """

    info: TranscriptionRequestInfo = pydantic.Field()
    """
    Shared transcription parameters for all audio files in the batch
    """

    batch_title: typing.Optional[str] = pydantic.Field(default=None)
    """
    Optional title for the batch. The system will first check for a title in the Audio Source itself. If no title is provided there, it defaults to batch title providded here with "- Batch Item N" appended.
    """

    batch_id: typing.Optional[uuid.UUID] = pydantic.Field(default=None)
    """
    Optional ID for the batch. If not provided, a UUID will be generated.
    """

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