windmill-yaml-validator
Version:
YAML validator for Windmill
834 lines (833 loc) • 28.9 kB
JSON
{
"openapi": "3.0.3",
"info": {
"version": "1.517.0",
"title": "OpenFlow Spec",
"contact": {
"name": "Ruben Fiszel",
"email": "ruben@windmill.dev",
"url": "https://windmill.dev"
},
"license": {
"name": "Apache 2.0",
"url": "https://www.apache.org/licenses/LICENSE-2.0.html"
}
},
"paths": {},
"externalDocs": {
"description": "documentation portal",
"url": "https://windmill.dev"
},
"components": {
"schemas": {
"OpenFlow": {
"type": "object",
"properties": {
"summary": {
"type": "string"
},
"description": {
"type": "string"
},
"value": {
"$ref": "#/components/schemas/FlowValue"
},
"schema": {
"type": "object"
}
},
"required": [
"summary",
"value"
]
},
"FlowValue": {
"type": "object",
"properties": {
"modules": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FlowModule"
}
},
"failure_module": {
"$ref": "#/components/schemas/FlowModule"
},
"preprocessor_module": {
"$ref": "#/components/schemas/FlowModule"
},
"same_worker": {
"type": "boolean"
},
"concurrent_limit": {
"type": "number"
},
"concurrency_key": {
"type": "string"
},
"concurrency_time_window_s": {
"type": "number"
},
"skip_expr": {
"type": "string"
},
"cache_ttl": {
"type": "number"
},
"priority": {
"type": "number"
},
"early_return": {
"type": "string"
}
},
"required": [
"modules"
]
},
"Retry": {
"type": "object",
"properties": {
"constant": {
"type": "object",
"properties": {
"attempts": {
"type": "integer"
},
"seconds": {
"type": "integer"
}
}
},
"exponential": {
"type": "object",
"properties": {
"attempts": {
"type": "integer"
},
"multiplier": {
"type": "integer"
},
"seconds": {
"type": "integer"
},
"random_factor": {
"type": "integer",
"minimum": 0,
"maximum": 100
}
}
}
}
},
"StopAfterIf": {
"type": "object",
"properties": {
"skip_if_stopped": {
"type": "boolean"
},
"expr": {
"type": "string"
},
"error_message": {
"type": "string"
}
},
"required": [
"expr"
]
},
"FlowModule": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"value": {
"$ref": "#/components/schemas/FlowModuleValue"
},
"stop_after_if": {
"$ref": "#/components/schemas/StopAfterIf"
},
"stop_after_all_iters_if": {
"$ref": "#/components/schemas/StopAfterIf"
},
"skip_if": {
"type": "object",
"properties": {
"expr": {
"type": "string"
}
},
"required": [
"expr"
]
},
"sleep": {
"$ref": "#/components/schemas/InputTransform"
},
"cache_ttl": {
"type": "number"
},
"timeout": {
"type": "number"
},
"delete_after_use": {
"type": "boolean"
},
"summary": {
"type": "string"
},
"mock": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean"
},
"return_value": {}
}
},
"suspend": {
"type": "object",
"properties": {
"required_events": {
"type": "integer"
},
"timeout": {
"type": "integer"
},
"resume_form": {
"type": "object",
"properties": {
"schema": {
"type": "object"
}
}
},
"user_auth_required": {
"type": "boolean"
},
"user_groups_required": {
"$ref": "#/components/schemas/InputTransform"
},
"self_approval_disabled": {
"type": "boolean"
},
"hide_cancel": {
"type": "boolean"
},
"continue_on_disapprove_timeout": {
"type": "boolean"
}
}
},
"priority": {
"type": "number"
},
"continue_on_error": {
"type": "boolean"
},
"retry": {
"$ref": "#/components/schemas/Retry"
}
},
"required": [
"value",
"id"
]
},
"InputTransform": {
"oneOf": [
{
"$ref": "#/components/schemas/StaticTransform"
},
{
"$ref": "#/components/schemas/JavascriptTransform"
}
],
"discriminator": {
"propertyName": "type"
}
},
"StaticTransform": {
"type": "object",
"properties": {
"value": {},
"type": {
"type": "string",
"enum": [
"static"
]
}
},
"required": [
"value",
"type"
]
},
"JavascriptTransform": {
"type": "object",
"properties": {
"expr": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"javascript"
]
}
},
"required": [
"expr",
"type"
]
},
"FlowModuleValue": {
"oneOf": [
{
"$ref": "#/components/schemas/RawScript"
},
{
"$ref": "#/components/schemas/PathScript"
},
{
"$ref": "#/components/schemas/PathFlow"
},
{
"$ref": "#/components/schemas/ForloopFlow"
},
{
"$ref": "#/components/schemas/WhileloopFlow"
},
{
"$ref": "#/components/schemas/BranchOne"
},
{
"$ref": "#/components/schemas/BranchAll"
},
{
"$ref": "#/components/schemas/Identity"
}
],
"discriminator": {
"propertyName": "type"
}
},
"RawScript": {
"type": "object",
"properties": {
"input_transforms": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/InputTransform"
}
},
"content": {
"type": "string"
},
"language": {
"type": "string",
"enum": [
"deno",
"bun",
"python3",
"go",
"bash",
"powershell",
"postgresql",
"mysql",
"bigquery",
"snowflake",
"mssql",
"oracledb",
"graphql",
"nativets",
"php"
]
},
"path": {
"type": "string"
},
"lock": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"rawscript"
]
},
"tag": {
"type": "string"
},
"concurrent_limit": {
"type": "number"
},
"concurrency_time_window_s": {
"type": "number"
},
"custom_concurrency_key": {
"type": "string"
},
"is_trigger": {
"type": "boolean"
},
"assets": {
"type": "array",
"items": {
"type": "object",
"required": [
"path",
"kind"
],
"properties": {
"path": {
"type": "string"
},
"kind": {
"type": "string",
"enum": [
"s3object",
"resource"
]
},
"access_type": {
"type": "string",
"enum": [
"r",
"w",
"rw"
]
},
"alt_access_type": {
"type": "string",
"enum": [
"r",
"w",
"rw"
]
}
}
}
}
},
"required": [
"type",
"content",
"language",
"input_transforms"
]
},
"PathScript": {
"type": "object",
"properties": {
"input_transforms": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/InputTransform"
}
},
"path": {
"type": "string"
},
"hash": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"script"
]
},
"tag_override": {
"type": "string"
},
"is_trigger": {
"type": "boolean"
}
},
"required": [
"type",
"path",
"input_transforms"
]
},
"PathFlow": {
"type": "object",
"properties": {
"input_transforms": {
"type": "object",
"additionalProperties": {
"$ref": "#/components/schemas/InputTransform"
}
},
"path": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"flow"
]
}
},
"required": [
"type",
"path",
"input_transforms"
]
},
"ForloopFlow": {
"type": "object",
"properties": {
"modules": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FlowModule"
}
},
"iterator": {
"$ref": "#/components/schemas/InputTransform"
},
"skip_failures": {
"type": "boolean"
},
"type": {
"type": "string",
"enum": [
"forloopflow"
]
},
"parallel": {
"type": "boolean"
},
"parallelism": {
"type": "integer"
}
},
"required": [
"modules",
"iterator",
"skip_failures",
"type"
]
},
"WhileloopFlow": {
"type": "object",
"properties": {
"modules": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FlowModule"
}
},
"skip_failures": {
"type": "boolean"
},
"type": {
"type": "string",
"enum": [
"whileloopflow"
]
},
"parallel": {
"type": "boolean"
},
"parallelism": {
"type": "integer"
}
},
"required": [
"modules",
"skip_failures",
"type"
]
},
"BranchOne": {
"type": "object",
"properties": {
"branches": {
"type": "array",
"items": {
"type": "object",
"properties": {
"summary": {
"type": "string"
},
"expr": {
"type": "string"
},
"modules": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FlowModule"
}
}
},
"required": [
"modules",
"expr"
]
}
},
"default": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FlowModule"
},
"required": [
"modules"
]
},
"type": {
"type": "string",
"enum": [
"branchone"
]
}
},
"required": [
"branches",
"default",
"type"
]
},
"BranchAll": {
"type": "object",
"properties": {
"branches": {
"type": "array",
"items": {
"type": "object",
"properties": {
"summary": {
"type": "string"
},
"skip_failure": {
"type": "boolean"
},
"modules": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FlowModule"
}
}
},
"required": [
"modules"
]
}
},
"type": {
"type": "string",
"enum": [
"branchall"
]
},
"parallel": {
"type": "boolean"
}
},
"required": [
"branches",
"type"
]
},
"Identity": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"identity"
]
},
"flow": {
"type": "boolean"
}
},
"required": [
"type"
]
},
"FlowStatus": {
"type": "object",
"properties": {
"step": {
"type": "integer"
},
"modules": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FlowStatusModule"
}
},
"user_states": {
"additionalProperties": true
},
"preprocessor_module": {
"allOf": [
{
"$ref": "#/components/schemas/FlowStatusModule"
}
]
},
"failure_module": {
"allOf": [
{
"$ref": "#/components/schemas/FlowStatusModule"
},
{
"type": "object",
"properties": {
"parent_module": {
"type": "string"
}
}
}
]
},
"retry": {
"type": "object",
"properties": {
"fail_count": {
"type": "integer"
},
"failed_jobs": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
}
}
}
},
"required": [
"step",
"modules",
"failure_module"
]
},
"FlowStatusModule": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"WaitingForPriorSteps",
"WaitingForEvents",
"WaitingForExecutor",
"InProgress",
"Success",
"Failure"
]
},
"id": {
"type": "string"
},
"job": {
"type": "string",
"format": "uuid"
},
"count": {
"type": "integer"
},
"progress": {
"type": "integer"
},
"iterator": {
"type": "object",
"properties": {
"index": {
"type": "integer"
},
"itered": {
"type": "array",
"items": {}
},
"args": {}
}
},
"flow_jobs": {
"type": "array",
"items": {
"type": "string"
}
},
"flow_jobs_success": {
"type": "array",
"items": {
"type": "boolean"
}
},
"branch_chosen": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"branch",
"default"
]
},
"branch": {
"type": "integer"
}
},
"required": [
"type"
]
},
"branchall": {
"type": "object",
"properties": {
"branch": {
"type": "integer"
},
"len": {
"type": "integer"
}
},
"required": [
"branch",
"len"
]
},
"approvers": {
"type": "array",
"items": {
"type": "object",
"properties": {
"resume_id": {
"type": "integer"
},
"approver": {
"type": "string"
}
},
"required": [
"resume_id",
"approver"
]
}
},
"failed_retries": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
}
},
"skipped": {
"type": "boolean"
}
},
"required": [
"type"
]
}
}
}
}