From 4ea3a099b05fa910498bfbf1b2d7387118355472 Mon Sep 17 00:00:00 2001 From: "Ole Mathias Aa. Heggem" Date: Sun, 13 Apr 2025 07:18:45 +0200 Subject: Upgrade bootstrap and rewrite API (#230) --- api/app/models/device.py | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 api/app/models/device.py (limited to 'api/app/models/device.py') diff --git a/api/app/models/device.py b/api/app/models/device.py new file mode 100644 index 0000000..95ed525 --- /dev/null +++ b/api/app/models/device.py @@ -0,0 +1,47 @@ +from pydantic import BaseModel +import ipaddress + + +class Placement(BaseModel): + x: int + y: int + height: int + width: int + + +class PublicDevice(BaseModel): + distro_name: str | None = None + tags: list[str] = [] + placement: Placement | None = None + + +class PublicDevices(BaseModel): + switches: dict[str, PublicDevice] + time: int | None = None + hash: str | None = None + + +class DeviceInterface(BaseModel): + name: str + descr: str + type: str + + +class DeviceManagement(BaseModel): + sysname: str = "e1-1" + serial: str | None = None + platform: str | None = None + mgmt_v4_addr: ipaddress.IPv4Address | None = None + mgmt_v6_addr: ipaddress.IPv6Address | None = None + mgmt_vlan: str | None = None + traffic_vlan: str | None = None + last_updated: str | None = None + distro_name: str | None = None + distro_phy_port: str | None = None + # interfaces: dict[str, DeviceInterface] + + +class DevicesManagement(BaseModel): + switches: dict[str, DeviceManagement] + time: int | None = None + hash: str | None = None -- cgit v1.2.3