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

from __future__ import annotations
from honeyhive.models.components import datapoint as components_datapoint
from honeyhive.types import BaseModel
from honeyhive.utils import FieldMetadata, PathParamMetadata
import httpx
from typing import List, Optional, TypedDict
from typing_extensions import Annotated, NotRequired


class GetDatapointRequestTypedDict(TypedDict):
    id: str
    r"""Datapoint ID like `65c13dbbd65fb876b7886cdb`"""


class GetDatapointRequest(BaseModel):
    id: Annotated[
        str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
    ]
    r"""Datapoint ID like `65c13dbbd65fb876b7886cdb`"""


class GetDatapointResponseBodyTypedDict(TypedDict):
    r"""Successful response"""

    datapoint: NotRequired[List[components_datapoint.DatapointTypedDict]]


class GetDatapointResponseBody(BaseModel):
    r"""Successful response"""

    datapoint: Optional[List[components_datapoint.Datapoint]] = None


class GetDatapointResponseTypedDict(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"""
    object: NotRequired[GetDatapointResponseBodyTypedDict]
    r"""Successful response"""


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

    object: Optional[GetDatapointResponseBody] = None
    r"""Successful response"""
