schema.workflow.json Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of serverlessworkflow-api Show documentation
Show all versions of serverlessworkflow-api Show documentation
Java SDK for Serverless Workflow Specification
{
"$id": "https://wg-serverless.org/workflow.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Serverless Workflow is a vendor-neutral specification for defining the model of workflows responsible for orchestrating event-driven serverless applications.",
"type": "object",
"extendsJavaClass": "io.serverlessworkflow.api.workflow.BaseWorkflow",
"javaType": "io.serverlessworkflow.api.Workflow",
"javaInterfaces": [
"java.io.Serializable"
],
"properties": {
"id": {
"type": "string",
"description": "Workflow unique identifier",
"minLength": 1
},
"name": {
"type": "string",
"description": "Workflow name",
"minLength": 1
},
"description": {
"type": "string",
"description": "Workflow description"
},
"version": {
"type": "string",
"description": "Workflow version"
},
"annotations": {
"type": "array",
"description": "List of helpful terms describing the workflows intended purpose, subject areas, or other important qualities",
"minItems": 1,
"items": {
"type": "string"
}
},
"dataInputSchema": {
"$ref": "datainputschema/datainputschema.json",
"description": "Workflow data input schema"
},
"start": {
"$ref": "start/start.json",
"description": "Defines workflow start"
},
"specVersion": {
"type": "string",
"description": "Serverless Workflow schema version"
},
"expressionLang": {
"type": "string",
"description": "Identifies the expression language used for workflow expressions. Default is 'jq'",
"default": "jq",
"minLength": 1
},
"keepActive": {
"type": "boolean",
"default": false,
"description": "If 'true', workflow instances is not terminated when there are no active execution paths. Instance can be terminated via 'terminate end definition' or reaching defined 'execTimeout'"
},
"autoRetries": {
"type": "boolean",
"default": false,
"description": "If set to true, actions should automatically be retried on unchecked errors. Default is false"
},
"metadata": {
"$ref": "metadata/metadata.json"
},
"events": {
"type": "object",
"existingJavaType": "io.serverlessworkflow.api.workflow.Events",
"description": "Workflow event definitions"
},
"functions": {
"type": "object",
"existingJavaType": "io.serverlessworkflow.api.workflow.Functions",
"description": "Workflow function definitions"
},
"errors": {
"type": "object",
"existingJavaType": "io.serverlessworkflow.api.workflow.Errors",
"description": "Workflow error definitions"
},
"retries": {
"type": "object",
"existingJavaType": "io.serverlessworkflow.api.workflow.Retries",
"description": "Workflow retry definitions"
},
"secrets": {
"type": "object",
"existingJavaType": "io.serverlessworkflow.api.workflow.Secrets",
"description": "Workflow secrets definitions"
},
"constants": {
"type": "object",
"existingJavaType": "io.serverlessworkflow.api.workflow.Constants",
"description": "Workflow constants definitions"
},
"timeouts": {
"$ref": "timeouts/timeoutsdef.json"
},
"auth": {
"$ref": "auth/auth.json"
},
"states": {
"type": "array",
"description": "State Definitions",
"items": {
"type": "object",
"existingJavaType": "io.serverlessworkflow.api.interfaces.State",
"anyOf": [
{
"title": "Sleep State",
"$ref": "states/sleepstate.json"
},
{
"title": "Event State",
"$ref": "states/eventstate.json"
},
{
"title": "Operation State",
"$ref": "states/operationstate.json"
},
{
"title": "Parallel State",
"$ref": "states/parallelstate.json"
},
{
"title": "Switch State",
"$ref": "states/switchstate.json"
},
{
"title": "Relay State",
"$ref": "states/injectstate.json"
},
{
"title": "ForEach State",
"$ref": "states/foreachstate.json"
},
{
"title": "Callback State",
"$ref": "states/callbackstate.json"
}
]
}
},
"extensions": {
"type": "array",
"description": "Workflow Extensions",
"items": {
"type": "object",
"existingJavaType": "io.serverlessworkflow.api.interfaces.Extension"
}
}
},
"required": [
"id",
"name",
"version",
"states"
]
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy