Bonitasoft Process API

Deploy and manage process definitions. In addition, you can instantiate a process, which will create a new process instance (case).

Business capability
Process Modeling and Documentation BC-930.20

Operations 12

GET /API/bpm/process Finds Processes #
POST /API/bpm/process Create the Process #
DELETE /API/bpm/process Delete the Process by IDs #
GET /API/bpm/process/{id} Finds the Process by ID #
PUT /API/bpm/process/{id} Update the Process by ID #
DELETE /API/bpm/process/{id} Delete the Process by ID #
GET /API/bpm/process/{id}/design Finds the Process design by ID #
GET /API/bpm/process/{id}/contract Finds the Process contract by ID #
POST /API/bpm/process/{id}/instantiation Instanciate the process #
GET /API/bpm/processName Search process names #
PUT /API/bpm/processConnector/{id}/{connectorImplId}/{connectorImplVersion} Update the Process Connector by Process ID #
POST /portal/processUpload Upload a bar file #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/bonitasoft-process-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

bonitasoft-process-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  license:
    name: GPL-v2.0
    url: http://www.gnu.org/licenses/gpl-2.0.txt
  version: 1.0.9
  title: Bonita Process API
  description: "<p> \n<a download=\"openapi.yaml\" href=\"./openapi.yaml\" target=\"_blank\" class=\"btn-download\">Download OpenAPI specification</a>\n<a download=\"postman.json\" href=\"./postman.json\" target=\"_blank\" class=\"btn-download\">Download Postman collection</a>\n</p>\n\n<hr>\n\nThe REST API lets you access the data with HTTP requests; it is useful when implementing rich web forms / pages for a good user experience.\n\nAn open source [java client](https://github.com/bonitasoft/bonita-java-client) is implemented above the HTTP API. It is available on [Maven central](https://search.maven.org/search?q=g:%22org.bonitasoft.web%22%20AND%20a:%22bonita-java-client%22).\n\nIf your application is using a technology other than Java, you can integrate it with the Bonita solution using the Web REST API. This API provides\naccess to all Bonita objects (like processes, tasks, users, connectors etc.), to execute operations on them (create, retrieve, update, delete).\nYou can use these operations to create a workflow with Bonita and integrate it into your application. The Bonita Engine remains responsible for executing\nthe workflow logic (connectors, gateways with conditions, messages, timers etc.) while your application gives access to the workflow.\nUsers can manage processes and tasks, and perform administrative activities.\n\n### API Extensions\n\nYou can create [Rest API Extensions](https://documentation.ofelia.com/bonita/latest/api/rest-api-extensions) to extend the Rest API by adding missing resources (not provided by the Rest API).\nIt is possible for an extension to interact with the engine (via the API) or with any other external service (for example a database, a directory, or a web service).\n\n### Create a resource\n\n| Request URL | `http://.../API/{API_name}/{resource_name}/  `|\n|:-|:-|\n| Request Method | POST|\n| Request Payload | an item in JSON|\n| Response | the same item in JSON, containing the values provided in the posted item, completed with default values and identifiers provided by Bonita Engine.|\n\n### Read a resource\n\n| Request URL | `http://.../API/{API_name}/{resource_name}/{id} `|\n|:-|:-|\n| Request Method | GET|\n| Response | an item in JSON|\n\nExample `http://.../API/identity/user/5 `\n\n#### Extend resource response\n\nOn some resources, in GET methods the `d` (deploy) URL query parameter can be used to extend the response objects. The value of this parameter consists of an attribute for which you want to make an extended request (called a deploy) and retrieve attributes of a linked resource.\nThis means that instead of retrieving the ID or a parent or referenced resource, you can retrieve the full object.\n\nFor example, when you retrieve a task, you can also retrieve the process definition attributes in addition to the process definition ID that is already part of the task resource.\nThe supported deploy values for a task include its process (d=processId).\n\nSpecifiy multiple `d` parameter to extend several resources. For instance, to retrieve the flow node of id 143 and the associated process, process instance and assigned user, call `/API/bpm/flowNode/143?d=processId&d=caseId&d=assigned_id`\n\n#### With compound identifier\n\nThe order of the identifier parts for each resource type is given in the table above.\n\n| Request URL | `http://.../API/{API_name}/{resource_name}/{id_part1}/{id_part2} `|\n|:-|:-|\n| Request Method | GET|\n| Response | an item in JSON|\n\nExample `http://.../API/identity/membership/5/12/24 `\n\n### Update a resource\n\n| Request URL | `http://.../API/{API_name}/{resource_name}/{id} `|\n|:-|:-|\n| Request Method | PUT|\n| Request Payload | a map in JSON containing the new values for the attributes you want to change.|\n| Response | the corresponding item in JSON with new values where you requested a modification|\n\nExample `http://.../API/identity/user/5`\n\n#### With compound identifier:\n\nResponse: the corresponding item in JSON with new values where you requested a modification.\n\n| Request URL | `http://.../API/{API_name}/{resource_name}/{id_part1}/{id_part2} `|\n|:-|:-|\n| Request Method | PUT|\n| Request Payload | ` a map in JSON containing the new values for the attributes you want to change `|\n| Response | ` the corresponding item in JSON with new values where you requested a modification`|\n\nExample\n`http://.../API/identity/membership/5/12/24 `\n\n### Delete resources\n\nUse the DELETE request to remove multiple resources.\n\n| Request URL | `http://.../API/{API_name}/{resource_name}/ `|\n|:-|:-|\n| Request Method | DELETE|\n| Request Payload | A list of identifiers in JSON, for example `[\"id1\",\"id2\",\"id3\"]`. Compound identifiers are separated by '/' characters.|\n| Response | `empty `|\n\nExample\n`http://.../API/identity/membership/ `\n\n### Search for a resource\n\nThe required object is specified with a set of filters in the request URL. The URL parameters must be URL-encoded.\n\nResults are returned in a paged list, so you have to specify the page (counting from zero), and the number of results per page (count), additionally you can define a sort key (order). You can see the total number of matching results in the HTTP response header Content-Range.\nIf you are searching for business data using a custom query, there must be a [count query in the BDM](https://documentation.ofelia.com/bonita/latest/data/define-and-deploy-the-bdm). If there is no count query, results from a custom query on business data cannot be paged properly (the header Content-Range will be absent).\nFor business data default queries, the count query is defined automatically.\n\nThe available filters are the attributes of the item plus some specific filters defined by each item.\n\n| Request URL | `http://.../API/{API_name}/{resource_name}?p={page}&c={count}&o={order}&s={query}&f={filter_name}={filter_value}&f=... `|\n|:-|:-|\n| Request Method | GET|\n| Response | an array of items in JSON|\n\nExample\n`/API/identity/user?p=0&c=10&o=firstname&s=test&f=manager_id=3`\n\nFor a GET method that retrieves more than one instance of a resource, you can specify the following request parameters:\n\n* p (Mandatory): index of the page to display\n* c (Mandatory): maximum number of elements to retrieve\n* o: order of presentation of values in response: must be either `attributeName ASC` or `attributeName DESC`. The final order parameter value must be URL encoded.\n* f: list of filters, specified as `attributeName=attributeValue`. To filter on more than one attribute, specify an f parameters for each attribute. The final filter parameter value must be URL encoded.\n  The attributes you can filter on are specific to the resource.\n* s: search on name or search indexes. Before Bonita 2024.1, the matching policy depended on the configuration of [word-based search](https://documentation.ofelia.com/bonita/2023.2/api/using-list-and-search-methods#word_based_search).\n  For example, if word-based search was enabled, `s=Valid` returned matches containing the string \"valid\" at the start of any word in the attribute value word,\n  such as \"Valid address\", \"Not a valid address\", and \"Validated request\" but not \"Invalid request\".\n  If word-based search was disabled, `s=Valid` returned matches containing the string \"valid\" at the start of the attribute value, such as \"Valid address\" or \"Validated request\" but not \"Not a valid address\" or \"Invalid request\".\n  Since Bonita 2024.1, the search mode can no longer be configured and a \"like-based\" algorithm is used. This means all the matching records for which the search term occurs anywhere in a phrase or a word are returned.\n\n### Errors\n\nThe API uses standard HTTP status codes to indicate the success or failure of the API call.\n\nIf you get a `401` response code :\n  - make sure that the cookies have been transfered with the call\n  - make sure that the cookies transfered are the ones generated during the last sucessfull login call\n  - if one of the PUT, DELETE or POST method is used, make sure that the `X-Bonita-API-Token` header is included\n  - if the X-Bonita-API-Token header is included, make sure that the value is the same as the one of the cookie generated during the last login\n  - Maybe a logout was issued or the session has expired; try to log in again, and re run the request with the new cookies and the new value for the `X-Bonita-API-Token` header.\n"
  x-logo:
    url: images/ofelia-logo.svg
    backgroundColor: '#19465f'
    altText: Bonita API
    href: /
servers:
- url: http://localhost:8080/bonita
  description: Sample url for a local development server.
security:
- bonita_auth: []
  bonita_token: []
- bearer_auth: []
tags:
- name: Process
  x-displayName: Process
  description: Deploy and manage process definitions. In addition, you can instantiate a process, which will create a new process instance (case).
paths:
  /API/bpm/process:
    get:
      tags:
      - Process
      summary: Finds Processes
      description: 'Finds Processes with pagination params and filters


        - can order (default is ASC) on `name`, `version`, `deploymentDate`, `deployedBy`, `activationState`, `configurationState`, `processId`, `displayName`, `lastUpdateDate`, `categoryId`, `label`

        - can search on `name`, `displayName` or `version`

        - can filter on `name`, `version`, `deploymentDate`, `deployedBy`, `activationState` with the value DISABLED or ENABLED, `configurationState` with the value UNRESOLVED, or RESOLVED, `processId`, `displayName`, `lastUpdateDate`, `categoryId`, `label`, `supervisor_id`

        '
      operationId: searchProcesses
      parameters:
      - $ref: '#/components/parameters/pageIndex'
      - $ref: '#/components/parameters/pageCount'
      - $ref: '#/components/parameters/pageFilter'
      - $ref: '#/components/parameters/pageOrder'
      - $ref: '#/components/parameters/pageSearch'
      responses:
        '200':
          description: 'Success '
          headers:
            Content-Range:
              schema:
                type: integer
                format: int64
              description: The total number of matching items
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProcessDefinition'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
    post:
      tags:
      - Process
      summary: Create the Process
      deprecated: true
      description: 'Create the Process.

        A process resource is created using the content of a .bar file that has previously been uploaded, using the [processUpload servlet](#operation/uploadProcess), to get the process archive path.


        Warning: as of 9.0.0, creating a process using this API is deprecated.

        '
      operationId: createProcess
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProcessCreateRequest'
        description: Partial Process description
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProcessDefinition'
          description: 'Success '
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
      x-codegen-request-body-name: body
    delete:
      tags:
      - Process
      summary: Delete the Process by IDs
      description: 'Delete Process for the given list of ID.


        **Warning: Beware! Data loss risk!**


        Deleting a process will automatically delete all its process instances (on-going and archived alike).

        Thus, the operation may take a long time, and fail if the transaction timeout is not large enough. This feature should only be used on non-production environments.


        **Please proceed at your own risk.**

        '
      operationId: deleteProcessByIds
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
            example:
            - '1'
            - '2'
            - '3'
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/process/{id}:
    get:
      tags:
      - Process
      summary: Finds the Process by ID
      description: 'Returns the single Process for the given ID

        '
      operationId: getProcessById
      parameters:
      - description: ID of the Process to return
        in: path
        name: id
        required: true
        schema:
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
      responses:
        '200':
          description: 'Success '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProcessDefinition'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        5XX:
          $ref: '#/components/responses/ServerError'
    put:
      tags:
      - Process
      summary: Update the Process by ID
      deprecated: true
      description: 'Update the Process for the given ID


        Warning: as of 9.0.0, updating a process using this API is deprecated.

        '
      operationId: updateProcessById
      parameters:
      - description: ID of the Process to return
        in: path
        name: id
        required: true
        schema:
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProcessUpdateRequest'
        description: Partial Process description
        required: true
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        5XX:
          $ref: '#/components/responses/ServerError'
    delete:
      tags:
      - Process
      summary: Delete the Process by ID
      description: 'Delete the single Process for the given ID.


        **Warning: Beware! Data loss risk!**


        Deleting a process will automatically delete all its process instances (on-going and archived alike).

        Thus, the operation may take a long time, and fail if the transaction timeout is not large enough. This feature should only be used on non-production environments.


        **Please proceed at your own risk.**

        '
      operationId: deleteProcessById
      parameters:
      - description: ID of the Process to delete
        in: path
        name: id
        required: true
        schema:
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/process/{id}/design:
    get:
      tags:
      - Process
      summary: Finds the Process design by ID
      description: 'Returns the single Process design for the given ID

        '
      operationId: getProcessDesignById
      parameters:
      - description: ID of the Process to get the design from
        in: path
        name: id
        required: true
        schema:
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
      responses:
        '200':
          description: 'Success '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DesignProcessDefinition'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/process/{id}/contract:
    get:
      tags:
      - Process
      summary: Finds the Process contract by ID
      description: 'Returns the process contract for the given ID

        '
      operationId: getProcessContractById
      parameters:
      - description: ID of the Process to get the contract from
        in: path
        name: id
        required: true
        schema:
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
      responses:
        '200':
          description: 'Success '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contract'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/process/{id}/instantiation:
    post:
      tags:
      - Process
      summary: Instanciate the process
      description: 'Instanciate the process with the provided contract values.

        '
      operationId: instanciateProcess
      parameters:
      - name: id
        description: ID of the process to instanciate
        in: path
        required: true
        schema:
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
            example:
              ticket_account: CustomerA
              ticket_description: issue description
              ticket_subject: Issue 1
        description: A JSON object matching process contract.
        required: true
      responses:
        '201':
          description: Return the created process instance ID
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProcessInstantiationResponse'
        '400':
          description: Bad request.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/Error'
              example:
                message: 'USERNAME=walter.bates | Contract is not valid: '
                exception: class org.bonitasoft.engine.bpm.contract.ContractViolationException
                explanations:
                - Expected input [ticket_account] is missing
                - Expected input [ticket_description] is missing
                - Expected input [ticket_subject] is missing
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          description: Case creation limit reached (Community 2024.3+ only)
          headers:
            Retry-After:
              schema:
                type: string
                format: date-time
              description: Date when case counter will be refilled
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: number
                    description: The response status code
                  description:
                    type: string
                    description: The status description
                  reasonPhrase:
                    type: string
                    description: The detail of the reason
              example:
                code: 429
                description: Unable to start the process with ID 5524355418393634511
                reasonPhrase: Case creation limit reached.
        5XX:
          $ref: '#/components/responses/ServerError'
      x-codegen-request-body-name: body
  /API/bpm/processName:
    get:
      tags:
      - Process
      summary: Search process names
      description: "Searches process deployment information grouped by `(name, displayName)`, returning one entry per\ndistinct name and display name, each carrying the list of its deployed versions.\n\n- can order on `displayName` or `name` (default is `displayName ASC`). A single sort clause is\n  applied: a compound order such as `displayName ASC, name DESC` is rejected with a `400`.\n- can search (`s`) on `name` or `displayName`. The term selects which groups are returned; a\n  returned group always lists all of its versions allowed by the `activationState` filter.\n- can filter on `activationState` with the value `ENABLED` or `DISABLED`. An unknown value is\n  rejected with a `400`; other filter keys are ignored.\n\nThe `Content-Range` header reports the total number of groups, not the number of versions.\n"
      operationId: searchProcessNames
      parameters:
      - $ref: '#/components/parameters/pageIndex'
      - $ref: '#/components/parameters/pageCount'
      - $ref: '#/components/parameters/pageFilter'
      - $ref: '#/components/parameters/pageOrder'
      - $ref: '#/components/parameters/pageSearch'
      responses:
        '200':
          description: Successful operation
          headers:
            Content-Range:
              schema:
                type: integer
                format: int64
              description: The total number of matching groups
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ProcessName'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/processConnector/{id}/{connectorImplId}/{connectorImplVersion}:
    put:
      tags:
      - Process
      summary: Update the Process Connector by Process ID
      deprecated: true
      description: '![edition](https://img.shields.io/badge/edition-entreprise-blue)


        Update the ProcessConnector for the given ID


        Warning: as of 9.0.0, updating a Process Connector using this API is deprecated.

        '
      operationId: updateProcessConnectorByProcessId
      parameters:
      - description: ID of the process to update
        in: path
        name: id
        required: true
        schema:
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
      - description: ID of the Process Connector implementation to update
        in: path
        name: connectorImplId
        required: true
        schema:
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
      - description: Version of the Process Connector implementation to update
        in: path
        name: connectorImplVersion
        required: true
        schema:
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateProcessConnectorByProcessIdRequest'
        description: Partial ProcessConnector description
        required: true
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        5XX:
          $ref: '#/components/responses/ServerError'
  /portal/processUpload:
    post:
      tags:
      - Process
      deprecated: true
      summary: Upload a bar file
      description: 'Upload a bar file


        Warning: as of 9.0.0, uploading a bar file using the portal is deprecated.

        '
      operationId: uploadProcess
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FileUploadRequest'
      responses:
        '200':
          description: the temporary file name once uploaded on the server
          content:
            text/plain:
              schema:
                type: string
                maxLength: 250
                pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
                example: tmp_11199343585454336281.bar
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
components:
  schemas:
    ContractConstraint:
      type: object
      properties:
        name:
          description: constraint name
          type: string
        expression:
          description: constraint expression
          type: string
        explanation:
          description: constraint explanation
          type: string
        inputNames:
          type: array
          items:
            type: string
    ProcessDefinition:
      type: object
      description: ''
      properties:
        id:
          description: the identifier of the process definition (long)
          type: string
        icon:
          description: icon path
          type: string
        displayDescription:
          description: the human readable activity description
          type: string
        deploymentDate:
          description: the date when the process definition was deployed
          type: string
        description:
          description: the process description
          type: string
        activationState:
          $ref: '#/components/schemas/ActivationState'
        name:
          description: the process name
          type: string
        deployedBy:
          description: the id of the user who deployed the process
          type: string
        displayName:
          description: the human readable process description
          type: string
        actorinitiatorid:
          description: the id of the actor that can initiate process instances of the process
          type: string
        last_update_date:
          description: the date when the process definition was last updated
          type: string
        configurationState:
          $ref: '#/components/schemas/ConfigurationState'
        version:
          description: the version of the process
          type: string
    ContractInput:
      type: object
      properties:
        description:
          description: input description
          type: string
        name:
          description: input name
          type: string
        multiple:
          description: true if input contains multiple values
          type: string
        type:
          $ref: '#/components/schemas/ContractInputType'
        inputs:
          type: array
          items:
            $ref: '#/components/schemas/ContractInput'
    ContractInputType:
      type: string
      description: the contract input type (string)
      enum:
      - TEXT
      - BOOLEAN
      - DATE
      - INTEGER
      - DECIMAL
      - BYTE_ARRAY
      - FILE
      - LONG
      - LOCALDATE
      - LOCALDATETIME
      - OFFSETDATETIME
    ProcessName:
      type: object
      description: 'A group of deployed processes that share the same `(name, displayName)` pair, with the list of

        their deployed versions. Returned by `GET /API/bpm/processName`, which collapses the process

        deployment information into one entry per distinct name and display name.

        '
      required:
      - name
      - displayName
      - versions
      properties:
        name:
          description: Technical name shared by every version in this group.
          type: string
        displayName:
          description: Human-readable name shared by every version in this group. Defaults to the process technical name when no display name was set at deployment.
          type: string
        versions:
          description: 'Deployed versions of the process sharing this name and display name. When an `activationState`

            filter is supplied, only the versions in that state are listed. Always contains at least one entry.

            '
          type: array
          minItems: 1
          items:
            type: string
      example:
        name: InvoiceApproval
        displayName: Invoice Approval
        versions:
        - '1.0'
        - '1.1'
        - '2.0'
    ActivationState:
      description: the state of the process definition (ENABLED or DISABLED)
      type: string
      enum:
      - ENABLED
      - DISABLED
    ProcessUpdateRequest:
      type: object
      properties:
        displaydescription:
          description: description of the Process
          type: string
        displayName:
          description: display name of the Process
          type: string
        activationState:
          $ref: '#/components/schemas/ActivationState'
      example:
        displayName: Leave booking process
    UpdateProcessConnectorByProcessIdRequest:
      type: object
      properties:
        id:
          description: Id of the process for which to update the connector, combined with connector name and version separated by slashes (x/y/z)
          type: string
        implementation:
          description: Previously uploaded temp file name of the updated version of the connector (returned by the  [upload file api](#operation/uploadFile))
          type: string
      example:
        id: 8491796209115952722/scripting-groovy-script/1.0.1
        implementation: tmp_7006630415905915150.zip
    ConfigurationState:
      description: the configuration state of the process (UNRESOLVED or RESOLVED)
      type: string
      enum:
      - RESOLVED
      - UNRESOLVED
    FlowElementContainerDefinition:
      type: object
      description: Allows to access all flow elements (activities, gateways, events and transitions) of a process or sub-process.
      properties:
        activities:
          type: array
          items:
            type: object
            additionalProperties: true
        transitions:
          type: array
          items:
            type: object
            additionalProperties: true
        gatewaysList:
          type: array
          items:
            type: object
            additionalProperties: true
        startEvents:
          type: array
          items:
            type: object
            additionalProperties: true
        intermediateCatchEvents:
          type: array
          items:
            type: object
            additionalProperties: true
        intermediateThrowEvents:
          type: array
          items:
            type: object
            additionalProperties: true
        endEvents:
          type: array
          items:
            type: object
            additionalProperties: true
        dataDefinitions:
          type: array
          items:
            type: object
            additionalProperties: true
        documentDefinitions:
          type: array
          items:
            type: object
            additionalPropert

# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bonitasoft/refs/heads/main/openapi/bonitasoft-process-api-openapi.yml