"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""

from __future__ import annotations
from openrouter.types import BaseModel, UnrecognizedStr
from openrouter.utils import validate_open_enum
from pydantic.functional_validators import PlainValidator
from typing import Literal, Union
from typing_extensions import Annotated, TypedDict


class FrameImageImageURLTypedDict(TypedDict):
    url: str


class FrameImageImageURL(BaseModel):
    url: str


FrameImageType = Literal["image_url",]


FrameType = Union[
    Literal[
        "first_frame",
        "last_frame",
    ],
    UnrecognizedStr,
]
r"""Whether this image represents the first or last frame of the video"""


class FrameImageTypedDict(TypedDict):
    image_url: FrameImageImageURLTypedDict
    type: FrameImageType
    frame_type: FrameType
    r"""Whether this image represents the first or last frame of the video"""


class FrameImage(BaseModel):
    image_url: FrameImageImageURL

    type: FrameImageType

    frame_type: Annotated[FrameType, PlainValidator(validate_open_enum(False))]
    r"""Whether this image represents the first or last frame of the video"""
