utp_service/backend/app/schemas/snapshot_policy.py

52 lines
1.1 KiB
Python

from datetime import datetime
from typing import Optional
from pydantic import BaseModel, ConfigDict
class SnapshotPolicyCreate(BaseModel):
category: str
action_type: str
params: dict = {}
label: str
is_active: bool = True
class SnapshotPolicyUpdate(BaseModel):
category: Optional[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
category: 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
category: 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]