Files
mitm-webserver/backend/src/Models/netplan.py
malmert b60a1d3118
Some checks failed
Build and Deploy MITM Webserver / build (push) Failing after 3s
file structure and comments unified
2026-03-06 19:03:26 +01:00

48 lines
1.4 KiB
Python

"""Netplan schema models used by bridge/network configuration APIs."""
from typing import Dict, List, Optional
from pydantic import BaseModel, Field
class Nameservers(BaseModel):
"""DNS nameserver configuration."""
addresses: List[str] = Field(default_factory=list)
search: List[str] = Field(default_factory=list)
class EthernetConfig(BaseModel):
"""Netplan ethernet interface configuration."""
dhcp4: Optional[bool] = None
dhcp6: Optional[bool] = None
addresses: Optional[List[str]] = None
gateway4: Optional[str] = None
gateway6: Optional[str] = None
nameservers: Optional[Nameservers] = None
optional: Optional[bool] = None
class BridgeConfig(BaseModel):
"""Netplan bridge configuration."""
interfaces: List[str] = Field(default_factory=list)
dhcp4: Optional[bool] = None
dhcp6: Optional[bool] = None
addresses: Optional[List[str]] = None
gateway4: Optional[str] = None
gateway6: Optional[str] = None
nameservers: Optional[Nameservers] = None
parameters: Optional[dict] = None
optional: Optional[bool] = None
class NetworkConfig(BaseModel):
"""Top-level Netplan network object."""
version: int = 2
renderer: Optional[str] = "networkd"
ethernets: Dict[str, EthernetConfig] = Field(default_factory=dict)
bridges: Dict[str, BridgeConfig] = Field(default_factory=dict)