{ "$defs": { "ActionInput": { "additionalProperties": false, "properties": { "type": { "anyOf": [ { "const": "int", "type": "string" }, { "const": "float", "type": "string" }, { "const": "bool", "type": "string" }, { "const": "str", "type": "string" } ], "default": "str", "title": "Type" }, "descr": { "title": "Descr", "type": "string" }, "default": { "anyOf": [ { "type": "integer" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" } ], "title": "Default" } }, "title": "ActionInput", "type": "object" }, "ActionOutput": { "additionalProperties": false, "properties": { "descr": { "title": "Descr", "type": "string" }, "value": { "anyOf": [ { "type": "integer" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" } ], "title": "Value" } }, "title": "ActionOutput", "type": "object" }, "BatchAction": { "additionalProperties": false, "properties": { "name": { "title": "Name", "type": "string" }, "author": { "title": "Author", "type": "string" }, "descr": { "title": "Descr", "type": "string" }, "inputs": { "additionalProperties": { "$ref": "#/$defs/ActionInput" }, "title": "Inputs", "type": "object" }, "outputs": { "additionalProperties": { "anyOf": [ { "$ref": "#/$defs/ActionOutput" }, { "items": { "type": "string" }, "type": "array" } ] }, "title": "Outputs", "type": "object" }, "kind": { "const": "batch", "title": "Kind", "type": "string" }, "cache": { "$ref": "#/$defs/Cache" }, "images": { "additionalProperties": { "$ref": "#/$defs/Image" }, "title": "Images", "type": "object" }, "tasks": { "items": { "$ref": "#/$defs/Task" }, "title": "Tasks", "type": "array" } }, "required": [ "kind", "tasks" ], "title": "BatchAction", "type": "object" }, "Cache": { "additionalProperties": false, "properties": { "strategy": { "$ref": "#/$defs/CacheStrategy" }, "life_span": { "anyOf": [ { "pattern": "^(\\d+d)?(\\d+h)?(\\d+m)?(\\d+s)?$", "type": "string" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" } ], "title": "Life Span" } }, "required": [ "strategy" ], "title": "Cache", "type": "object" }, "CacheStrategy": { "enum": [ "none", "default", "inherit" ], "title": "CacheStrategy", "type": "string" }, "ExecUnit": { "additionalProperties": false, "properties": { "title": { "title": "Title", "type": "string" }, "name": { "title": "Name", "type": "string" }, "image": { "title": "Image", "type": "string" }, "preset": { "title": "Preset", "type": "string" }, "schedule_timeout": { "anyOf": [ { "pattern": "^(\\d+d)?(\\d+h)?(\\d+m)?(\\d+s)?$", "type": "string" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" } ], "title": "Schedule Timeout" }, "entrypoint": { "title": "Entrypoint", "type": "string" }, "cmd": { "title": "Cmd", "type": "string" }, "bash": { "title": "Bash", "type": "string" }, "python": { "title": "Python", "type": "string" }, "action": { "title": "Action", "type": "string" }, "module": { "title": "Module", "type": "string" }, "args": { "additionalProperties": { "anyOf": [ { "type": "integer" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" }, { "type": "null" } ] }, "title": "Args", "type": "object" }, "workdir": { "title": "Workdir", "type": "string" }, "env": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" } ], "title": "Env" }, "volumes": { "anyOf": [ { "items": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "type": "array" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" } ], "title": "Volumes" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" } ], "title": "Tags" }, "life_span": { "anyOf": [ { "pattern": "^(\\d+d)?(\\d+h)?(\\d+m)?(\\d+s)?$", "type": "string" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" } ], "title": "Life Span" }, "http_port": { "anyOf": [ { "type": "integer" }, { "type": "string" } ], "title": "Http Port" }, "http_auth": { "title": "Http Auth", "type": "boolean" }, "pass_config": { "title": "Pass Config", "type": "boolean" }, "restart": { "anyOf": [ { "$ref": "#/$defs/JobRestartPolicy" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" } ], "title": "Restart" } }, "title": "ExecUnit", "type": "object" }, "Image": { "additionalProperties": false, "properties": { "ref": { "title": "Ref", "type": "string" }, "context": { "title": "Context", "type": "string" }, "dockerfile": { "title": "Dockerfile", "type": "string" }, "build_args": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" } ], "title": "Build Args" }, "env": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" } ], "title": "Env" }, "volumes": { "anyOf": [ { "items": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "type": "array" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" } ], "title": "Volumes" }, "build_preset": { "title": "Build Preset", "type": "string" }, "force_rebuild": { "title": "Force Rebuild", "type": "boolean" }, "extra_kaniko_args": { "title": "Extra Kaniko Args", "type": "string" } }, "required": [ "ref" ], "title": "Image", "type": "object" }, "Job": { "additionalProperties": false, "properties": { "title": { "title": "Title", "type": "string" }, "name": { "title": "Name", "type": "string" }, "image": { "title": "Image", "type": "string" }, "preset": { "title": "Preset", "type": "string" }, "schedule_timeout": { "anyOf": [ { "pattern": "^(\\d+d)?(\\d+h)?(\\d+m)?(\\d+s)?$", "type": "string" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" } ], "title": "Schedule Timeout" }, "entrypoint": { "title": "Entrypoint", "type": "string" }, "cmd": { "title": "Cmd", "type": "string" }, "bash": { "title": "Bash", "type": "string" }, "python": { "title": "Python", "type": "string" }, "action": { "title": "Action", "type": "string" }, "module": { "title": "Module", "type": "string" }, "args": { "additionalProperties": { "anyOf": [ { "type": "integer" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" }, { "type": "null" } ] }, "title": "Args", "type": "object" }, "workdir": { "title": "Workdir", "type": "string" }, "env": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" } ], "title": "Env" }, "volumes": { "anyOf": [ { "items": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "type": "array" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" } ], "title": "Volumes" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" } ], "title": "Tags" }, "life_span": { "anyOf": [ { "pattern": "^(\\d+d)?(\\d+h)?(\\d+m)?(\\d+s)?$", "type": "string" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" } ], "title": "Life Span" }, "http_port": { "anyOf": [ { "type": "integer" }, { "type": "string" } ], "title": "Http Port" }, "http_auth": { "title": "Http Auth", "type": "boolean" }, "pass_config": { "title": "Pass Config", "type": "boolean" }, "restart": { "anyOf": [ { "$ref": "#/$defs/JobRestartPolicy" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" } ], "title": "Restart" }, "detach": { "title": "Detach", "type": "boolean" }, "browse": { "title": "Browse", "type": "boolean" }, "multi": { "title": "Multi", "type": "boolean" }, "port_forward": { "anyOf": [ { "items": { "anyOf": [ { "pattern": "^\\d+:\\d+$", "type": "string" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" } ] }, "type": "array" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" } ], "title": "Port Forward" }, "params": { "additionalProperties": { "anyOf": [ { "type": "integer" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" }, { "$ref": "#/$defs/Param" }, { "type": "null" } ] }, "title": "Params", "type": "object" }, "mixins": { "items": { "type": "string" }, "title": "Mixins", "type": "array" } }, "title": "Job", "type": "object" }, "JobRestartPolicy": { "enum": [ "never", "on-failure", "always" ], "title": "JobRestartPolicy", "type": "string" }, "LiveAction": { "additionalProperties": false, "properties": { "name": { "title": "Name", "type": "string" }, "author": { "title": "Author", "type": "string" }, "descr": { "title": "Descr", "type": "string" }, "inputs": { "additionalProperties": { "$ref": "#/$defs/ActionInput" }, "title": "Inputs", "type": "object" }, "outputs": { "additionalProperties": { "anyOf": [ { "$ref": "#/$defs/ActionOutput" }, { "items": { "type": "string" }, "type": "array" } ] }, "title": "Outputs", "type": "object" }, "kind": { "const": "live", "title": "Kind", "type": "string" }, "job": { "$ref": "#/$defs/Job" } }, "required": [ "kind", "job" ], "title": "LiveAction", "type": "object" }, "LocalAction": { "additionalProperties": false, "properties": { "name": { "title": "Name", "type": "string" }, "author": { "title": "Author", "type": "string" }, "descr": { "title": "Descr", "type": "string" }, "inputs": { "additionalProperties": { "$ref": "#/$defs/ActionInput" }, "title": "Inputs", "type": "object" }, "outputs": { "additionalProperties": { "anyOf": [ { "$ref": "#/$defs/ActionOutput" }, { "items": { "type": "string" }, "type": "array" } ] }, "title": "Outputs", "type": "object" }, "kind": { "const": "local", "title": "Kind", "type": "string" }, "cmd": { "title": "Cmd", "type": "string" }, "bash": { "title": "Bash", "type": "string" }, "python": { "title": "Python", "type": "string" } }, "required": [ "kind" ], "title": "LocalAction", "type": "object" }, "Param": { "additionalProperties": false, "properties": { "default": { "anyOf": [ { "type": "integer" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" }, { "type": "null" } ], "title": "Default" }, "descr": { "title": "Descr", "type": "string" } }, "title": "Param", "type": "object" }, "StatefulAction": { "additionalProperties": false, "properties": { "name": { "title": "Name", "type": "string" }, "author": { "title": "Author", "type": "string" }, "descr": { "title": "Descr", "type": "string" }, "inputs": { "additionalProperties": { "$ref": "#/$defs/ActionInput" }, "title": "Inputs", "type": "object" }, "outputs": { "additionalProperties": { "anyOf": [ { "$ref": "#/$defs/ActionOutput" }, { "items": { "type": "string" }, "type": "array" } ] }, "title": "Outputs", "type": "object" }, "kind": { "const": "stateful", "title": "Kind", "type": "string" }, "cache": { "$ref": "#/$defs/Cache" }, "main": { "$ref": "#/$defs/ExecUnit", "title": "Main" }, "post": { "$ref": "#/$defs/ExecUnit", "title": "Post" }, "post_if": { "anyOf": [ { "type": "boolean" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" } ], "title": "Post If" } }, "required": [ "kind" ], "title": "StatefulAction", "type": "object" }, "Strategy": { "additionalProperties": false, "properties": { "matrix": { "additionalProperties": { "anyOf": [ { "type": "boolean" }, { "type": "integer" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" }, { "items": { "anyOf": [ { "type": "integer" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" }, { "additionalProperties": { "anyOf": [ { "type": "integer" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" } ] }, "type": "object" } ] }, "type": "array" } ] }, "title": "Matrix", "type": "object" }, "fail_fast": { "title": "Fail Fast", "type": "boolean" }, "max_parallel": { "title": "Max Parallel", "type": "integer" } }, "title": "Strategy", "type": "object" }, "Task": { "additionalProperties": false, "properties": { "title": { "title": "Title", "type": "string" }, "name": { "title": "Name", "type": "string" }, "image": { "title": "Image", "type": "string" }, "preset": { "title": "Preset", "type": "string" }, "schedule_timeout": { "anyOf": [ { "pattern": "^(\\d+d)?(\\d+h)?(\\d+m)?(\\d+s)?$", "type": "string" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" } ], "title": "Schedule Timeout" }, "entrypoint": { "title": "Entrypoint", "type": "string" }, "cmd": { "title": "Cmd", "type": "string" }, "bash": { "title": "Bash", "type": "string" }, "python": { "title": "Python", "type": "string" }, "action": { "title": "Action", "type": "string" }, "module": { "title": "Module", "type": "string" }, "args": { "additionalProperties": { "anyOf": [ { "type": "integer" }, { "type": "number" }, { "type": "string" }, { "type": "boolean" }, { "type": "null" } ] }, "title": "Args", "type": "object" }, "workdir": { "title": "Workdir", "type": "string" }, "env": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" } ], "title": "Env" }, "volumes": { "anyOf": [ { "items": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "type": "array" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" } ], "title": "Volumes" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" } ], "title": "Tags" }, "life_span": { "anyOf": [ { "pattern": "^(\\d+d)?(\\d+h)?(\\d+m)?(\\d+s)?$", "type": "string" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" } ], "title": "Life Span" }, "http_port": { "anyOf": [ { "type": "integer" }, { "type": "string" } ], "title": "Http Port" }, "http_auth": { "title": "Http Auth", "type": "boolean" }, "pass_config": { "title": "Pass Config", "type": "boolean" }, "restart": { "anyOf": [ { "$ref": "#/$defs/JobRestartPolicy" }, { "pattern": "^\\$\\{\\{.+\\}\\}$", "type": "string" } ], "title": "Restart" }, "id": { "title": "Id", "type": "string" }, "needs": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "additionalProperties": { "type": "string" }, "type": "object" } ], "title": "Needs" }, "strategy": { "$ref": "#/$defs/Strategy" }, "enable": { "anyOf": [ { "type": "boolean" }, { "type": "string" } ], "title": "Enable" }, "cache": { "$ref": "#/$defs/Cache" }, "mixins": { "items": { "type": "string" }, "title": "Mixins", "type": "array" } }, "title": "Task", "type": "object" } }, "discriminator": { "mapping": { "batch": "#/$defs/BatchAction", "live": "#/$defs/LiveAction", "local": "#/$defs/LocalAction", "stateful": "#/$defs/StatefulAction" }, "propertyName": "kind" }, "oneOf": [ { "$ref": "#/$defs/LiveAction" }, { "$ref": "#/$defs/BatchAction" }, { "$ref": "#/$defs/StatefulAction" }, { "$ref": "#/$defs/LocalAction" } ] }