71 lines
1.3 KiB
Python

from __future__ import annotations
from typing import Any
from pydantic import BaseModel, Field
class EdgeHeartbeatRequest(BaseModel):
edge_id: str
hostname: str
os_type: str
agent_version: str
capabilities: list[str] = Field(default_factory=list)
class EdgeHeartbeatData(BaseModel):
edge_id: str
node_status: str
last_heartbeat_at: str
class EdgePullTasksRequest(BaseModel):
edge_id: str
max_tasks: int = 5
class EdgeTaskItem(BaseModel):
task_id: str
step_id: str
tool_name: str
params: dict[str, Any]
expire_at: str
class EdgePullTasksData(BaseModel):
tasks: list[EdgeTaskItem]
class EdgeTaskReportRequest(BaseModel):
edge_id: str
task_id: str
step_id: str
tool_name: str
success: bool
code: str
message: str
data: dict[str, Any] = Field(default_factory=dict)
evidence: dict[str, Any] = Field(default_factory=dict)
started_at: str
finished_at: str
class EdgeTaskReportData(BaseModel):
task_id: str
step_id: str
step_status: str
task_status: str
class EdgeEventRequest(BaseModel):
edge_id: str
event_type: str
message: str
detail: dict[str, Any] = Field(default_factory=dict)
class EdgeEventData(BaseModel):
edge_id: str
event_type: str
accepted: bool