Версия 0.0.2

This commit is contained in:
commit 7b9c998224
530 changed files with 424916 additions and 0 deletions

70
SRV/models/network.py Normal file
View file

@ -0,0 +1,70 @@
from typing import List, Optional, Union
from pydantic import BaseModel
# Класс для маршрутов IPv4
class IPv4Route(BaseModel):
destination: str
prefix: int
next_hop: str
metric: int
# Класс для маршрутов IPv6
class IPv6Route(BaseModel):
destination: str
prefix: int
next_hop: str
metric: int
# Класс для индивидуальной конфигурации IP
class IndividualIPConfig(BaseModel):
address: str
routes: List[Union[IPv4Route, IPv6Route]]
method: Optional[str]
gateway: str
dns: List[str]
# Класс для конфигурации IP
class IPConfig(BaseModel):
configurations: List[IndividualIPConfig]
# Класс для сетевого интерфейса
class NetworkInterface(BaseModel):
name: str
type: str
mac_address: str
device_state: str
active_connection: str
device_mtu: str
ipv4: IPConfig
ipv6: IPConfig
container_x: int = 0
container_y: int = 0
# Класс для WiFi устройства
class WiFiDevice(NetworkInterface):
ssid: Optional[str] = None
bssid: Optional[str] = None
bitrate: Optional[int] = None
strength: Optional[int] = None
frequency: Optional[float] = None
mode: Union[str, int] = None
class NetworkInterfacesContainer(BaseModel):
interfaces: List[Union[NetworkInterface, WiFiDevice]]
container_x: int
container_y: int
class Activation(BaseModel):
id: int
interfaces: List[Union[NetworkInterface, WiFiDevice]]
container_x: int
container_y: int
isOpen: bool = True
class Deactivation(BaseModel):
id: int
interfaces: List[Union[NetworkInterface, WiFiDevice]]
container_x: int
container_y: int
isOpen: bool = True