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

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


class CreateTunnelRequestBodyTypedDict(TypedDict):
    app_port: NotRequired[float]
    jupyter_port: NotRequired[float]
    server_name: NotRequired[str]


class CreateTunnelRequestBody(BaseModel):
    app_port: Optional[float] = None

    jupyter_port: Optional[float] = None

    server_name: Optional[str] = None


class CreateTunnelDataTypedDict(TypedDict):
    app_url: NotRequired[str]
    created_at: NotRequired[str]
    hostname: NotRequired[str]
    id: NotRequired[str]
    jupyter_hostname: NotRequired[str]
    jupyter_url: NotRequired[str]
    name: NotRequired[str]
    token: NotRequired[str]


class CreateTunnelData(BaseModel):
    app_url: Optional[str] = None

    created_at: Optional[str] = None

    hostname: Optional[str] = None

    id: Optional[str] = None

    jupyter_hostname: Optional[str] = None

    jupyter_url: Optional[str] = None

    name: Optional[str] = None

    token: Optional[str] = None


class CreateTunnelResponseBodyTypedDict(TypedDict):
    r"""Create Tunnel"""

    data: NotRequired[CreateTunnelDataTypedDict]
    status: NotRequired[str]


class CreateTunnelResponseBody(BaseModel):
    r"""Create Tunnel"""

    data: Optional[CreateTunnelData] = None

    status: Optional[str] = None


class CreateTunnelResponseTypedDict(TypedDict):
    headers: Dict[str, List[str]]
    result: CreateTunnelResponseBodyTypedDict


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

    result: CreateTunnelResponseBody
