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

from __future__ import annotations
from tofupilot.v2.types import BaseModel
from tofupilot.v2.utils import FieldMetadata, PathParamMetadata, RequestMetadata
from typing import List, Optional
from typing_extensions import Annotated, NotRequired, TypedDict


class RunUpdateRequestBodyTypedDict(TypedDict):
    attachments: NotRequired[List[str]]
    r"""Array of upload IDs to attach to the run."""


class RunUpdateRequestBody(BaseModel):
    attachments: Optional[List[str]] = None
    r"""Array of upload IDs to attach to the run."""


class RunUpdateRequestTypedDict(TypedDict):
    id: str
    r"""Unique identifier of the run to update."""
    request_body: RunUpdateRequestBodyTypedDict


class RunUpdateRequest(BaseModel):
    id: Annotated[
        str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
    ]
    r"""Unique identifier of the run to update."""

    request_body: Annotated[
        RunUpdateRequestBody,
        FieldMetadata(request=RequestMetadata(media_type="application/json")),
    ]


class RunUpdateResponseTypedDict(TypedDict):
    r"""Run attachments updated successfully"""

    id: str
    r"""Unique identifier of the updated run."""


class RunUpdateResponse(BaseModel):
    r"""Run attachments updated successfully"""

    id: str
    r"""Unique identifier of the updated run."""
