--- swagger: "2.0" info: description: "Flowable Platform" version: "v1" title: "Flowable Form REST API" contact: name: "Flowable" url: "http://www.flowable.com/" host: "localhost:8090" basePath: "/form-api" tags: - name: "Engine" - name: "Form Definitions" - name: "Form Deployments" - name: "Form Instance Models" - name: "Form Instances" - name: "Form Models" - name: "Query" schemes: - "http" - "https" paths: /form-management/engine: get: tags: - "Engine" summary: "Get form engine info" description: "Returns a read-only view of the engine that is used in this REST-service." operationId: "getEngineInfo" produces: - "application/json" parameters: [] responses: 200: description: "Indicates the engine info is returned." schema: $ref: "#/definitions/EngineInfoResponse" security: - basicAuth: [] /form-repository/button-definitions/key/{formDefinitionKey}/model: get: tags: - "Form Definitions" summary: "Get a form definition Form model by form definition key with only\ \ buttons" description: "" operationId: "getFormDefinitionButtonsByKey" produces: - "application/json" parameters: - name: "formDefinitionKey" in: "path" required: true type: "string" responses: 200: description: "Indicates the form definition Form model was found returned." schema: type: "array" items: $ref: "#/definitions/ButtonModelResponse" 404: description: "Indicates the form definition Form model was not found." security: - basicAuth: [] /form-repository/deployments: get: tags: - "Form Deployments" summary: "List of Form Deployments" description: "" operationId: "listFormDeployments" produces: - "application/json" parameters: - name: "name" in: "query" description: "Only return form deployments with the given name." required: false type: "string" - name: "nameLike" in: "query" description: "Only return form deployments with a name like the given name." required: false type: "string" - name: "category" in: "query" description: "Only return form deployments with the given category." required: false type: "string" - name: "categoryNotEquals" in: "query" description: "Only return form deployments which don’t have the given category." required: false type: "string" - name: "parentDeploymentId" in: "query" description: "Only return form deployments with the given parent deployment\ \ id." required: false type: "string" - name: "tenantId" in: "query" description: "Only return form deployments with the given tenantId." required: false type: "string" - name: "tenantIdLike" in: "query" description: "Only return form deployments with a tenantId like the given\ \ value." required: false type: "string" - name: "withoutTenantId" in: "query" description: "If true, only returns form deployments without a tenantId set.\ \ If false, the withoutTenantId parameter is ignored." required: false type: "boolean" - name: "sort" in: "query" description: "Property to sort on, to be used together with the order." required: false type: "string" enum: - "id" - "name" - "deployTime" - "tenantId" responses: 200: description: "Indicates the request was successful." schema: $ref: "#/definitions/DataResponseFormDeploymentResponse" security: - basicAuth: [] post: tags: - "Form Deployments" summary: "Create a new form deployment" description: "The request body should contain data of type multipart/form-data.\ \ There should be exactly one file in the request, any additional files will\ \ be ignored. The deployment name is the name of the file-field passed in.\ \ Make sure the file-name ends with .form or .xml." operationId: "uploadDeployment" consumes: - "multipart/form-data" produces: - "application/json" parameters: - name: "tenantId" in: "query" required: false type: "string" - name: "file" in: "formData" required: false type: "file" responses: 200: description: "successful operation" schema: $ref: "#/definitions/FormDeploymentResponse" 201: description: "Indicates the form deployment was created." 400: description: "Indicates there was no content present in the request body\ \ or the content mime-type is not supported for form deployment. The status-description\ \ contains additional information." security: - basicAuth: [] /form-repository/deployments/{deploymentId}: get: tags: - "Form Deployments" summary: "Get a form deployment" description: "" operationId: "getFormDeployment" produces: - "application/json" parameters: - name: "deploymentId" in: "path" required: true type: "string" responses: 200: description: "Indicates the form deployment was found and returned." schema: $ref: "#/definitions/FormDeploymentResponse" 404: description: "Indicates the requested form deployment was not found." security: - basicAuth: [] delete: tags: - "Form Deployments" summary: "Delete a form deployment" description: "" operationId: "deleteFormDeployment" produces: - "application/json" parameters: - name: "deploymentId" in: "path" required: true type: "string" responses: 204: description: "Indicates the form deployment was found and has been deleted.\ \ Response-body is intentionally empty." 404: description: "Indicates the requested form deployment was not found." security: - basicAuth: [] /form-repository/deployments/{deploymentId}/resourcedata/{resourceName}: get: tags: - "Form Deployments" summary: "Get a form deployment resource content" description: "The response body will contain the binary resource-content for\ \ the requested resource. The response content-type will be the same as the\ \ type returned in the resources mimeType property. Also, a content-disposition\ \ header is set, allowing browsers to download the file instead of displaying\ \ it." operationId: "getFormDeploymentResource" parameters: - name: "deploymentId" in: "path" required: true type: "string" - name: "resourceName" in: "path" required: true type: "string" responses: 200: description: "Indicates both form deployment and resource have been found\ \ and the resource data has been returned." schema: type: "array" items: type: "string" format: "byte" 404: description: "Indicates the requested form deployment was not found or there\ \ is no resource with the given id present in the form deployment. The\ \ status-description contains additional information." security: - basicAuth: [] /form-repository/form-definitions: get: tags: - "Form Definitions" summary: "List of form definitions" description: "" operationId: "listFormDefinitions" produces: - "application/json" parameters: - name: "category" in: "query" description: "Only return form definitions with the given category." required: false type: "string" - name: "categoryLike" in: "query" description: "Only return form definitions with a category like the given\ \ value." required: false type: "string" - name: "categoryNotEquals" in: "query" description: "Only return form definitions not with the given category." required: false type: "string" - name: "key" in: "query" description: "Only return form definitions with the given key." required: false type: "string" - name: "keyLike" in: "query" description: "Only return form definitions with a key like the given value." required: false type: "string" - name: "name" in: "query" description: "Only return form definitions with the given name." required: false type: "string" - name: "nameLike" in: "query" description: "Only return form definitions with a name like the given value." required: false type: "string" - name: "resourceName" in: "query" description: "Only return form definitions with the given resource name." required: false type: "string" - name: "resourceNameLike" in: "query" description: "Only return form definitions a resource name like the given\ \ value." required: false type: "string" - name: "version" in: "query" description: "Only return form definitions with the given version." required: false type: "string" - name: "versionGreaterThan" in: "query" description: "Only return form definitions with a version greater than the\ \ given value." required: false type: "string" - name: "versionGreaterThanOrEquals" in: "query" description: "Only return form definitions with a version greater than or\ \ equal to the given value." required: false type: "string" - name: "versionLowerThan" in: "query" description: "Only return form definitions with a version lower than the given\ \ value." required: false type: "string" - name: "versionLowerThanOrEquals" in: "query" description: "Only return form definitions with a version lower than or equal\ \ to the given value." required: false type: "string" - name: "deploymentId" in: "query" description: "Only return form definitions with the given deployment id." required: false type: "string" - name: "parentDeploymentId" in: "query" description: "Only return form definitions with the given parent deployment\ \ id." required: false type: "string" - name: "tenantId" in: "query" description: "Only return form definitions with the given tenant id." required: false type: "string" - name: "tenantIdLike" in: "query" description: "Only return form definitions with a tenant id like the given\ \ value." required: false type: "string" - name: "withoutTenantId" in: "query" description: "Only return form definitions without a tenant id." required: false type: "string" - name: "latest" in: "query" description: "If true; only the latest versions will be returned." required: false type: "boolean" - name: "sort" in: "query" description: "Property to sort on, to be used together with the order." required: false type: "string" enum: - "key" - "category" - "id" - "version" - "name" - "deploymentId" - "tenantId" responses: 200: description: "Indicates request was successful and the form definitions\ \ are returned" schema: $ref: "#/definitions/DataResponseFormDefinitionResponse" 400: description: "Indicates a parameter was passed in the wrong format . The\ \ status-message contains additional information." security: - basicAuth: [] /form-repository/form-definitions/key/{formDefinitionKey}/model: get: tags: - "Form Definitions" summary: "Get a form definition Form model by form definition key" description: "" operationId: "getFormDefinitionFormModelByKey" produces: - "application/json" parameters: - name: "formDefinitionKey" in: "path" required: true type: "string" responses: 200: description: "Indicates the form definition Form model was found returned." schema: $ref: "#/definitions/FormModelResponse" 404: description: "Indicates the form definition Form model was not found." security: - basicAuth: [] /form-repository/form-definitions/{formDefinitionId}: get: tags: - "Form Definitions" summary: "Get a form definition" description: "" operationId: "getForm" produces: - "application/json" parameters: - name: "formDefinitionId" in: "path" required: true type: "string" responses: 200: description: "Indicates the form definition was found returned." schema: $ref: "#/definitions/FormDefinitionResponse" 404: description: "Indicates the form definition was not found." security: - basicAuth: [] /form-repository/form-definitions/{formDefinitionId}/model: get: tags: - "Form Definitions" summary: "Get a form definition Form model" description: "" operationId: "getFormDefinitionFormModel" produces: - "application/json" parameters: - name: "formDefinitionId" in: "path" required: true type: "string" responses: 200: description: "Indicates the form definition Form model was found returned." schema: $ref: "#/definitions/FormModelResponse" 404: description: "Indicates the form definition Form model was not found." security: - basicAuth: [] /form-repository/form-definitions/{formDefinitionId}/resourcedata: get: tags: - "Form Definitions" summary: "Get a form definition resource content" description: "" operationId: "getFormDefinitionContent" produces: - "application/json" parameters: - name: "formDefinitionId" in: "path" required: true type: "string" responses: 200: description: "Indicates both form definition and resource have been found\ \ and the resource data has been returned." schema: type: "array" items: type: "string" format: "byte" 404: description: "Indicates the requested form definition was not found or there\ \ is no resource with the given id present in the process definition.\ \ The status-description contains additional information." security: - basicAuth: [] /form/form-instance-model: post: tags: - "Form Instance Models" summary: "Get a form instance model" description: "" operationId: "getFormInstanceModel" produces: - "application/json" parameters: - in: "body" name: "formInstanceModelRequest" required: false schema: $ref: "#/definitions/FormRequest" responses: 200: description: "Indicates the form instance was found and the model is returned." schema: $ref: "#/definitions/FormInstanceModelResponse" 404: description: "Indicates the form instance was not found." security: - basicAuth: [] /form/form-instance/{formInstanceId}: get: tags: - "Form Instances" summary: "Get a form instance" description: "" operationId: "getFormInstance" produces: - "application/json" parameters: - name: "formInstanceId" in: "path" required: true type: "string" responses: 200: description: "Indicates the form instance was found and returned." schema: $ref: "#/definitions/FormInstanceResponse" 404: description: "Indicates the requested form instance was not found." security: - basicAuth: [] /form/form-instance/{formInstanceId}/values: get: tags: - "Form Instances" summary: "Get form instance values" description: "" operationId: "getFormInstance" produces: - "application/json" parameters: - name: "formInstanceId" in: "path" required: true type: "string" responses: 200: description: "Indicates the form instance was found and the values returned." schema: type: "string" 404: description: "Indicates the requested form instance was not found." security: - basicAuth: [] /form/form-instances: get: tags: - "Form Instances" summary: "List of form instances" description: "" operationId: "listFormInstances" produces: - "application/json" parameters: - name: "id" in: "query" description: "Only return form instances with the given id." required: false type: "string" - name: "formDefinitionId" in: "query" description: "Only return form instances with the given form definition id." required: false type: "string" - name: "formDefinitionIdLike" in: "query" description: "Only return form instances with a form definition id like the\ \ given value." required: false type: "string" - name: "taskId" in: "query" description: "Only return form instances with the given task id." required: false type: "string" - name: "taskIdLike" in: "query" description: "Only return form instances with a task id like the given value." required: false type: "string" - name: "processInstanceId" in: "query" description: "Only return form instances with the given process instance id." required: false type: "string" - name: "processInstanceIdLike" in: "query" description: "Only return form instances with a process instance id like the\ \ given value." required: false type: "string" - name: "processDefinitionId" in: "query" description: "Only return form instances with the given process definition\ \ id." required: false type: "string" - name: "processDefinitionIdLike" in: "query" description: "Only return form instances with a process definition id like\ \ the given value." required: false type: "string" - name: "scopeId" in: "query" description: "Only return form instances with the given scope id." required: false type: "string" - name: "scopeType" in: "query" description: "Only return form instances with a scope type like the given\ \ value." required: false type: "string" - name: "scopeDefinitionId" in: "query" description: "Only return form instances with the given scope definition id." required: false type: "string" - name: "submittedBy" in: "query" description: "Only return form instances submitted by the given value." required: false type: "string" - name: "submittedByLike" in: "query" description: "Only return form instances submitted by like the given value." required: false type: "string" - name: "tenantId" in: "query" description: "Only return form instances with the given tenantId." required: false type: "string" - name: "tenantIdLike" in: "query" description: "Only return form instances with a tenantId like the given value." required: false type: "string" - name: "withoutTenantId" in: "query" description: "If true, only returns form instances without a tenantId set.\ \ If false, the withoutTenantId parameter is ignored." required: false type: "boolean" - name: "sort" in: "query" description: "Property to sort on, to be used together with the order." required: false type: "string" enum: - "submittedDate" - "tenantId" responses: 200: description: "Indicates request was successful and the form instances are\ \ returned" schema: $ref: "#/definitions/DataResponseFormInstanceResponse" 400: description: "Indicates a parameter was passed in the wrong format . The\ \ status-message contains additional information." security: - basicAuth: [] post: tags: - "Form Instances" summary: "Store a form instance" description: "Provide either a FormDefinitionKey or a FormDefinitionId together\ \ with the other properties." operationId: "storeFormInstance" produces: - "application/json" parameters: - in: "body" name: "body" required: false schema: $ref: "#/definitions/FormRequest" responses: 201: description: "Indicates the form instance was stored." 404: description: "Indicates the related form model was not found." security: - basicAuth: [] /form/model: post: tags: - "Form Models" summary: "Get a populated form model" description: "Provide variables needed to pre populated form fields and to render\ \ expression based form fields" operationId: "getFormModel" produces: - "application/json" parameters: - in: "body" name: "body" required: false schema: $ref: "#/definitions/FormRequest" responses: 200: description: "Indicates the form model was found and returned." schema: $ref: "#/definitions/FormModelResponse" 404: description: "Indicates the requested form model was not found." security: - basicAuth: [] /query/form-instances: post: tags: - "Form Instances" - "Query" summary: "Query form instances" description: "The request body can contain all possible filters that can be\ \ used in the List form instances URL query. On top of these, it’s possible\ \ to provide an array of variables to include in the query, with their format\ \ described here.\n\nThe general paging and sorting query-parameters can be\ \ used for this URL." operationId: "queryFormInstances" produces: - "application/json" parameters: - in: "body" name: "body" required: false schema: $ref: "#/definitions/FormInstanceQueryRequest" responses: 200: description: "Indicates request was successful and the form instances are\ \ returned" schema: $ref: "#/definitions/DataResponseFormInstanceResponse" 400: description: "Indicates a parameter was passed in the wrong format . The\ \ status-message contains additional information." security: - basicAuth: [] securityDefinitions: basicAuth: type: "basic" definitions: ButtonModelResponse: type: "object" properties: label: type: "string" value: type: "string" CustomValidationDefinition: type: "object" properties: expression: type: "string" errorMsg: type: "string" i18n: type: "object" additionalProperties: type: "object" additionalProperties: type: "string" DataResponse: type: "object" properties: data: type: "array" items: type: "object" total: type: "integer" format: "int64" start: type: "integer" format: "int32" sort: type: "string" order: type: "string" size: type: "integer" format: "int32" DataResponseFormDefinitionResponse: type: "object" properties: data: type: "array" items: $ref: "#/definitions/FormDefinitionResponse" total: type: "integer" format: "int64" start: type: "integer" format: "int32" sort: type: "string" order: type: "string" size: type: "integer" format: "int32" DataResponseFormDeploymentResponse: type: "object" properties: data: type: "array" items: $ref: "#/definitions/FormDeploymentResponse" total: type: "integer" format: "int64" start: type: "integer" format: "int32" sort: type: "string" order: type: "string" size: type: "integer" format: "int32" DataResponseFormInstanceResponse: type: "object" properties: data: type: "array" items: $ref: "#/definitions/FormInstanceResponse" total: type: "integer" format: "int64" start: type: "integer" format: "int32" sort: type: "string" order: type: "string" size: type: "integer" format: "int32" EngineInfoResponse: type: "object" properties: name: type: "string" example: "default" resourceUrl: type: "string" example: "file://flowable/flowable.cfg.xml" exception: type: "string" example: "null" version: type: "string" example: "6.3.1" EventDefinition: type: "object" properties: id: type: "string" eventType: type: "string" implementationType: type: "string" expression: type: "string" resultVariable: type: "string" FormDefinitionResponse: type: "object" properties: id: type: "string" example: "10" url: type: "string" example: "http://localhost:8182/form-repository/form-definitions/simpleForm" category: type: "string" example: "Examples" name: type: "string" example: "The Simple Form" key: type: "string" example: "simpleForm" description: type: "string" example: "This is a form for testing purposes" version: type: "integer" format: "int32" example: 1 resourceName: type: "string" example: "SimpleSourceName" deploymentId: type: "string" example: "818e4703-f1d2-11e6-8549-acde48001121" tenantId: type: "string" example: "null" FormDeploymentResponse: type: "object" properties: id: type: "string" example: "10" name: type: "string" example: "flowable-form-examples" deploymentTime: type: "string" format: "date-time" example: "2010-10-13T14:54:26.750+02:00" category: type: "string" example: "examples" url: type: "string" example: "http://localhost:8081/form-api/form-repository/deployments/10" parentDeploymentId: type: "string" example: "5" tenantId: type: "string" example: "null" FormInstanceModelResponse: type: "object" properties: id: type: "string" name: type: "string" description: type: "string" key: type: "string" version: type: "integer" format: "int32" formInstanceId: type: "string" submittedBy: type: "string" submittedDate: type: "string" format: "date-time" selectedOutcome: type: "string" taskId: type: "string" processInstanceId: type: "string" processDefinitionId: type: "string" tenantId: type: "string" url: type: "string" formKey: type: "string" dialogSize: type: "string" dialogTitle: type: "string" dialogDescription: type: "string" forceValidation: type: "boolean" defaultDateFormat: type: "string" defaultNumberFormat: type: "string" rows: type: "array" items: $ref: "#/definitions/RowDefinition" metadata: $ref: "#/definitions/MetadataDefinition" section: $ref: "#/definitions/SectionDefinition" outcomes: type: "array" items: $ref: "#/definitions/OutcomeDefinition" customValidations: type: "array" items: $ref: "#/definitions/CustomValidationDefinition" FormInstanceQueryRequest: type: "object" properties: start: type: "integer" format: "int32" size: type: "integer" format: "int32" sort: type: "string" order: type: "string" id: type: "string" formDefinitionId: type: "string" formDefinitionIdLike: type: "string" taskId: type: "string" taskIdLike: type: "string" processInstanceId: type: "string" processInstanceIdLike: type: "string" processDefinitionId: type: "string" processDefinitionIdLike: type: "string" scopeId: type: "string" scopeType: type: "string" scopeDefinitionId: type: "string" submittedBy: type: "string" submittedByLike: type: "string" tenantId: type: "string" tenantIdLike: type: "string" withoutTenantId: type: "boolean" FormInstanceResponse: type: "object" properties: id: type: "string" example: "48b9ac82-f1d3-11e6-8549-acde48001122" formDefinitionId: type: "string" example: "818e4703-f1d2-11e6-8549-acde48001122" taskId: type: "string" example: "88" processInstanceId: type: "string" example: "66" processDefinitionId: type: "string" example: "oneTaskProcess:1:158" submittedDate: type: "string" format: "date-time" example: "2013-04-17T10:17:43.902+0000" submittedBy: type: "string" example: "testUser" formValuesId: type: "string" example: "818e4703-f1d2-11e6-8549-acde48001110" tenantId: type: "string" example: "null" url: type: "string" example: "http://localhost:8182/form/form-instances/48b9ac82-f1d3-11e6-8549-acde48001122" scopeId: type: "string" example: "66" scopeType: type: "string" example: "CAS-d6d53baa-2618-11e9-895e-aee50c200f02" scopeDefinitionId: type: "string" example: "CAS-d6d53baa-2618-11e9-895e-aee50c200f02" FormModel: type: "object" FormModelResponse: type: "object" properties: id: type: "string" name: type: "string" description: type: "string" key: type: "string" version: type: "integer" format: "int32" formModel: $ref: "#/definitions/FormModel" url: type: "string" formKey: type: "string" dialogSize: type: "string" dialogTitle: type: "string" dialogDescription: type: "string" forceValidation: type: "boolean" defaultDateFormat: type: "string" defaultNumberFormat: type: "string" rows: type: "array" items: $ref: "#/definitions/RowDefinition" metadata: $ref: "#/definitions/MetadataDefinition" section: $ref: "#/definitions/SectionDefinition" outcomes: type: "array" items: $ref: "#/definitions/OutcomeDefinition" formModelEvents: type: "array" items: $ref: "#/definitions/EventDefinition" customValidations: type: "array" items: $ref: "#/definitions/CustomValidationDefinition" FormRequest: type: "object" properties: formInstanceId: type: "string" formDefinitionId: type: "string" formDefinitionKey: type: "string" taskId: type: "string" processInstanceId: type: "string" processDefinitionId: type: "string" scopeId: type: "string" scopeType: type: "string" scopeDefinitionId: type: "string" outcome: type: "string" tenantId: type: "string" parentDeploymentId: type: "string" variables: type: "object" additionalProperties: type: "object" MetadataDefinition: type: "object" properties: key: type: "string" name: type: "string" description: type: "string" version: type: "string" modelType: type: "string" flowableDesignVersion: type: "integer" format: "int32" OutcomeDefinition: type: "object" properties: label: type: "string" value: type: "string" visible: type: "string" enabled: type: "string" primary: type: "string" ignorePayload: type: "boolean" ignoreValidation: type: "boolean" hideErrors: type: "boolean" styleClass: type: "string" navigationUrl: type: "string" outcomeFormKey: type: "string" i18n: type: "object" additionalProperties: type: "object" additionalProperties: type: "string" RowDefinition: type: "object" properties: cols: type: "array" items: type: "object" additionalProperties: type: "object" SectionDefinition: type: "object" properties: name: type: "string" visibility: type: "string"