from __future__ import annotations from dataclasses import dataclass @dataclass class IpEntry: id: str name: str ip: str cidr: int device: str enabled: bool @classmethod def from_dict(cls, data: dict) -> "IpEntry": return cls( id=str(data["id"]), name=str(data["name"]), ip=str(data["ip"]), cidr=int(data["cidr"]), device=str(data["device"]), enabled=bool(data.get("enabled", False)), ) def to_dict(self) -> dict: return { "id": self.id, "name": self.name, "ip": self.ip, "cidr": self.cidr, "device": self.device, "enabled": self.enabled, } @dataclass class EntryView: id: str name: str ip: str cidr: int device: str enabled: bool effective_enabled: bool used: bool containers: list[str] usage_known: bool def to_dict(self) -> dict: return { "id": self.id, "name": self.name, "ip": self.ip, "cidr": self.cidr, "device": self.device, "enabled": self.enabled, "effective_enabled": self.effective_enabled, "used": self.used, "containers": self.containers, "usage_known": self.usage_known, }