Source code for pihole_lib.models.host

"""Host system models."""

from pydantic import Field

from pihole_lib.models.base import StrictModel


[docs] class HostUname(StrictModel): """Host system uname information.""" domainname: str = Field(..., description="Domain name") machine: str = Field(..., description="Machine hardware name") nodename: str = Field(..., description="Network node hostname") release: str = Field(..., description="Operating system release") sysname: str = Field(..., description="Operating system name") version: str = Field(..., description="Operating system version")
[docs] class HostDMIBios(StrictModel): """Host DMI BIOS information.""" vendor: str | None = Field(None, description="BIOS vendor")
[docs] class HostDMIBoard(StrictModel): """Host DMI board information.""" name: str | None = Field(None, description="Board name") vendor: str | None = Field(None, description="Board vendor") version: str | None = Field(None, description="Board version")
[docs] class HostDMIProduct(StrictModel): """Host DMI product information.""" name: str | None = Field(None, description="Product name") family: str | None = Field(None, description="Product family") version: str | None = Field(None, description="Product version")
[docs] class HostDMISystem(StrictModel): """Host DMI system information.""" vendor: str | None = Field(None, description="System vendor")
[docs] class HostDMI(StrictModel): """Host DMI/SMBIOS information.""" bios: HostDMIBios = Field(..., description="BIOS information") board: HostDMIBoard = Field(..., description="Board information") product: HostDMIProduct = Field(..., description="Product information") sys: HostDMISystem = Field(..., description="System information")
[docs] class HostDetails(StrictModel): """Host system details.""" uname: HostUname = Field(..., description="System uname information") model: str | None = Field(None, description="Hardware model") dmi: HostDMI = Field(..., description="DMI/SMBIOS information")
[docs] class HostInfo(StrictModel): """Pi-hole host system information wrapper.""" host: HostDetails = Field(..., description="Host system details")