"""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 AvailabilityTypedDict(TypedDict):
    available: NotRequired[bool]
    region: NotRequired[str]


class Availability(BaseModel):
    available: Optional[bool] = None

    region: Optional[str] = None


class GetComputeComputeTypedDict(TypedDict):
    availability: NotRequired[List[AvailabilityTypedDict]]
    cloud_host: NotRequired[str]
    compute_id: NotRequired[str]
    cpus: NotRequired[float]
    hourly_price: NotRequired[float]
    memory: NotRequired[str]
    name: NotRequired[str]
    num_gpus: NotRequired[float]
    total_vram: NotRequired[str]
    vram_per_gpu: NotRequired[str]


class GetComputeCompute(BaseModel):
    availability: Optional[List[Availability]] = None

    cloud_host: Optional[str] = None

    compute_id: Optional[str] = None

    cpus: Optional[float] = None

    hourly_price: Optional[float] = None

    memory: Optional[str] = None

    name: Optional[str] = None

    num_gpus: Optional[float] = None

    total_vram: Optional[str] = None

    vram_per_gpu: Optional[str] = None


class GetComputeResponseBodyTypedDict(TypedDict):
    r"""Get Compute"""

    compute: NotRequired[List[GetComputeComputeTypedDict]]
    status: NotRequired[str]


class GetComputeResponseBody(BaseModel):
    r"""Get Compute"""

    compute: Optional[List[GetComputeCompute]] = None

    status: Optional[str] = None


class GetComputeResponseTypedDict(TypedDict):
    headers: Dict[str, List[str]]
    result: GetComputeResponseBodyTypedDict


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

    result: GetComputeResponseBody
