{ "openapi": "3.0.0", "paths": { "/api/v1/health": { "get": { "operationId": "AppController_health", "parameters": [], "responses": { "200": { "description": "" } }, "tags": [ "App" ] } }, "/api/v1/agents/{agentRunId}/parts": { "get": { "operationId": "AgentsController_parts", "parameters": [ { "name": "agentRunId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Returns stored agent trace parts" } }, "tags": [ "agents" ] } }, "/api/v1/agents/{agentRunId}/chat": { "post": { "operationId": "AgentsController_chat", "parameters": [ { "name": "agentRunId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "AI SDK-compatible SSE for agent run" } }, "tags": [ "agents" ] } }, "/api/v1/workflows": { "post": { "operationId": "WorkflowsController_create", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateWorkflowRequestDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkflowResponseDto" } } } } }, "tags": [ "workflows" ] }, "get": { "operationId": "WorkflowsController_findAll", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/WorkflowResponseDto" } } } } } }, "tags": [ "workflows" ] } }, "/api/v1/workflows/{id}": { "put": { "operationId": "WorkflowsController_update", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateWorkflowRequestDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkflowResponseDto" } } } } }, "tags": [ "workflows" ] }, "get": { "operationId": "WorkflowsController_findOne", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkflowResponseDto" } } } } }, "tags": [ "workflows" ] }, "delete": { "operationId": "WorkflowsController_remove", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "workflows" ] } }, "/api/v1/workflows/{id}/metadata": { "patch": { "operationId": "WorkflowsController_updateMetadata", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateWorkflowMetadataDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkflowResponseDto" } } } } }, "tags": [ "workflows" ] } }, "/api/v1/workflows/runs": { "get": { "operationId": "WorkflowsController_listRuns", "parameters": [ { "name": "workflowId", "required": false, "in": "query", "schema": { "minLength": 1, "type": "string" } }, { "name": "status", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "limit", "required": false, "in": "query", "schema": { "minimum": 1, "maximum": 200, "default": 50, "type": "integer" } } ], "responses": { "200": { "description": "List all workflow runs with metadata", "content": { "application/json": { "schema": { "type": "object", "properties": { "runs": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "workflowId": { "type": "string" }, "status": { "type": "string", "enum": [ "RUNNING", "COMPLETED", "FAILED", "CANCELLED", "TERMINATED", "CONTINUED_AS_NEW", "TIMED_OUT", "UNKNOWN" ] }, "startTime": { "type": "string", "format": "date-time" }, "endTime": { "type": "string", "format": "date-time", "nullable": true }, "temporalRunId": { "type": "string" }, "workflowVersionId": { "type": "string", "nullable": true }, "workflowVersion": { "type": "number", "nullable": true }, "workflowName": { "type": "string" }, "eventCount": { "type": "number" }, "nodeCount": { "type": "number" }, "duration": { "type": "number" }, "triggerType": { "type": "string", "enum": [ "manual", "schedule", "api" ] }, "triggerSource": { "type": "string", "nullable": true }, "triggerLabel": { "type": "string", "nullable": true }, "inputPreview": { "type": "object", "properties": { "runtimeInputs": { "type": "object", "additionalProperties": true }, "nodeOverrides": { "type": "object", "additionalProperties": { "type": "object", "additionalProperties": true } } } } } } } } } } } } }, "tags": [ "workflows" ] } }, "/api/v1/workflows/runs/{runId}": { "get": { "operationId": "WorkflowsController_getRun", "parameters": [ { "name": "runId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Metadata for a single workflow run", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "workflowId": { "type": "string" }, "status": { "type": "string", "enum": [ "RUNNING", "COMPLETED", "FAILED", "CANCELLED", "TERMINATED", "CONTINUED_AS_NEW", "TIMED_OUT", "UNKNOWN" ] }, "startTime": { "type": "string", "format": "date-time" }, "endTime": { "type": "string", "format": "date-time", "nullable": true }, "temporalRunId": { "type": "string", "nullable": true }, "workflowVersionId": { "type": "string", "nullable": true }, "workflowVersion": { "type": "number", "nullable": true }, "workflowName": { "type": "string" }, "eventCount": { "type": "number" }, "nodeCount": { "type": "number" }, "duration": { "type": "number" }, "triggerType": { "type": "string", "enum": [ "manual", "schedule", "api" ] }, "triggerSource": { "type": "string", "nullable": true }, "triggerLabel": { "type": "string", "nullable": true }, "inputPreview": { "type": "object", "properties": { "runtimeInputs": { "type": "object", "additionalProperties": true }, "nodeOverrides": { "type": "object", "additionalProperties": { "type": "object", "additionalProperties": true } } } } } } } } } }, "tags": [ "workflows" ] } }, "/api/v1/workflows/runs/{runId}/children": { "get": { "operationId": "WorkflowsController_listChildRuns", "parameters": [ { "name": "runId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "List direct child workflow runs spawned by a parent run", "content": { "application/json": { "schema": { "type": "object", "properties": { "runs": { "type": "array", "items": { "type": "object", "properties": { "runId": { "type": "string" }, "workflowId": { "type": "string" }, "workflowName": { "type": "string" }, "parentNodeRef": { "type": "string", "nullable": true }, "status": { "type": "string" }, "startedAt": { "type": "string", "format": "date-time" }, "completedAt": { "type": "string", "format": "date-time", "nullable": true } } } } } } } } } }, "tags": [ "workflows" ] } }, "/api/v1/workflows/{workflowId}/versions/{versionId}": { "get": { "operationId": "WorkflowsController_findVersion", "parameters": [ { "name": "workflowId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "versionId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkflowVersionResponseDto" } } } } }, "tags": [ "workflows" ] } }, "/api/v1/workflows/{id}/commit": { "post": { "operationId": "WorkflowsController_commit", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Compiled workflow definition", "content": { "application/json": { "schema": { "type": "object", "properties": { "title": { "type": "string" }, "description": { "type": "string", "nullable": true }, "entrypoint": { "type": "object", "properties": { "ref": { "type": "string" } } }, "actions": { "type": "array", "items": { "type": "object", "properties": { "ref": { "type": "string" }, "componentId": { "type": "string" }, "params": { "type": "object", "additionalProperties": true }, "dependsOn": { "type": "array", "items": { "type": "string" } } } } }, "config": { "type": "object", "properties": { "environment": { "type": "string" }, "timeoutSeconds": { "type": "number" } } } } } } } } }, "tags": [ "workflows" ] } }, "/api/v1/workflows/{id}/run": { "post": { "operationId": "WorkflowsController_run", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RunWorkflowRequestDto" } } } }, "responses": { "201": { "description": "Workflow execution result", "content": { "application/json": { "schema": { "type": "object", "properties": { "runId": { "type": "string", "description": "Temporal workflow identifier" }, "workflowId": { "type": "string", "description": "Workflow record id" }, "temporalRunId": { "type": "string", "description": "Temporal first execution run id" }, "taskQueue": { "type": "string", "description": "Temporal task queue used for execution" }, "workflowVersionId": { "type": "string", "description": "Workflow version identifier used for execution" }, "workflowVersion": { "type": "integer", "description": "Workflow version number used for execution" }, "status": { "type": "string", "enum": [ "RUNNING", "COMPLETED", "FAILED", "CANCELLED", "TERMINATED", "CONTINUED_AS_NEW", "TIMED_OUT", "UNKNOWN" ] } } } } } } }, "tags": [ "workflows" ] } }, "/api/v1/workflows/runs/{runId}/status": { "get": { "operationId": "WorkflowsController_status", "parameters": [ { "name": "runId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "temporalRunId", "required": false, "in": "query", "schema": { "minLength": 1, "type": "string" } } ], "responses": { "200": { "description": "Current Temporal execution status" } }, "tags": [ "workflows" ] } }, "/api/v1/workflows/runs/{runId}/result": { "get": { "operationId": "WorkflowsController_result", "parameters": [ { "name": "runId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "temporalRunId", "required": false, "in": "query", "schema": { "minLength": 1, "type": "string" } } ], "responses": { "200": { "description": "Resolved workflow result payload" } }, "tags": [ "workflows" ] } }, "/api/v1/workflows/runs/{runId}/config": { "get": { "operationId": "WorkflowsController_config", "parameters": [ { "name": "runId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Inputs and version metadata captured for a workflow run", "content": { "application/json": { "schema": { "type": "object", "properties": { "runId": { "type": "string" }, "workflowId": { "type": "string" }, "workflowVersionId": { "type": "string", "nullable": true }, "workflowVersion": { "type": "integer", "nullable": true }, "inputs": { "type": "object", "additionalProperties": true } }, "additionalProperties": false } } } } }, "tags": [ "workflows" ] } }, "/api/v1/workflows/runs/{runId}/cancel": { "post": { "operationId": "WorkflowsController_cancel", "parameters": [ { "name": "runId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "temporalRunId", "required": false, "in": "query", "schema": { "minLength": 1, "type": "string" } } ], "responses": { "200": { "description": "Cancels a running workflow execution" } }, "tags": [ "workflows" ] } }, "/api/v1/workflows/runs/{runId}/trace": { "get": { "operationId": "WorkflowsController_trace", "parameters": [ { "name": "runId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Trace events for a workflow run", "content": { "application/json": { "schema": { "type": "object", "properties": { "runId": { "type": "string" }, "events": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "runId": { "type": "string" }, "nodeId": { "type": "string" }, "type": { "type": "string", "enum": [ "STARTED", "PROGRESS", "COMPLETED", "FAILED" ] }, "level": { "type": "string", "enum": [ "info", "warn", "error", "debug" ] }, "timestamp": { "type": "string", "format": "date-time" }, "message": { "type": "string", "nullable": true }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stack": { "type": "string" }, "code": { "type": "string" }, "type": { "type": "string" }, "details": { "type": "object", "additionalProperties": true }, "fieldErrors": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" } } } }, "additionalProperties": false, "nullable": true }, "outputSummary": { "type": "object", "additionalProperties": true, "nullable": true }, "data": { "type": "object", "additionalProperties": true, "nullable": true }, "metadata": { "type": "object", "properties": { "activityId": { "type": "string" }, "attempt": { "type": "integer", "minimum": 0 }, "correlationId": { "type": "string" }, "streamId": { "type": "string" }, "joinStrategy": { "type": "string", "enum": [ "all", "any", "first" ] }, "triggeredBy": { "type": "string" }, "failure": { "type": "object", "properties": { "at": { "type": "string", "format": "date-time" }, "reason": { "type": "object", "properties": { "message": { "type": "string" }, "name": { "type": "string" } }, "additionalProperties": false } }, "additionalProperties": false, "nullable": true }, "retryPolicy": { "type": "object", "properties": { "maxAttempts": { "type": "integer", "minimum": 1 }, "initialIntervalSeconds": { "type": "number", "minimum": 0 }, "maximumIntervalSeconds": { "type": "number", "minimum": 0 }, "backoffCoefficient": { "type": "number", "minimum": 0 }, "nonRetryableErrorTypes": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false, "nullable": true } }, "additionalProperties": false, "nullable": true } }, "additionalProperties": false } }, "cursor": { "type": "string", "nullable": true } }, "additionalProperties": false } } } } }, "tags": [ "workflows" ] } }, "/api/v1/workflows/runs/{runId}/events": { "get": { "operationId": "WorkflowsController_events", "parameters": [ { "name": "runId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Full event timeline for a workflow run", "content": { "application/json": { "schema": { "type": "object", "properties": { "runId": { "type": "string" }, "events": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "runId": { "type": "string" }, "nodeId": { "type": "string" }, "type": { "type": "string", "enum": [ "STARTED", "PROGRESS", "COMPLETED", "FAILED" ] }, "level": { "type": "string", "enum": [ "info", "warn", "error", "debug" ] }, "timestamp": { "type": "string", "format": "date-time" }, "message": { "type": "string", "nullable": true }, "error": { "type": "object", "properties": { "message": { "type": "string" }, "stack": { "type": "string" }, "code": { "type": "string" }, "type": { "type": "string" }, "details": { "type": "object", "additionalProperties": true }, "fieldErrors": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" } } } }, "additionalProperties": false, "nullable": true }, "outputSummary": { "type": "object", "additionalProperties": true, "nullable": true }, "data": { "type": "object", "additionalProperties": true, "nullable": true }, "metadata": { "type": "object", "properties": { "activityId": { "type": "string" }, "attempt": { "type": "integer", "minimum": 0 }, "correlationId": { "type": "string" }, "streamId": { "type": "string" }, "joinStrategy": { "type": "string", "enum": [ "all", "any", "first" ] }, "triggeredBy": { "type": "string" }, "failure": { "type": "object", "properties": { "at": { "type": "string", "format": "date-time" }, "reason": { "type": "object", "properties": { "message": { "type": "string" }, "name": { "type": "string" } }, "additionalProperties": false } }, "additionalProperties": false, "nullable": true }, "retryPolicy": { "type": "object", "properties": { "maxAttempts": { "type": "integer", "minimum": 1 }, "initialIntervalSeconds": { "type": "number", "minimum": 0 }, "maximumIntervalSeconds": { "type": "number", "minimum": 0 }, "backoffCoefficient": { "type": "number", "minimum": 0 }, "nonRetryableErrorTypes": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false, "nullable": true } }, "additionalProperties": false, "nullable": true } }, "additionalProperties": false } }, "cursor": { "type": "string", "nullable": true } }, "additionalProperties": false } } } } }, "tags": [ "workflows" ] } }, "/api/v1/workflows/runs/{runId}/dataflows": { "get": { "operationId": "WorkflowsController_dataflows", "parameters": [ { "name": "runId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Derived data flow packets for a workflow run", "content": { "application/json": { "schema": { "type": "object", "properties": { "runId": { "type": "string" }, "packets": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "runId": { "type": "string" }, "sourceNode": { "type": "string" }, "targetNode": { "type": "string" }, "inputKey": { "type": "string", "nullable": true }, "payload": { "type": "object", "additionalProperties": true, "nullable": true }, "timestamp": { "type": "integer" }, "visualTime": { "type": "number" }, "size": { "type": "number" }, "type": { "type": "string", "enum": [ "file", "json", "text", "binary" ] } }, "additionalProperties": false } } }, "additionalProperties": false } } } } }, "tags": [ "workflows" ] } }, "/api/v1/workflows/runs/{runId}/artifacts": { "get": { "operationId": "WorkflowsController_runArtifacts", "parameters": [ { "name": "runId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Artifacts generated for a workflow run", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RunArtifactsResponseDto" } } } } }, "tags": [ "workflows" ] } }, "/api/v1/workflows/runs/{runId}/artifacts/{artifactId}/download": { "get": { "operationId": "WorkflowsController_downloadRunArtifact", "parameters": [ { "name": "runId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "type": "string" } } ], "responses": { "200": { "description": "Download artifact for a specific run" } }, "tags": [ "workflows" ] } }, "/api/v1/workflows/runs/{runId}/stream": { "get": { "operationId": "WorkflowsController_stream", "parameters": [ { "name": "runId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "temporalRunId", "required": false, "in": "query", "schema": { "minLength": 1, "type": "string" } }, { "name": "cursor", "required": false, "in": "query", "schema": { "minLength": 1, "type": "string" } }, { "name": "terminalCursor", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "logCursor", "required": false, "in": "query", "schema": { "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$", "type": "string" } } ], "responses": { "200": { "description": "Server-sent events stream for workflow run updates" } }, "tags": [ "workflows" ] } }, "/api/v1/workflows/runs/{runId}/logs": { "get": { "operationId": "WorkflowsController_logs", "parameters": [ { "name": "runId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "nodeRef", "required": false, "in": "query", "schema": { "minLength": 1, "type": "string" } }, { "name": "stream", "required": false, "in": "query", "schema": { "type": "string", "enum": [ "stdout", "stderr", "console" ] } }, { "name": "level", "required": false, "in": "query", "schema": { "type": "string", "enum": [ "debug", "info", "warn", "error" ] } }, { "name": "limit", "required": false, "in": "query", "schema": { "minimum": 1, "maximum": 500, "default": 100, "type": "integer" } }, { "name": "cursor", "required": false, "in": "query", "schema": { "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$", "type": "string" } }, { "name": "startTime", "required": false, "in": "query", "schema": { "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$", "type": "string" } }, { "name": "endTime", "required": false, "in": "query", "schema": { "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$", "type": "string" } } ], "responses": { "200": { "description": "Logs for a workflow run", "content": { "application/json": { "schema": { "type": "object", "properties": { "runId": { "type": "string" }, "logs": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "runId": { "type": "string" }, "nodeId": { "type": "string" }, "level": { "type": "string", "enum": [ "debug", "info", "warn", "error" ] }, "message": { "type": "string" }, "timestamp": { "type": "string", "format": "date-time" } } } }, "totalCount": { "type": "number" }, "hasMore": { "type": "boolean" }, "nextCursor": { "type": "string", "nullable": true } } } } } } }, "tags": [ "workflows" ] } }, "/api/v1/workflows/runs/{runId}/terminal": { "get": { "operationId": "WorkflowsController_terminalChunks", "parameters": [ { "name": "runId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "nodeRef", "required": false, "in": "query", "schema": { "minLength": 1, "type": "string" } }, { "name": "stream", "required": false, "in": "query", "schema": { "type": "string", "enum": [ "stdout", "stderr", "pty" ] } }, { "name": "cursor", "required": false, "in": "query", "schema": { "type": "string" } }, { "name": "startTime", "required": false, "in": "query", "schema": { "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$", "type": "string" } }, { "name": "endTime", "required": false, "in": "query", "schema": { "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$", "type": "string" } } ], "responses": { "200": { "description": "Terminal chunks for a workflow run" } }, "tags": [ "workflows" ] } }, "/api/v1/workflows/runs/{runId}/terminal/archive": { "post": { "operationId": "WorkflowsController_archiveTerminal", "parameters": [ { "name": "runId", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TerminalArchiveRequestDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TerminalRecordingDto" } } } } }, "tags": [ "workflows" ] }, "get": { "operationId": "WorkflowsController_listTerminalArchives", "parameters": [ { "name": "runId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TerminalRecordListDto" } } } } }, "tags": [ "workflows" ] } }, "/api/v1/workflows/runs/{runId}/terminal/archive/{recordId}/download": { "get": { "operationId": "WorkflowsController_downloadTerminalArchive", "parameters": [ { "name": "runId", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "recordId", "required": true, "in": "path", "schema": { "maximum": 9007199254740991, "exclusiveMinimum": 0, "type": "integer" } } ], "responses": { "200": { "description": "Download terminal recording" } }, "tags": [ "workflows" ] } }, "/api/v1/internal/runs": { "post": { "operationId": "InternalRunsController_prepareRun", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PrepareRunRequestDto" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "InternalRuns" ] } }, "/api/v1/files/upload": { "post": { "operationId": "FilesController_uploadFile", "parameters": [], "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "type": "object", "properties": { "file": { "type": "string", "format": "binary", "description": "File to upload" } } } } } }, "responses": { "200": { "description": "File uploaded successfully", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "fileName": { "type": "string" }, "mimeType": { "type": "string" }, "size": { "type": "number" }, "storageKey": { "type": "string" }, "uploadedAt": { "type": "string", "format": "date-time" } } } } } } }, "tags": [ "files" ] } }, "/api/v1/files": { "get": { "operationId": "FilesController_listFiles", "parameters": [ { "name": "limit", "required": false, "in": "query", "schema": { "minimum": 1, "maximum": 500, "default": 100, "type": "integer" } } ], "responses": { "200": { "description": "List all uploaded files", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid" }, "fileName": { "type": "string" }, "mimeType": { "type": "string" }, "size": { "type": "number" }, "uploadedAt": { "type": "string", "format": "date-time" } } } } } } } }, "tags": [ "files" ] } }, "/api/v1/files/{id}": { "get": { "operationId": "FilesController_getFile", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "type": "string" } } ], "responses": { "200": { "description": "Get file metadata" } }, "tags": [ "files" ] }, "delete": { "operationId": "FilesController_deleteFile", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "type": "string" } } ], "responses": { "200": { "description": "Delete file" } }, "tags": [ "files" ] } }, "/api/v1/files/{id}/download": { "get": { "operationId": "FilesController_downloadFile", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "type": "string" } } ], "responses": { "200": { "description": "Download file", "content": { "application/octet-stream": { "schema": { "type": "string", "format": "binary" } } } } }, "tags": [ "files" ] } }, "/api/v1/artifacts": { "get": { "operationId": "ArtifactsController_listArtifacts", "parameters": [ { "name": "limit", "required": false, "in": "query", "schema": { "minimum": 1, "maximum": 200, "default": 50, "type": "integer" } }, { "name": "workflowId", "required": false, "in": "query", "schema": { "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "type": "string" } }, { "name": "componentId", "required": false, "in": "query", "schema": { "minLength": 1, "type": "string" } }, { "name": "destination", "required": false, "in": "query", "schema": { "type": "string", "enum": [ "run", "library" ] } }, { "name": "search", "required": false, "in": "query", "schema": { "minLength": 1, "maxLength": 200, "type": "string" } } ], "responses": { "200": { "description": "List workspace artifacts", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ArtifactListResponseDto" } } } } }, "tags": [ "artifacts" ] } }, "/api/v1/artifacts/{id}/download": { "get": { "operationId": "ArtifactsController_downloadArtifact", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "type": "string" } } ], "responses": { "200": { "description": "Download artifact binary", "content": { "application/octet-stream": { "schema": { "type": "string", "format": "binary" } } } } }, "tags": [ "artifacts" ] } }, "/api/v1/api-keys": { "get": { "operationId": "ApiKeysController_list", "parameters": [ { "name": "limit", "required": false, "in": "query", "schema": { "pattern": "^\\d+$", "default": "50", "type": "string" } }, { "name": "offset", "required": false, "in": "query", "schema": { "pattern": "^\\d+$", "default": "0", "type": "string" } }, { "name": "isActive", "required": false, "in": "query", "schema": { "type": "string", "enum": [ "true", "false" ] } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ApiKeyResponseDto" } } } } } }, "tags": [ "api-keys" ] }, "post": { "operationId": "ApiKeysController_create", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateApiKeyDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateApiKeyResponseDto" } } } } }, "tags": [ "api-keys" ] } }, "/api/v1/api-keys/{id}": { "get": { "operationId": "ApiKeysController_get", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiKeyResponseDto" } } } } }, "tags": [ "api-keys" ] }, "patch": { "operationId": "ApiKeysController_update", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateApiKeyDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiKeyResponseDto" } } } } }, "tags": [ "api-keys" ] }, "delete": { "operationId": "ApiKeysController_delete", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteApiKeyResponseDto" } } } } }, "tags": [ "api-keys" ] } }, "/api/v1/api-keys/{id}/revoke": { "post": { "operationId": "ApiKeysController_revoke", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiKeyResponseDto" } } } } }, "tags": [ "api-keys" ] } }, "/api/v1/components": { "get": { "operationId": "ComponentsController_listComponents", "parameters": [], "responses": { "200": { "description": "List all registered components", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "example": "core.file.loader" }, "slug": { "type": "string", "example": "file-loader" }, "name": { "type": "string", "example": "File Loader" }, "version": { "type": "string", "example": "1.0.0" }, "type": { "type": "string", "example": "input" }, "category": { "type": "string", "example": "input" }, "categoryConfig": { "type": "object", "properties": { "label": { "type": "string", "example": "Input" }, "color": { "type": "string", "example": "text-blue-600" }, "description": { "type": "string", "example": "Data sources, triggers, and credential access" }, "emoji": { "type": "string", "example": "📥" }, "icon": { "type": "string", "example": "Download" } } }, "description": { "type": "string", "example": "Load files from filesystem" }, "documentation": { "type": "string", "nullable": true }, "documentationUrl": { "type": "string", "nullable": true }, "icon": { "type": "string", "example": "FileUp" }, "logo": { "type": "string", "nullable": true }, "isLatest": { "type": "boolean", "nullable": true }, "deprecated": { "type": "boolean", "nullable": true }, "example": { "type": "string", "nullable": true }, "author": { "type": "object", "nullable": true, "properties": { "name": { "type": "string" }, "type": { "type": "string", "enum": [ "shipsecai", "community" ] }, "url": { "type": "string", "nullable": true } } }, "runner": { "type": "object", "properties": { "kind": { "type": "string", "enum": [ "inline", "docker", "remote" ], "example": "inline" }, "image": { "type": "string", "nullable": true }, "command": { "type": "array", "nullable": true, "items": { "type": "string" } } } }, "inputs": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "label": { "type": "string" }, "dataType": { "type": "object", "properties": { "kind": { "type": "string", "enum": [ "primitive", "list", "map", "contract" ] }, "name": { "type": "string" }, "element": { "type": "object" }, "value": { "type": "object" }, "coercion": { "type": "object", "properties": { "from": { "type": "array", "items": { "type": "string", "enum": [ "any", "text", "secret", "number", "boolean", "file", "json" ] } } } } }, "required": [ "kind" ], "additionalProperties": true }, "required": { "type": "boolean" }, "description": { "type": "string", "nullable": true }, "valuePriority": { "type": "string", "enum": [ "manual-first", "connection-first" ], "nullable": true } } } }, "outputs": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "label": { "type": "string" }, "dataType": { "type": "object", "properties": { "kind": { "type": "string", "enum": [ "primitive", "list", "map", "contract" ] }, "name": { "type": "string" }, "element": { "type": "object" }, "value": { "type": "object" }, "coercion": { "type": "object", "properties": { "from": { "type": "array", "items": { "type": "string", "enum": [ "any", "text", "secret", "number", "boolean", "file", "json" ] } } } } }, "required": [ "kind" ], "additionalProperties": true }, "description": { "type": "string", "nullable": true } } } }, "parameters": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "label": { "type": "string" }, "type": { "type": "string", "enum": [ "text", "textarea", "number", "boolean", "select", "multi-select", "json", "secret" ] }, "required": { "type": "boolean" }, "default": { "nullable": true }, "placeholder": { "type": "string", "nullable": true }, "description": { "type": "string", "nullable": true }, "helpText": { "type": "string", "nullable": true }, "options": { "type": "array", "nullable": true, "items": { "type": "object", "properties": { "label": { "type": "string" }, "value": {} } } }, "min": { "type": "number", "nullable": true }, "max": { "type": "number", "nullable": true }, "rows": { "type": "number", "nullable": true } } } }, "examples": { "type": "array", "items": { "type": "string" } } } } } } } } }, "tags": [ "components" ] } }, "/api/v1/components/{id}": { "get": { "operationId": "ComponentsController_getComponent", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Get a specific component by ID", "content": { "application/json": { "schema": { "type": "object", "properties": { "id": { "type": "string" }, "slug": { "type": "string" }, "name": { "type": "string" }, "version": { "type": "string" }, "type": { "type": "string" }, "category": { "type": "string" }, "categoryConfig": { "type": "object", "properties": { "label": { "type": "string" }, "color": { "type": "string" }, "description": { "type": "string" }, "emoji": { "type": "string" }, "icon": { "type": "string" } } }, "description": { "type": "string", "nullable": true }, "documentation": { "type": "string", "nullable": true }, "documentationUrl": { "type": "string", "nullable": true }, "icon": { "type": "string", "nullable": true }, "logo": { "type": "string", "nullable": true }, "author": { "type": "object", "nullable": true, "properties": { "name": { "type": "string" }, "type": { "type": "string" }, "url": { "type": "string", "nullable": true } } }, "runner": { "type": "object" }, "inputs": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "label": { "type": "string" }, "dataType": { "type": "object", "properties": { "kind": { "type": "string", "enum": [ "primitive", "list", "map", "contract" ] }, "name": { "type": "string" }, "element": { "type": "object" }, "value": { "type": "object" }, "coercion": { "type": "object", "properties": { "from": { "type": "array", "items": { "type": "string", "enum": [ "any", "text", "secret", "number", "boolean", "file", "json" ] } } } } }, "required": [ "kind" ], "additionalProperties": true }, "required": { "type": "boolean" }, "description": { "type": "string", "nullable": true }, "valuePriority": { "type": "string", "enum": [ "manual-first", "connection-first" ], "nullable": true } } } }, "outputs": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "label": { "type": "string" }, "dataType": { "type": "object", "properties": { "kind": { "type": "string", "enum": [ "primitive", "list", "map", "contract" ] }, "name": { "type": "string" }, "element": { "type": "object" }, "value": { "type": "object" }, "coercion": { "type": "object", "properties": { "from": { "type": "array", "items": { "type": "string", "enum": [ "any", "text", "secret", "number", "boolean", "file", "json" ] } } } } }, "required": [ "kind" ], "additionalProperties": true }, "description": { "type": "string", "nullable": true } } } }, "parameters": { "type": "array" }, "examples": { "type": "array" }, "isLatest": { "type": "boolean", "nullable": true }, "deprecated": { "type": "boolean", "nullable": true }, "example": { "type": "string", "nullable": true } } } } } } }, "tags": [ "components" ] } }, "/api/v1/components/{id}/resolve-ports": { "post": { "operationId": "ComponentsController_resolvePorts", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Resolve dynamic ports based on parameters" } }, "tags": [ "components" ] } }, "/api/v1/secrets": { "get": { "operationId": "SecretsController_listSecrets", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SecretSummaryResponse" } } } } } }, "tags": [ "secrets" ] }, "post": { "operationId": "SecretsController_createSecret", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSecretDto" } } } }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SecretSummaryResponse" } } } } }, "tags": [ "secrets" ] } }, "/api/v1/secrets/{id}": { "get": { "operationId": "SecretsController_getSecret", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SecretSummaryResponse" } } } } }, "tags": [ "secrets" ] }, "patch": { "operationId": "SecretsController_updateSecret", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateSecretDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SecretSummaryResponse" } } } } }, "tags": [ "secrets" ] }, "delete": { "operationId": "SecretsController_deleteSecret", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "204": { "description": "" } }, "tags": [ "secrets" ] } }, "/api/v1/secrets/{id}/value": { "get": { "operationId": "SecretsController_getSecretValue", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "version", "required": false, "in": "query", "description": "Optional secret version to retrieve (defaults to active version)", "schema": { "type": "number" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SecretValueResponse" } } } } }, "tags": [ "secrets" ] } }, "/api/v1/secrets/{id}/rotate": { "put": { "operationId": "SecretsController_rotateSecret", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RotateSecretDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SecretSummaryResponse" } } } } }, "tags": [ "secrets" ] } }, "/api/v1/integrations/providers": { "get": { "operationId": "IntegrationsController_listProviders", "parameters": [], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IntegrationProviderResponse" } } } } } }, "tags": [ "integrations" ] } }, "/api/v1/integrations/providers/{provider}/config": { "get": { "operationId": "IntegrationsController_getProviderConfiguration", "parameters": [ { "name": "provider", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProviderConfigurationResponse" } } } } }, "tags": [ "integrations" ] }, "put": { "operationId": "IntegrationsController_upsertProviderConfiguration", "parameters": [ { "name": "provider", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpsertProviderConfigDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProviderConfigurationResponse" } } } } }, "tags": [ "integrations" ] }, "delete": { "operationId": "IntegrationsController_deleteProviderConfiguration", "parameters": [ { "name": "provider", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "204": { "description": "" } }, "tags": [ "integrations" ] } }, "/api/v1/integrations/connections": { "get": { "operationId": "IntegrationsController_listConnections", "parameters": [ { "name": "userId", "required": true, "in": "query", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IntegrationConnectionResponse" } } } } } }, "tags": [ "integrations" ] } }, "/api/v1/integrations/{provider}/start": { "post": { "operationId": "IntegrationsController_startOAuth", "parameters": [ { "name": "provider", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/StartOAuthDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OAuthStartResponseDto" } } } } }, "tags": [ "integrations" ] } }, "/api/v1/integrations/{provider}/exchange": { "post": { "operationId": "IntegrationsController_completeOAuth", "parameters": [ { "name": "provider", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CompleteOAuthDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IntegrationConnectionResponse" } } } } }, "tags": [ "integrations" ] } }, "/api/v1/integrations/connections/{id}/refresh": { "post": { "operationId": "IntegrationsController_refreshConnection", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RefreshConnectionDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IntegrationConnectionResponse" } } } } }, "tags": [ "integrations" ] } }, "/api/v1/integrations/connections/{id}": { "delete": { "operationId": "IntegrationsController_disconnectConnection", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DisconnectConnectionDto" } } } }, "responses": { "200": { "description": "Connection removed" } }, "tags": [ "integrations" ] } }, "/api/v1/integrations/connections/{id}/token": { "post": { "operationId": "IntegrationsController_issueConnectionToken", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } }, { "name": "x-internal-token", "required": true, "in": "header", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConnectionTokenResponseDto" } } } } }, "tags": [ "integrations" ] } }, "/api/v1/schedules": { "get": { "operationId": "SchedulesController_list", "parameters": [ { "name": "workflowId", "required": false, "in": "query", "schema": { "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "type": "string" } }, { "name": "status", "required": false, "in": "query", "schema": { "type": "string", "enum": [ "active", "paused", "error" ] } } ], "responses": { "200": { "description": "" } }, "tags": [ "Schedules" ] }, "post": { "operationId": "SchedulesController_create", "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateScheduleRequestDto" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "Schedules" ] } }, "/api/v1/schedules/{id}": { "get": { "operationId": "SchedulesController_getOne", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Schedules" ] }, "patch": { "operationId": "SchedulesController_update", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateScheduleRequestDto" } } } }, "responses": { "200": { "description": "" } }, "tags": [ "Schedules" ] }, "delete": { "operationId": "SchedulesController_delete", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "Schedules" ] } }, "/api/v1/schedules/{id}/pause": { "post": { "operationId": "SchedulesController_pause", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "tags": [ "Schedules" ] } }, "/api/v1/schedules/{id}/resume": { "post": { "operationId": "SchedulesController_resume", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "tags": [ "Schedules" ] } }, "/api/v1/schedules/{id}/trigger": { "post": { "operationId": "SchedulesController_trigger", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "tags": [ "Schedules" ] } }, "/api/v1/webhooks/workflows": { "get": { "operationId": "WebhooksController_listWorkflows", "parameters": [], "responses": { "200": { "description": "" } }, "tags": [ "webhooks" ] } }, "/api/v1/webhooks/workflows/{id}": { "get": { "operationId": "WebhooksController_getWorkflow", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "webhooks" ] } }, "/api/v1/webhooks/workflows/{id}/run": { "post": { "operationId": "WebhooksController_runWorkflow", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WebhookRunWorkflowDto" } } } }, "responses": { "201": { "description": "" } }, "tags": [ "webhooks" ] } }, "/api/v1/webhooks/runs/{runId}/status": { "get": { "operationId": "WebhooksController_getRunStatus", "parameters": [ { "name": "runId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "webhooks" ] } }, "/api/v1/webhooks/runs/{runId}/result": { "get": { "operationId": "WebhooksController_getRunResult", "parameters": [ { "name": "runId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "webhooks" ] } }, "/api/v1/webhooks/runs/{runId}/cancel": { "post": { "operationId": "WebhooksController_cancelRun", "parameters": [ { "name": "runId", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "201": { "description": "" } }, "tags": [ "webhooks" ] } }, "/api/v1/human-inputs": { "get": { "operationId": "HumanInputsController_list", "parameters": [ { "name": "status", "required": false, "in": "query", "schema": { "type": "string", "enum": [ "pending", "resolved", "expired", "cancelled" ] } }, { "name": "inputType", "required": false, "in": "query", "schema": { "type": "string", "enum": [ "approval", "form", "selection", "review", "acknowledge" ] } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/HumanInputResponseDto" } } } } } }, "security": [ { "api-key": [] } ], "summary": "List human input requests", "tags": [ "Human Inputs" ] } }, "/api/v1/human-inputs/{id}": { "get": { "operationId": "HumanInputsController_get", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HumanInputResponseDto" } } } } }, "security": [ { "api-key": [] } ], "summary": "Get a human input request details", "tags": [ "Human Inputs" ] } }, "/api/v1/human-inputs/{id}/resolve": { "post": { "operationId": "HumanInputsController_resolve", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResolveHumanInputDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HumanInputResponseDto" } } } } }, "security": [ { "api-key": [] } ], "summary": "Resolve a human input request", "tags": [ "Human Inputs" ] } }, "/api/v1/human-inputs/resolve/{token}": { "post": { "operationId": "HumanInputsController_resolveByToken", "parameters": [ { "name": "token", "required": true, "in": "path", "schema": { "type": "string" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResolveByTokenDto" } } } }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PublicResolveResultDto" } } } } }, "summary": "Resolve input via public token", "tags": [ "Human Inputs" ] } }, "/api/v1/testing/webhooks": { "post": { "operationId": "TestingWebhookController_acceptWebhook", "parameters": [ { "name": "status", "required": false, "in": "query", "schema": { "minimum": 100, "maximum": 599, "type": "integer" } }, { "name": "delayMs", "required": false, "in": "query", "schema": { "minimum": 0, "maximum": 60000, "type": "integer" } } ], "responses": { "201": { "description": "" } }, "tags": [ "TestingWebhook" ] }, "get": { "operationId": "TestingWebhookController_listRecords", "parameters": [], "responses": { "200": { "description": "" } }, "tags": [ "TestingWebhook" ] }, "delete": { "operationId": "TestingWebhookController_clearRecords", "parameters": [], "responses": { "200": { "description": "" } }, "tags": [ "TestingWebhook" ] } }, "/api/v1/testing/webhooks/latest": { "get": { "operationId": "TestingWebhookController_latestRecord", "parameters": [], "responses": { "200": { "description": "" } }, "tags": [ "TestingWebhook" ] } }, "/api/v1/testing/webhooks/{id}": { "get": { "operationId": "TestingWebhookController_getRecord", "parameters": [ { "name": "id", "required": true, "in": "path", "schema": { "type": "string" } } ], "responses": { "200": { "description": "" } }, "tags": [ "TestingWebhook" ] } } }, "info": { "title": "ShipSec Studio API", "description": "ShipSec backend API specification", "version": "0.1.0", "contact": {} }, "tags": [], "servers": [ { "url": "/api/v1", "description": "API v1" } ], "components": { "schemas": { "CreateWorkflowRequestDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "nodes": { "minItems": 1, "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string" }, "position": { "type": "object", "properties": { "x": { "type": "number" }, "y": { "type": "number" } }, "required": [ "x", "y" ] }, "data": { "type": "object", "properties": { "label": { "type": "string" }, "config": { "default": {}, "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "dynamicInputs": { "type": "array", "items": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} } }, "dynamicOutputs": { "type": "array", "items": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} } } }, "required": [ "label" ] } }, "required": [ "id", "type", "position", "data" ] } }, "edges": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "source": { "type": "string" }, "target": { "type": "string" }, "sourceHandle": { "type": "string" }, "targetHandle": { "type": "string" }, "type": { "type": "string", "enum": [ "default", "smoothstep", "step", "straight", "bezier" ] } }, "required": [ "id", "source", "target" ] } }, "viewport": { "default": { "x": 0, "y": 0, "zoom": 1 }, "type": "object", "properties": { "x": { "type": "number" }, "y": { "type": "number" }, "zoom": { "type": "number" } }, "required": [ "x", "y", "zoom" ] } }, "required": [ "name", "nodes", "edges" ] }, "WorkflowResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string", "nullable": true }, "graph": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "nodes": { "minItems": 1, "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string" }, "position": { "type": "object", "properties": { "x": { "type": "number" }, "y": { "type": "number" } }, "required": [ "x", "y" ] }, "data": { "type": "object", "properties": { "label": { "type": "string" }, "config": { "default": {}, "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "dynamicInputs": { "type": "array", "items": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} } }, "dynamicOutputs": { "type": "array", "items": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} } } }, "required": [ "label" ] } }, "required": [ "id", "type", "position", "data" ] } }, "edges": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "source": { "type": "string" }, "target": { "type": "string" }, "sourceHandle": { "type": "string" }, "targetHandle": { "type": "string" }, "type": { "type": "string", "enum": [ "default", "smoothstep", "step", "straight", "bezier" ] } }, "required": [ "id", "source", "target" ] } }, "viewport": { "default": { "x": 0, "y": 0, "zoom": 1 }, "type": "object", "properties": { "x": { "type": "number" }, "y": { "type": "number" }, "zoom": { "type": "number" } }, "required": [ "x", "y", "zoom" ] } }, "required": [ "name", "nodes", "edges" ] }, "compiledDefinition": { "nullable": true }, "lastRun": { "type": "string", "nullable": true }, "runCount": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" }, "currentVersionId": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "nullable": true }, "currentVersion": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991, "nullable": true } }, "required": [ "id", "name", "graph", "compiledDefinition", "lastRun", "runCount", "createdAt", "updatedAt", "currentVersionId", "currentVersion" ] }, "UpdateWorkflowRequestDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "nodes": { "minItems": 1, "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string" }, "position": { "type": "object", "properties": { "x": { "type": "number" }, "y": { "type": "number" } }, "required": [ "x", "y" ] }, "data": { "type": "object", "properties": { "label": { "type": "string" }, "config": { "default": {}, "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "dynamicInputs": { "type": "array", "items": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} } }, "dynamicOutputs": { "type": "array", "items": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} } } }, "required": [ "label" ] } }, "required": [ "id", "type", "position", "data" ] } }, "edges": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "source": { "type": "string" }, "target": { "type": "string" }, "sourceHandle": { "type": "string" }, "targetHandle": { "type": "string" }, "type": { "type": "string", "enum": [ "default", "smoothstep", "step", "straight", "bezier" ] } }, "required": [ "id", "source", "target" ] } }, "viewport": { "default": { "x": 0, "y": 0, "zoom": 1 }, "type": "object", "properties": { "x": { "type": "number" }, "y": { "type": "number" }, "zoom": { "type": "number" } }, "required": [ "x", "y", "zoom" ] } }, "required": [ "name", "nodes", "edges" ] }, "UpdateWorkflowMetadataDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1 }, "description": { "type": "string", "nullable": true } }, "required": [ "name" ] }, "WorkflowVersionResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "workflowId": { "type": "string" }, "version": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "graph": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "nodes": { "minItems": 1, "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "type": { "type": "string" }, "position": { "type": "object", "properties": { "x": { "type": "number" }, "y": { "type": "number" } }, "required": [ "x", "y" ] }, "data": { "type": "object", "properties": { "label": { "type": "string" }, "config": { "default": {}, "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "dynamicInputs": { "type": "array", "items": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} } }, "dynamicOutputs": { "type": "array", "items": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} } } }, "required": [ "label" ] } }, "required": [ "id", "type", "position", "data" ] } }, "edges": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string" }, "source": { "type": "string" }, "target": { "type": "string" }, "sourceHandle": { "type": "string" }, "targetHandle": { "type": "string" }, "type": { "type": "string", "enum": [ "default", "smoothstep", "step", "straight", "bezier" ] } }, "required": [ "id", "source", "target" ] } }, "viewport": { "default": { "x": 0, "y": 0, "zoom": 1 }, "type": "object", "properties": { "x": { "type": "number" }, "y": { "type": "number" }, "zoom": { "type": "number" } }, "required": [ "x", "y", "zoom" ] } }, "required": [ "name", "nodes", "edges" ] }, "createdAt": { "type": "string" } }, "required": [ "id", "workflowId", "version", "graph", "createdAt" ] }, "RunWorkflowRequestDto": { "type": "object", "properties": { "inputs": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "versionId": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "version": { "type": "integer", "minimum": 1, "maximum": 9007199254740991 } } }, "RunArtifactsResponseDto": { "type": "object", "properties": { "runId": { "type": "string" }, "artifacts": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "runId": { "type": "string" }, "workflowId": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "workflowVersionId": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "nullable": true }, "componentId": { "type": "string", "nullable": true }, "componentRef": { "type": "string" }, "fileId": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "name": { "type": "string" }, "mimeType": { "type": "string" }, "size": { "type": "number", "minimum": 0 }, "destinations": { "type": "array", "items": { "type": "string", "enum": [ "run", "library" ] } }, "metadata": { "type": "object", "properties": { "remoteUploads": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "s3", "gcs" ] }, "bucket": { "type": "string" }, "key": { "type": "string" }, "uri": { "type": "string" }, "region": { "type": "string" }, "size": { "type": "number", "minimum": 0 }, "etag": { "type": "string" }, "url": { "type": "string", "format": "uri" }, "metadata": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} } }, "required": [ "type", "bucket", "key", "uri" ] } } }, "additionalProperties": {}, "nullable": true }, "organizationId": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" } }, "required": [ "id", "runId", "workflowId", "componentRef", "fileId", "name", "mimeType", "size", "destinations", "createdAt" ] } } }, "required": [ "runId", "artifacts" ] }, "TerminalArchiveRequestDto": { "type": "object", "properties": { "nodeRef": { "type": "string", "minLength": 1 }, "stream": { "default": "pty", "type": "string", "enum": [ "stdout", "stderr", "pty" ] }, "width": { "type": "integer", "exclusiveMinimum": 0, "maximum": 400 }, "height": { "type": "integer", "exclusiveMinimum": 0, "maximum": 200 } }, "required": [ "nodeRef" ] }, "TerminalRecordingDto": { "type": "object", "properties": { "id": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "runId": { "type": "string" }, "nodeRef": { "type": "string" }, "stream": { "type": "string" }, "fileId": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "chunkCount": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "durationMs": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "createdAt": { "type": "string" } }, "required": [ "id", "runId", "nodeRef", "stream", "fileId", "chunkCount", "durationMs", "createdAt" ] }, "TerminalRecordListDto": { "type": "object", "properties": { "runId": { "type": "string" }, "records": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "runId": { "type": "string" }, "nodeRef": { "type": "string" }, "stream": { "type": "string" }, "fileId": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "chunkCount": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "durationMs": { "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "createdAt": { "type": "string" } }, "required": [ "id", "runId", "nodeRef", "stream", "fileId", "chunkCount", "durationMs", "createdAt" ] } } }, "required": [ "runId", "records" ] }, "PrepareRunRequestDto": { "type": "object", "properties": { "inputs": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "versionId": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "version": { "type": "integer", "minimum": 1, "maximum": 9007199254740991 }, "workflowId": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "nodeOverrides": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} } }, "trigger": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "manual", "schedule", "api" ] }, "sourceId": { "type": "string", "nullable": true }, "label": { "type": "string", "nullable": true } }, "required": [ "type" ] }, "runId": { "type": "string" }, "idempotencyKey": { "type": "string", "minLength": 1, "maxLength": 128 }, "parentRunId": { "type": "string" }, "parentNodeRef": { "type": "string" } }, "required": [ "workflowId" ] }, "ArtifactListResponseDto": { "type": "object", "properties": { "artifacts": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "runId": { "type": "string" }, "workflowId": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "workflowVersionId": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$", "nullable": true }, "componentId": { "type": "string", "nullable": true }, "componentRef": { "type": "string" }, "fileId": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "name": { "type": "string" }, "mimeType": { "type": "string" }, "size": { "type": "number", "minimum": 0 }, "destinations": { "type": "array", "items": { "type": "string", "enum": [ "run", "library" ] } }, "metadata": { "type": "object", "properties": { "remoteUploads": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "s3", "gcs" ] }, "bucket": { "type": "string" }, "key": { "type": "string" }, "uri": { "type": "string" }, "region": { "type": "string" }, "size": { "type": "number", "minimum": 0 }, "etag": { "type": "string" }, "url": { "type": "string", "format": "uri" }, "metadata": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} } }, "required": [ "type", "bucket", "key", "uri" ] } } }, "additionalProperties": {}, "nullable": true }, "organizationId": { "type": "string", "nullable": true }, "createdAt": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" } }, "required": [ "id", "runId", "workflowId", "componentRef", "fileId", "name", "mimeType", "size", "destinations", "createdAt" ] } } }, "required": [ "artifacts" ] }, "ApiKeyResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string", "nullable": true }, "keyPrefix": { "type": "string" }, "keyHint": { "type": "string" }, "permissions": { "type": "object", "properties": { "workflows": { "type": "object", "properties": { "run": { "type": "boolean" }, "list": { "type": "boolean" }, "read": { "type": "boolean" } }, "required": [ "run", "list", "read" ] }, "runs": { "type": "object", "properties": { "read": { "type": "boolean" }, "cancel": { "type": "boolean" } }, "required": [ "read", "cancel" ] } }, "required": [ "workflows", "runs" ] }, "isActive": { "type": "boolean" }, "expiresAt": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$", "nullable": true }, "lastUsedAt": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$", "nullable": true }, "usageCount": { "type": "number" }, "createdAt": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" }, "updatedAt": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" } }, "required": [ "id", "name", "description", "keyPrefix", "keyHint", "permissions", "isActive", "expiresAt", "lastUsedAt", "usageCount", "createdAt", "updatedAt" ] }, "CreateApiKeyDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 191 }, "description": { "type": "string" }, "permissions": { "type": "object", "properties": { "workflows": { "type": "object", "properties": { "run": { "type": "boolean" }, "list": { "type": "boolean" }, "read": { "type": "boolean" } }, "required": [ "run", "list", "read" ] }, "runs": { "type": "object", "properties": { "read": { "type": "boolean" }, "cancel": { "type": "boolean" } }, "required": [ "read", "cancel" ] } }, "required": [ "workflows", "runs" ] }, "expiresAt": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" }, "rateLimit": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991 }, "organizationId": { "type": "string" } }, "required": [ "name", "permissions" ] }, "CreateApiKeyResponseDto": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string", "nullable": true }, "keyPrefix": { "type": "string" }, "keyHint": { "type": "string" }, "permissions": { "type": "object", "properties": { "workflows": { "type": "object", "properties": { "run": { "type": "boolean" }, "list": { "type": "boolean" }, "read": { "type": "boolean" } }, "required": [ "run", "list", "read" ] }, "runs": { "type": "object", "properties": { "read": { "type": "boolean" }, "cancel": { "type": "boolean" } }, "required": [ "read", "cancel" ] } }, "required": [ "workflows", "runs" ] }, "isActive": { "type": "boolean" }, "expiresAt": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$", "nullable": true }, "lastUsedAt": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$", "nullable": true }, "usageCount": { "type": "number" }, "createdAt": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" }, "updatedAt": { "type": "string", "format": "date-time", "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$" }, "plainKey": { "description": "The plaintext API key (only returned on creation)", "type": "string" } }, "required": [ "id", "name", "description", "keyPrefix", "keyHint", "permissions", "isActive", "expiresAt", "lastUsedAt", "usageCount", "createdAt", "updatedAt", "plainKey" ] }, "UpdateApiKeyDto": { "type": "object", "properties": { "name": { "type": "string", "minLength": 1, "maxLength": 191 }, "description": { "type": "string" }, "permissions": { "type": "object", "properties": { "workflows": { "type": "object", "properties": { "run": { "type": "boolean" }, "list": { "type": "boolean" }, "read": { "type": "boolean" } }, "required": [ "run", "list", "read" ] }, "runs": { "type": "object", "properties": { "read": { "type": "boolean" }, "cancel": { "type": "boolean" } }, "required": [ "read", "cancel" ] } }, "required": [ "workflows", "runs" ] }, "isActive": { "type": "boolean" }, "rateLimit": { "type": "integer", "exclusiveMinimum": 0, "maximum": 9007199254740991, "nullable": true } } }, "DeleteApiKeyResponseDto": { "type": "object", "properties": { "success": { "type": "boolean" } }, "required": [ "success" ] }, "SecretVersionResponse": { "type": "object", "properties": { "id": { "type": "string" }, "version": { "type": "number" }, "createdAt": { "format": "date-time", "type": "string" }, "createdBy": { "type": "string" } }, "required": [ "id", "version", "createdAt" ] }, "SecretSummaryResponse": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "tags": { "type": "array", "items": { "type": "string" } }, "createdAt": { "format": "date-time", "type": "string" }, "updatedAt": { "format": "date-time", "type": "string" }, "activeVersion": { "description": "Metadata about the active version (value is never returned)", "allOf": [ { "$ref": "#/components/schemas/SecretVersionResponse" } ] } }, "required": [ "id", "name", "createdAt", "updatedAt" ] }, "SecretValueResponse": { "type": "object", "properties": { "secretId": { "type": "string" }, "version": { "type": "number" }, "value": { "type": "string", "description": "Decrypted secret value" } }, "required": [ "secretId", "version", "value" ] }, "CreateSecretDto": { "type": "object", "properties": { "name": { "type": "string", "description": "Human-readable unique secret name" }, "value": { "type": "string", "description": "Secret plaintext value" }, "description": { "type": "string", "description": "Optional description for operators" }, "tags": { "description": "Optional tags to help organize secrets", "type": "array", "items": { "type": "string" } } }, "required": [ "name", "value" ] }, "RotateSecretDto": { "type": "object", "properties": { "value": { "type": "string", "description": "New plaintext secret value" } }, "required": [ "value" ] }, "UpdateSecretDto": { "type": "object", "properties": { "name": { "type": "string", "description": "Updated secret name (must remain unique)" }, "description": { "type": "string", "description": "Updated description for the secret" }, "tags": { "description": "Updated tags for the secret", "type": "array", "items": { "type": "string" } } } }, "IntegrationProviderResponse": { "type": "object", "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "description": { "type": "string" }, "docsUrl": { "type": "string" }, "defaultScopes": { "type": "array", "items": { "type": "string" } }, "supportsRefresh": { "type": "boolean" }, "isConfigured": { "type": "boolean", "description": "Indicates whether the provider has been configured with client credentials" } }, "required": [ "id", "name", "description", "defaultScopes", "supportsRefresh", "isConfigured" ] }, "ProviderConfigurationResponse": { "type": "object", "properties": { "provider": { "type": "string" }, "clientId": { "type": "string", "description": "Stored OAuth client identifier" }, "hasClientSecret": { "type": "boolean", "description": "True when a client secret has been stored for this provider" }, "configuredBy": { "type": "string", "enum": [ "environment", "user" ], "description": "Origin of the credential configuration" }, "updatedAt": { "type": "string", "description": "Last update timestamp in ISO 8601 format" } }, "required": [ "provider", "hasClientSecret", "configuredBy" ] }, "UpsertProviderConfigDto": { "type": "object", "properties": { "clientId": { "type": "string", "description": "OAuth client identifier used for this provider" }, "clientSecret": { "type": "string", "description": "OAuth client secret. Required when configuring the provider for the first time." } }, "required": [ "clientId" ] }, "IntegrationConnectionResponse": { "type": "object", "properties": { "id": { "type": "string" }, "provider": { "type": "string" }, "providerName": { "type": "string" }, "userId": { "type": "string" }, "scopes": { "type": "array", "items": { "type": "string" } }, "tokenType": { "type": "string" }, "expiresAt": { "type": "string" }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" }, "status": { "type": "string", "enum": [ "active", "expired" ] }, "supportsRefresh": { "type": "boolean" }, "hasRefreshToken": { "type": "boolean" }, "metadata": { "type": "object", "description": "Provider-specific metadata saved alongside the connection" } }, "required": [ "id", "provider", "providerName", "userId", "scopes", "tokenType", "createdAt", "updatedAt", "status", "supportsRefresh", "hasRefreshToken" ] }, "StartOAuthDto": { "type": "object", "properties": { "userId": { "type": "string", "description": "Application user identifier to associate the connection with" }, "redirectUri": { "type": "string", "description": "Frontend callback URL that receives the OAuth code" }, "scopes": { "description": "Optional override of scopes to request", "type": "array", "items": { "type": "string" } } }, "required": [ "userId", "redirectUri" ] }, "OAuthStartResponseDto": { "type": "object", "properties": { "provider": { "type": "string" }, "authorizationUrl": { "type": "string" }, "state": { "type": "string" }, "expiresIn": { "type": "number", "description": "Suggested client-side TTL for the authorization URL", "example": 300 } }, "required": [ "provider", "authorizationUrl", "state", "expiresIn" ] }, "CompleteOAuthDto": { "type": "object", "properties": { "userId": { "type": "string", "description": "Application user identifier to associate the connection with" }, "redirectUri": { "type": "string", "description": "Frontend callback URL that receives the OAuth code" }, "scopes": { "description": "Optional override of scopes to request", "type": "array", "items": { "type": "string" } }, "state": { "type": "string", "description": "Opaque OAuth state returned from the authorize redirect" }, "code": { "type": "string", "description": "Authorization code issued by the provider" } }, "required": [ "userId", "redirectUri", "state", "code" ] }, "RefreshConnectionDto": { "type": "object", "properties": { "userId": { "type": "string", "description": "Application user identifier that owns the connection" } }, "required": [ "userId" ] }, "DisconnectConnectionDto": { "type": "object", "properties": { "userId": { "type": "string", "description": "Application user identifier that owns the connection" } }, "required": [ "userId" ] }, "ConnectionTokenResponseDto": { "type": "object", "properties": { "provider": { "type": "string" }, "userId": { "type": "string" }, "accessToken": { "type": "string" }, "tokenType": { "type": "string" }, "scopes": { "type": "array", "items": { "type": "string" } }, "expiresAt": { "type": "string" } }, "required": [ "provider", "userId", "accessToken", "tokenType", "scopes" ] }, "CreateScheduleRequestDto": { "type": "object", "properties": { "workflowId": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "workflowVersionId": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "name": { "type": "string", "minLength": 1 }, "description": { "type": "string", "nullable": true }, "cronExpression": { "type": "string", "minLength": 1 }, "timezone": { "type": "string", "minLength": 1 }, "humanLabel": { "type": "string", "nullable": true }, "overlapPolicy": { "default": "skip", "type": "string", "enum": [ "skip", "buffer", "allow" ] }, "catchupWindowSeconds": { "default": 0, "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "inputPayload": { "default": { "runtimeInputs": {}, "nodeOverrides": {} }, "type": "object", "properties": { "runtimeInputs": { "default": {}, "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "nodeOverrides": { "default": {}, "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} } } } } }, "required": [ "workflowId", "name", "cronExpression", "timezone" ] }, "UpdateScheduleRequestDto": { "type": "object", "properties": { "workflowId": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "workflowVersionId": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "name": { "type": "string", "minLength": 1 }, "description": { "type": "string", "nullable": true }, "cronExpression": { "type": "string", "minLength": 1 }, "timezone": { "type": "string", "minLength": 1 }, "humanLabel": { "type": "string", "nullable": true }, "overlapPolicy": { "default": "skip", "type": "string", "enum": [ "skip", "buffer", "allow" ] }, "catchupWindowSeconds": { "default": 0, "type": "integer", "minimum": 0, "maximum": 9007199254740991 }, "inputPayload": { "default": { "runtimeInputs": {}, "nodeOverrides": {} }, "type": "object", "properties": { "runtimeInputs": { "default": {}, "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "nodeOverrides": { "default": {}, "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} } } } }, "status": { "type": "string", "enum": [ "active", "paused", "error" ] } } }, "WebhookRunWorkflowDto": { "type": "object", "properties": { "inputs": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "versionId": { "type": "string" }, "version": { "type": "integer", "minimum": -9007199254740991, "maximum": 9007199254740991 } } }, "HumanInputResponseDto": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "runId": { "type": "string" }, "workflowId": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "nodeRef": { "type": "string" }, "status": { "type": "string", "enum": [ "pending", "resolved", "expired", "cancelled" ] }, "inputType": { "type": "string", "enum": [ "approval", "form", "selection", "review", "acknowledge" ] }, "inputSchema": { "nullable": true }, "title": { "type": "string" }, "description": { "type": "string", "nullable": true }, "context": { "nullable": true }, "resolveToken": { "type": "string" }, "timeoutAt": { "type": "string", "nullable": true }, "responseData": { "nullable": true }, "respondedAt": { "type": "string", "nullable": true }, "respondedBy": { "type": "string", "nullable": true }, "organizationId": { "type": "string", "nullable": true }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string" } }, "required": [ "id", "runId", "workflowId", "nodeRef", "status", "inputType", "inputSchema", "title", "description", "context", "resolveToken", "timeoutAt", "responseData", "respondedAt", "respondedBy", "organizationId", "createdAt", "updatedAt" ] }, "ResolveHumanInputDto": { "type": "object", "properties": { "responseData": { "description": "The response data from the human", "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} }, "respondedBy": { "description": "User ID or identifier of who resolved the input", "type": "string" } } }, "ResolveByTokenDto": { "type": "object", "properties": { "action": { "default": "resolve", "type": "string", "enum": [ "approve", "reject", "resolve" ] }, "data": { "type": "object", "propertyNames": { "type": "string" }, "additionalProperties": {} } } }, "PublicResolveResultDto": { "type": "object", "properties": { "success": { "type": "boolean" }, "message": { "type": "string" }, "input": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$" }, "title": { "type": "string" }, "inputType": { "type": "string", "enum": [ "approval", "form", "selection", "review", "acknowledge" ] }, "status": { "type": "string", "enum": [ "pending", "resolved", "expired", "cancelled" ] }, "respondedAt": { "type": "string", "nullable": true } }, "required": [ "id", "title", "inputType", "status", "respondedAt" ] } }, "required": [ "success", "message", "input" ] } } } }