Source code for pihole_lib.models.version

"""Version models."""

from pydantic import Field

from pihole_lib.models.base import StrictModel, TimedResponse


[docs] class VersionLocal(StrictModel): """Local version information.""" version: str = Field(..., description="Version string") branch: str | None = Field(None, description="Git branch") hash: str = Field(..., description="Git commit hash") date: str | None = Field(None, description="Build date")
[docs] class VersionRemote(StrictModel): """Remote version information.""" version: str | None = Field(None, description="Version string") hash: str | None = Field(None, description="Git commit hash")
[docs] class ComponentVersion(StrictModel): """Component version information.""" local: VersionLocal = Field(..., description="Local version information") remote: VersionRemote = Field(..., description="Remote version information")
[docs] class DockerVersion(StrictModel): """Docker version information.""" local: str | None = Field(None, description="Local Docker version") remote: str | None = Field(None, description="Remote Docker version")
[docs] class VersionDetails(StrictModel): """Pi-hole version details for all components.""" core: ComponentVersion = Field(..., description="Pi-hole core version information") web: ComponentVersion = Field( ..., description="Pi-hole web interface version information" ) ftl: ComponentVersion = Field(..., description="FTL version information") docker: DockerVersion = Field(..., description="Docker image version information")
[docs] class VersionInfo(TimedResponse): """Pi-hole version information response.""" version: VersionDetails = Field( ..., description="Version details for all components" )