{
  "$schema" : "https://json-schema.org/draft/2019-09/schema",
  "type" : "object",
  "properties" : {
    "$schema" : {
      "type" : "string",
      "pattern" : ".*/process/[0-9]+[\\.0-9]+/schema\\.json$"
    },
    "id" : {
      "type" : "string",
      "pattern" : "^[A-F0-9]{16,}$"
    },
    "kind" : {
      "$ref" : "#/$defs/ProcessKind"
    },
    "config" : {
      "$ref" : "#/$defs/ConfigProcessConfig"
    },
    "elements" : {
      "type" : "array",
      "items" : {
        "$ref" : "#/$defs/Node"
      }
    },
    "layout" : {
      "$ref" : "#/$defs/VisualLayout"
    }
  },
  "additionalProperties" : false,
  "$defs" : {
    "Node" : {
      "type" : "object",
      "properties" : {
        "id" : {
          "type" : "string"
        },
        "type" : {
          "type" : "string",
          "enum" : [ "ServiceBpmnElement", "TaskEndPage", "TaskSwitchGateway", "ReceiveBpmnElement", "ProcessAnnotation", "SubProcessCall", "EmbeddedEnd", "Database", "CallSubStart", "CallSubEnd", "Script", "Alternative", "SendBpmnElement", "ProgramInterface", "HtmlDialogExit", "ScriptBpmnElement", "HtmlDialogStart", "EmbeddedStart", "Split", "WebserviceEnd", "WebPage", "ErrorEnd", "UserBpmnElement", "RuleBpmnElement", "ErrorBoundaryEvent", "GenericBpmnElement", "HtmlDialogEventStart", "ProgramStart", "EmbeddedProcessElement", "WebServiceCall", "DialogCall", "TriggerCall", "ErrorStartEvent", "TaskEnd", "RequestStart", "WebserviceStart", "UserTask", "Join", "SignalBoundaryEvent", "EMail", "TaskSwitchEvent", "HtmlDialogMethodStart", "ThirdPartyProgramInterface", "WaitEvent", "RestClientCall", "ManualBpmnElement", "HtmlDialogEnd", "SignalStartEvent" ]
        },
        "impl" : {
          "type" : "string"
        },
        "name" : {
          "$ref" : "#/$defs/Text"
        },
        "config" : {
          "anyOf" : [ {
            "$ref" : "#/$defs/ElementServiceBpmnElement"
          }, {
            "$ref" : "#/$defs/ElementTaskEndPage"
          }, {
            "$ref" : "#/$defs/ElementTaskSwitchGateway"
          }, {
            "$ref" : "#/$defs/ElementReceiveBpmnElement"
          }, {
            "$ref" : "#/$defs/ElementProcessAnnotation"
          }, {
            "$ref" : "#/$defs/ElementSubProcessCall"
          }, {
            "$ref" : "#/$defs/ElementEmbeddedEnd"
          }, {
            "$ref" : "#/$defs/ElementDatabase"
          }, {
            "$ref" : "#/$defs/ElementCallSubStart"
          }, {
            "$ref" : "#/$defs/ElementCallSubEnd"
          }, {
            "$ref" : "#/$defs/ElementScript"
          }, {
            "$ref" : "#/$defs/ElementAlternative"
          }, {
            "$ref" : "#/$defs/ElementSendBpmnElement"
          }, {
            "$ref" : "#/$defs/ElementProgramInterface"
          }, {
            "$ref" : "#/$defs/ElementHtmlDialogExit"
          }, {
            "$ref" : "#/$defs/ElementScriptBpmnElement"
          }, {
            "$ref" : "#/$defs/ElementHtmlDialogStart"
          }, {
            "$ref" : "#/$defs/ElementEmbeddedStart"
          }, {
            "$ref" : "#/$defs/ElementSplit"
          }, {
            "$ref" : "#/$defs/ElementWebserviceEnd"
          }, {
            "$ref" : "#/$defs/ElementWebPage"
          }, {
            "$ref" : "#/$defs/ElementErrorEnd"
          }, {
            "$ref" : "#/$defs/ElementUserBpmnElement"
          }, {
            "$ref" : "#/$defs/ElementRuleBpmnElement"
          }, {
            "$ref" : "#/$defs/ElementErrorBoundaryEvent"
          }, {
            "$ref" : "#/$defs/ElementGenericBpmnElement"
          }, {
            "$ref" : "#/$defs/ElementHtmlDialogEventStart"
          }, {
            "$ref" : "#/$defs/ElementProgramStart"
          }, {
            "$ref" : "#/$defs/ElementEmbeddedProcessElement"
          }, {
            "$ref" : "#/$defs/ElementWebServiceCall"
          }, {
            "$ref" : "#/$defs/ElementDialogCall"
          }, {
            "$ref" : "#/$defs/ElementTriggerCall"
          }, {
            "$ref" : "#/$defs/ElementErrorStartEvent"
          }, {
            "$ref" : "#/$defs/ElementTaskEnd"
          }, {
            "$ref" : "#/$defs/ElementRequestStart"
          }, {
            "$ref" : "#/$defs/ElementWebserviceStart"
          }, {
            "$ref" : "#/$defs/ElementUserTask"
          }, {
            "$ref" : "#/$defs/ElementJoin"
          }, {
            "$ref" : "#/$defs/ElementSignalBoundaryEvent"
          }, {
            "$ref" : "#/$defs/ElementEMail"
          }, {
            "$ref" : "#/$defs/ElementTaskSwitchEvent"
          }, {
            "$ref" : "#/$defs/ElementHtmlDialogMethodStart"
          }, {
            "$ref" : "#/$defs/ElementWaitEvent"
          }, {
            "$ref" : "#/$defs/ElementRestClientCall"
          }, {
            "$ref" : "#/$defs/ElementManualBpmnElement"
          }, {
            "$ref" : "#/$defs/ElementHtmlDialogEnd"
          }, {
            "$ref" : "#/$defs/ElementSignalStartEvent"
          } ]
        },
        "elements" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/Node"
          }
        },
        "boundaries" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/Node"
          }
        },
        "docs" : {
          "$ref" : "#/$defs/Map(String,String)"
        },
        "tags" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        },
        "visual" : {
          "$ref" : "#/$defs/VisualAttributes"
        },
        "parentConnector" : {
          "type" : "string"
        },
        "connect" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/Connector"
          }
        }
      },
      "additionalProperties" : false
    },
    "Connector" : {
      "type" : "object",
      "properties" : {
        "color" : {
          "type" : "string"
        },
        "condition" : {
          "type" : "string"
        },
        "id" : {
          "type" : "string"
        },
        "label" : {
          "$ref" : "#/$defs/VisualConnectorLabel"
        },
        "outVar" : {
          "type" : "string"
        },
        "to" : {
          "type" : "string"
        },
        "var" : {
          "type" : "string"
        },
        "via" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/VisualPoint"
          }
        }
      },
      "additionalProperties" : false
    },
    "ProcessKind" : {
      "type" : "string",
      "enum" : [ "NORMAL", "WEB_SERVICE", "CALLABLE_SUB", "HTML_DIALOG" ]
    },
    "Cache" : {
      "type" : "object",
      "properties" : {
        "entry" : {
          "$ref" : "#/$defs/CacheArtifact"
        },
        "group" : {
          "$ref" : "#/$defs/CacheArtifact"
        },
        "mode" : {
          "$ref" : "#/$defs/CacheMode"
        },
        "scope" : {
          "$ref" : "#/$defs/CacheScope"
        }
      },
      "additionalProperties" : false
    },
    "CacheArtifact" : {
      "type" : "object",
      "properties" : {
        "invalidation" : {
          "$ref" : "#/$defs/CacheInvalidation"
        },
        "name" : {
          "type" : "string"
        },
        "time" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "CacheInvalidation" : {
      "type" : "string",
      "enum" : [ "NONE", "FIXED_TIME", "LIFETIME" ]
    },
    "CacheMode" : {
      "type" : "string",
      "enum" : [ "DO_NOT_CACHE", "CACHE", "INVALIDATE_CACHE" ]
    },
    "CacheScope" : {
      "type" : "string",
      "enum" : [ "SESSION", "APPLICATION" ]
    },
    "ConfigPermissionView" : {
      "type" : "object",
      "properties" : {
        "allowed" : {
          "type" : "boolean"
        }
      },
      "additionalProperties" : false
    },
    "ConfigPermissions" : {
      "type" : "object",
      "properties" : {
        "view" : {
          "$ref" : "#/$defs/ConfigPermissionView"
        }
      },
      "additionalProperties" : false
    },
    "ConfigProcessConfig" : {
      "type" : "object",
      "properties" : {
        "data" : {
          "type" : "string"
        },
        "permissions" : {
          "$ref" : "#/$defs/ConfigPermissions"
        },
        "wsAuth" : {
          "type" : "string"
        },
        "wsTypeName" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "DbQuery" : {
      "type" : "object",
      "properties" : {
        "dbName" : {
          "type" : "string"
        },
        "limit" : {
          "type" : "string"
        },
        "offset" : {
          "type" : "string"
        },
        "sql" : {
          "$ref" : "#/$defs/DbSqlStatement"
        }
      },
      "additionalProperties" : false
    },
    "DbSqlStatement" : {
      "type" : "object",
      "properties" : {
        "condition" : {
          "type" : "string"
        },
        "fields" : {
          "$ref" : "#/$defs/ScriptMappings"
        },
        "kind" : {
          "$ref" : "#/$defs/QueryKind"
        },
        "orderBy" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        },
        "quote" : {
          "type" : "boolean"
        },
        "select" : {
          "type" : "array",
          "items" : {
            "type" : "string"
          }
        },
        "stmt" : {
          "type" : "string"
        },
        "table" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementAlternative" : {
      "type" : "object",
      "properties" : { },
      "additionalProperties" : false
    },
    "ElementCallSubEnd" : {
      "type" : "object",
      "properties" : { },
      "additionalProperties" : false
    },
    "ElementCallSubStart" : {
      "type" : "object",
      "properties" : {
        "result" : {
          "$ref" : "#/$defs/ScriptParameterizedMapCode"
        },
        "input" : {
          "$ref" : "#/$defs/ScriptParameterizedMapCode"
        },
        "signature" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementDatabase" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "cache" : {
          "$ref" : "#/$defs/Cache"
        },
        "query" : {
          "$ref" : "#/$defs/DbQuery"
        },
        "exceptionHandler" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementDialogCall" : {
      "type" : "object",
      "properties" : {
        "call" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "dialog" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementEMail" : {
      "type" : "object",
      "properties" : {
        "headers" : {
          "$ref" : "#/$defs/MailHeaders"
        },
        "failIfMissingAttachments" : {
          "type" : "boolean"
        },
        "attachments" : {
          "type" : "array",
          "items" : { }
        },
        "message" : {
          "$ref" : "#/$defs/MailMessage"
        },
        "exceptionHandler" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementEmbeddedEnd" : {
      "type" : "object",
      "properties" : { },
      "additionalProperties" : false
    },
    "ElementEmbeddedProcessElement" : {
      "type" : "object",
      "properties" : { },
      "additionalProperties" : false
    },
    "ElementEmbeddedStart" : {
      "type" : "object",
      "properties" : { },
      "additionalProperties" : false
    },
    "ElementErrorBoundaryEvent" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        }
      },
      "additionalProperties" : false
    },
    "ElementErrorEnd" : {
      "type" : "object",
      "properties" : { },
      "additionalProperties" : false
    },
    "ElementErrorStartEvent" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        }
      },
      "additionalProperties" : false
    },
    "ElementGenericBpmnElement" : {
      "type" : "object",
      "properties" : { },
      "additionalProperties" : false
    },
    "ElementHtmlDialogEnd" : {
      "type" : "object",
      "properties" : { },
      "additionalProperties" : false
    },
    "ElementHtmlDialogEventStart" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "guid" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementHtmlDialogExit" : {
      "type" : "object",
      "properties" : { },
      "additionalProperties" : false
    },
    "ElementHtmlDialogMethodStart" : {
      "type" : "object",
      "properties" : {
        "result" : {
          "$ref" : "#/$defs/ScriptParameterizedMapCode"
        },
        "input" : {
          "$ref" : "#/$defs/ScriptParameterizedMapCode"
        },
        "signature" : {
          "type" : "string"
        },
        "guid" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementHtmlDialogStart" : {
      "type" : "object",
      "properties" : {
        "result" : {
          "$ref" : "#/$defs/ScriptParameterizedMapCode"
        },
        "input" : {
          "$ref" : "#/$defs/ScriptParameterizedMapCode"
        },
        "signature" : {
          "type" : "string"
        },
        "guid" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementJoin" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        }
      },
      "additionalProperties" : false
    },
    "ElementManualBpmnElement" : {
      "type" : "object",
      "properties" : { },
      "additionalProperties" : false
    },
    "ElementProcessAnnotation" : {
      "type" : "object",
      "properties" : { },
      "additionalProperties" : false
    },
    "ElementProgramInterface" : {
      "type" : "object",
      "properties" : { },
      "additionalProperties" : false
    },
    "ElementProgramStart" : {
      "type" : "object",
      "properties" : { },
      "additionalProperties" : false
    },
    "ElementReceiveBpmnElement" : {
      "type" : "object",
      "properties" : { },
      "additionalProperties" : false
    },
    "ElementRequestStart" : {
      "type" : "object",
      "properties" : {
        "input" : {
          "$ref" : "#/$defs/ScriptParameterizedMapCode"
        },
        "task" : {
          "$ref" : "#/$defs/WfTask"
        },
        "signature" : {
          "type" : "string"
        },
        "case" : {
          "$ref" : "#/$defs/WfCase"
        }
      },
      "additionalProperties" : false
    },
    "ElementRestClientCall" : {
      "type" : "object",
      "properties" : { },
      "additionalProperties" : false
    },
    "ElementRuleBpmnElement" : {
      "type" : "object",
      "properties" : { },
      "additionalProperties" : false
    },
    "ElementScript" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "sudo" : {
          "type" : "boolean"
        }
      },
      "additionalProperties" : false
    },
    "ElementScriptBpmnElement" : {
      "type" : "object",
      "properties" : { },
      "additionalProperties" : false
    },
    "ElementSendBpmnElement" : {
      "type" : "object",
      "properties" : { },
      "additionalProperties" : false
    },
    "ElementServiceBpmnElement" : {
      "type" : "object",
      "properties" : { },
      "additionalProperties" : false
    },
    "ElementSignalBoundaryEvent" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        }
      },
      "additionalProperties" : false
    },
    "ElementSignalStartEvent" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        }
      },
      "additionalProperties" : false
    },
    "ElementSplit" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        }
      },
      "additionalProperties" : false
    },
    "ElementSubProcessCall" : {
      "type" : "object",
      "properties" : {
        "call" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "processCall" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementTaskEnd" : {
      "type" : "object",
      "properties" : { },
      "additionalProperties" : false
    },
    "ElementTaskEndPage" : {
      "type" : "object",
      "properties" : {
        "page" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementTaskSwitchEvent" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "task" : {
          "$ref" : "#/$defs/WfTask"
        },
        "page" : {
          "type" : "string"
        },
        "case" : {
          "$ref" : "#/$defs/WfCase"
        }
      },
      "additionalProperties" : false
    },
    "ElementTaskSwitchGateway" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "page" : {
          "type" : "string"
        },
        "case" : {
          "$ref" : "#/$defs/WfCase"
        },
        "tasks" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/WfTask"
          }
        }
      },
      "additionalProperties" : false
    },
    "ElementTriggerCall" : {
      "type" : "object",
      "properties" : {
        "call" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "processCall" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementUserBpmnElement" : {
      "type" : "object",
      "properties" : { },
      "additionalProperties" : false
    },
    "ElementUserTask" : {
      "type" : "object",
      "properties" : {
        "call" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "dialog" : {
          "type" : "string"
        },
        "task" : {
          "$ref" : "#/$defs/WfTask"
        },
        "case" : {
          "$ref" : "#/$defs/WfCase"
        }
      },
      "additionalProperties" : false
    },
    "ElementWaitEvent" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        }
      },
      "additionalProperties" : false
    },
    "ElementWebPage" : {
      "type" : "object",
      "properties" : {
        "page" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "ElementWebServiceCall" : {
      "type" : "object",
      "properties" : {
        "output" : {
          "$ref" : "#/$defs/ScriptMapCode"
        },
        "cache" : {
          "$ref" : "#/$defs/Cache"
        },
        "clientId" : {
          "type" : "string"
        },
        "operation" : {
          "$ref" : "#/$defs/SoapOperation"
        },
        "exceptionHandler" : {
          "type" : "string"
        },
        "properties" : {
          "$ref" : "#/$defs/ScriptMappings"
        }
      },
      "additionalProperties" : false
    },
    "ElementWebserviceEnd" : {
      "type" : "object",
      "properties" : { },
      "additionalProperties" : false
    },
    "ElementWebserviceStart" : {
      "type" : "object",
      "properties" : {
        "result" : {
          "$ref" : "#/$defs/ScriptParameterizedMapCode"
        },
        "input" : {
          "$ref" : "#/$defs/ScriptParameterizedMapCode"
        },
        "task" : {
          "$ref" : "#/$defs/WfTask"
        },
        "signature" : {
          "type" : "string"
        },
        "case" : {
          "$ref" : "#/$defs/WfCase"
        }
      },
      "additionalProperties" : false
    },
    "MailHeaders" : {
      "type" : "object",
      "properties" : {
        "bcc" : {
          "type" : "string"
        },
        "cc" : {
          "type" : "string"
        },
        "from" : {
          "type" : "string"
        },
        "replyTo" : {
          "type" : "string"
        },
        "subject" : {
          "type" : "string"
        },
        "to" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "MailMessage" : {
      "type" : "object",
      "properties" : {
        "body" : {
          "type" : "string"
        },
        "contentType" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "Map(String,String)" : {
      "type" : "object",
      "additionalProperties" : {
        "type" : "string"
      }
    },
    "QueryKind" : {
      "type" : "string",
      "enum" : [ "READ", "WRITE", "UPDATE", "DELETE", "ANY" ]
    },
    "ScriptMapCode" : {
      "type" : "object",
      "properties" : {
        "code" : {
          "type" : "string"
        },
        "map" : {
          "$ref" : "#/$defs/ScriptMappings"
        }
      },
      "additionalProperties" : false
    },
    "ScriptMappings" : {
      "type" : "object",
      "additionalProperties" : {
        "type" : "string"
      }
    },
    "ScriptParameterizedMapCode" : {
      "type" : "object",
      "properties" : {
        "code" : {
          "type" : "string"
        },
        "map" : {
          "$ref" : "#/$defs/ScriptMappings"
        },
        "params" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/ScriptVariable"
          }
        }
      },
      "additionalProperties" : false
    },
    "ScriptVariable" : {
      "type" : "object",
      "properties" : {
        "desc" : {
          "type" : "string"
        },
        "name" : {
          "type" : "string"
        },
        "type" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "SoapOperation" : {
      "type" : "object",
      "properties" : {
        "name" : {
          "type" : "string"
        },
        "parameters" : {
          "$ref" : "#/$defs/ScriptMappings"
        },
        "port" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "Text" : {
      "anyOf" : [ "string", {
        "type" : "array",
        "items" : {
          "type" : "string"
        }
      } ],
      "additionalProperties" : false
    },
    "VisualAttributes" : {
      "type" : "object",
      "properties" : {
        "at" : {
          "$ref" : "#/$defs/VisualPoint"
        },
        "color" : {
          "type" : "string"
        },
        "description" : {
          "type" : "string"
        },
        "labelOffset" : {
          "$ref" : "#/$defs/VisualPoint"
        },
        "size" : {
          "$ref" : "#/$defs/VisualSize"
        }
      },
      "additionalProperties" : false
    },
    "VisualConnectorLabel" : {
      "type" : "object",
      "properties" : {
        "name" : {
          "type" : "string"
        },
        "offset" : {
          "$ref" : "#/$defs/VisualPoint"
        },
        "segment" : {
          "type" : "number"
        }
      },
      "additionalProperties" : false
    },
    "VisualLane" : {
      "type" : "object",
      "properties" : {
        "lanes" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/VisualLane"
          }
        },
        "name" : {
          "type" : "string"
        },
        "offset" : {
          "type" : "integer"
        },
        "size" : {
          "type" : "integer"
        }
      },
      "additionalProperties" : false
    },
    "VisualLayout" : {
      "type" : "object",
      "properties" : {
        "color" : {
          "$ref" : "#/$defs/Map(String,String)"
        },
        "lanes" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/VisualLane"
          }
        }
      },
      "additionalProperties" : false
    },
    "VisualPoint" : {
      "type" : "object",
      "properties" : {
        "x" : {
          "type" : "integer"
        },
        "y" : {
          "type" : "integer"
        }
      },
      "additionalProperties" : false
    },
    "VisualSize" : {
      "type" : "object",
      "properties" : {
        "height" : {
          "type" : "integer"
        },
        "width" : {
          "type" : "integer"
        }
      },
      "additionalProperties" : false
    },
    "WfActivator" : {
      "type" : "object",
      "properties" : {
        "activator" : {
          "type" : "string"
        },
        "type" : {
          "$ref" : "#/$defs/WfActivatorType"
        }
      },
      "additionalProperties" : false
    },
    "WfActivatorType" : {
      "type" : "string",
      "enum" : [ "ROLE", "ROLE_FROM_ATTRIBUTE", "USER_FROM_ATTRIBUTE", "DELETE_TASK" ]
    },
    "WfCase" : {
      "type" : "object",
      "properties" : {
        "attachToBusinessCase" : {
          "type" : "boolean"
        },
        "category" : {
          "type" : "string"
        },
        "customFields" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/WfCustomField"
          }
        },
        "description" : {
          "type" : "string"
        },
        "name" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "WfCustomField" : {
      "type" : "object",
      "properties" : {
        "name" : {
          "type" : "string"
        },
        "type" : {
          "$ref" : "#/$defs/WfFieldType"
        },
        "value" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "WfExpiry" : {
      "type" : "object",
      "properties" : {
        "error" : {
          "type" : "string"
        },
        "priority" : {
          "$ref" : "#/$defs/WfPriority"
        },
        "responsible" : {
          "$ref" : "#/$defs/WfActivator"
        },
        "timeout" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "WfFieldType" : {
      "type" : "string",
      "enum" : [ "STRING", "TEXT", "NUMBER", "TIMESTAMP" ]
    },
    "WfLevel" : {
      "type" : "string",
      "enum" : [ "EXCEPTION", "HIGH", "NORMAL", "LOW", "SCRIPT" ]
    },
    "WfPriority" : {
      "type" : "object",
      "properties" : {
        "level" : {
          "$ref" : "#/$defs/WfLevel"
        },
        "script" : {
          "type" : "string"
        }
      },
      "additionalProperties" : false
    },
    "WfTask" : {
      "type" : "object",
      "properties" : {
        "category" : {
          "type" : "string"
        },
        "code" : {
          "type" : "string"
        },
        "customFields" : {
          "type" : "array",
          "items" : {
            "$ref" : "#/$defs/WfCustomField"
          }
        },
        "delay" : {
          "type" : "string"
        },
        "description" : {
          "type" : "string"
        },
        "expiry" : {
          "$ref" : "#/$defs/WfExpiry"
        },
        "id" : {
          "type" : "string"
        },
        "name" : {
          "type" : "string"
        },
        "priority" : {
          "$ref" : "#/$defs/WfPriority"
        },
        "responsible" : {
          "$ref" : "#/$defs/WfActivator"
        },
        "skipTasklist" : {
          "type" : "boolean"
        }
      },
      "additionalProperties" : false
    }
  }
}
