{
    "name": "Flowable",
    "uri": "http://flowable.org/bpmn",
    "prefix": "flowable",
    "xml": {
      "tagAlias": "lowerCase"
    },
    "associations": [],
    "types": [
      {
        "name": "InOutBinding",
        "superClass": ["Element"],
        "isAbstract": true,
        "properties": [
          {
            "name": "source",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "sourceExpression",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "target",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "businessKey",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "local",
            "isAttr": true,
            "type": "Boolean",
            "default": false
          },
          {
            "name": "variables",
            "isAttr": true,
            "type": "String"
          }
        ]
      },
      {
        "name": "In",
        "superClass": ["InOutBinding"],
        "meta": {
          "allowedIn": ["bpmn:CallActivity"]
        }
      },
      {
        "name": "Out",
        "superClass": ["InOutBinding"],
        "meta": {
          "allowedIn": ["bpmn:CallActivity"]
        }
      },
      {
        "name": "AsyncCapable",
        "isAbstract": true,
        "extends": ["bpmn:Activity", "bpmn:Gateway", "bpmn:Event"],
        "properties": [
          {
            "name": "async",
            "isAttr": true,
            "type": "Boolean",
            "default": false
          },
          {
            "name": "asyncBefore",
            "isAttr": true,
            "type": "Boolean",
            "default": false
          },
          {
            "name": "asyncAfter",
            "isAttr": true,
            "type": "Boolean",
            "default": false
          },
          {
            "name": "exclusive",
            "isAttr": true,
            "type": "Boolean",
            "default": true
          }
        ]
      },
      {
        "name": "flowable:in",
        "superClass": ["Element"],
        "properties": [
          {
            "name": "source",
            "type": "string",
            "isAttr": true
          },
          {
            "name": "target",
            "type": "string",
            "isAttr": true
          }
        ]
      },
      {
        "name": "flowable:out",
        "superClass": ["Element"],
        "properties": [
          {
            "name": "source",
            "type": "string",
            "isAttr": true
          },
          {
            "name": "target",
            "type": "string",
            "isAttr": true
          }
        ]
      },
      {
        "name": "BoundaryEvent",
        "superClass": ["CatchEvent"],
        "properties": [
          {
            "name": "cancelActivity",
            "default": true,
            "isAttr": true,
            "type": "Boolean"
          },
          {
            "name": "attachedToRef",
            "type": "Activity",
            "isAttr": true,
            "isReference": true
          }
        ]
      },
      {
        "name": "JobPriorized",
        "isAbstract": true,
        "extends": ["bpmn:Process", "flowable:AsyncCapable"],
        "properties": [
          {
            "name": "jobPriority",
            "isAttr": true,
            "type": "String"
          }
        ]
      },
      {
        "name": "SignalEventDefinition",
        "isAbstract": true,
        "extends": ["bpmn:SignalEventDefinition"],
        "properties": [
          {
            "name": "async",
            "isAttr": true,
            "type": "Boolean",
            "default": false
          }
        ]
      },
      {
        "name": "ErrorEventDefinition",
        "isAbstract": true,
        "extends": ["bpmn:ErrorEventDefinition"],
        "properties": [
          {
            "name": "errorCodeVariable",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "errorMessageVariable",
            "isAttr": true,
            "type": "String"
          }
        ]
      },
      {
        "name": "Error",
        "isAbstract": true,
        "extends": ["bpmn:Error"],
        "properties": [
          {
            "name": "flowable:errorMessage",
            "isAttr": true,
            "type": "String"
          }
        ]
      },
      {
        "name": "PotentialStarter",
        "superClass": ["Element"],
        "properties": [
          {
            "name": "resourceAssignmentExpression",
            "type": "bpmn:ResourceAssignmentExpression"
          }
        ]
      },
      {
        "name": "UserTask",
        "isAbstract": true,
        "extends": ["bpmn:UserTask"],
        "properties": [
          {
            "name": "timerEventDefinition",
            "type": "Expression"
          },
          {
            "name": "multiInstanceLoopCharacteristics",
            "type": "MultiInstanceLoopCharacteristics"
          }
        ]
      },
      {
        "name": "StartEvent",
        "isAbstract": true,
        "extends": ["bpmn:StartEvent"],
        "properties": [
          {
            "name": "timerEventDefinition",
            "type": "Expression"
          }
        ]
      },
      {
        "name": "FormSupported",
        "isAbstract": true,
        "extends": ["bpmn:StartEvent", "bpmn:UserTask"],
        "properties": [
          {
            "name": "formHandlerClass",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "formKey",
            "isAttr": true,
            "type": "String"
          }
        ]
      },
      {
        "name": "TemplateSupported",
        "isAbstract": true,
        "extends": ["bpmn:Process", "bpmn:FlowElement"],
        "properties": [
          {
            "name": "modelerTemplate",
            "isAttr": true,
            "type": "String"
          }
        ]
      },
      {
        "name": "Initiator",
        "isAbstract": true,
        "extends": ["bpmn:StartEvent"],
        "properties": [
          {
            "name": "initiator",
            "isAttr": true,
            "type": "String"
          }
        ]
      },
      {
        "name": "ScriptTask",
        "isAbstract": true,
        "extends": ["bpmn:ScriptTask"],
        "properties": [
          {
            "name": "resultVariable",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "resource",
            "isAttr": true,
            "type": "String"
          }
        ]
      },
      {
        "name": "Process",
        "isAbstract": true,
        "extends": ["bpmn:Process"],
        "properties": [
          {
            "name": "candidateStarterGroups",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "candidateStarterUsers",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "versionTag",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "historyTimeToLive",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "isStartableInTasklist",
            "isAttr": true,
            "type": "Boolean",
            "default": true
          }
        ]
      },
      {
        "name": "EscalationEventDefinition",
        "isAbstract": true,
        "extends": ["bpmn:EscalationEventDefinition"],
        "properties": [
          {
            "name": "escalationCodeVariable",
            "isAttr": true,
            "type": "String"
          }
        ]
      },
      {
        "name": "FormalExpression",
        "isAbstract": true,
        "extends": ["bpmn:FormalExpression"],
        "properties": [
          {
            "name": "resource",
            "isAttr": true,
            "type": "String"
          }
        ]
      },
      {
        "name": "Assignable",
        "extends": ["bpmn:UserTask"],
        "properties": [
          {
            "name": "candidateGroups",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "dueDate",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "followUpDate",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "priority",
            "isAttr": true,
            "type": "String"
          }
        ]
      },
      {
        "name": "CallActivity",
        "extends": ["bpmn:CallActivity"],
        "properties": [
          {
            "name": "calledElementBinding",
            "isAttr": true,
            "type": "String",
            "default": "latest"
          },
          {
            "name": "calledElementVersion",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "calledElementVersionTag",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "calledElementTenantId",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "caseRef",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "caseBinding",
            "isAttr": true,
            "type": "String",
            "default": "latest"
          },
          {
            "name": "caseVersion",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "caseTenantId",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "variableMappingClass",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "variableMappingDelegateExpression",
            "isAttr": true,
            "type": "String"
          }
        ]
      },
      {
        "name": "ServiceTaskLike",
        "extends": [
          "bpmn:ServiceTask",
          "bpmn:BusinessRuleTask",
          "bpmn:SendTask",
          "bpmn:MessageEventDefinition"
        ],
        "properties": [
          {
            "name": "expression",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "class",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "delegateExpression",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "resultVariable",
            "isAttr": true,
            "type": "String"
          }
        ]
      },
      {
        "name": "ExclusiveGateway",
        "isAbstract": true,
        "extends": ["bpmn:ExclusiveGateway"],
        "properties": [
          {
            "name": "serviceClass",
            "isAttr": true,
            "type": "String"
          }
        ]
      },
      {
        "name": "DmnCapable",
        "extends": ["bpmn:BusinessRuleTask"],
        "properties": [
          {
            "name": "decisionRef",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "decisionRefBinding",
            "isAttr": true,
            "type": "String",
            "default": "latest"
          },
          {
            "name": "decisionRefVersion",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "mapDecisionResult",
            "isAttr": true,
            "type": "String",
            "default": "resultList"
          },
          {
            "name": "decisionRefTenantId",
            "isAttr": true,
            "type": "String"
          }
        ]
      },
      {
        "name": "ExternalCapable",
        "extends": ["flowable:ServiceTaskLike"],
        "properties": [
          {
            "name": "type",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "topic",
            "isAttr": true,
            "type": "String"
          }
        ]
      },
      {
        "name": "TaskPriorized",
        "extends": ["bpmn:Process", "flowable:ExternalCapable"],
        "properties": [
          {
            "name": "taskPriority",
            "isAttr": true,
            "type": "String"
          }
        ]
      },
      {
        "name": "Properties",
        "superClass": ["Element"],
        "meta": {
          "allowedIn": ["*"]
        },
        "properties": [
          {
            "name": "values",
            "type": "Property",
            "isMany": true
          }
        ]
      },
      {
        "name": "Property",
        "superClass": ["Element"],
        "properties": [
          {
            "name": "id",
            "type": "String",
            "isAttr": true
          },
          {
            "name": "name",
            "type": "String",
            "isAttr": true
          },
          {
            "name": "value",
            "type": "String",
            "isAttr": true
          }
        ]
      },
      {
        "name": "Connector",
        "superClass": ["Element"],
        "meta": {
          "allowedIn": ["flowable:ServiceTaskLike"]
        },
        "properties": [
          {
            "name": "inputOutput",
            "type": "InputOutput"
          },
          {
            "name": "connectorId",
            "type": "String"
          }
        ]
      },
      {
        "name": "InputOutput",
        "superClass": ["Element"],
        "meta": {
          "allowedIn": ["bpmn:FlowNode", "flowable:Connector"]
        },
        "properties": [
          {
            "name": "inputOutput",
            "type": "InputOutput"
          },
          {
            "name": "connectorId",
            "type": "String"
          },
          {
            "name": "inputParameters",
            "isMany": true,
            "type": "InputParameter"
          },
          {
            "name": "outputParameters",
            "isMany": true,
            "type": "OutputParameter"
          }
        ]
      },
      {
        "name": "InputOutputParameter",
        "properties": [
          {
            "name": "name",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "value",
            "isBody": true,
            "type": "String"
          },
          {
            "name": "definition",
            "type": "InputOutputParameterDefinition"
          }
        ]
      },
      {
        "name": "InputOutputParameterDefinition",
        "isAbstract": true
      },
      {
        "name": "List",
        "superClass": ["InputOutputParameterDefinition"],
        "properties": [
          {
            "name": "items",
            "isMany": true,
            "type": "InputOutputParameterDefinition"
          }
        ]
      },
      {
        "name": "Map",
        "superClass": ["InputOutputParameterDefinition"],
        "properties": [
          {
            "name": "entries",
            "isMany": true,
            "type": "Entry"
          }
        ]
      },
      {
        "name": "Entry",
        "properties": [
          {
            "name": "key",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "value",
            "isBody": true,
            "type": "String"
          },
          {
            "name": "definition",
            "type": "InputOutputParameterDefinition"
          }
        ]
      },
      {
        "name": "Value",
        "superClass": ["InputOutputParameterDefinition"],
        "properties": [
          {
            "name": "id",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "name",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "value",
            "isBody": true,
            "type": "String"
          }
        ]
      },
      {
        "name": "Script",
        "superClass": ["InputOutputParameterDefinition"],
        "properties": [
          {
            "name": "scriptFormat",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "resource",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "value",
            "isBody": true,
            "type": "String"
          }
        ]
      },
      {
        "name": "Field",
        "superClass": ["Element"],
        "meta": {
          "allowedIn": [
            "flowable:ServiceTaskLike",
            "flowable:ExecutionListener",
            "flowable:TaskListener"
          ]
        },
        "properties": [
          {
            "name": "name",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "expression",
            "isAttr": true,
            "type": "expression"
          },
          {
            "name": "string",
            "type": "string"
          },
          {
            "name": "stringValue",
            "isAttr": true,
            "type": "String"
          }
        ]
      },
      {
        "name": "string",
        "superClass": ["Element"],
        "meta": {
          "allowedIn": [
            "flowable:Field"
          ]
        },
        "properties": [
          {
            "name": "body",
            "isBody": true,
            "type": "String"
          }
        ]
      },
      {
        "name": "expression",
        "superClass": ["Element"],
        "meta": {
          "allowedIn": [
            "flowable:Field"
          ]
        },
        "properties": [
          {
            "name": "body",
            "isBody": true,
            "type": "String"
          }
        ]
      },
      {
        "name": "InputParameter",
        "superClass": ["InputOutputParameter"]
      },
      {
        "name": "OutputParameter",
        "superClass": ["InputOutputParameter"]
      },
      {
        "name": "Collectable",
        "isAbstract": true,
        "extends": ["bpmn:MultiInstanceLoopCharacteristics"],
        "superClass": ["flowable:AsyncCapable"],
        "properties": [
          {
            "name": "collection",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "elementVariable",
            "isAttr": true,
            "type": "String"
          }
        ]
      },
      {
        "name": "SequenceFlow",
        "superClass": ["FlowElement"],
        "properties": [
          {
            "name": "isImmediate",
            "isAttr": true,
            "type": "Boolean"
          },
          {
            "name": "conditionExpression",
            "type": "Expression"
          },
          {
            "name": "sourceRef",
            "type": "FlowNode",
            "isAttr": true,
            "isReference": true
          },
          {
            "name": "targetRef",
            "type": "FlowNode",
            "isAttr": true,
            "isReference": true
          }
        ]
      },
      {
        "name": "MultiInstanceLoopCharacteristics",
        "superClass": ["LoopCharacteristics"],
        "properties": [
          {
            "name": "isSequential",
            "default": false,
            "isAttr": true,
            "type": "Boolean"
          },
          {
            "name": "behavior",
            "type": "MultiInstanceBehavior",
            "default": "All",
            "isAttr": true
          },
          {
            "name": "loopCardinality",
            "type": "Expression",
            "xml": {
              "serialize": "xsi:type"
            }
          },
          {
            "name": "loopDataInputRef",
            "type": "ItemAwareElement",
            "isReference": true
          },
          {
            "name": "loopDataOutputRef",
            "type": "ItemAwareElement",
            "isReference": true
          },
          {
            "name": "inputDataItem",
            "type": "DataInput",
            "xml": {
              "serialize": "property"
            }
          },
          {
            "name": "outputDataItem",
            "type": "DataOutput",
            "xml": {
              "serialize": "property"
            }
          },
          {
            "name": "complexBehaviorDefinition",
            "type": "ComplexBehaviorDefinition",
            "isMany": true
          },
          {
            "name": "completionCondition",
            "type": "Expression",
            "xml": {
              "serialize": "xsi:type"
            }
          },
          {
            "name": "oneBehaviorEventRef",
            "type": "EventDefinition",
            "isAttr": true,
            "isReference": true
          },
          {
            "name": "noneBehaviorEventRef",
            "type": "EventDefinition",
            "isAttr": true,
            "isReference": true
          }
        ]
      },
      {
        "name": "FailedJobRetryTimeCycle",
        "superClass": ["Element"],
        "meta": {
          "allowedIn": ["flowable:AsyncCapable", "bpmn:MultiInstanceLoopCharacteristics"]
        },
        "properties": [
          {
            "name": "body",
            "isBody": true,
            "type": "String"
          }
        ]
      },
      {
        "name": "ExecutionListener",
        "superClass": ["Element"],
        "meta": {
          "allowedIn": [
            "bpmn:Task",
            "bpmn:ServiceTask",
            "bpmn:UserTask",
            "bpmn:BusinessRuleTask",
            "bpmn:ScriptTask",
            "bpmn:ReceiveTask",
            "bpmn:ManualTask",
            "bpmn:ExclusiveGateway",
            "bpmn:SequenceFlow",
            "bpmn:ParallelGateway",
            "bpmn:InclusiveGateway",
            "bpmn:EventBasedGateway",
            "bpmn:StartEvent",
            "bpmn:IntermediateCatchEvent",
            "bpmn:IntermediateThrowEvent",
            "bpmn:EndEvent",
            "bpmn:BoundaryEvent",
            "bpmn:CallActivity",
            "bpmn:SubProcess",
            "bpmn:Process"
          ]
        },
        "properties": [
          {
            "name": "expression",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "class",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "delegateExpression",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "event",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "script",
            "type": "Script"
          },
          {
            "name": "fields",
            "type": "Field",
            "isMany": true
          }
        ]
      },
      {
        "name": "TaskListener",
        "superClass": ["Element"],
        "meta": {
          "allowedIn": ["bpmn:UserTask"]
        },
        "properties": [
          {
            "name": "expression",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "class",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "delegateExpression",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "event",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "script",
            "type": "Script"
          },
          {
            "name": "fields",
            "type": "Field",
            "isMany": true
          }
        ]
      },
      {
        "name": "FormProperty",
        "superClass": ["Element"],
        "meta": {
          "allowedIn": ["bpmn:StartEvent", "bpmn:UserTask"]
        },
        "properties": [
          {
            "name": "id",
            "type": "String",
            "isAttr": true
          },
          {
            "name": "name",
            "type": "String",
            "isAttr": true
          },
          {
            "name": "type",
            "type": "String",
            "isAttr": true
          },
          {
            "name": "required",
            "type": "String",
            "isAttr": true
          },
          {
            "name": "readable",
            "type": "String",
            "isAttr": true
          },
          {
            "name": "writable",
            "type": "String",
            "isAttr": true
          },
          {
            "name": "variable",
            "type": "String",
            "isAttr": true
          },
          {
            "name": "expression",
            "type": "String",
            "isAttr": true
          },
          {
            "name": "datePattern",
            "type": "String",
            "isAttr": true
          },
          {
            "name": "default",
            "type": "String",
            "isAttr": true
          },
          {
            "name": "values",
            "type": "Value",
            "isMany": true
          }
        ]
      },
      {
        "name": "FormData",
        "superClass": ["Element"],
        "meta": {
          "allowedIn": ["bpmn:StartEvent", "bpmn:UserTask"]
        },
        "properties": [
          {
            "name": "fields",
            "type": "FormField",
            "isMany": true
          },
          {
            "name": "businessKey",
            "type": "String",
            "isAttr": true
          }
        ]
      },
      {
        "name": "FormField",
        "superClass": ["Element"],
        "properties": [
          {
            "name": "id",
            "type": "String",
            "isAttr": true
          },
          {
            "name": "label",
            "type": "String",
            "isAttr": true
          },
          {
            "name": "type",
            "type": "String",
            "isAttr": true
          },
          {
            "name": "datePattern",
            "type": "String",
            "isAttr": true
          },
          {
            "name": "defaultValue",
            "type": "String",
            "isAttr": true
          },
          {
            "name": "properties",
            "type": "Properties"
          },
          {
            "name": "validation",
            "type": "Validation"
          },
          {
            "name": "values",
            "type": "Value",
            "isMany": true
          }
        ]
      },
      {
        "name": "Validation",
        "superClass": ["Element"],
        "properties": [
          {
            "name": "constraints",
            "type": "Constraint",
            "isMany": true
          }
        ]
      },
      {
        "name": "Constraint",
        "superClass": ["Element"],
        "properties": [
          {
            "name": "name",
            "type": "String",
            "isAttr": true
          },
          {
            "name": "config",
            "type": "String",
            "isAttr": true
          }
        ]
      },
      {
        "name": "ConditionalEventDefinition",
        "isAbstract": true,
        "extends": ["bpmn:ConditionalEventDefinition"],
        "properties": [
          {
            "name": "variableName",
            "isAttr": true,
            "type": "String"
          },
          {
            "name": "variableEvent",
            "isAttr": true,
            "type": "String"
          }
        ]
      }
    ],
    "emumerations": []
  }