59 lines
859 B
Python
59 lines
859 B
Python
from enum import Enum
|
|
from typing import List
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class Status(Enum):
|
|
ONLINE = "online"
|
|
OFFLINE = "offline"
|
|
UNKNOWN = "unknown"
|
|
|
|
|
|
class Machine(BaseModel):
|
|
name: str
|
|
status: Status
|
|
|
|
|
|
class MachineCreate(BaseModel):
|
|
name: str
|
|
|
|
|
|
class MachinesResponse(BaseModel):
|
|
machines: list[Machine]
|
|
|
|
|
|
class MachineResponse(BaseModel):
|
|
machine: Machine
|
|
|
|
|
|
class ConfigResponse(BaseModel):
|
|
config: dict
|
|
|
|
|
|
class SchemaResponse(BaseModel):
|
|
schema_: dict = Field(alias="schema")
|
|
|
|
|
|
class VmConfig(BaseModel):
|
|
flake_url: str
|
|
flake_attr: str
|
|
|
|
cores: int
|
|
memory_size: int
|
|
graphics: bool
|
|
|
|
|
|
class VmInspectResponse(BaseModel):
|
|
config: VmConfig
|
|
|
|
|
|
class FlakeAction(BaseModel):
|
|
id: str
|
|
uri: str
|
|
|
|
|
|
class FlakeResponse(BaseModel):
|
|
content: str
|
|
actions: List[FlakeAction]
|