Files
oxipy/oxi/interfaces/contract.py
IluaAir 3c0e70b320 Update project configuration and dependencies
- Added `.vscode` to `.gitignore` to exclude Visual Studio Code settings.
- Updated `pyproject.toml` to include `ruff` for linting and configured its settings.
- Modified `uv.lock` to include `ruff` in both optional and development dependencies.
- Refactored type hints in several files to use `str | None` for optional parameters.
- Cleaned up unused imports and whitespace in various modules for improved code clarity.
2026-06-11 23:47:39 +03:00

44 lines
716 B
Python

from ipaddress import IPv4Address
from pydantic import BaseModel, ConfigDict, Field
class Base(BaseModel):
model_config = ConfigDict(populate_by_name=True)
class System(BaseModel):
"""
Required
"""
model: str
serial_number: str
version: str
class Interfaces(Base):
"""
Required
"""
name: str = Field(alias="interface")
ip_address: IPv4Address | None = None
mask: int | None = None
description: str | None = None
class Vlans(Base):
"""
Optional
"""
vlan_id: int
name: str | None = Field(default=None, alias="description")
class Device(BaseModel):
system: System
interfaces: list[Interfaces]
vlans: list[Vlans] = []