38 lines
825 B
Python
38 lines
825 B
Python
from __future__ import annotations
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class ProviderCapability(BaseModel):
|
|
provider_name: str
|
|
display_name: str
|
|
authority_level: str
|
|
supported_layers: list[str]
|
|
supported_geometry_types: list[str]
|
|
supported_query_modes: list[str]
|
|
fetch_signature: str
|
|
configured: bool
|
|
status: str
|
|
limitation_message: str
|
|
attribution: str
|
|
license_note: str
|
|
not_configured_reason: str | None = None
|
|
|
|
|
|
class HealthResponse(BaseModel):
|
|
status: str
|
|
service: str
|
|
version: str
|
|
database: str | None = None
|
|
|
|
|
|
class SystemCapabilities(BaseModel):
|
|
postgis: bool
|
|
rasterio: bool
|
|
geopandas: bool
|
|
yolo: bool | str
|
|
sam: bool | str
|
|
grb: str
|
|
sentinel: str
|
|
providers: list[ProviderCapability] = Field(default_factory=list)
|