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

from __future__ import annotations
from honeyhive.models.components import (
    updaterunrequest as components_updaterunrequest,
    updaterunresponse as components_updaterunresponse,
)
from honeyhive.types import BaseModel
from honeyhive.utils import FieldMetadata, PathParamMetadata, RequestMetadata
import httpx
from typing import Optional, TypedDict
from typing_extensions import Annotated, NotRequired


class UpdateRunRequestTypedDict(TypedDict):
    run_id: str
    update_run_request: components_updaterunrequest.UpdateRunRequestTypedDict


class UpdateRunRequest(BaseModel):
    run_id: Annotated[
        str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
    ]

    update_run_request: Annotated[
        components_updaterunrequest.UpdateRunRequest,
        FieldMetadata(request=RequestMetadata(media_type="application/json")),
    ]


class UpdateRunResponseTypedDict(TypedDict):
    content_type: str
    r"""HTTP response content type for this operation"""
    status_code: int
    r"""HTTP response status code for this operation"""
    raw_response: httpx.Response
    r"""Raw HTTP response; suitable for custom response parsing"""
    update_run_response: NotRequired[
        components_updaterunresponse.UpdateRunResponseTypedDict
    ]
    r"""Successful response"""


class UpdateRunResponse(BaseModel):
    content_type: str
    r"""HTTP response content type for this operation"""

    status_code: int
    r"""HTTP response status code for this operation"""

    raw_response: httpx.Response
    r"""Raw HTTP response; suitable for custom response parsing"""

    update_run_response: Optional[components_updaterunresponse.UpdateRunResponse] = None
    r"""Successful response"""
