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

from __future__ import annotations
from amds.types import BaseModel
from amds.utils import FieldMetadata, QueryParamMetadata
from typing import Dict, List, Optional
from typing_extensions import Annotated, NotRequired, TypedDict


class GetTunnelRequestTypedDict(TypedDict):
    tunnel_id: NotRequired[str]


class GetTunnelRequest(BaseModel):
    tunnel_id: Annotated[
        Optional[str],
        FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
    ] = None


class GetTunnelDataTypedDict(TypedDict):
    token: NotRequired[str]
    tunnel_id: NotRequired[str]


class GetTunnelData(BaseModel):
    token: Optional[str] = None

    tunnel_id: Optional[str] = None


class GetTunnelResponseBodyTypedDict(TypedDict):
    r"""Get Tunnel Token"""

    data: NotRequired[GetTunnelDataTypedDict]
    status: NotRequired[str]


class GetTunnelResponseBody(BaseModel):
    r"""Get Tunnel Token"""

    data: Optional[GetTunnelData] = None

    status: Optional[str] = None


class GetTunnelResponseTypedDict(TypedDict):
    headers: Dict[str, List[str]]
    result: GetTunnelResponseBodyTypedDict


class GetTunnelResponse(BaseModel):
    headers: Dict[str, List[str]]

    result: GetTunnelResponseBody
