cloud
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
"""Pydantic request/response models for the platform SDK REST API."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Literal
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class TaskConstraintsModel(BaseModel):
|
||||
driver_type: str | None = None
|
||||
capability_tags: list[str] = Field(default_factory=list)
|
||||
|
||||
|
||||
class TaskSubmissionRequest(BaseModel):
|
||||
goal: str | None = None
|
||||
workflow_definition_id: str | None = None
|
||||
constraints: TaskConstraintsModel = Field(default_factory=TaskConstraintsModel)
|
||||
|
||||
|
||||
class TaskSubmissionResponse(BaseModel):
|
||||
task_id: str
|
||||
|
||||
|
||||
class TaskStatusResponse(BaseModel):
|
||||
id: str
|
||||
status: str
|
||||
goal: str | None = None
|
||||
workflow_definition_id: str | None = None
|
||||
assigned_device_id: str | None = None
|
||||
assigned_host_id: str | None = None
|
||||
|
||||
|
||||
class DeviceResponse(BaseModel):
|
||||
device_id: str
|
||||
host_id: str
|
||||
driver_type: str
|
||||
status: str
|
||||
capability_tags: list[str] = Field(default_factory=list)
|
||||
|
||||
|
||||
class HostResponse(BaseModel):
|
||||
host_id: str
|
||||
address: str | None = None
|
||||
last_seen_at: str
|
||||
|
||||
|
||||
class PluginRegistrationRequest(BaseModel):
|
||||
name: str
|
||||
version: str
|
||||
entry_point_kind: Literal["driver", "tool", "skill"]
|
||||
target: str
|
||||
|
||||
|
||||
class PluginResponse(BaseModel):
|
||||
name: str
|
||||
version: str
|
||||
entry_point_kind: str
|
||||
target: str
|
||||
wired: bool
|
||||
|
||||
|
||||
class ErrorResponse(BaseModel):
|
||||
detail: str
|
||||
Reference in New Issue
Block a user