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

from __future__ import annotations
from honeyhive.models.components import (
    putconfigurationrequest as components_putconfigurationrequest,
)
from honeyhive.types import BaseModel
from honeyhive.utils import FieldMetadata, PathParamMetadata, RequestMetadata
import httpx
from typing import TypedDict
from typing_extensions import Annotated


class UpdateConfigurationRequestTypedDict(TypedDict):
    id: str
    r"""Configuration ID like `6638187d505c6812e4043f24`"""
    put_configuration_request: (
        components_putconfigurationrequest.PutConfigurationRequestTypedDict
    )


class UpdateConfigurationRequest(BaseModel):
    id: Annotated[
        str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
    ]
    r"""Configuration ID like `6638187d505c6812e4043f24`"""

    put_configuration_request: Annotated[
        components_putconfigurationrequest.PutConfigurationRequest,
        FieldMetadata(request=RequestMetadata(media_type="application/json")),
    ]


class UpdateConfigurationResponseTypedDict(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"""


class UpdateConfigurationResponse(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"""
