utp_service/backend/app/schemas/snapshot_policy.py
2026-05-28 17:02:12 +03:00

52 lines
1.1 KiB
Python

from datetime import datetime
from typing import Optional
from pydantic import BaseModel, ConfigDict
class SnapshotPolicyCreate(BaseModel):
categories: list[str]
action_type: str
params: dict = {}
label: str
is_active: bool = True
class SnapshotPolicyUpdate(BaseModel):
categories: Optional[list[str]] = None
action_type: Optional[str] = None
params: Optional[dict] = None
label: Optional[str] = None
is_active: Optional[bool] = None
class SnapshotPolicyRead(BaseModel):
model_config = ConfigDict(from_attributes=True)
id: int
categories: list[str]
action_type: str
params: dict
label: str
is_active: bool
created_at: datetime
updated_at: datetime
class PolicySnapshotStatus(BaseModel):
policy_id: int
policy_label: str
categories: list[str]
action_type: str
params: dict
last_collected_at: Optional[datetime] = None
success_count: int
total_devices: int
class ObjectSnapshotSummary(BaseModel):
object_id: int
object_name: str
city: Optional[str] = None
client: Optional[str] = None
policies: list[PolicySnapshotStatus]