generated from Patagia/template-nix
864 lines
19 KiB
JSON
864 lines
19 KiB
JSON
|
{
|
||
|
"openapi": "3.0.3",
|
||
|
"info": {
|
||
|
"title": "Buildomat",
|
||
|
"version": "1.0"
|
||
|
},
|
||
|
"paths": {
|
||
|
"/v1/control/hold": {
|
||
|
"post": {
|
||
|
"operationId": "control_hold",
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "successful operation",
|
||
|
"content": {
|
||
|
"application/json; charset=utf-8": {
|
||
|
"schema": {
|
||
|
"enum": [
|
||
|
null
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/v1/control/resume": {
|
||
|
"post": {
|
||
|
"operationId": "control_resume",
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "successful operation"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/v1/task/{Task}": {
|
||
|
"get": {
|
||
|
"operationId": "task_get",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"in": "path",
|
||
|
"name": "Task",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"style": "simple"
|
||
|
}
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "successful operation",
|
||
|
"content": {
|
||
|
"application/json; charset=utf-8": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/Task"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/v1/tasks": {
|
||
|
"get": {
|
||
|
"operationId": "tasks_get",
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "successful operation",
|
||
|
"content": {
|
||
|
"application/json; charset=utf-8": {
|
||
|
"schema": {
|
||
|
"title": "Array_of_Task",
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"$ref": "#/components/schemas/Task"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"post": {
|
||
|
"operationId": "task_submit",
|
||
|
"requestBody": {
|
||
|
"content": {
|
||
|
"application/json; charset=utf-8": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/TaskSubmit"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"required": true
|
||
|
},
|
||
|
"responses": {
|
||
|
"201": {
|
||
|
"description": "successful creation",
|
||
|
"content": {
|
||
|
"application/json; charset=utf-8": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/TaskSubmitResult"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/v1/tasks/{task}/events": {
|
||
|
"get": {
|
||
|
"operationId": "task_events_get",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"in": "path",
|
||
|
"name": "task",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"style": "simple"
|
||
|
},
|
||
|
{
|
||
|
"in": "query",
|
||
|
"name": "minseq",
|
||
|
"schema": {
|
||
|
"type": "integer",
|
||
|
"format": "uint",
|
||
|
"minimum": 0
|
||
|
},
|
||
|
"style": "form"
|
||
|
}
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "successful operation",
|
||
|
"content": {
|
||
|
"application/json; charset=utf-8": {
|
||
|
"schema": {
|
||
|
"title": "Array_of_TaskEvent",
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"$ref": "#/components/schemas/TaskEvent"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/v1/tasks/{task}/outputs": {
|
||
|
"get": {
|
||
|
"operationId": "task_outputs_get",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"in": "path",
|
||
|
"name": "task",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"style": "simple"
|
||
|
}
|
||
|
],
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "successful operation",
|
||
|
"content": {
|
||
|
"application/json; charset=utf-8": {
|
||
|
"schema": {
|
||
|
"title": "Array_of_TaskOutput",
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"$ref": "#/components/schemas/TaskOutput"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/v1/tasks/{task}/outputs/{output}": {
|
||
|
"get": {
|
||
|
"operationId": "task_output_download",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"in": "path",
|
||
|
"name": "output",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"style": "simple"
|
||
|
},
|
||
|
{
|
||
|
"in": "path",
|
||
|
"name": "task",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"style": "simple"
|
||
|
}
|
||
|
],
|
||
|
"responses": {}
|
||
|
}
|
||
|
},
|
||
|
"/v1/users": {
|
||
|
"post": {
|
||
|
"operationId": "user_create",
|
||
|
"requestBody": {
|
||
|
"content": {
|
||
|
"application/json; charset=utf-8": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/UserCreate"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"required": true
|
||
|
},
|
||
|
"responses": {
|
||
|
"201": {
|
||
|
"description": "successful creation",
|
||
|
"content": {
|
||
|
"application/json; charset=utf-8": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/UserCreateResult"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/v1/whoami": {
|
||
|
"get": {
|
||
|
"operationId": "whoami",
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "successful operation",
|
||
|
"content": {
|
||
|
"application/json; charset=utf-8": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/WhoamiResult"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/v1/whoami/name": {
|
||
|
"put": {
|
||
|
"operationId": "whoami_put_name",
|
||
|
"requestBody": {
|
||
|
"content": {
|
||
|
"text/plain": {
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "successful operation"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/v1/worker/bootstrap": {
|
||
|
"post": {
|
||
|
"operationId": "worker_bootstrap",
|
||
|
"requestBody": {
|
||
|
"content": {
|
||
|
"application/json; charset=utf-8": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/WorkerBootstrap"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"required": true
|
||
|
},
|
||
|
"responses": {
|
||
|
"201": {
|
||
|
"description": "successful creation",
|
||
|
"content": {
|
||
|
"application/json; charset=utf-8": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/WorkerBootstrapResult"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/v1/worker/ping": {
|
||
|
"get": {
|
||
|
"operationId": "worker_ping",
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "successful operation",
|
||
|
"content": {
|
||
|
"application/json; charset=utf-8": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/WorkerPingResult"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/v1/worker/task/{task}/append": {
|
||
|
"post": {
|
||
|
"operationId": "worker_task_append",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"in": "path",
|
||
|
"name": "task",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"style": "simple"
|
||
|
}
|
||
|
],
|
||
|
"requestBody": {
|
||
|
"content": {
|
||
|
"application/json; charset=utf-8": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/WorkerAppendTask"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"required": true
|
||
|
},
|
||
|
"responses": {
|
||
|
"201": {
|
||
|
"description": "successful creation"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/v1/worker/task/{task}/chunk": {
|
||
|
"post": {
|
||
|
"operationId": "worker_task_upload_chunk",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"in": "path",
|
||
|
"name": "task",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"style": "simple"
|
||
|
}
|
||
|
],
|
||
|
"requestBody": {
|
||
|
"content": {
|
||
|
"application/octet-stream": {
|
||
|
"schema": {
|
||
|
"type": "string",
|
||
|
"format": "binary"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"required": true
|
||
|
},
|
||
|
"responses": {
|
||
|
"201": {
|
||
|
"description": "successful creation",
|
||
|
"content": {
|
||
|
"application/json; charset=utf-8": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/UploadedChunk"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/v1/worker/task/{task}/complete": {
|
||
|
"post": {
|
||
|
"operationId": "worker_task_complete",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"in": "path",
|
||
|
"name": "task",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"style": "simple"
|
||
|
}
|
||
|
],
|
||
|
"requestBody": {
|
||
|
"content": {
|
||
|
"application/json; charset=utf-8": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/WorkerCompleteTask"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"required": true
|
||
|
},
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "successful operation"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/v1/worker/task/{task}/output": {
|
||
|
"post": {
|
||
|
"operationId": "worker_task_add_output",
|
||
|
"parameters": [
|
||
|
{
|
||
|
"in": "path",
|
||
|
"name": "task",
|
||
|
"required": true,
|
||
|
"schema": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"style": "simple"
|
||
|
}
|
||
|
],
|
||
|
"requestBody": {
|
||
|
"content": {
|
||
|
"application/json; charset=utf-8": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/WorkerAddOutput"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"required": true
|
||
|
},
|
||
|
"responses": {
|
||
|
"201": {
|
||
|
"description": "successful creation"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/v1/workers": {
|
||
|
"get": {
|
||
|
"operationId": "workers_list",
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "successful operation",
|
||
|
"content": {
|
||
|
"application/json; charset=utf-8": {
|
||
|
"schema": {
|
||
|
"$ref": "#/components/schemas/WorkersResult"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"/v1/workers/recycle": {
|
||
|
"post": {
|
||
|
"operationId": "workers_recycle",
|
||
|
"responses": {
|
||
|
"200": {
|
||
|
"description": "successful operation"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"components": {
|
||
|
"schemas": {
|
||
|
"Task": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"id": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"name": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"output_rules": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"script": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"state": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"id",
|
||
|
"name",
|
||
|
"output_rules",
|
||
|
"script",
|
||
|
"state"
|
||
|
]
|
||
|
},
|
||
|
"TaskEvent": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"payload": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"seq": {
|
||
|
"type": "integer",
|
||
|
"format": "uint",
|
||
|
"minimum": 0
|
||
|
},
|
||
|
"stream": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"time": {
|
||
|
"type": "string",
|
||
|
"format": "date-time"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"payload",
|
||
|
"seq",
|
||
|
"stream",
|
||
|
"time"
|
||
|
]
|
||
|
},
|
||
|
"TaskOutput": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"id": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"path": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"size": {
|
||
|
"type": "integer",
|
||
|
"format": "uint64",
|
||
|
"minimum": 0
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"id",
|
||
|
"path",
|
||
|
"size"
|
||
|
]
|
||
|
},
|
||
|
"TaskSubmit": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"name": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"output_rules": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"script": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"name",
|
||
|
"script"
|
||
|
]
|
||
|
},
|
||
|
"TaskSubmitResult": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"id": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"id"
|
||
|
]
|
||
|
},
|
||
|
"UploadedChunk": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"id": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"id"
|
||
|
]
|
||
|
},
|
||
|
"UserCreate": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"name": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"name"
|
||
|
]
|
||
|
},
|
||
|
"UserCreateResult": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"id": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"name": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"token": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"id",
|
||
|
"name",
|
||
|
"token"
|
||
|
]
|
||
|
},
|
||
|
"WhoamiResult": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"id": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"name": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"id",
|
||
|
"name"
|
||
|
]
|
||
|
},
|
||
|
"Worker": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"deleted": {
|
||
|
"type": "boolean"
|
||
|
},
|
||
|
"id": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"instance_id": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"lastping": {
|
||
|
"type": "string",
|
||
|
"format": "date-time"
|
||
|
},
|
||
|
"recycle": {
|
||
|
"type": "boolean"
|
||
|
},
|
||
|
"tasks": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"$ref": "#/components/schemas/WorkerTask"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"deleted",
|
||
|
"id",
|
||
|
"recycle",
|
||
|
"tasks"
|
||
|
]
|
||
|
},
|
||
|
"WorkerAddOutput": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"chunks": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"path": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"size": {
|
||
|
"type": "integer",
|
||
|
"format": "int64"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"chunks",
|
||
|
"path",
|
||
|
"size"
|
||
|
]
|
||
|
},
|
||
|
"WorkerAppendTask": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"payload": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"stream": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"time": {
|
||
|
"type": "string",
|
||
|
"format": "date-time"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"payload",
|
||
|
"stream",
|
||
|
"time"
|
||
|
]
|
||
|
},
|
||
|
"WorkerBootstrap": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"bootstrap": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"token": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"bootstrap",
|
||
|
"token"
|
||
|
]
|
||
|
},
|
||
|
"WorkerBootstrapResult": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"id": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"id"
|
||
|
]
|
||
|
},
|
||
|
"WorkerCompleteTask": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"failed": {
|
||
|
"type": "boolean"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"failed"
|
||
|
]
|
||
|
},
|
||
|
"WorkerPingResult": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"poweroff": {
|
||
|
"type": "boolean"
|
||
|
},
|
||
|
"task": {
|
||
|
"$ref": "#/components/schemas/WorkerPingTask"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"poweroff"
|
||
|
]
|
||
|
},
|
||
|
"WorkerPingTask": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"id": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"output_rules": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"script": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"id",
|
||
|
"output_rules",
|
||
|
"script"
|
||
|
]
|
||
|
},
|
||
|
"WorkerTask": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"id": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"name": {
|
||
|
"type": "string"
|
||
|
},
|
||
|
"owner": {
|
||
|
"type": "string"
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"id",
|
||
|
"name",
|
||
|
"owner"
|
||
|
]
|
||
|
},
|
||
|
"WorkersResult": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"workers": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"$ref": "#/components/schemas/Worker"
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"workers"
|
||
|
]
|
||
|
},
|
||
|
"ObjWithOptionArray": {
|
||
|
"type": "object",
|
||
|
"properties": {
|
||
|
"things": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"nullable": true,
|
||
|
"allOf": [
|
||
|
{
|
||
|
"$ref": "#/components/schemas/Task"
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"stranger-things": {
|
||
|
"type": "array",
|
||
|
"items": {
|
||
|
"nullable": true,
|
||
|
"allOf": [
|
||
|
{
|
||
|
"$ref": "#/components/schemas/Task"
|
||
|
}
|
||
|
],
|
||
|
"oneOf": [
|
||
|
{}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"required": [
|
||
|
"things",
|
||
|
"stranger-things"
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|