Add asset-based monitor setup

This commit is contained in:
Keith Smith
2026-05-23 21:07:05 -06:00
parent 8b5dea152e
commit bd6c508c94
9 changed files with 858 additions and 74 deletions
+11
View File
@@ -60,6 +60,7 @@ class MonitorRead(MonitorCreate):
class WebsiteMonitorCreate(BaseModel):
name: str = Field(min_length=1, max_length=160)
url: str = Field(min_length=1, max_length=512)
asset_id: int | None = None
expected_status: int = Field(default=200, ge=100, le=599)
expected_text: str | None = None
unexpected_text: str | None = None
@@ -76,6 +77,7 @@ class WebsiteMonitorCreate(BaseModel):
class PingMonitorCreate(BaseModel):
name: str = Field(min_length=1, max_length=160)
host: str = Field(min_length=1, max_length=255)
asset_id: int | None = None
timeout_seconds: int = Field(default=5, ge=1, le=60)
interval_seconds: int = Field(default=60, ge=10)
create_asset: bool = True
@@ -88,6 +90,7 @@ class TcpMonitorCreate(BaseModel):
name: str = Field(min_length=1, max_length=160)
host: str = Field(min_length=1, max_length=255)
port: int = Field(ge=1, le=65535)
asset_id: int | None = None
timeout_seconds: int = Field(default=5, ge=1, le=60)
interval_seconds: int = Field(default=60, ge=10)
create_asset: bool = True
@@ -234,6 +237,14 @@ class SnmpDiscoveryItemRead(BaseModel):
unit: str | None = None
class SnmpMonitorsCreate(BaseModel):
host: str = Field(min_length=1, max_length=255)
asset_id: int
credential_profile_id: int
selected_items: list[SnmpDiscoveryItemRead] = Field(min_length=1)
interval_seconds: int = Field(default=60, ge=10)
class SnmpDiscoveryRead(BaseModel):
host: str
credential_profile_id: int