Flowable Case Definitions API

The Case Definitions API from Flowable — 16 operation(s) for case definitions.

OpenAPI Specification

flowable-case-definitions-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  description: "# flowable / flowəb(ə)l /\r\n\r\n- a compact and highly efficient workflow and Business Process Management (BPM) platform for developers, system admins and business users.\r\n- a lightning fast, tried and tested BPMN 2 process engine written in Java. It is Apache 2.0 licensed open source, with a committed community.\r\n- can run embedded in a Java application, or as a service on a server, a cluster, and in the cloud. It integrates perfectly with Spring. With a rich Java and REST API, it is the ideal engine for orchestrating human or system activities."
  version: v1
  title: Flowable REST Access Tokens Case Definitions API
  contact:
    name: Flowable
    url: http://www.flowable.org/
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: /flowable-rest/service
tags:
- name: Case Definitions
paths:
  /cmmn-repository/case-definitions:
    get:
      tags:
      - Case Definitions
      summary: List of case definitions
      description: ''
      operationId: listCaseDefinitions
      parameters:
      - name: version
        in: query
        description: Only return case definitions with the given version.
        required: false
        schema:
          type: integer
      - name: name
        in: query
        description: Only return case definitions with the given name.
        required: false
        schema:
          type: string
      - name: nameLike
        in: query
        description: Only return case definitions with a name like the given name.
        required: false
        schema:
          type: string
      - name: nameLikeIgnoreCase
        in: query
        description: Only return case definitions with a name like the given name ignoring case.
        required: false
        schema:
          type: string
      - name: key
        in: query
        description: Only return case definitions with the given key.
        required: false
        schema:
          type: string
      - name: keyLike
        in: query
        description: Only return case definitions with a name like the given key.
        required: false
        schema:
          type: string
      - name: resourceName
        in: query
        description: Only return case definitions with the given resource name.
        required: false
        schema:
          type: string
      - name: resourceNameLike
        in: query
        description: Only return case definitions with a name like the given resource name.
        required: false
        schema:
          type: string
      - name: category
        in: query
        description: Only return case definitions with the given category.
        required: false
        schema:
          type: string
      - name: categoryLike
        in: query
        description: Only return case definitions with a category like the given name.
        required: false
        schema:
          type: string
      - name: categoryNotEquals
        in: query
        description: Only return case definitions which do not have the given category.
        required: false
        schema:
          type: string
      - name: deploymentId
        in: query
        description: Only return case definitions which are part of a deployment with the given deployment id.
        required: false
        schema:
          type: string
      - name: parentDeploymentId
        in: query
        description: Only return case definitions which are part of a deployment with the given parent deployment id.
        required: false
        schema:
          type: string
      - name: startableByUser
        in: query
        description: Only return case definitions which are part of a deployment with the given id.
        required: false
        schema:
          type: string
      - name: latest
        in: query
        description: Only return the latest case definition versions. Can only be used together with key and keyLike parameters, using any other parameter will result in a 400-response.
        required: false
        schema:
          type: boolean
      - name: suspended
        in: query
        description: If true, only returns case definitions which are suspended. If false, only active process definitions (which are not suspended) are returned.
        required: false
        schema:
          type: boolean
      - name: sort
        in: query
        description: Property to sort on, to be used together with the order.
        required: false
        schema:
          type: string
          enum:
          - name
          - id
          - key
          - category
          - deploymentId
          - version
      - name: order
        in: query
        description: The sort order, either 'asc' or 'desc'. Defaults to 'asc'.
        required: false
        schema:
          type: string
      - name: start
        in: query
        description: Index of the first row to fetch. Defaults to 0.
        required: false
        schema:
          type: integer
      - name: size
        in: query
        description: Number of rows to fetch, starting from start. Defaults to 10.
        required: false
        schema:
          type: integer
      responses:
        '200':
          description: Indicates request was successful and the case definitions are returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DataResponseCaseDefinitionResponse'
        '400':
          description: Indicates a parameter was passed in the wrong format or that latest is used with other parameters other than key and keyLike. The status-message contains additional information.
      security:
      - basicAuth: []
  /cmmn-repository/case-definitions/{caseDefinitionId}:
    get:
      tags:
      - Case Definitions
      summary: Get a case definition
      description: ''
      operationId: getCaseDefinition
      parameters:
      - name: caseDefinitionId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Indicates request was successful and the case definitions are returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CaseDefinitionResponse'
        '404':
          description: Indicates the requested case definition was not found.
      security:
      - basicAuth: []
    put:
      tags:
      - Case Definitions
      summary: Execute actions for a case definition
      description: Execute actions for a case definition (Update category)
      operationId: executeCaseDefinitionAction
      parameters:
      - name: caseDefinitionId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaseDefinitionActionRequest'
        required: true
      responses:
        '200':
          description: Indicates action has been executed for the specified process. (category altered)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CaseDefinitionResponse'
        '400':
          description: Indicates no category was defined in the request body.
        '404':
          description: Indicates the requested case definition was not found.
      security:
      - basicAuth: []
  /cmmn-repository/case-definitions/{caseDefinitionId}/batch-migrate:
    post:
      tags:
      - Case Definitions
      summary: Batch migrate all instances of case definition
      description: ''
      operationId: batchMigrateInstancesOfCaseDefinition
      parameters:
      - name: caseDefinitionId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        $ref: '#/components/requestBodies/migrateHistoricCaseInstanceBody'
      responses:
        '200':
          description: Indicates case instances were found and batch migration was started.
        '404':
          description: Indicates the requested case definition was not found.
      security:
      - basicAuth: []
  /cmmn-repository/case-definitions/{caseDefinitionId}/batch-migrate-historic-instances:
    post:
      tags:
      - Case Definitions
      summary: Batch migrate all historic instances of case definition
      description: ''
      operationId: batchMigrateHistoricInstancesOfCaseDefinition
      parameters:
      - name: caseDefinitionId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        $ref: '#/components/requestBodies/migrateHistoricCaseInstanceBody'
      responses:
        '200':
          description: Indicates historic case instances were found and batch migration was started.
        '404':
          description: Indicates the requested case definition was not found.
      security:
      - basicAuth: []
  /cmmn-repository/case-definitions/{caseDefinitionId}/decision-tables:
    get:
      tags:
      - Case Definitions
      summary: List decision tables for a case definition
      description: ''
      operationId: listCaseDefinitionDecisionTables
      parameters:
      - name: caseDefinitionId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Indicates the case definition was found and the decision tables are returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DmnDecision'
        '404':
          description: Indicates the requested case definition was not found.
      security:
      - basicAuth: []
      deprecated: true
  /cmmn-repository/case-definitions/{caseDefinitionId}/decisions:
    get:
      tags:
      - Case Definitions
      summary: List decisions for a case definition
      description: ''
      operationId: listCaseDefinitionDecisions
      parameters:
      - name: caseDefinitionId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Indicates the case definition was found and the decisions are returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DmnDecision'
        '404':
          description: Indicates the requested case definition was not found.
      security:
      - basicAuth: []
  /cmmn-repository/case-definitions/{caseDefinitionId}/form-definitions:
    get:
      tags:
      - Case Definitions
      summary: List form definitions for a case definition
      description: ''
      operationId: listCaseDefinitionFormDefinitions
      parameters:
      - name: caseDefinitionId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Indicates the case definition was found and the form definitions are returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FormDefinition'
        '404':
          description: Indicates the requested case definition was not found.
      security:
      - basicAuth: []
  /cmmn-repository/case-definitions/{caseDefinitionId}/identitylinks:
    get:
      tags:
      - Case Definitions
      summary: List candidate starters for a case definition
      description: ''
      operationId: listCaseDefinitionIdentityLinks
      parameters:
      - name: caseDefinitionId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Indicates the case definition was found and the requested identity links are returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RestIdentityLink'
        '404':
          description: Indicates the requested case definition was not found.
      security:
      - basicAuth: []
    post:
      tags:
      - Case Definitions
      summary: Add a candidate starter to a case definition
      description: It is possible to add either a user or a group.
      operationId: createIdentityLink
      parameters:
      - name: caseDefinitionId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        $ref: '#/components/requestBodies/RestIdentityLink'
      responses:
        '201':
          description: Indicates the case definition was found and the identity link was created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestIdentityLink'
        '400':
          description: Indicates the body does not contain the correct information.
        '404':
          description: Indicates the requested case definition was not found.
      security:
      - basicAuth: []
  /cmmn-repository/case-definitions/{caseDefinitionId}/identitylinks/{family}/{identityId}:
    get:
      tags:
      - Case Definitions
      summary: Get a candidate starter from a case definition
      description: ''
      operationId: getIdentityLink
      parameters:
      - name: caseDefinitionId
        in: path
        required: true
        schema:
          type: string
      - name: family
        in: path
        required: true
        schema:
          type: string
      - name: identityId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Indicates the case definition was found and the identity link was returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RestIdentityLink'
        '404':
          description: Indicates the requested case definition was not found or the case definition does not have an identity-link that matches the url.
      security:
      - basicAuth: []
    delete:
      tags:
      - Case Definitions
      summary: Delete a candidate starter from a case definition
      description: ''
      operationId: deleteIdentityLink
      parameters:
      - name: caseDefinitionId
        in: path
        required: true
        schema:
          type: string
      - name: family
        in: path
        required: true
        schema:
          type: string
      - name: identityId
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Indicates the case definition was found and the identity link was removed. The response body is intentionally empty.
        '404':
          description: Indicates the requested case definition was not found or the case definition does not have an identity-link that matches the url.
      security:
      - basicAuth: []
  /cmmn-repository/case-definitions/{caseDefinitionId}/image:
    get:
      tags:
      - Case Definitions
      summary: Get a case definition image
      description: ''
      operationId: getImageResource
      parameters:
      - name: caseDefinitionId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Indicates request was successful and the case definitions are returned
          content:
            image/png:
              schema:
                type: array
                items:
                  type: string
                  format: byte
        '404':
          description: Indicates the requested case definition was not found.
      security:
      - basicAuth: []
  /cmmn-repository/case-definitions/{caseDefinitionId}/migrate:
    post:
      tags:
      - Case Definitions
      summary: Migrate all instances of case definition
      description: ''
      operationId: migrateInstancesOfCaseDefinition
      parameters:
      - name: caseDefinitionId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        $ref: '#/components/requestBodies/migrateHistoricCaseInstanceBody'
      responses:
        '200':
          description: Indicates case instances were found and migration was executed.
        '404':
          description: Indicates the requested case definition was not found.
      security:
      - basicAuth: []
  /cmmn-repository/case-definitions/{caseDefinitionId}/migrate-historic-instances:
    post:
      tags:
      - Case Definitions
      summary: Migrate all historic case instances of case definition
      description: ''
      operationId: migrateHistoricInstancesOfCaseDefinition
      parameters:
      - name: caseDefinitionId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        $ref: '#/components/requestBodies/migrateHistoricCaseInstanceBody'
      responses:
        '200':
          description: Indicates historic case instances were found and migration was executed.
        '404':
          description: Indicates the requested case definition was not found.
      security:
      - basicAuth: []
  /cmmn-repository/case-definitions/{caseDefinitionId}/model:
    get:
      tags:
      - Case Definitions
      summary: Get a case definition CMMN model
      description: ''
      operationId: getCmmnModelResource
      parameters:
      - name: caseDefinitionId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Indicates the process definition was found and the model is returned. The response contains the full process definition model.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CmmnModel'
        '404':
          description: Indicates the requested process definition was not found.
      security:
      - basicAuth: []
  /cmmn-repository/case-definitions/{caseDefinitionId}/resourcedata:
    get:
      tags:
      - Case Definitions
      summary: Get a case definition resource content
      description: ''
      operationId: getProcessDefinitionResource
      parameters:
      - name: caseDefinitionId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Indicates both case definition and resource have been found and the resource data has been returned.
          content:
            '*/*':
              schema:
                type: array
                items:
                  type: string
                  format: byte
        '404':
          description: Indicates the requested case definition was not found or there is no resource with the given id present in the case definition. The status-description contains additional information.
      security:
      - basicAuth: []
  /cmmn-repository/case-definitions/{caseDefinitionId}/start-form:
    get:
      tags:
      - Case Definitions
      summary: Get a case definition start form
      description: ''
      operationId: getProcessDefinitionStartForm
      parameters:
      - name: caseDefinitionId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Indicates request was successful and the case definition form is returned
          content:
            application/json:
              schema:
                type: string
        '404':
          description: Indicates the requested case definition was not found.
      security:
      - basicAuth: []
  /document-repository/document-definitions/{documentDefinitionId}/resourcedata:
    get:
      tags:
      - Case Definitions
      summary: Get a document definition resource content
      description: ''
      operationId: getDocumentDefinitionResource
      parameters:
      - name: documentDefinitionId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Indicates both document definition and resource have been found and the resource data has been returned.
          content:
            '*/*':
              schema:
                type: array
                items:
                  type: string
                  format: byte
        '404':
          description: Indicates the requested document definition was not found or there is no resource with the given id present in the document definition. The status-description contains additional information.
      security:
      - basicAuth: []
components:
  requestBodies:
    migrateHistoricCaseInstanceBody:
      content:
        application/json:
          schema:
            type: string
    RestIdentityLink:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/RestIdentityLink'
  schemas:
    TextAnnotation:
      type: object
      properties:
        id:
          type: string
        xmlRowNumber:
          type: integer
          format: int32
        xmlColumnNumber:
          type: integer
          format: int32
        extensionElements:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ExtensionElement'
        attributes:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ExtensionAttribute'
        documentationTextFormat:
          type: string
        documentation:
          type: string
        text:
          type: string
        textFormat:
          type: string
    Criterion:
      type: object
      properties:
        id:
          type: string
        xmlRowNumber:
          type: integer
          format: int32
        xmlColumnNumber:
          type: integer
          format: int32
        extensionElements:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ExtensionElement'
        attributes:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ExtensionAttribute'
        documentationTextFormat:
          type: string
        documentation:
          type: string
        name:
          type: string
        parent:
          $ref: '#/components/schemas/PlanFragment'
        technicalId:
          type: string
        sentryRef:
          type: string
        sentry:
          $ref: '#/components/schemas/Sentry'
        attachedToRefId:
          type: string
        exitType:
          type: string
        exitEventType:
          type: string
        incomingAssociations:
          type: array
          items:
            $ref: '#/components/schemas/Association'
        outgoingAssociations:
          type: array
          items:
            $ref: '#/components/schemas/Association'
        entryCriterion:
          type: boolean
        exitCriterion:
          type: boolean
        parentStage:
          $ref: '#/components/schemas/Stage'
    Decision:
      type: object
      properties:
        id:
          type: string
        xmlRowNumber:
          type: integer
          format: int32
        xmlColumnNumber:
          type: integer
          format: int32
        extensionElements:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ExtensionElement'
        attributes:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ExtensionAttribute'
        documentationTextFormat:
          type: string
        documentation:
          type: string
        name:
          type: string
        externalRef:
          type: string
        implementationType:
          type: string
    CaseDefinitionResponse:
      type: object
      properties:
        id:
          type: string
          example: oneTaskCase:1:4
        url:
          type: string
          example: http://localhost:8182/cmmn-repository/case-definitions/oneTaskCase%3A1%3A4
        key:
          type: string
          example: oneTaskCase
        version:
          type: integer
          format: int32
          example: 1
        name:
          type: string
          example: The One Task Case
        description:
          type: string
          example: This is a case for testing purposes
        tenantId:
          type: string
          example: 'null'
        deploymentId:
          type: string
          example: '2'
        deploymentUrl:
          type: string
          example: http://localhost:8081/cmmn-repository/deployments/2
        resource:
          type: string
          example: http://localhost:8182/cmmn-repository/deployments/2/resources/testCase.cmmn
          description: Contains the actual deployed CMMN 1.1 xml.
        diagramResource:
          type: string
          example: http://localhost:8182/cmmn-repository/deployments/2/resources/testProcess.png
          description: Contains a graphical representation of the case, null when no diagram is available.
        category:
          type: string
          example: Examples
        graphicalNotationDefined:
          type: boolean
          description: Indicates the case definition contains graphical information (CMMN DI).
        startFormDefined:
          type: boolean
    PlanItemControl:
      type: object
      properties:
        id:
          type: string
        xmlRowNumber:
          type: integer
          format: int32
        xmlColumnNumber:
          type: integer
          format: int32
        extensionElements:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ExtensionElement'
        attributes:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ExtensionAttribute'
        documentationTextFormat:
          type: string
        documentation:
          type: string
        name:
          type: string
        parent:
          $ref: '#/components/schemas/PlanFragment'
        requiredRule:
          $ref: '#/components/schemas/RequiredRule'
        repetitionRule:
          $ref: '#/components/schemas/RepetitionRule'
        manualActivationRule:
          $ref: '#/components/schemas/ManualActivationRule'
        completionNeutralRule:
          $ref: '#/components/schemas/CompletionNeutralRule'
        parentCompletionRule:
          $ref: '#/components/schemas/ParentCompletionRule'
        reactivationRule:
          $ref: '#/components/schemas/ReactivationRule'
        parentStage:
          $ref: '#/components/schemas/Stage'
    CmmnDiEdge:
      type: object
      properties:
        id:
          type: string
        xmlRowNumber:
          type: integer
          format: int32
        xmlColumnNumber:
          type: integer
          format: int32
        extensionElements:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ExtensionElement'
        attributes:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ExtensionAttribute'
        cmmnElementRef:
          type: string
        targetCmmnElementRef:
          type: string
        sourceDockerInfo:
          $ref: '#/components/schemas/GraphicInfo'
        targetDockerInfo:
          $ref: '#/components/schemas/GraphicInfo'
        waypoints:
          type: array
          items:
            $ref: '#/components/schemas/GraphicInfo'
        labelGraphicInfo:
          $ref: '#/components/schemas/GraphicInfo'
    BaseElement:
      type: object
      properties:
        id:
          type: string
        xmlRowNumber:
          type: integer
          format: int32
        xmlColumnNumber:
          type: integer
          format: int32
        extensionElements:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ExtensionElement'
        attributes:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ExtensionAttribute'
    ReactivationRule:
      type: object
      properties:
        id:
          type: string
        xmlRowNumber:
          type: integer
          format: int32
        xmlColumnNumber:
          type: integer
          format: int32
        extensionElements:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ExtensionElement'
        attributes:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ExtensionAttribute'
        documentationTextFormat:
          type: string
        documentation:
          type: string
        name:
          type: string
        parent:
          $ref: '#/components/schemas/PlanFragment'
        condition:
          type: string
        activateCondition:
          type: string
        ignoreCondition:
          type: string
        defaultCondition:
          type: string
        parentStage:
          $ref: '#/components/schemas/Stage'
    FieldExtension:
      type: object
      properties:
        id:
          type: string
        xmlRowNumber:
          type: integer
          format: int32
        xmlColumnNumber:
          type: integer
          format: int32
        extensionElements:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ExtensionElement'
        attributes:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ExtensionAttribute'
        fieldName:
          type: string
        stringValue:
          type: string
        expression:
          type: string
    RestIdentityLink:
      type: object
      properties:
        url:
          type: string
        user:
          type: string
          example: kermit
        group:
          type: string
          example: sales
        type:
          type: string
          example: candidate
    FlowableListener:
      type: object
      properties:
        id:
          type: string
        xmlRowNumber:
          type: integer
          format: int32
        xmlColumnNumber:
          type: integer
          format: int32
        extensionElements:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ExtensionElement'
        attributes:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ExtensionAttribute'
        documentationTextFormat:
          type: string
        documentation:
          type: string
        event:
          type: string
        sourceState:
          type: string
        targetState:
          type: string
        implementationType:
          type: string
        implementation:
          type: string
        fieldExtensions:
          type: array
          items:
            $ref: '#/components/schemas/FieldExtension'
        onTransaction:
          type: string
        scriptInfo:
          $ref: '#/components/schemas/ScriptInfo'
    SentryIfPart:
      type: object
      properties:
        id:
          type: string
        xmlRowNumber:
          type: integer
          format: int32
        xmlColumnNumber:
          type: integer
          format: int32
        extensionElements:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ExtensionElement'
        attributes:
          type: object
          additionalProperties:
            type: array
            items:
              $ref: '#/components/schemas/ExtensionAttribute'
        documentationTextFormat:
          typ

# --- truncated at 32 KB (59 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/flowable/refs/heads/main/openapi/flowable-case-definitions-api-openapi.yml