53 lines
1.0 KiB
Python
53 lines
1.0 KiB
Python
from __future__ import annotations
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class SoftwareAOperator(BaseModel):
|
|
user_id: str
|
|
user_name: str
|
|
|
|
|
|
class DeployOptions(BaseModel):
|
|
graceful: bool = True
|
|
|
|
|
|
class CreateDeployTaskRequest(BaseModel):
|
|
operator: SoftwareAOperator
|
|
tenant_id: str
|
|
app_code: str
|
|
env: str
|
|
version: str
|
|
target_nodes: list[str] = Field(default_factory=list)
|
|
deploy_options: DeployOptions = Field(default_factory=DeployOptions)
|
|
|
|
|
|
class CreateDeployTaskData(BaseModel):
|
|
software_a_task_id: str
|
|
task_status: str
|
|
|
|
|
|
class DeployTaskDetailData(BaseModel):
|
|
software_a_task_id: str
|
|
task_status: str
|
|
progress_percent: int
|
|
app_code: str
|
|
env: str
|
|
version: str
|
|
target_nodes: list[str]
|
|
started_at: str
|
|
finished_at: str | None = None
|
|
error_detail: str | None = None
|
|
|
|
|
|
class PermissionCheckRequest(BaseModel):
|
|
operator: SoftwareAOperator
|
|
action_type: str
|
|
app_code: str
|
|
env: str
|
|
|
|
|
|
class PermissionCheckData(BaseModel):
|
|
allowed: bool
|
|
reason: str
|