openapi: 3.0.2
info:
  license:
    name: GPL-v2.0
    url: http://www.gnu.org/licenses/gpl-2.0.txt
  version: 0.0.21
  title: Bonita API
  description: |
    <p> 
    <a download="openapi.yaml" href="./openapi.yaml" target="_blank" class="btn-download">Download OpenAPI specification</a>
    <a download="postman.json" href="./postman.json" target="_blank" class="btn-download">Download Postman collection</a>
    </p>

    <hr>

    The REST API lets you access the data with HTTP requests; it is useful when implementing rich web forms / pages for a good user experience.

    An 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).

    If 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
    access to all Bonita objects (like processes, tasks, users, connectors etc.), to execute operations on them (create, retrieve, update, delete).
    You can use these operations to create a workflow with Bonita and integrate it into your application. The Bonita Engine remains responsible for executing
    the workflow logic (connectors, gateways with conditions, messages, timers etc.) while your application gives access to the workflow.
    Users can manage processes and tasks, and perform administrative activities.

    ### API Extensions

    You can create [Rest API Extensions](https://documentation.bonitasoft.com/bonita/latest/api/rest-api-extensions) to extend the Rest API by adding missing resources (not provided by the Rest API).
    It 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).

    ### Create a resource

    | Request URL | `http://.../API/{API_name}/{resource_name}/  `|
    |:-|:-|
    | Request Method | POST|
    | Request Payload | an item in JSON|
    | Response | the same item in JSON, containing the values provided in the posted item, completed with default values and identifiers provided by Bonita Engine.|

    ### Read a resource

    | Request URL | `http://.../API/{API_name}/{resource_name}/{id} `|
    |:-|:-|
    | Request Method | GET|
    | Response | an item in JSON|

    Example `http://.../API/identity/user/5 `

    #### Extend resource response

    On 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.
    This means that instead of retrieving the ID or a parent or referenced resource, you can retrieve the full object.

    For 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.
    The supported deploy values for a task include its process (d=processId).

    Specifiy 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`

    #### With compound identifier

    The order of the identifier parts for each resource type is given in the table above.

    | Request URL | `http://.../API/{API_name}/{resource_name}/{id_part1}/{id_part2} `|
    |:-|:-|
    | Request Method | GET|
    | Response | an item in JSON|

    Example `http://.../API/identity/membership/5/12/24 `

    ### Update a resource

    | Request URL | `http://.../API/{API_name}/{resource_name}/{id} `|
    |:-|:-|
    | Request Method | PUT|
    | Request Payload | a map in JSON containing the new values for the attributes you want to change.|
    | Response | the corresponding item in JSON with new values where you requested a modification|

    Example `http://.../API/identity/user/5`

    #### With compound identifier:

    Response: the corresponding item in JSON with new values where you requested a modification.

    | Request URL | `http://.../API/{API_name}/{resource_name}/{id_part1}/{id_part2} `|
    |:-|:-|
    | Request Method | PUT|
    | Request Payload | ` a map in JSON containing the new values for the attributes you want to change `|
    | Response | ` the corresponding item in JSON with new values where you requested a modification`|

    Example
    `http://.../API/identity/membership/5/12/24 `

    ### Delete resources

    Use the DELETE request to remove multiple resources.

    | Request URL | `http://.../API/{API_name}/{resource_name}/ `|
    |:-|:-|
    | Request Method | DELETE|
    | Request Payload | A list of identifiers in JSON, for example `["id1","id2","id3"]`. Compound identifiers are separated by '/' characters.|
    | Response | `empty `|

    Example
    `http://.../API/identity/membership/ `

    ### Search for a resource

    The required object is specified with a set of filters in the request URL. The URL parameters must be URL-encoded.

    Results 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.
    If you are searching for business data using a custom query, there must be a [count query in the BDM](https://documentation.bonitasoft.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).
    For business data default queries, the count query is defined automatically.

    The available filters are the attributes of the item plus some specific filters defined by each item.

    | Request URL | `http://.../API/{API_name}/{resource_name}?p={page}&c={count}&o={order}&s={query}&f={filter_name}={filter_value}&f=... `|
    |:-|:-|
    | Request Method | GET|
    | Response | an array of items in JSON|

    Example
    `/API/identity/user?p=0&c=10&o=firstname&s=test&f=manager_id=3`

    For a GET method that retrieves more than one instance of a resource, you can specify the following request parameters:

    * p (Mandatory): index of the page to display
    * c (Mandatory): maximum number of elements to retrieve
    * 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.
    * 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.
      The attributes you can filter on are specific to the resource.
    * s: search on name or search indexes. Before Bonita 2024.1, the matching policy depended on the configuration of [word-based search](https://documentation.bonitasoft.com/bonita/2023.2/api/using-list-and-search-methods#word_based_search).
      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,
      such as "Valid address", "Not a valid address", and "Validated request" but not "Invalid request".
      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".
      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.

    ### Errors

    The API uses standard HTTP status codes to indicate the success or failure of the API call.

    If you get a `401` response code :
      - make sure that the cookies have been transfered with the call
      - make sure that the cookies transfered are the ones generated during the last sucessfull login call
      - if one of the PUT, DELETE or POST method is used, make sure that the `X-Bonita-API-Token` header is included
      - 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
      - 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.
  x-logo:
    url: images/bonitasoft-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: []
tags:
  - name: Activity
    x-displayName: Activity
    description: Activity
  - name: ActivityVariable
    x-displayName: ActivityVariable
    description: ActivityVariable
  - name: ArchivedActivityVariable
    x-displayName: ArchivedActivityVariable
    description: ArchivedActivityVariable
  - name: Actor
    x-displayName: Actor
    description: Actor
  - name: ActorMember
    x-displayName: ActorMember
    description: ActorMember
  - name: Application
    x-displayName: Application
    description: Manage applications. This enables you to build a consistent functional applicative environment for users to interact with business processes and business data from one place.
  - name: ApplicationMenu
    x-displayName: ApplicationMenu
    description: |
      Manage the set of menus in an application. This set of menus enables a user to navigate to the application pages.

      There are two types of menu item:

      A top-level item appears in the navigation bar of the application. A top-level item can be clickable, leading to a page, or can be a parent for a menu of clickable items.
      A child menu item becomes visible in a menu when the parent is selected. A child menu item is clickable and leads to a page.
      Each menu item has an index that defines the position in the menu. For a top-level menu item, this is the position in the the navigation bar counting from the left. For a child menu item, this is the position in the menu counting from the top.
  - name: ApplicationPage
    x-displayName: ApplicationPage
    description: |
      An application page is a custom page that has been associated with an application. Use this resource to manage application pages and define the paths used to access them. This list of pages will be used to build the application menus.
  - name: ArchivedActivity
    x-displayName: ArchivedActivity
    description: ArchivedActivity
  - name: ArchivedProcessInstance
    x-displayName: ArchivedProcessInstance
    description: ArchivedProcessInstance
  - name: ArchivedProcessInstanceComment
    x-displayName: ArchivedProcessInstanceComment
    description: ArchivedProcessInstanceComment
  - name: ArchivedProcessInstanceDocument
    x-displayName: ArchivedProcessInstanceDocument
    description: ArchivedProcessInstanceDocument
  - name: ArchivedConnectorInstance
    x-displayName: ArchivedConnectorInstance
    description: ArchivedConnectorInstance
  - name: ArchivedFlowNode
    x-displayName: ArchivedFlowNode
    description: ArchivedFlowNode
  - name: ArchivedHumanTask
    x-displayName: ArchivedHumanTask
    description: ArchivedHumanTask
  - name: ArchivedManualTask
    x-displayName: ArchivedManualTask
    description: ArchivedManualTask
  - name: ArchivedTask
    x-displayName: ArchivedTask
    description: ArchivedTask
  - name: ArchivedUserTask
    x-displayName: ArchivedUserTask
    description: ArchivedUserTask
  - name: PortalAuthentication
    x-displayName: Portal Authentication
    description: Portal Authentication
  - name: PlatformAuthentication
    x-displayName: Platform Authentication
    description: Platform Authentication
  - name: BDM
    x-displayName: Business Data Model
    description: |
      Show status or install or update the Business Data Model.

      Installing or updating a BDM on your tenant needs to be done in two successive steps:

      1. Upload a BDM file
      2. Install/Update the previously uploaded file

      **To do this, your tenant services need to be paused.**

      **In Enterprise editions, if you have an access control file installed on your tenant, you need to delete it before installing or updating your BDM.**
  - name: BDMAccessControl
    x-displayName: BDMAccessControl
    description: BDM Access control is available to protect the tenant BDM. You can use this API to get the access control status (lastUpdatedBy, lastUpdateDate...).
  - name: BusinessDataQuery
    x-displayName: BusinessDataQuery
    description: BDM Rest APIs allow to query Bonita Business Data.
  - name: BPM
    x-displayName: BPM
    description: Easily retrieve human or service tasks, call activities, and subprocesses with BPM APIs. Perform maintenance tasks.
  - name: ProcessInstance
    x-displayName: ProcessInstance
    description: ProcessInstance
  - name: ProcessInstanceComment
    x-displayName: ProcessInstanceComment
    description: ProcessInstanceComment
  - name: ProcessInstanceDocument
    x-displayName: ProcessInstanceDocument
    description: ProcessInstanceDocument
  - name: ProcessInstanceInfo
    x-displayName: ProcessInstanceInfo
    description: ProcessInstanceInfo
  - name: ProcessInstanceVariable
    x-displayName: ProcessInstanceVariable
    description: ProcessInstanceVariable
  - name: ArchivedProcessInstanceVariable
    x-displayName: ArchivedProcessInstanceVariable
    description: ArchivedProcessInstanceVariable
  - name: ConnectorFailure
    x-displayName: ConnectorFailure
    description: ConnectorFailure
  - name: ConnectorInstance
    x-displayName: ConnectorInstance
    description: ConnectorInstance
  - name: CustomUser
    x-displayName: CustomUser
    description: CustomUser
  - name: CustomUserDefinition
    x-displayName: CustomUserDefinition
    description: CustomUserDefinition
  - name: CustomUserValue
    x-displayName: CustomUserValue
    description: CustomUserValue
  - name: Diagram
    x-displayName: Diagram
    description: Diagram
  - name: ProcessInfo
    x-displayName: ProcessInfo
    description: ProcessInfo
  - name: FlowNode
    x-displayName: FlowNode
    description: FlowNode
  - name: FormMappingBDM
    x-displayName: FormMappingBDM
    description: FormMappingBDM
  - name: Group
    x-displayName: Group
    description: The group a user belongs to. Groups have a hierarchy (subgroups can be created inside a group).
  - name: HumanTask
    x-displayName: HumanTask
    description: HumanTask
  - name: I18nlocale
    x-displayName: I18nlocale
    description: I18nlocale
  - name: I18ntranslation
    x-displayName: I18nTranslation
    description: I18nTranslation
  - name: Information
    x-displayName: Information
    description: |
      Handle the platform information.
      This Web REST API is available since version 10.2 (2024.3). Most of the information returned is only for Subscription editions.
  - name: License
    x-displayName: License
    description: |
      Handle the license information. This requires a platform session. Log in using the platform login service.
      This Web REST API is available in **Enterprise editions only**, since version 7.11.
  - name: ManualTask
    x-displayName: ManualTask
    description: ManualTask
  - name: Membership
    x-displayName: Membership
    description: Manage membership of users. There is a membership when a user belongs to a group and a role. Use this resource to add, search, and delete memberships.
  - name: Message
    x-displayName: Message
    description: Message
  - name: Page
    x-displayName: Page
    description: Use the page resource to access custom pages, UI Designer pages, layouts or forms and REST API extensions.
  - name: Platform
    x-displayName: Platform
    description: The Platform API resources require a platform session. In order to get one, log in as the platform administrator using the platform login service.
  - name: PlatformTenant
    x-displayName: PlatformTenant
    description: PlatformTenant
  - 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).
  - name: ProcessConnectorDependency
    x-displayName: ProcessConnectorDependency
    description: ProcessConnectorDependency
  - name: ProcessParameter
    x-displayName: ProcessParameter
    description: ProcessParameter
  - name: ProcessResolutionProblem
    x-displayName: ProcessResolutionProblem
    description: ProcessResolutionProblem
  - name: ProcessSupervisor
    x-displayName: ProcessSupervisor
    description: ProcessSupervisor
  - name: ProfessionalContactData
    x-displayName: ProfessionalContactData
    description: ProfessionalContactData
  - name: Profile
    x-displayName: Profile
    description: Profile
  - name: ProfileEntry
    x-displayName: ProfileEntry
    description: ProfileEntry
  - name: ProfileMember
    x-displayName: ProfileMember
    description: ProfileMember
  - name: Role
    x-displayName: Role
    description: Role
  - name: Session
    x-displayName: Session
    description: Session
  - name: SystemTenant
    x-displayName: SystemTenant
    description: SystemTenant
  - name: Task
    x-displayName: Task
    description: Task
  - name: Tenant
    x-displayName: Tenant
    description: Handle the tenants (**Enterprise editions only**). This requires a platform session. Log in using the platform login service.
  - name: Theme
    x-displayName: Theme
    description: Theme
  - name: TimerEventTrigger
    x-displayName: TimerEventTrigger
    description: TimerEventTrigger
  - name: User
    x-displayName: User
    description: User
  - name: UserTask
    x-displayName: UserTask
    description: UserTask
  - name: RestAPIextensions
    x-displayName: API extensions
    description: |
      Create REST API extensions to use third party systems (databases, web services, Bonita Engine, etc) data in forms and pages.

      REST API extensions can be used to query business data, Bonita Engine APIs, or an external information system (such as a database, web service, LDAP directory...). They also help to keep a clean separation between the front-end (forms, pages, and interfaces visible to users) and the back-end (processes).
    externalDocs:
      url: https://documentation.bonitasoft.com/bonita/latest/rest-api-extensions
  - name: FormFileUpload
    x-displayName: Form file upload
    description: Supports any type of files, used to upload a file before submitting a process or task form with a document in its contract.
paths:
  /loginservice:
    post:
      tags:
        - Authentication
        - PortalAuthentication
      operationId: login
      security: []
      summary: Login
      description: |
        A call to the `/loginservice` will generates a set-cookie header in the response.

        The `JSESSIONID` cookie must be transfered with each subsequent calls. (If the REST API is used in an application running in a web browser, this is handled automatically by the web browser just like any cookies).

        Additional protection agains CSRF attacks is enabled by default for all fresh installations This security relies on `X-Bonita-API-Token` information.
        The `X-Bonita-API-Token` value can be found in the cookie named: `X-Bonita-API-Token`.

        All the subsequence REST API calls performing changes in the system using DELETE, POST, or PUT HTTP methods must contain the **HTTP header** below:

        ``` X-Bonita-API-Token: example-dummy-not-be-used-value ```
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/LoginRequest'
      x-codeSamples:
        - lang: Shell
          label: Curl
          source: |
            # Generate cookie file
            curl -v -c saved_cookies.txt \
            --url 'http://localhost:8080/bonita/loginservice' \
            --header 'Content-Type: application/x-www-form-urlencoded'
              --data-urlencode 'username=install' \
              --data-urlencode 'password=install' \
              --data-urlencode 'redirect=false' \
              --data-urlencode 'redirectURL='
              
              # Reuse the cookie file and set the `X-Bonita-API-Token` header
              curl -b saved_cookies.txt -X GET \
            -- header 'X-Bonita-API-Token: <token>' \
            --url 'http://localhost:8080/bonita/API/bpm/process?c=100&p=0'
      responses:
        '204':
          description: Login success
          headers:
            Set-Cookie:
              description: Session cookie
              schema:
                type: string
                example: JSESSIONID=C5385BFEE2969D9E46F0160C1952B0F1; Path=/bonita; HttpOnly; SameSite=Lax
            X-Bonita-API-Token:
              description: X-Bonita-API-Token - CSRF token (also present in the cookie response)
              schema:
                type: string
              example: ed27cbeb-9953-4d77-b5a2-1f62a6c2e0bb
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /logoutservice:
    get:
      tags:
        - Authentication
        - PortalAuthentication
      summary: Logout the current user
      description: |
        Logout the current user from the system
      operationId: logout
      parameters:
        - description: Setting the redirect parameter to false indicates that the service should not redirect to the login page after logging out.
          explode: true
          in: query
          name: redirect
          required: false
          schema:
            type: string
            maxLength: 5
            pattern: ^(?:tru|fals)e$
          style: form
          example:
            redirect: 'false'
            redirectURL: null
      x-codeSamples:
        - lang: Shell
          label: Curl
          source: |
            curl -b saved_cookies.txt -X GET --url 'http://localhost:8080/bonita/logoutservice?redirect=false'
      responses:
        '200':
          description: 'Success '
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/living/application:
    get:
      tags:
        - Application
      summary: Finds living applications
      description: |
        Finds living applications with pagination params and filters

        - can order on `id`,`creationDate`, `createdBy`, `profileId`, `token`, `displayName`, `updatedBy`, `lastUpdateDate`, `version`, `link`
        - can search on `token`, `displayName`, `version`, `link`
        - can filter on `token`, `displayName`, `version`, `link`, `profileId`, `creationDate`, `createdBy`, `updatedBy` , `lastUpdateDate`, `userId`
      operationId: searchApplications
      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/Application'
              example:
                - id: '306'
                  link: 'true'
                  creationDate: '1411548289900'
                  icon: ''
                  createdBy": '1'
                  profileId: '2'
                  description: My application link description
                  token: myadvapp
                  state: ACTIVATED
                  displayName: My app link
                  updatedBy: '1'
                  visibility: ALL
                  editable: 'true'
                  lastUpdateDate: '1411548289900'
                  version: '1.0'
                - id: '305'
                  link: 'false'
                  creationDate: '1411548289900'
                  icon: ''
                  createdBy": '1'
                  profileId: '2'
                  description: My application description
                  token: myapp
                  state: DEACTIVATED
                  displayName: My app
                  updatedBy: '1'
                  visibility: ALL
                  editable: 'true'
                  lastUpdateDate: '1411548289900'
                  version: '1.0'
                  homePageId: '26'
                  themeId: '1'
                  layoutId: '3'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
    post:
      tags:
        - Application
      summary: Create a living application
      deprecated: true
      description: |
        Create a living application (legacy application or application link).

        Warning: as of 9.0.0, creating a living application using this API is deprecated.
      operationId: createApplication
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateApplicationRequest'
        description: Partial living application description
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
          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
  /API/living/application/{id}:
    get:
      tags:
        - Application
      summary: Finds a living application by ID
      description: |
        Returns a single application for the given ID
      operationId: getApplicationById
      parameters:
        - description: ID of application to return
          in: path
          name: id
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
          description: 'Success '
        '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:
        - Application
      summary: Delete a living application by ID
      description: |
        Delete a single application for the given ID
      operationId: deleteApplicationById
      parameters:
        - description: ID of application to delete
          in: path
          name: id
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
      responses:
        '200':
          description: 'Success '
        '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:
        - Application
      summary: Update a living application by ID
      deprecated: true
      description: |
        Update a single application for the given ID (legacy application or application link).

        Warning: as of 9.0.0, updating a living application using this API is deprecated.
      operationId: updateApplicationById
      parameters:
        - description: ID of application 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/ApplicationUpdateRequest'
        description: Partial living application description
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Application'
          description: 'Success '
        '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'
  /services/application/import:
    post:
      tags:
        - Application
      summary: Import a living application
      deprecated: true
      description: |
        Import a single application

        Warning: as of 9.0.0, importing a living application using this service is deprecated.
      operationId: importApplication
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                applicationsDataUpload:
                  type: string
                  description: Uploaded file
                importPolicy:
                  type: string
                  description: Import policy
      responses:
        '200':
          description: 'Success '
        '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'
  /portal/applicationsUpload:
    post:
      tags:
        - Application
        - Upload
      summary: Upload a living application
      deprecated: true
      description: |
        Upload application

        Warning: as of 9.0.0, uploading a living application using the portal is deprecated.
      operationId: uploadApplication
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FileUploadRequest'
      responses:
        '200':
          description: 'Success '
          content:
            text/plain:
              schema:
                type: string
                maxLength: 250
                pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
                example: tmp_application_data.xml
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/living/application-menu:
    get:
      tags:
        - ApplicationMenu
      summary: Finds application menus
      description: |
        Returns application menus with pagination params and filters

        - can order on `id`, `displayName`, `applicationId`, `applicationPageId`, `menuIndex`, `parentMenuId`
        - can search on `displayName`
        - can filter on `id`, `displayName`, `applicationId`, `applicationPageId`, `menuIndex`, `parentMenuId`
      operationId: searchApplicationMenus
      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/ApplicationMenu'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
    post:
      tags:
        - ApplicationMenu
      summary: New application menu item
      deprecated: true
      description: |
        Create an application menu item

        Warning: as of 9.0.0, creating an application menu item using this API is deprecated.
      operationId: createApplicationMenu
      requestBody:
        description: A partial representation of an application menu in JSON
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationMenuCreateRequest'
      responses:
        '200':
          description: 'Success '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationMenu'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/living/application-menu/{id}:
    get:
      tags:
        - ApplicationMenu
      summary: Finds a application menu by ID
      description: |
        Returns a single application menu for the given ID
      operationId: geApplicationMenuById
      parameters:
        - description: ID of application menu 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/ApplicationMenu'
              example:
                id: '9823'
                displayName: menuLabel
                applicationId: '1'
                applicationPageId: '5'
                menuIndex: '1'
                parentMenuId: '-1'
        '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:
        - ApplicationMenu
      summary: Delete an application menu by ID
      description: Delete a single application menu for the given ID
      operationId: deleteApplicationMenuById
      parameters:
        - description: ID of the application menu to delete
          in: path
          name: id
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
      responses:
        '200':
          description: 'Success '
        '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:
        - ApplicationMenu
      summary: Update an application menu by ID
      deprecated: true
      description: |
        Update an application menu for the given ID

        Warning: as of 9.0.0, updating an application menu item using this API is deprecated.
      operationId: updateApplicationMenuById
      parameters:
        - description: ID of the application menu 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/ApplicationMenuUpdateRequest'
        description: Partial application menu 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'
  /API/living/application-page:
    get:
      tags:
        - ApplicationPage
      summary: Finds application pages
      description: |
        Finds application pages with pagination params and filters

        - can order on `id`, `token`, `applicationId`, `pageId`
        - can search on `token`
        - can filter on `id`, `token`, `applicationId`, `pageId`
      operationId: searchApplicationPages
      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/ApplicationPage'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
    post:
      tags:
        - ApplicationPage
      summary: Create an application page
      deprecated: true
      description: |
        Create an application page

        Warning: as of 9.0.0, creating an application page using this API is deprecated.
      operationId: createApplicationPage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationPageCreateRequest'
        description: Partial application page description
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationPage'
          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
  /API/living/application-page/{id}:
    get:
      tags:
        - ApplicationPage
      summary: Finds an application page by ID
      description: |
        Returns a single application page for the given ID
      operationId: getApplicationPageById
      parameters:
        - description: ID of application page 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/ApplicationPage'
        '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:
        - ApplicationPage
      summary: Delete an application page by ID
      description: |
        Delete a single application page for the given ID
      operationId: deleteApplicationPageById
      parameters:
        - description: ID of application page 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/bdm/businessData/{businessDataType}:
    get:
      tags:
        - BusinessDataQuery
      summary: Finds Business Data
      description: |
        Finds Business Data with pagination params and filters by calling a `Named Query`.
        The business data query REST API resource is used to call a default or custom business data query. It is available from version 6.5.

        **Data parameters**:

          * businessDataType - the fully-qualified business data type name
          * q=queryName - the query name
          * p=0 - the page number
          * c=10 - the maximum number of results in the page
          * f=parameter=value - sets the parameter value according to business data query parameters defined in Bonita Studio
          For a Boolean parameter, the accepted values are `true` or `false`.

          By default, for a Date parameter can use the following formats:

          * yyyy-MM-dd
          * HH:mm:ss
          * yyyy-MM-dd HH:mm:ss
          * yyyy-MM-dd'T'HH:mm:ss
          * yyyy-MM-dd'T'HH:mm:ss.SSS
      operationId: searchBusinessData
      parameters:
        - description: Business Data Type
          in: path
          name: businessDataType
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
          example: com.company.model.Employee
        - description: Named query to use
          in: query
          name: q
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
          example: searchEmployeeByFirstNameAndLastName
        - $ref: '#/components/parameters/pageIndex'
        - $ref: '#/components/parameters/pageCount'
        - $ref: '#/components/parameters/pageFilter'
      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/AnyValue'
        '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/bdm/businessData/{businessDataType}/findByIds:
    get:
      tags:
        - BDM
      summary: Finds business data By Ids
      description: |
        Finds business data specified by their identifiers.
      operationId: searchBusinessDataByIds
      parameters:
        - description: Business Data Type
          in: path
          name: businessDataType
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
          example: com.company.model.Employee
        - description: list of persistenceIds (comma separated)
          in: query
          name: ids
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
          example: 1,3,56
      responses:
        '200':
          description: 'Success '
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BusinessData'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bdm/businessData/{businessDataType}/{persistenceId}:
    get:
      tags:
        - BDM
      summary: Finds business data by Id
      description: |
        Finds business data specified by its identifier.
      operationId: searchBusinessDataById
      parameters:
        - description: Business Data Type
          in: path
          name: businessDataType
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
          example: com.company.model.Employee
        - description: Business data ID
          in: path
          name: persistenceId
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
          example: 1
      responses:
        '200':
          description: 'Success '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessData'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bdm/businessData/{businessDataType}/{persistenceId}/{attributeName}:
    get:
      tags:
        - BDM
      summary: Finds business data attribute by id
      description: |
        Gets the business data attribute of business data according to its identifier and attribute name. Request url.
      operationId: searchBusinessDataAttributeById
      parameters:
        - description: Business Data Type
          in: path
          name: businessDataType
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
          example: com.company.model.Employee
        - description: Business data ID
          in: path
          name: persistenceId
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
          example: 1
        - description: Business data attribute name
          in: path
          name: attributeName
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
          example: company
      responses:
        '200':
          description: 'Success '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessData'
              example:
                persistenceId_string: '1'
                persistenceVersion_string: '0'
                company: The Big Company
        '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/accessControl/bdm:
    get:
      tags:
        - BDMAccessControl
      summary: BDM access control status
      description: |
        ![edition](https://img.shields.io/badge/edition-entreprise-blue)

        Get the BDM access control status.
      operationId: getBDMAccessControlStatus
      responses:
        '200':
          description: 'Success '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BDMAccessControl'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
    delete:
      tags:
        - BDMAccessControl
      summary: Delete the BDM Access Control
      description: |
        ![edition](https://img.shields.io/badge/edition-entreprise-blue)

        Delete the BDM access control
      operationId: deleteBDMAccessControl
      responses:
        '204':
          $ref: '#/components/responses/NoContent'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /portal/bdmAccessControlUpload:
    post:
      tags:
        - BDMAccessControl
        - Upload
      summary: Upload a BDM Access Control
      deprecated: true
      description: |
        ![edition](https://img.shields.io/badge/edition-entreprise-blue)

        Upload BDM Access Control

        Warning: as of 9.0.0, uploading a BDM Access Control using the portal is deprecated.
      operationId: uploadBDMAccessControl
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FileUploadRequest'
      responses:
        '200':
          description: 'Success '
          content:
            text/plain:
              schema:
                type: string
                maxLength: 250
                pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
              example: tmp_accessControlFileToUpload.xml
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /services/bdmAccessControl/install:
    post:
      tags:
        - BDMAccessControl
      summary: Import a BDM Access Control
      deprecated: true
      description: |
        ![edition](https://img.shields.io/badge/edition-entreprise-blue)

        Import a BDM Access Control

        Warning: as of 9.0.0, importing a BDM Access Control using this service is deprecated.
      operationId: importBDMAccessControl
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                bdmAccessControlUpload:
                  type: string
                  description: The temporary name of the previously uploaded file to install
            example:
              bdmAccessControlUpload: tmp_accessControlFileToUpload.xml
      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/activity:
    get:
      tags:
        - Activity
      summary: Finds Activities
      description: |
        Finds Activities with pagination params and filters. Activities in states completed, cancelled, or aborted are not retrieved. The search returns an array of activities.

        - can order on `name`, `displayName`, `state`, `processDefinitionId`, `parentProcessInstanceId`, `parentActivityInstanceId` (order by parent activity id), `rootProcessInstanceId`, `lastUpdateDate`
        - can search on `name`, `displayName`, `state`, `processDefinitionId`, `parentProcessInstanceId`, `parentActivityInstanceId` (order by parent activity id), `rootProcessInstanceId`, `lastUpdateDate`
        - can filter on `name`, `state`, `processId`, `parentProcessInstanceId`, `rootProcessInstanceId`, `last_update_date`, `supervisor_id` (only in Enterprise editions)
      operationId: searchActivities
      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/Activity'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/activity/{id}:
    get:
      tags:
        - Activity
      summary: Finds the Activity by ID
      description: |
        Returns the single Activity for the given ID
      operationId: getActivityById
      parameters:
        - description: ID of the Activity 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/Activity'
        '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:
        - Activity
      summary: Update the Activity by ID
      description: |
        Update the Activity for the given ID
      operationId: updateActivityById
      parameters:
        - description: ID of the Activity 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/ActivityUpdateRequest'
        description: Partial Activity 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'
  /API/bpm/archivedActivity:
    get:
      tags:
        - ArchivedActivity
      summary: Finds Archived Activities
      description: |
        Finds Archived  Activities with pagination params and filters. Activities in states completed, cancelled, or aborted are not retrieved. The search returns an array of activities.

        Can order on:
          - `name` : the name of this activity
          - `displayName` : the display name of this activity
          - `state` : the current state of the activity
          - `type` : the activity type
          - `isTerminal` : say whether or not the activity is in a terminal state
          - `processId` : the process this activity is associated to
          - `caseId` : the process instance initiator this activity is associated to
          - `reached_state_date` : the date when this activity arrived in this state

        Can filter on:
          - `supervisor_id`: retrieve the information the process manager associated to this id has access to (only in Enterprise editions)
          - f: same as the sort order fields
      operationId: searchArchivedActivities
      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/ArchivedActivity'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/archivedActivity/{id}:
    get:
      tags:
        - ArchivedActivity
      summary: Finds the Archived Activity by ID
      description: |
        Returns the single Archived Activity for the given ID
      operationId: getArchivedActivityById
      parameters:
        - description: ID of the Archived Activity 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/ArchivedActivity'
        '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/humanTask:
    get:
      tags:
        - HumanTask
      summary: Finds HumanTasks
      description: |
        Finds HumanTasks with pagination params and filters

        - can order on `name`, `priority`, `dueDate`, `state`, `processDefinitionId`, `processInstanceId`, `parentActivityInstanceId`, `assigneeId`, `parentContainerId`, `displayName`, `reachedStateDate`
        - can search on any field that can be used to order results
        - can filter on `assigned_id`, `user_id`, `show_assigned_to_others` (since 2022.2), `state`, `name`, `displayName`, `processDefinitionId`, `caseId`, `rootProcessInstanceId`, `parentProcessInstanceId`
      operationId: searchHumanTasks
      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/HumanTask'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/humanTask/{id}:
    get:
      tags:
        - HumanTask
      summary: Finds the HumanTask by ID
      description: |
        Returns the single HumanTask for the given ID
      operationId: getHumanTaskById
      parameters:
        - description: ID of the HumanTask 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/HumanTask'
        '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:
        - HumanTask
      summary: Update the HumanTask by ID
      description: |
        Update the HumanTask for the given ID
      operationId: updateHumanTaskById
      parameters:
        - description: ID of the HumanTask 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/HumanTaskUpdateRequest'
        description: Fields that can be updated are `assignedId` and `state`. Specify only those fields that you want to change.
        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'
  /API/bpm/manualTask:
    get:
      tags:
        - ManualTask
      summary: Finds ManualTasks
      description: |
        Finds ManualTasks with pagination params and filters

        You can filter on:

        * `assigned_id={user_id}`: retrieve only the manual tasks assigned to the specified user. For example, retrieve the manual tasks assigned to user with id 1: `/API/bpm/manualTask?p=0&c=10&f=assigned_id%3d1`.
        * `state=skipped | ready | completed | failed` : retrieve only the manual tasks with the specified state. For example, retrieve the ready tasks: `/API/bpm/manualTask?p=0&c=10&f=state%3dready`.
        * `caseId={case_id}`: retrieve only the manual tasks created in the specified process instances. For example, retrieve the manual tasks for the case\_id 2: `/API/bpm/manualTask?p=0&c=10&f=caseId%3d2`.
        * `parentTaskId={parentTask_id}`: retrieve only the manual tasks for a specific parentTask. For example, retrieve the manual tasks for the parentTask\_id 40001: `/API/bpm/manualTask?p=0&c=10&f=parentTaskId%3d40001`.

        You can search on:

        * name: search all manual tasks with a name that starts with the search string. For example, search for all manual tasks that have a name that starts with MySubTask: `/API/bpm/manualTask?p=0&c=10&s=MySubTask`.
      operationId: searchManualTasks
      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/ManualTask'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
    post:
      tags:
        - ManualTask
      summary: Create the ManualTask
      description: |
        Create the ManualTask.
        Use a POST method to create a new subtask. A subtask is attached to a parent task and it needs to be immediately assigned to a user.
      operationId: createManualTask
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManualTaskCreateRequest'
        description: Partial ManualTask description
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManualTask'
          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
  /API/bpm/manualTask/{id}:
    get:
      tags:
        - ManualTask
      summary: Finds the ManualTask by ID
      description: |
        Returns the single ManualTask for the given ID
      operationId: getManualTaskById
      parameters:
        - description: ID of the ManualTask 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/ManualTask'
        '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:
        - ManualTask
      summary: Update the ManualTask by ID
      description: |
        Update the ManualTask for the given ID.
        Use a PUT method to execute a subtask.
        Executing a subtask basically means changing its state to completed and providing an executedBy value.
      operationId: updateManualTaskById
      parameters:
        - description: ID of the ManualTask 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/ManualTaskUpdateRequest'
        description: Partial ManualTask 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'
  /API/bpm/task:
    get:
      tags:
        - Task
      summary: Finds Tasks
      description: |
        Finds Tasks with pagination params and filters

        - can order on `caseId`, `processId`, `state`, `type`, `supervisor_id`, `last_update_date`
        - can filter on `caseId`, `processId`, `state`, `type`, `supervisor_id`, `last_update_date`
      operationId: searchTasks
      parameters:
        - $ref: '#/components/parameters/pageIndex'
        - $ref: '#/components/parameters/pageCount'
        - $ref: '#/components/parameters/pageFilter'
        - $ref: '#/components/parameters/pageOrder'
      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/Task'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/task/{id}:
    get:
      tags:
        - Task
      summary: Finds the Task by ID
      description: |
        Returns the single Task for the given ID
      operationId: getTaskById
      parameters:
        - description: ID of the Task 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/Task'
        '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:
        - Task
      summary: Update the Task by ID
      description: |
        Update the Task for the given ID
      operationId: updateTaskById
      parameters:
        - description: ID of the Task 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/UpdateTaskByIdRequest'
            example:
              state: completed
        description: 'Task fields to update (forbidden fields are : `caseId`, `processId`, `name`, `executedBy`, `type`, `id`, `reached_state_date`, `last_update_date`)'
        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'
  /API/bpm/userTask:
    get:
      tags:
        - UserTask
      summary: Finds UserTasks
      description: |
        Finds UserTasks with pagination params and filters

        - can order on `id`
        - can search on `displayName`
        - can filter on `displayName`
      operationId: searchUserTasks
      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/UserTask'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/userTask/{id}:
    get:
      tags:
        - UserTask
      summary: Finds the UserTask by ID
      description: |
        Returns the single UserTask for the given ID
      operationId: getUserTaskById
      parameters:
        - description: ID of the UserTask 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/UserTask'
        '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:
        - UserTask
      summary: Update the UserTask by ID
      description: |
        Update the UserTask for the given ID.

        Fields that can be updated are `assigned_id` and `state`. The only value that can be set for the state is `skipped`. You only need to specify the fields that are to be updated.
      operationId: updateUserTaskById
      parameters:
        - description: ID of the UserTask 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/UserTaskUpdateRequest'
        description: Partial UserTask 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'
  /API/bpm/userTask/{id}/contract:
    get:
      tags:
        - UserTask
      summary: Finds the Contract by UserTask ID
      description: |
        Returns the Contract for the given UserTask ID
      operationId: getContractByUserTaskId
      parameters:
        - description: ID of the UserTask that has the Contract 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/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/userTask/{id}/execution:
    post:
      tags:
        - UserTask
      summary: Execute the UserTask
      description: |
        Execute the UserTask. In order to execute a task, the task contract values have to be provided.
      operationId: executeUserTask
      parameters:
        - name: id
          description: ID of the UserTask to execute
          in: path
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        - name: assign
          description: if true, assign the task to the current user and execute the task
          in: query
          schema:
            type: boolean
          required: false
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
            example:
              ticket_comment: this is a comment
        description: A JSON object matching task contract. Execute a task providing correct contract values.
        required: true
      responses:
        '204':
          $ref: '#/components/responses/NoContent'
        '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
  /API/bpm/userTask/{id}/context:
    get:
      tags:
        - UserTask
      summary: Finds the Context by UserTask ID
      description: |
        Returns the Context for the given UserTask ID
      operationId: getContextByUserTaskId
      parameters:
        - description: ID of the UserTask that has the Context 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:
                type: object
                additionalProperties: true
              example:
                myBusinessData_ref:
                  name: myBusinessData
                  type: com.company.model.BusinessObject1
                  link: API/bdm/businessData/com.company.model.BusinessObject1/2
                  storageId: 2
                  storageId_string: '2'
                myDocument_ref:
                  id: 1
                  processInstanceId: 3
                  name: myDocument
                  author: 104
                  creationDate: 1434723950847
                  fileName: TestCommunity-1.0.bos
                  contentMimeType: null
                  contentStorageId: '1'
                  url: documentDownload?fileName=TestCommunity-1.0.bos&contentStorageId=1
                  description: ''
                  version: '1'
                  index: -1
                  contentFileName: TestCommunity-1.0.bos
        '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/archivedHumanTask:
    get:
      tags:
        - ArchivedHumanTask
      summary: Finds ArchivedHumanTasks
      description: |
        Finds ArchivedHumanTasks with pagination params and filters

        You can filter on:

        * `assigned_id={user_id}`: retrieve only the human tasks assigned to the specified ID. For example, retrieve the human tasks assigned to user with id 2: `/API/bpm/archivedHumanTask?p=0&c=10&f=assigned_id%3d2`
        * `state=`: retrieve only the archived user tasks with the specified state. For example, retrieve the skipped tasks: `/API/bpm/archivedHumanTask?p=0&c=10&f=state=skipped`
        * `name=`: retrieve only the human tasks with the specified name. For example, retrieve the human tasks with the name "Analyse ProcessInstance": `/API/bpm/archivedHumanTask?p=0&c=10&f=name=Analyse ProcessInstance`
        * `displayName=`: retrieve only the archived user tasks with the specified displayName. For example, retrieve the human tasks with the displayName "Analyse ProcessInstance": `/API/bpm/archivedHumanTask?p=0&c=10&f=displayName=Analyse ProcessInstance`
      operationId: searchArchivedHumanTasks
      parameters:
        - $ref: '#/components/parameters/pageIndex'
        - $ref: '#/components/parameters/pageCount'
        - $ref: '#/components/parameters/pageFilter'
        - $ref: '#/components/parameters/pageOrder'
      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/ArchivedHumanTask'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/archivedHumanTask/{id}:
    get:
      tags:
        - ArchivedHumanTask
      summary: Finds the ArchivedHumanTask by ID
      description: |
        Returns the single ArchivedHumanTask for the given ID
      operationId: getArchivedHumanTaskById
      parameters:
        - description: ID of the ArchivedHumanTask 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/ArchivedHumanTask'
        '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/archivedManualTask:
    get:
      tags:
        - ArchivedManualTask
      summary: Finds ArchivedManualTasks
      description: |
        Finds ArchivedManualTasks with pagination params and filters

        You can filter on:

        * `assigned_id={user_id}`: retrieve only the human tasks assigned to the specified ID. For example, retrieve the human tasks assigned to user with id 2: `/API/bpm/archivedHumanTask?p=0&c=10&f=assigned_id%3d2`
        * `state=`: retrieve only the archived user tasks with the specified state. For example, retrieve the skipped tasks: `/API/bpm/archivedHumanTask?p=0&c=10&f=state=skipped`
        * `name=`: retrieve only the human tasks with the specified name. For example, retrieve the human tasks with the name "Analyse ProcessInstance": `/API/bpm/archivedHumanTask?p=0&c=10&f=name=Analyse ProcessInstance`
        * `displayName=`: retrieve only the archived user tasks with the specified displayName. For example, retrieve the human tasks with the displayName "Analyse ProcessInstance": `/API/bpm/archivedHumanTask?p=0&c=10&f=displayName=Analyse ProcessInstance`
      operationId: searchArchivedManualTasks
      parameters:
        - $ref: '#/components/parameters/pageIndex'
        - $ref: '#/components/parameters/pageCount'
        - $ref: '#/components/parameters/pageFilter'
        - $ref: '#/components/parameters/pageOrder'
      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/ArchivedManualTask'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/archivedManualTask/{id}:
    get:
      tags:
        - ArchivedManualTask
      summary: Finds the ArchivedManualTask by ID
      description: |
        Returns the single ArchivedManualTask for the given ID
      operationId: getArchivedManualTaskById
      parameters:
        - description: ID of the ArchivedManualTask 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/ArchivedManualTask'
        '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/archivedUserTask:
    get:
      tags:
        - ArchivedUserTask
      summary: Finds ArchivedUserTasks
      description: |
        Finds ArchivedUserTasks with pagination params and filters.
        An ArchivedUserTask is an executable task that has been performed by a user or skipped and is archived.

        You can filter on:

        * `assigned_id={user_id}`: retrieve only the user tasks assigned to the specified ID. For example, retrieve the user tasks assigned to user with id 2: `/API/bpm/archivedUserTask?p=0&c=10&f=assigned_id%3d2`
        * `state=`: retrieve only the archived user tasks with the specified state. For example, retrieve the skipped tasks: `/API/bpm/archivedUserTask?p=0&c=10&f=state=skipped`
        * `name=`: retrieve only the user tasks with the specified name. For example, retrieve the user tasks with the name "Analyse ProcessInstance": `/API/bpm/archivedUserTask?p=0&c=10&f=name=Analyse ProcessInstance`
        * `displayName=`: retrieve only the archived user tasks with the specified displayName. For example, retrieve the user tasks with the displayName "Analyse ProcessInstance": `/API/bpm/archivedUserTask?p=0&c=10&f=displayName=Analyse ProcessInstance`
      operationId: searchArchivedUserTasks
      parameters:
        - $ref: '#/components/parameters/pageIndex'
        - $ref: '#/components/parameters/pageCount'
        - $ref: '#/components/parameters/pageFilter'
        - $ref: '#/components/parameters/pageOrder'
      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/ArchivedUserTask'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/archivedUserTask/{id}:
    get:
      tags:
        - ArchivedUserTask
      summary: Finds the ArchivedUserTask by ID
      description: |
        Returns the single ArchivedUserTask for the given ID
      operationId: getArchivedUserTaskById
      parameters:
        - description: ID of the ArchivedUserTask 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/ArchivedUserTask'
        '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/archivedTask:
    get:
      tags:
        - ArchivedTask
      summary: Finds ArchivedTasks
      description: |
        Finds ArchivedTasks with pagination params and filters

        - Can order on `caseId`, `name`, `displayName`, `processId`, `state`, `type`, `archivedDate`, `reached_state_date`, `assigned_id`
        - Can filter on `caseId`, `name`, `displayName`, `processId`, `state`, `type`, `archivedDate`, `reached_state_date`, `assigned_id`, `isTerminal`
      operationId: searchArchivedTasks
      parameters:
        - $ref: '#/components/parameters/pageIndex'
        - $ref: '#/components/parameters/pageCount'
        - $ref: '#/components/parameters/pageFilter'
        - $ref: '#/components/parameters/pageOrder'
      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/ArchivedTask'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/archivedTask/{id}:
    get:
      tags:
        - ArchivedTask
      summary: Finds the ArchivedTask by ID
      description: |
        Returns the single ArchivedTask for the given ID
      operationId: getArchivedTaskById
      parameters:
        - description: ID of the ArchivedTask 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/ArchivedTask'
        '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/activityVariable/{id}/{variableName}:
    get:
      tags:
        - ActivityVariable
      summary: Finds the ActivityVariable by ID
      description: |
        Returns the single ActivityVariable for the given ID
      operationId: getActivityVariableById
      parameters:
        - description: The identifier of the activity from which to retrieve the variable
          in: path
          name: id
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        - description: The name of the variable to retrieve
          in: path
          name: variableName
          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/ActivityVariable'
        '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/archivedActivityVariable/{id}/{variableName}:
    get:
      tags:
        - ArchivedActivityVariable
      summary: Finds the ArchivedActivityVariable by case ID and name
      description: |
        Since 2022.1

        Returns the single ArchivedActivityVariable for the given activity ID and variable name
      operationId: getArchivedActivityInstanceVariable
      parameters:
        - description: The identifier of the activity from which to retrieve the variable
          in: path
          name: id
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        - description: The name of the variable to retrieve
          in: path
          name: variableName
          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/ArchivedActivityVariable'
        '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/caseVariable:
    get:
      tags:
        - ProcessInstanceVariable
      summary: Finds ProcessInstance Variables
      description: |
        Finds ProcessInstance Variables with pagination params and filters
      operationId: searchProcessInstanceVariables
      parameters:
        - $ref: '#/components/parameters/pageIndex'
        - $ref: '#/components/parameters/pageCount'
        - $ref: '#/components/parameters/pageFilter'
        - $ref: '#/components/parameters/pageOrder'
      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/ProcessInstanceVariable'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/archivedCaseVariable:
    get:
      tags:
        - ArchivedProcessInstanceVariable
      summary: Finds ArchivedProcessInstance Variables
      description: |
        Since 2022.1

        Finds ArchivedProcessInstance Variables with pagination params and filters
      operationId: getArchivedProcessInstanceVariables
      parameters:
        - $ref: '#/components/parameters/pageIndex'
        - $ref: '#/components/parameters/pageCount'
        - description: 'Filter for the case id before it was archived (eg: case_id=10001 )'
          explode: true
          in: query
          name: f
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9%\_\-\.]{0,250}$
          style: form
          example: case_id%3d1001
      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/ArchivedProcessInstanceVariable'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/caseVariable/{id}/{variableName}:
    get:
      tags:
        - ProcessInstanceVariable
      summary: Finds the Variable by ProcessInstance ID
      description: |
        Returns the single Variable for the given ProcessInstance ID
      operationId: getVariableByProcessInstanceId
      parameters:
        - description: The identifier of the process instance from which to retrieve the variable
          in: path
          name: id
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        - description: The name of the variable to retrieve
          in: path
          name: variableName
          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/ProcessInstanceVariable'
        '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:
        - ProcessInstanceVariable
      summary: Update a Variable by ProcessInstance ID
      description: |
        Update the variable for the given ProcessInstance ID.

        **Warning** : only following types are supported for javaTypeclassname: `java.lang.String`, `java.lang.Integer`, `java.lang.Double`, `java.lang.Long`, `java.lang.Boolean`, `java.util.Date`
      operationId: updateVariableByProcessInstanceId
      parameters:
        - description: The identifier of the process instance from which to retrieve the variable
          in: path
          name: id
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        - description: The name of the variable to retrieve
          in: path
          name: variableName
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProcessInstanceVariableUpdateRequest'
        description: Partial ProcessInstance variables 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'
  /API/bpm/archivedCaseVariable/{id}/{variableName}:
    get:
      tags:
        - ArchivedProcessInstanceVariable
      summary: Finds an archived Variable by ProcessInstance ID and variable name
      description: |
        Since 2022.1

        Returns the single ArchivedProcessInstanceVariable for the given ProcessInstance ID and variable name
      operationId: getArchivedVariableByProcessInstance
      parameters:
        - description: The identifier of the process instance from which to retrieve the archived variable
          in: path
          name: id
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        - description: The name of the archived variable to retrieve
          in: path
          name: variableName
          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/ArchivedProcessInstanceVariable'
        '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/caseDocument:
    get:
      tags:
        - ProcessInstanceDocument
      summary: Finds ProcessInstanceDocuments
      description: |
        Finds ProcessInstanceDocuments with pagination params and filters

        It is possible to filter on three parameters: `submittedBy`, `name` and `description`.

         * `submittedBy="id"`: search for documents that were submitted by the user with the specified identifier.
         * `name="string"`: search for documents with names that contain _string_.
           Depending on the setting for [word-based search](https://documentation.bonitasoft.com/bonita/latest/api/using-list-and-search-methods#word_based_search), the search returns documents with _string_ at the start of the name or the start of a word in the name.
         * `description="string"`: search for documents with descriptions that contain _string_.
           Depending on the setting for [word-based search](https://documentation.bonitasoft.com/bonita/latest/api/using-list-and-search-methods#word_based_search), the search returns documents with _string_ at the start of the description or the start of a word in the description.
      operationId: searchProcessInstanceDocuments
      parameters:
        - $ref: '#/components/parameters/pageIndex'
        - $ref: '#/components/parameters/pageCount'
        - $ref: '#/components/parameters/pageFilter'
        - $ref: '#/components/parameters/pageOrder'
      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/ProcessInstanceDocument'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
    post:
      tags:
        - ProcessInstanceDocument
      summary: Create the ProcessInstanceDocument
      description: |
        Create the ProcessInstanceDocument.

        Use a POST method to add a document to a process instances. You can upload a document from the local file system or by URL.
        Specify the process instance id and the document name in the payload. The document description is optional: if you do not specify a description, the description in the response is empty.
        The response contains a version, which is managed automatically. You cannot currently retrieve a specific version of a document, only the most recent version.
        To retrieve earlier versions of a ProcessInstanceDocument, use the archivedProcessInstanceDocument resource.
      operationId: createProcessInstanceDocument
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProcessInstanceDocumentCreateRequest'
        description: Partial ProcessInstanceDocument description
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProcessInstanceDocument'
          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
  /API/bpm/caseDocument/{id}:
    get:
      tags:
        - ProcessInstanceDocument
      summary: Finds the ProcessInstanceDocument by ID
      description: |
        Returns the single ProcessInstanceDocument for the given ID.
        Use a GET method to get a document from a process instances. First you get the document information, then you download the content. To get the document information, specify the document id in the URL. The document id is created when you upload a document to a process instances. There is no payload.
      operationId: getProcessInstanceDocumentById
      parameters:
        - description: ID of the ProcessInstanceDocument to return
          in: path
          name: id
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
      responses:
        '200':
          description: |
            "Success ".
            The response includes the "url" to use to download the content. Call the documentDownload servlet with this URL: /portal/documentDownload?fileName=doc.jpg&contentStorageId=4. Note: Since Bonita 7.10, document url fileName is now URL encoded. This will avoid errors when a document to be downloaded contains special characters in its name.
            In the previous versions, a workaround was necessary client-side using the javascript native function "encodeURI" to generate document download url. You can now remove this workaround.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProcessInstanceDocument'
        '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:
        - ProcessInstanceDocument
      summary: Update the ProcessInstanceDocument by ID
      description: |
        Update the ProcessInstanceDocument for the given ID

        You update a document in a process instance by uploading a new version of the document using a PUT method. You can upload a document version from the local file system or by URL. The document name will be used in all the process instances of the process, but the combination of process instance id and document name is unique.
        In the URL, you specify to supply the document id. This is included in the response when you first add a document to a process instances.
        The response to PUT methods is the same as for POST methods.
      operationId: updateProcessInstanceDocumentById
      parameters:
        - description: ID of the ProcessInstanceDocument 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/ProcessInstanceDocumentUpdateRequest'
        description: Partial ProcessInstanceDocument 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:
        - ProcessInstanceDocument
      summary: Delete the ProcessInstanceDocument by ID
      description: |
        Delete the single ProcessInstanceDocument for the given ID
      operationId: deleteProcessInstanceDocumentById
      parameters:
        - description: ID of the ProcessInstanceDocument 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/archivedCaseDocument:
    get:
      tags:
        - ArchivedProcessInstanceDocument
      summary: Finds ArchivedProcessInstanceDocuments
      description: |
        Finds ArchivedProcessInstanceDocuments with pagination params and filters

        You can filter on :

        * `sourceObjectId="id"`: search for documents by specifying the original document id.
          This is useful if you know the id of a ProcessInstanceDocument and you wish to retrieve all its previous versions..
        * `caseId="id"`: search for documents with the specified open process instance id.
        * `archivedCaseId="id"`: search for documents with the specified archived process instance id.
        * `submittedBy="id"`: search for documents that were submitted by the user with the specified identifier.
        * `name="string"`: search for documents with names that contain _string_.
          Depending on the setting for [word-based search](https://documentation.bonitasoft.com/bonita/latest/api/using-list-and-search-methods#word_based_search), the search returns documents with _string_ at the start of the name or the start of a word in the name.
        * `description="string"`: search for documents with descriptions that contain _string_.
          Depending on the setting for [word-based search](https://documentation.bonitasoft.com/bonita/latest/api/using-list-and-search-methods#word_based_search), the search returns documents with _string_ at the start of the description or the start of a word in the description.
      operationId: searchArchivedProcessInstanceDocuments
      parameters:
        - $ref: '#/components/parameters/pageIndex'
        - $ref: '#/components/parameters/pageCount'
        - $ref: '#/components/parameters/pageFilter'
        - $ref: '#/components/parameters/pageOrder'
      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/ArchivedProcessInstanceDocument'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/archivedCaseDocument/{id}:
    delete:
      tags:
        - ArchivedProcessInstanceDocument
      summary: Delete the ArchivedProcessInstanceDocument by ID
      description: |
        Delete the single ArchivedProcessInstanceDocument for the given ID
      operationId: deleteArchivedProcessInstanceDocumentById
      parameters:
        - description: ID of the ArchivedProcessInstanceDocument 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/actor:
    get:
      tags:
        - Actor
      summary: Finds Actors
      description: |
        Finds Actors with pagination params and filters
      operationId: searchActors
      parameters:
        - $ref: '#/components/parameters/pageIndex'
        - $ref: '#/components/parameters/pageCount'
        - $ref: '#/components/parameters/pageFilter'
        - $ref: '#/components/parameters/pageOrder'
      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/Actor'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/actor/{id}:
    get:
      tags:
        - Actor
      summary: Finds the Actor by ID
      description: |
        Returns the single Actor for the given ID
      operationId: getActorById
      parameters:
        - description: ID of the Actor 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/Actor'
        '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:
        - Actor
      summary: Update the Actor by ID
      deprecated: true
      description: |
        Update the Actor for the given ID

        Warning: as of 9.0.0, updating an Actor using this API is deprecated.
      operationId: updateActorById
      parameters:
        - description: ID of the Actor 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/ActorUpdateRequest'
        description: Fields that can be upated are `displayName` and `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'
  /API/bpm/actorMember:
    get:
      tags:
        - ActorMember
      summary: Finds ActorMembers
      description: |
        Finds ActorMembers with pagination params and filters

        There is a **mandatory** filter on:

        * `actor_id` For example, retrieve the actorMembers related to the specified actor_id. http://localhost:8080/bonita/API/bpm/actorMember?p=0&c=10&f=actor_id%3d1

        You can also filter also on:

        * `member_type` (user|role|group|roleAndGroup) retrieve only the actorMembers of type user. `/API/bpm/actorMember?p=0&c=10&f=actor_id%3d1&f=member_type%3duser`
        * `user_id`: retrieve only the actorMembers related to the specified user_id. `/API/bpm/actorMember?p=0&c=10&f=actor_id%3d1&f=user_id%3d101`
        * `role_id`: retrieve only the actorMembers related to the specified role_id. `/API/bpm/actorMember?p=0&c=10&f=actor_id%3d1&f=role_id%3d101`
        * `group_id`: retrieve only the actorMembers related to the specified group_id. `/API/bpm/actorMember?p=0&c=10&f=actor_id%3d1&f=group_id%3d101`
      operationId: searchActorMembers
      parameters:
        - $ref: '#/components/parameters/pageIndex'
        - $ref: '#/components/parameters/pageCount'
        - $ref: '#/components/parameters/pageFilter'
        - $ref: '#/components/parameters/pageOrder'
      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/ActorMember'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/actorMember/{id}:
    get:
      tags:
        - ActorMember
      summary: Finds the ActorMember by ID
      description: |
        Returns the single ActorMember for the given ID
      operationId: getActorMemberById
      parameters:
        - description: ID of the ActorMember 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/ActorMember'
        '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:
        - ActorMember
      summary: Delete the ActorMember by ID
      description: |
        Delete the single ActorMember for the given ID
      operationId: deleteActorMemberById
      parameters:
        - description: ID of the ActorMember 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/case:
    get:
      tags:
        - ProcessInstance
      summary: Finds ProcessInstances
      description: |
        Finds ProcessInstances with pagination params and filters

        You can filter on:

        * `processDefinitionId`: The process derfinition ID
        * `name`: the process name
        * `started_by`: the ID of the user who started the process
        * `team_manager_id`: allow to retrieve the process instances in which all users with this manager ID ar involved)
        * `supervisor_id`: allow the retrived the process instances of all processes the user with this ID is supervisor of) beware you cannot use team_manager_id and supervisor_id at the same time
      operationId: searchProcessInstances
      parameters:
        - $ref: '#/components/parameters/pageIndex'
        - $ref: '#/components/parameters/pageCount'
        - $ref: '#/components/parameters/pageFilter'
        - $ref: '#/components/parameters/pageOrder'
      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/ProcessInstance'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
    post:
      tags:
        - ProcessInstance
      summary: Create the ProcessInstance
      description: |
        ![edition](https://img.shields.io/badge/edition-entreprise-blue) ![edition](https://img.shields.io/badge/edition-community-brightgreen)

        Create the ProcessInstance
        This way of creating a process instance using this method will only work for processes in which no contract is defined. To instantiate a process with a contract, check the process instantiation resource documentation.
      operationId: createProcessInstance
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProcessInstanceCreateRequest'
        description: |
          **Warning**: The attribute `variables` on the request payload is used to initialize the process variables (not BDM variables). If you want to initialize BDM variables at process instantiation, add a contract on the process and map BDM variables to the contract data. See Start a process using an instantiation contract for usage.
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProcessInstance'
          description: 'Success '
        '400':
          $ref: '#/components/responses/BadRequest'
        '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:
                  message:
                    type: string
                    description: The error message
                  exception:
                    type: string
                    description: The exception type
              example:
                message: Error occurred when starting process 5524355418393634511. Case creation limit reached.
                exception: org.bonitasoft.web.toolkit.client.common.exception.api.APITooManyRequestException
        5XX:
          $ref: '#/components/responses/ServerError'
      x-codegen-request-body-name: body
    delete:
      tags:
        - ProcessInstance
      summary: Delete the ProcessInstance by batch
      description: |
        ![edition](https://img.shields.io/badge/edition-entreprise-blue) ![edition](https://img.shields.io/badge/edition-community-brightgreen)

        Delete a list of ProcessInstances for the given IDs
      operationId: deleteProcessInstanceByIds
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                description: ProcessInstance id
                type: string
      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/case/{id}:
    get:
      tags:
        - ProcessInstance
      summary: Finds the ProcessInstance by ID
      description: |
        Returns the single ProcessInstance for the given ID
      operationId: getProcessInstanceById
      parameters:
        - description: ID of the ProcessInstance to return
          in: path
          name: id
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        - description: Count of related resources
          in: query
          name: 'n'
          required: false
          schema:
            type: string
            enum:
              - activeFlowNodes
              - failedFlowNodes
      responses:
        '200':
          description: 'Success '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProcessInstance'
        '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:
        - ProcessInstance
      summary: Delete the ProcessInstance by ID
      description: |
        Delete the single ProcessInstance for the given ID
      operationId: deleteProcessInstanceById
      parameters:
        - description: ID of the ProcessInstance 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/case/{id}/context:
    get:
      tags:
        - ProcessInstance
      summary: Finds the Context by ProcessInstance ID
      description: |
        Returns the Context for the given ProcessInstance ID
      operationId: getContextByProcessInstanceId
      parameters:
        - description: ID of the ProcessInstance that has the Context 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:
                type: object
                additionalProperties: true
              example:
                myBusinessData_ref:
                  name: myBusinessData
                  type: com.company.model.BusinessObject1
                  link: API/bdm/businessData/com.company.model.BusinessObject1/2
                  storageId: 2
                  storageId_string: '2'
                myDocument_ref:
                  id: 1
                  processInstanceId: 3
                  name: myDocument
                  author: 104
                  creationDate: 1434723950847
                  fileName: TestCommunity-1.0.bos
                  contentMimeType: null
                  contentStorageId: '1'
                  url: documentDownload?fileName=TestCommunity-1.0.bos&contentStorageId=1
                  description: ''
                  version: '1'
                  index: -1
                  contentFileName: TestCommunity-1.0.bos
        '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/archivedCase:
    get:
      tags:
        - ArchivedProcessInstance
      summary: Finds ArchivedProcessInstances
      description: |
        Finds archived ProcessInstances (or ProcessInstance) with pagination params and filters

        You can order on `id`, `processDefinitionId`, `startedBy`, `startedBySubstitute`, `startDate`, `endDate`, `lastUpdate`, `archivedDate`, `sourceObjectId`

        You can filter on :

        * `sourceObjectId`: The original process instance ID before the process instance was archived
        * `processDefinitionId`: The process derfinition ID
        * `name`: the process name
        * `started_by`: the ID of the user who started the process
        * `team_manager_id`: allow to retrieve the process instances in which all users with this manager ID ar involved)
        * `supervisor_id`: allow the retrived the process instances of all processes the user with this ID is supervisor of) beware you cannot use team_manager_id and supervisor_id at the same time
      operationId: searchArchivedProcessInstances
      parameters:
        - $ref: '#/components/parameters/pageIndex'
        - $ref: '#/components/parameters/pageCount'
        - $ref: '#/components/parameters/pageFilter'
        - $ref: '#/components/parameters/pageOrder'
      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/ArchivedProcessInstance'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/archivedCase/{id}:
    get:
      tags:
        - ArchivedProcessInstance
      summary: Finds the ArchivedProcessInstance by ID
      description: |
        Returns the single ArchivedProcessInstance for the given ID
      operationId: getArchivedProcessInstanceById
      parameters:
        - description: ID of the ArchivedProcessInstance 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/ArchivedProcessInstance'
        '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:
        - ArchivedProcessInstance
      summary: Delete the ArchivedProcessInstance by ID
      description: |
        Delete the single ArchivedProcessInstance for the given ID
      operationId: deleteArchivedProcessInstanceById
      parameters:
        - description: ID of the ArchivedProcessInstance 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/archivedCase/{id}/context:
    get:
      tags:
        - ArchivedProcessInstance
      summary: Finds the Context by ArchivedProcessInstance ID
      description: |
        Returns the Context for the given ArchivedProcessInstance ID
      operationId: getContextByArchivedProcessInstanceId
      parameters:
        - description: ID of the ArchivedProcessInstance that has the Context 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:
                type: object
                additionalProperties: true
              example:
                myBusinessData_ref:
                  name: myBusinessData
                  type: com.company.model.BusinessObject1
                  link: API/bdm/businessData/com.company.model.BusinessObject1/2
                  storageId: 2
                  storageId_string: '2'
                myDocument_ref:
                  id: 1
                  processInstanceId: 3
                  name: myDocument
                  author: 104
                  creationDate: 1434723950847
                  fileName: TestCommunity-1.0.bos
                  contentMimeType: null
                  contentStorageId: '1'
                  url: documentDownload?fileName=TestCommunity-1.0.bos&contentStorageId=1
                  description: ''
                  version: '1'
                  index: -1
                  contentFileName: TestCommunity-1.0.bos
        '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/caseInfo/{id}:
    get:
      tags:
        - ProcessInstanceInfo
      summary: Finds the ProcessInstanceInfo by ID
      description: |
        ![edition](https://img.shields.io/badge/edition-entreprise-blue) since 2022.2

        Returns the single ProcessInstanceInfo for the given ID
      operationId: getProcessInstanceInfoById
      parameters:
        - description: ID of the ProcessInstanceInfo 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/ProcessInstanceInfo'
        '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/comment:
    get:
      tags:
        - ProcessInstanceComment
      summary: Finds ProcessInstanceComments
      description: |
        Finds ProcessInstanceComments with pagination params and filters

        - can order on `postDate`
        - can filter on `supervisor_id`,`user_id`,`processInstanceId` - You cannot use supervisor_id and user_id filter at the same time
      operationId: searchProcessInstanceComments
      parameters:
        - $ref: '#/components/parameters/pageIndex'
        - $ref: '#/components/parameters/pageCount'
        - $ref: '#/components/parameters/pageFilter'
        - $ref: '#/components/parameters/pageOrder'
      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/ProcessInstanceComment'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
    post:
      tags:
        - ProcessInstanceComment
      summary: Create the ProcessInstanceComment
      description: |
        Create the ProcessInstanceComment
      operationId: createProcessInstanceComment
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProcessInstanceCommentCreateRequest'
        description: The process instance (case) id and the comment content, in JSON
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProcessInstanceComment'
          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
  /API/bpm/archivedComment:
    get:
      tags:
        - ArchivedProcessInstanceComment
      summary: Finds ArchivedProcessInstanceComments
      description: |
        Finds ArchivedProcessInstanceComments with pagination params and filters

        - can order on `id`
        - can search on `displayName`
        - can filter on `displayName`
      operationId: searchArchivedProcessInstanceComments
      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/ArchivedProcessInstanceComment'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /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/processInfo/{id}:
    get:
      tags:
        - ProcessInfo
      summary: Finds the ProcessInfo by ID
      description: |
        Since 2022.2
        ![edition](https://img.shields.io/badge/edition-entreprise-blue)

        Returns the single ProcessInfo for the given ID
      operationId: getProcessInfoById
      parameters:
        - description: ID of the ProcessInfo 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/ProcessInfo'
        '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/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'
  /API/bpm/diagram/{id}:
    get:
      tags:
        - Diagram
      summary: Finds the diagram process by ID
      description: |
        ![edition](https://img.shields.io/badge/edition-entreprise-blue)

        Use the diagram resource to access the process diagram xml representation. This is necessary for drawing the diagram.
      operationId: getProcessDiagramById
      parameters:
        - description: ID of the process to get the diagram 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/xml:
              schema:
                type: string
                description: BPMN XML representation of the process definition
        '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/processParameter:
    get:
      tags:
        - ProcessParameter
      summary: Finds ProcessParameters
      description: |
        Finds ProcessParameters with pagination params and filters.
      operationId: searchProcessParameters
      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/ProcessParameter'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/processParameter/{id}/{name}:
    get:
      tags:
        - ProcessParameter
      summary: Finds the ProcessParameter by ID
      description: |
        Returns the single ProcessParameter for the given ID
      operationId: getProcessParameterById
      parameters:
        - description: ID of the process to get parameter from
          in: path
          name: id
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        - description: Name of the process parameter to return
          in: path
          name: name
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.\s]{0,250}$
      responses:
        '200':
          description: 'Success '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProcessParameter'
        '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:
        - ProcessParameter
      summary: Update the ProcessParameter by ID
      deprecated: true
      description: |
        ![edition](https://img.shields.io/badge/edition-entreprise-blue)

        Update the ProcessParameter for the given ID

        Warning: as of 9.0.0, importing a Process parameter using this API is deprecated.
      operationId: updateProcessParameterById
      parameters:
        - description: ID of the process to get parameter from
          in: path
          name: id
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        - description: Name of the process parameter to return
          in: path
          name: name
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProcessParameterUpdateRequest'
        description: You can update only a process parameter value using the API. If you specify values for other fields in the update request, they are ignored.
        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'
  /API/bpm/processResolutionProblem:
    get:
      tags:
        - ProcessResolutionProblem
      summary: Finds ProcessResolutionProblems
      description: |
        Finds ProcessResolutionProblems with pagination params and filters to list the problems that need to be solved before a process can be used.

        **Filtering on the process definition ID is mandatory.**
      operationId: searchProcessResolutionProblems
      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/ProcessResolutionProblem'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/processSupervisor:
    get:
      tags:
        - ProcessSupervisor
      summary: Finds ProcessSupervisors
      description: |
        Finds ProcessSupervisors with pagination params and filters

        To filter, you need to specify the `process_id`, and then the `user_id`, `group_id` and `role_id` with one of them
        (two if you want to filter on group and role) set to `>0` and the other ones set to `-1`.
        E.g.: `f=process_id%3D8040901857674754544&f=user_id%3D>0&f=group_id%3D-1&f=role_id%3D-1`
      operationId: searchProcessSupervisors
      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/ProcessSupervisor'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
    post:
      tags:
        - ProcessSupervisor
      summary: Create the ProcessSupervisor
      description: |
        Create the ProcessSupervisor
      operationId: createProcessSupervisor
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProcessSupervisor'
            example:
              process_id: '5777042023671752656'
              user_id: '11'
        description: The process definition id and either the user, role and/or group id.
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProcessSupervisor'
          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:
        - ProcessSupervisor
      summary: Delete the ProcessSupervisor by ID
      description: |
        Delete the ProcessSupervisor for the given compoound IDs

        You can delete a process supervisor by specifying its compound Id in the body of the request with the following format: `process_id/user_id/role_id/group_id`
      operationId: deleteProcessSupervisorById
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
            example:
              - 8040901857674754544/11/-1/-1
              - 8040901857674754544/12/-1/-1
        description: The process definition id and either the user, role and/or group id.
        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'
  /API/bpm/processConnectorDependency:
    get:
      tags:
        - ProcessConnectorDependency
      summary: Finds ProcessConnectorDependencies
      description: |
        Finds ProcessConnectorDependencies with pagination params and filters

        **Mandatory filters: `connector_process_id`, `connector_name`, `connector_version`**
      operationId: searchProcessConnectorDependencies
      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/ProcessConnectorDependency'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/connectorFailure/{id}:
    get:
      tags:
        - ConnectorFailure
      summary: Finds the ConnectorFailure by ID
      description: |
        Returns the single ConnectorFailure for the given ID
      operationId: getConnectorFailureById
      parameters:
        - description: ID of the ConnectorFailure 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/ConnectorFailure'
        '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/connectorInstance:
    get:
      tags:
        - ConnectorInstance
      summary: Finds ConnectorInstances
      description: |
        Finds ConnectorInstances with pagination params and filters.
        Retrieve a list of connector instances attached to a process or a flow node.
      operationId: searchConnectorInstances
      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/ConnectorInstance'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/archivedConnectorInstance:
    get:
      tags:
        - ArchivedConnectorInstance
      summary: Finds ArchivedConnectorInstances
      description: |
        Finds ArchivedConnectorInstances with pagination params and filters
      operationId: searchArchivedConnectorInstances
      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/ArchivedConnectorInstance'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/flowNode:
    get:
      tags:
        - FlowNode
      summary: Finds FlowNodes
      description: |
        Finds FlowNodes with pagination params and filters

        - can order on `name`, `displayName`, `state`, `processDefinitionId`, `parentProcessInstanceId`, `parentActivityInstanceId` (if the retrieved flow nodes are activities, order by parent activity id), `rootProcessInstanceId`, `lastUpdateDate`
        - can search on any field that can be used to order results
        - can filter on `name`, `state`, `processId`, `parentProcessInstanceId`, `rootProcessInstanceId`, `last_update_date`
      operationId: searchFlowNodes
      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/FlowNode'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/flowNode/{id}:
    get:
      tags:
        - FlowNode
      summary: Finds the FlowNode by ID
      description: |
        Returns the single FlowNode for the given ID
      operationId: getFlowNodeById
      parameters:
        - description: ID of the FlowNode 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/FlowNode'
        '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:
        - FlowNode
      summary: Update the FlowNode by ID
      description: |
        ![edition](https://img.shields.io/badge/edition-entreprise-blue)

        Replay the flow node for the given ID.
      operationId: updateFlowNodeById
      parameters:
        - description: ID of the FlowNode 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/FlowNodeUpdateRequest'
        description: Replay the flow node.
        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'
  /API/bpm/archivedFlowNode:
    get:
      tags:
        - ArchivedFlowNode
      summary: Finds ArchivedFlowNodes
      description: |
        Finds ArchivedFlowNodes with pagination params and filters

        - can order on `name`, `displayName`, `state`, `type`, `isTerminal`, `processId`, `caseId`, `archivedDate`
        - can search on any field that can be used to order results
        - can filter on `name`, `displayName`, `state`, `stateId`, `kind`, `terminal`, `processDefinitionId`, `parentProcessInstanceId`, `rootProcessInstanceId`, `parentActivityInstanceId`, `archivedDate`, `reachedStateDate`, `sourceObjectId`
      operationId: searchArchivedFlowNodes
      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/ArchivedFlowNode'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/archivedFlowNode/{id}:
    get:
      tags:
        - ArchivedFlowNode
      summary: Finds the ArchivedFlowNode by ID
      description: |
        Returns the single ArchivedFlowNode for the given ID
      operationId: getArchivedFlowNodeById
      parameters:
        - description: ID of the ArchivedFlowNode 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/ArchivedFlowNode'
        '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/timerEventTrigger:
    get:
      tags:
        - TimerEventTrigger
      summary: Finds TimerEventTriggers
      description: |
        Finds TimerEventTriggers with pagination params and filters

        - can order on `id`
        - can search on `displayName`
        - can filter on `displayName`
      operationId: searchTimerEventTriggers
      parameters:
        - $ref: '#/components/parameters/pageIndex'
        - $ref: '#/components/parameters/pageCount'
        - $ref: '#/components/parameters/pageFilter'
        - $ref: '#/components/parameters/pageOrder'
        - $ref: '#/components/parameters/pageSearch'
        - description: the process instance id
          in: query
          name: caseId
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
      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/TimerEventTrigger'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/bpm/timerEventTrigger/{id}:
    get:
      tags:
        - TimerEventTrigger
      summary: Finds the TimerEventTrigger by ID
      description: |
        Returns the single TimerEventTrigger for the given ID
      operationId: getTimerEventTriggerById
      parameters:
        - description: ID of the TimerEventTrigger 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/TimerEventTrigger'
        '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:
        - TimerEventTrigger
      summary: Update the TimerEventTrigger by ID
      description: |
        Update the TimerEventTrigger for the given ID
      operationId: updateTimerEventTriggerById
      parameters:
        - description: ID of the TimerEventTrigger 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/TimerEventTriggerUpdateRequest'
        description: a long value with attribute name "executionDate"
        required: true
      responses:
        '200':
          description: The actual long value corresponding to the next execution date of the timer event trigger, as a long value
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TimerEventTriggerUpdateResponse'
        '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/message:
    post:
      tags:
        - Message
      summary: Send BPM message events
      description: |
        Use this resource to send BPM message events. Message events are caught by processes using `catch message event` flow nodes (Start, intermediate, boundary or receive tasks).
      operationId: createMessage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Message'
        description: A Message event
        required: true
      responses:
        '204':
          $ref: '#/components/responses/NoContent'
        '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
  /API/bpm/signal:
    post:
      tags:
        - Signal
      summary: Broadcast BPM signal events
      description: |
        Since 2022.1

        Use this resource to broadcast BPM signal events. Signal events are caught by processes using `catch signal event` flow nodes (Start, intermediate or boundary).
      operationId: broadcastSignal
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Signal'
        description: A Signal event
        required: true
      responses:
        '204':
          $ref: '#/components/responses/NoContent'
        '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
  /API/customuserinfo/definition:
    get:
      tags:
        - CustomUserDefinition
      summary: Finds CustomUserDefinitions
      description: |
        Finds CustomUserDefinitions. There are no filters, and no search terms. All the definitions are returned.
      operationId: searchCustomUserDefinitions
      parameters:
        - $ref: '#/components/parameters/pageIndex'
        - $ref: '#/components/parameters/pageCount'
      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/CustomUserDefinition'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
    post:
      tags:
        - CustomUserDefinition
      summary: Create the CustomUserDefinition
      description: |
        Create the CustomUserDefinition
      operationId: createCustomUserDefinition
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomUserDefinitionCreateRequest'
        description: Partial CustomUserDefinition description
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomUserDefinition'
          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
  /API/customuserinfo/definition/{id}:
    get:
      tags:
        - CustomUserDefinition
      summary: Finds the CustomUserDefinition by ID
      description: |
        Returns the single CustomUserDefinition for the given ID
      operationId: getCustomUserDefinitionById
      parameters:
        - description: ID of the CustomUserDefinition 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/CustomUserDefinition'
        '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:
        - CustomUserDefinition
      summary: Delete the CustomUserDefinition by ID
      description: |
        Delete the single CustomUserDefinition for the given ID
      operationId: deleteCustomUserDefinitionById
      parameters:
        - description: ID of the CustomUserDefinition 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/customuserinfo/value:
    get:
      tags:
        - CustomUserValue
      summary: Finds CustomUserValues
      description: |
        Finds CustomUserValues with pagination params and filters

        You can filter on `userId`, `value`, `definitionId`
      operationId: searchCustomUserValues
      parameters:
        - $ref: '#/components/parameters/pageIndex'
        - $ref: '#/components/parameters/pageCount'
        - $ref: '#/components/parameters/pageFilter'
      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/CustomUserValue'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/customuserinfo/value/{userId}/{definitionId}:
    put:
      tags:
        - CustomUserValue
      summary: Update the CustomUserValue by ID
      description: |
        Update the CustomUserValue for the given ID
      operationId: updateCustomUserValueById
      parameters:
        - description: User ID
          in: path
          name: userId
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        - description: definition ID
          in: path
          name: definitionId
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CustomUserValueUpdateRequest'
        description: Custom user defition Value
        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'
  /API/customuserinfo/user:
    get:
      tags:
        - CustomUser
      summary: Finds CustomUsers
      description: |
        Finds CustomUsers with pagination params and filters

        **The filter `userId` is mandatory**
      operationId: searchCustomUsers
      parameters:
        - $ref: '#/components/parameters/pageIndex'
        - $ref: '#/components/parameters/pageCount'
        - $ref: '#/components/parameters/pageFilter'
      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/CustomUser'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/form/mapping:
    get:
      tags:
        - FormMapping
      summary: Finds FormMappings
      description: |
        Finds FormMappings with pagination params and filters

        - can filter on `processDefinitionId`,`type`
      operationId: searchFormMappings
      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/FormMapping'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/form/mapping/{id}:
    put:
      tags:
        - FormMapping
      summary: Update the FormMapping by ID
      deprecated: true
      description: |
        ![edition](https://img.shields.io/badge/edition-entreprise-blue)

        Update the FormMapping for the given ID

        Warning: as of 9.0.0, updating a Form Mapping using this API is deprecated.
      operationId: updateFormMappingById
      parameters:
        - description: ID of the FormMapping 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/FormMappingUpdateRequest'
        description: 'Representation of the form mapping attribute to update - {''pageId'': (long)} or {''url'': (string)} or {} to set the mapping type to NONE'
        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'
  /API/identity/professionalcontactdata:
    get:
      tags:
        - ProfessionalContactData
      summary: Finds ProfessionalContactData
      description: |
        Finds ProfessionalContactData with pagination params and filters

        - can order on `id`
        - can search on `displayName`
        - can filter on `displayName`
      operationId: searchProfessionalContactDatas
      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/ProfessionalContactData'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
    post:
      tags:
        - ProfessionalContactData
      summary: Create the ProfessionalContactData
      description: |
        Create the ProfessionalContactData
      operationId: createProfessionalContactData
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProfessionalContactData'
            example:
              id: '4'
              fax_number: 484-302-0766
              building: '70'
              phone_number: 484-302-5766
              zipcode: '19108'
              state: PA
              city: Philadelphia
              country: United States
              address: Renwick Drive
              email: walter.bates@acme.com
        description: Partial ProfessionalContactData description including the user ID
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProfessionalContactData'
          description: Success
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          description: Contact information for this user already exists
        5XX:
          $ref: '#/components/responses/ServerError'
      x-codegen-request-body-name: body
  /API/identity/professionalcontactdata/{userId}:
    get:
      tags:
        - ProfessionalContactData
      summary: Finds the ProfessionalContactData by ID
      description: |
        Returns the single ProfessionalContactData for the given ID
      operationId: getProfessionalContactDataById
      parameters:
        - description: User ID of the ProfessionalContactData to return
          in: path
          name: userId
          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/ProfessionalContactData'
        '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:
        - ProfessionalContactData
      summary: Update the ProfessionalContactData by ID
      description: |
        Update the ProfessionalContactData for the given ID
      operationId: updateProfessionalContactDataById
      parameters:
        - description: User ID of the ProfessionalContactData to update
          in: path
          name: userId
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProfessionalContactData'
            example:
              id: '4'
              fax_number: 484-302-0766
              building: '70'
              phone_number: 484-302-5766
              zipcode: '19108'
              state: PA
              city: Philadelphia
              country: United States
              address: Renwick Drive
              email: walter.bates@acme.com
        description: Partial ProfessionalContactData description including the user ID
        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'
  /API/identity/personalcontactdata/{userId}:
    get:
      tags:
        - ProfessionalContactData
      summary: Finds the PersonalContactData by ID
      description: |
        Returns the single PersonalContactData for the given ID
      operationId: getPersonalContactDataById
      parameters:
        - description: User ID of the PersonalContactData to return
          in: path
          name: userId
          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/ProfessionalContactData'
        '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:
        - ProfessionalContactData
      summary: Update the PersonalContactData by ID
      description: |
        Update the PersonalContactData for the given ID
      operationId: updatePersonalContactDataById
      parameters:
        - description: User ID of the PersonalContactData to update
          in: path
          name: userId
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProfessionalContactData'
            example:
              id: '4'
              fax_number: 484-302-0766
              building: '70'
              phone_number: 484-302-5766
              zipcode: '19108'
              state: PA
              city: Philadelphia
              country: United States
              address: Renwick Drive
              email: walter.bates@acme.com
        description: Partial PersonalContactData description including the user ID
        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'
  /API/identity/group:
    get:
      tags:
        - Group
      summary: Finds Groups
      description: |
        Finds Groups with pagination params and filters.

        - can order on `id`,`name`,`displayName`
        - can filter on `name`,`displayName`,`parent_path`
      operationId: searchGroups
      parameters:
        - $ref: '#/components/parameters/pageIndex'
        - $ref: '#/components/parameters/pageCount'
        - $ref: '#/components/parameters/pageFilter'
        - $ref: '#/components/parameters/pageOrder'
      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/Group'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
    post:
      tags:
        - Group
      summary: Create the Group
      description: |
        Create the Group
      operationId: createGroup
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GroupCreateRequest'
        description: Partial Group description
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
          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
  /API/identity/group/{id}:
    get:
      tags:
        - Group
      summary: Finds the Group by ID
      description: |
        Returns the single Group for the given ID
      operationId: getGroupById
      parameters:
        - description: ID of the Group 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/Group'
        '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:
        - Group
      summary: Update the Group by ID
      description: |
        Update the Group for the given ID
      operationId: updateGroupById
      parameters:
        - description: ID of the Group 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/GroupUpdateRequest'
        description: Partial Group 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:
        - Group
      summary: Delete the Group by ID
      description: |
        Delete the single Group for the given ID
      operationId: deleteGroupById
      parameters:
        - description: ID of the Group 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/identity/membership:
    get:
      tags:
        - Membership
      summary: Finds Memberships
      description: |
        Finds Memberships with pagination params and filters

        **Filter `user_id` is mandatory**

        You can order with the values: `ROLE_NAME_ASC`,`ROLE_NAME_DESC`, `GROUP_NAME_ASC`,`GROUP_NAME_DESC`, `ASSIGNED_DATE_ASC`, `ASSIGNED_DATE_DESC`
      operationId: searchMemberships
      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/Membership'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
    post:
      tags:
        - Membership
      summary: Create the Membership
      description: |
        Create the Membership
      operationId: createMembership
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MembershipCreateRequest'
        description: Partial Membership description
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Membership'
          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
  /API/identity/membership/{userId}/{groupId}/{roleId}:
    delete:
      tags:
        - Membership
      summary: Delete the Membership by ID
      description: |
        Delete a membership of a user using the group id and role id.
      operationId: deleteMembershipById
      parameters:
        - description: User ID of the Membership to delete
          in: path
          name: userId
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        - description: Group ID of the Membership to delete
          in: path
          name: groupId
          required: true
          schema:
            type: string
            maxLength: 250
            pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        - description: Role ID of the Membership to delete
          in: path
          name: roleId
          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/identity/role:
    get:
      tags:
        - Role
      summary: Finds Roles
      description: |
        Finds Roles with pagination params and filters

        - can order on `id`, `name` and `displayName`
        - can filter on `name` and `displayName`
      operationId: searchRoles
      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/Role'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
    post:
      tags:
        - Role
      summary: Create the Role
      description: |
        Create the Role
      operationId: createRole
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RoleCreateRequest'
        description: Partial Role description
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Role'
          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
  /API/identity/role/{id}:
    get:
      tags:
        - Role
      summary: Finds the Role by ID
      description: |
        Returns the single Role for the given ID
      operationId: getRoleById
      parameters:
        - description: ID of the Role 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/Role'
        '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:
        - Role
      summary: Update the Role by ID
      description: |
        Update the Role for the given ID
      operationId: updateRoleById
      parameters:
        - description: ID of the Role 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/RoleUpdateRequest'
        description: Partial Role 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:
        - Role
      summary: Delete the Role by ID
      description: |
        Delete the single Role for the given ID
      operationId: deleteRoleById
      parameters:
        - description: ID of the Role 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/identity/user:
    get:
      tags:
        - User
      summary: Finds Users
      description: |
        Finds Users with pagination params and filters

        - can order on `id`
        - can search on `displayName`
        - can filter on `displayName`
      operationId: searchUsers
      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/User'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
    post:
      tags:
        - User
      summary: Create the User
      description: |
        Create the User
      operationId: createUser
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserCreateRequest'
        description: Partial User description
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
          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
  /API/identity/user/{id}:
    get:
      tags:
        - User
      summary: Finds the User by ID
      description: |
        Returns the single User for the given ID
      operationId: getUserById
      parameters:
        - description: ID of the User 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/User'
        '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:
        - User
      summary: Update the User by ID
      description: |
        Update the User for the given ID
      operationId: updateUserById
      parameters:
        - description: ID of the User 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/UserUpdateRequest'
        description: Partial User 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:
        - User
      summary: Delete the User by ID
      description: |
        Delete the single User for the given ID.

        **Use this method with caution**: some artifacts like applications, process instances or users may present display problems in the Bonita Portal if the referenced user was deleted.
        Note that you can disable a user instead of deleting it. To do so, use the UPDATE method and set the attribute 'enabled' to false
      operationId: deleteUserById
      parameters:
        - description: ID of the User 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'
  /platformloginservice:
    post:
      tags:
        - Platform
        - PlatformAuthentication
      operationId: platformLogin
      summary: Platform Login
      description: |
        The username and password are in `bonita-platform-community-custom.properties` file.
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                username:
                  type: string
                  description: the username
                password:
                  type: string
                  format: password
                  description: the password
                redirect:
                  type: string
                  description: '"true" or "false". "false" indicates that the service should not redirect to Bonita Portal (after a successful login) or to the login page (after a login failure).'
            example:
              username: install
              password: install
              redirect: 'false'
      responses:
        '200':
          description: Login success
          headers:
            Set-Cookie:
              description: Session cookie
              schema:
                type: string
                pattern: ([^;]+);?
                example: JSESSIONID=C5385BFEE2969D9E46F0160C1952B0F1; Path=/bonita; HttpOnly; SameSite=Lax
            X-Bonita-API-Token:
              description: X-Bonita-API-Token - CSRF token (also present in the cookie response)
              schema:
                type: string
                maxLength: 250
                pattern: ^[A-Za-z0-9\-]{0,250}$
              example: ed27cbeb-9953-4d77-b5a2-1f62a6c2e0bb
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /platformlogoutservice:
    post:
      tags:
        - Platform
        - PlatformAuthentication
      operationId: platformLogout
      summary: Platform Logout
      description: ''
      responses:
        '200':
          description: logout success
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/platform/platform/unusedid:
    get:
      tags:
        - Platform
      summary: Finds the Platform by ID
      description: |
        Returns the current Platform
      operationId: getPlatformById
      responses:
        '200':
          description: 'Success '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Platform'
        '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:
        - Platform
      summary: Update the Platform by ID
      description: |
        Start or stop the current node, that is, start or stop all services of the current JVM.
      operationId: updatePlatformById
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlatformUpdateRequest'
        description: Start or stop all services of the current JVM.
        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'
  /API/platform/tenant:
    get:
      tags:
        - Tenant
      summary: Finds Tenants
      deprecated: true
      description: |
        ![edition](https://img.shields.io/badge/edition-entreprise-blue)

        Finds Tenants with pagination params and filters

        - can order on `id`
        - can search on `displayName`
        - can filter on `displayName`

        Warning: Since Bonita 7.12, multi-tenancy is deprecated
      operationId: searchTenants
      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/Tenant'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
    post:
      tags:
        - Tenant
      summary: Create the Tenant
      deprecated: true
      description: |
        ![edition](https://img.shields.io/badge/edition-entreprise-blue)

        Create the Tenant.

        Warning: Since Bonita 7.12, multi-tenancy is deprecated. Creating new tenants is strongly discouraged.
      operationId: createTenant
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TenantCreateRequest'
        description: Partial Tenant description
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Tenant'
          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
  /API/platform/tenant/{id}:
    get:
      tags:
        - Tenant
      summary: Finds the Tenant by ID
      deprecated: true
      description: |
        ![edition](https://img.shields.io/badge/edition-entreprise-blue)

        Returns the single Tenant for the given ID
        Warning: Since Bonita 7.12, multi-tenancy is deprecated
      operationId: getTenantById
      parameters:
        - description: ID of the Tenant 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/Tenant'
        '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:
        - Tenant
      summary: Update the Tenant by ID
      deprecated: true
      description: |
        ![edition](https://img.shields.io/badge/edition-entreprise-blue) ![edition](https://img.shields.io/badge/edition-community-brightgreen)

        Update a Tenant

        Warning: Since Bonita 7.12, multi-tenancy is deprecated
      operationId: updateTenantById
      parameters:
        - description: ID of the Tenant to update. In Subscription edition, it is mandatory; not in Community edition, as there is only one tenant
          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/TenantUpdateRequest'
        description: Partial Tenant 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:
        - Tenant
      summary: Delete the Tenant by ID
      deprecated: true
      description: |
        ![edition](https://img.shields.io/badge/edition-entreprise-blue)

        Delete the single Tenant for the given ID
      operationId: deleteTenantById
      parameters:
        - description: ID of the Tenant 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/platform/license:
    get:
      tags:
        - License
      summary: Get the platform License
      deprecated: true
      description: |
        Returns the current platform License.
        This requires a platform session. Log in using the platform login service.
        Warning: Since Bonita 10.2 (2024.3), this API is deprecated: use the API `GET /system/information` instead.
      operationId: getPlatformLicense
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PlatformLicense'
        '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'
  /portal/processUpload:
    post:
      tags:
        - Process
        - Upload
      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'
  /portal/pageUpload:
    post:
      tags:
        - Page
        - Upload
      summary: Upload a Page
      deprecated: true
      description: |
        Upload Page

        Warning: as of 9.0.0, uploading a page using the portal is deprecated.
      operationId: uploadPage
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FileUploadRequest'
      responses:
        '200':
          description: 'Success: the temp file name as present on the server'
          content:
            text/plain:
              schema:
                type: string
                maxLength: 250
                pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /portal/fileUpload:
    post:
      tags:
        - Upload
        - BDM
      summary: Upload a file
      description: |
        Upload file.

        **NOTE:** If this file is a BDM zip, to do this, your tenant services need to be paused.
        In Enterprise editions, if you have an access control file installed on your tenant, you need to delete it before installing or updating your BDM.
      operationId: uploadFile
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FileUploadRequest'
      responses:
        '200':
          description: 'Success: the temp file name as present on the server'
          content:
            text/plain:
              schema:
                type: string
                maxLength: 250
                pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/portal/page:
    get:
      tags:
        - Page
      summary: Finds Pages
      description: |
        Finds Pages with pagination params and filters

        - can search on `displayName`,`description`
        - can filter on `createdBy`,`contentType`
      operationId: searchPages
      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/Page'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
    post:
      tags:
        - Page
      summary: Create the Page
      deprecated: true
      description: |
        Upload the page content using the `portal/pageUpload`. This returns a temporary file name that can be used as input for this operation.

        Warning: as of 9.0.0, creating a page using this API is deprecated.
      operationId: createPage
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PageCreateRequest'
        description: Zip name as named in the temp folder after upload
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Page'
          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
  /API/portal/page/{id}:
    get:
      tags:
        - Page
      summary: Finds the Page by ID
      description: |
        Returns the single Page for the given ID
      operationId: getPageById
      parameters:
        - description: ID of the Page 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/Page'
        '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:
        - Page
      summary: Update the Page by ID
      deprecated: true
      description: |
        Use the PUT method to update an existing custom page. To update a custom page, upload the new page content using the pageUpload servlet, which returns a temporary file name, and then call this API with the temporary file name.

        Warning: as of 9.0.0, updating a page using this API is deprecated.
      operationId: updatePageById
      parameters:
        - description: ID of the Page 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/PageUpdateRequest'
        description: Partial Page 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:
        - Page
      summary: Delete the Page by ID
      description: |
        Delete the single Page for the given ID
      operationId: deletePageById
      parameters:
        - description: ID of the Page 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/portal/profile:
    get:
      tags:
        - Profile
      summary: Finds Profiles
      description: |
        Finds Profiles with pagination params and filters

        - can search on `name`
        - can filter on `name`,`hasNavigation`
        - can order on `name`
      operationId: searchProfiles
      parameters:
        - $ref: '#/components/parameters/pageIndex'
        - $ref: '#/components/parameters/pageCount'
        - $ref: '#/components/parameters/pageFilter'
        - $ref: '#/components/parameters/pageSearch'
        - $ref: '#/components/parameters/pageOrder'
      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/Profile'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
    post:
      tags:
        - Profile
      summary: Create the Profile
      deprecated: true
      description: |
        ![edition](https://img.shields.io/badge/edition-entreprise-blue)

        Create the Profile

        Warning: as of 9.0.0, creating profiles using this API is deprecated.
      operationId: createProfile
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProfileCreateRequest'
        description: Partial Profile description
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Profile'
          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
  /API/portal/profile/{id}:
    get:
      tags:
        - Profile
      summary: Finds the Profile by ID
      description: |
        Returns the single Profile for the given ID
      operationId: getProfileById
      parameters:
        - description: ID of the Profile 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/Profile'
        '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:
        - Profile
      summary: Update the Profile by ID
      deprecated: true
      description: |
        ![edition](https://img.shields.io/badge/edition-entreprise-blue)

        Update the Profile for the given ID

        Warning: as of 9.0.0, updating a profile using this API is deprecated.
      operationId: updateProfileById
      parameters:
        - description: ID of the Profile 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/ProfileUpdateRequest'
        description: Partial Profile 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:
        - Profile
      summary: Delete the Profile by ID
      description: |
        Delete the single Profile for the given ID
      operationId: deleteProfileById
      parameters:
        - description: ID of the Profile 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/portal/profileEntry:
    get:
      tags:
        - ProfileEntry
      summary: Finds ProfileEntries
      deprecated: true
      description: |
        Finds ProfileEntries with pagination params and filters

        - can search on `name`
        - can filter on `page`,`name` and `parent_id`

        Warning: Since Bonita 7.13, ProfileEntry is deprecated
      operationId: searchProfileEntries
      parameters:
        - $ref: '#/components/parameters/pageIndex'
        - $ref: '#/components/parameters/pageCount'
        - $ref: '#/components/parameters/pageFilter'
        - $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/ProfileEntry'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
    post:
      tags:
        - ProfileEntry
      summary: Create the ProfileEntry
      deprecated: true
      description: |
        Create the ProfileEntry
        Warning: Since Bonita 7.13, ProfileEntry is deprecated
      operationId: createProfileEntry
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProfileEntryCreateRequest'
        description: Partial ProfileEntry description
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProfileEntry'
          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
  /API/portal/profileEntry/{id}:
    get:
      tags:
        - ProfileEntry
      summary: Finds the ProfileEntry by ID
      deprecated: true
      description: |
        Returns the single ProfileEntry for the given ID
        Warning: Since Bonita 7.13, ProfileEntry is deprecated
      operationId: getProfileEntryById
      parameters:
        - description: ID of the ProfileEntry 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/ProfileEntry'
        '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:
        - ProfileEntry
      summary: Update the ProfileEntry by ID
      deprecated: true
      description: |
        Update the ProfileEntry for the given ID
        Warning: Since Bonita 7.13, ProfileEntry is deprecated
      operationId: updateProfileEntryById
      parameters:
        - description: ID of the ProfileEntry 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/ProfileEntryUpdateRequest'
        description: Partial ProfileEntry 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:
        - ProfileEntry
      summary: Delete the ProfileEntry by ID
      deprecated: true
      description: |
        Delete the single ProfileEntry for the given ID
      operationId: deleteProfileEntryById
      parameters:
        - description: ID of the ProfileEntry 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/portal/profileMember:
    get:
      tags:
        - ProfileMember
      summary: Finds ProfileMembers
      description: |
        Finds ProfileMembers with pagination params and filters

        **Filter `member_type` is mandatory**

        You can filter on `profile_id`, `user_id`, `role_id` and `group_id`
      operationId: searchProfileMembers
      parameters:
        - $ref: '#/components/parameters/pageIndex'
        - $ref: '#/components/parameters/pageCount'
        - $ref: '#/components/parameters/pageFilter'
      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/ProfileMember'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
    post:
      tags:
        - ProfileMember
      summary: Create the ProfileMember
      description: |
        Create the ProfileMember
      operationId: createProfileMember
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProfileMemberCreateRequest'
        description: Partial ProfileMember description
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProfileMember'
          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
  /API/portal/profileMember/{id}:
    get:
      tags:
        - ProfileMember
      summary: Finds the ProfileMember by ID
      description: |
        Returns the single ProfileMember for the given ID
      operationId: getProfileMemberById
      parameters:
        - description: ID of the ProfileMember to return
          in: path
          name: id
          required: true
          schema:
            type: string
      responses:
        '200':
          description: 'Success '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProfileMember'
        '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:
        - ProfileMember
      summary: Delete the ProfileMember by ID
      description: |
        Delete the single ProfileMember for the given ID
      operationId: deleteProfileMemberById
      parameters:
        - description: ID of the ProfileMember 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/portal/theme:
    post:
      tags:
        - Theme
      summary: Create the Theme
      deprecated: true
      description: |
        Create the Theme
        Warning: Since Bonita 7.13, theme management is deprecated
      operationId: createTheme
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ThemeCreateRequest'
        description: Partial Theme description
        required: true
      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'
      x-codegen-request-body-name: body
  /API/portal/theme/unusedId:
    put:
      tags:
        - Theme
      summary: Restore default Theme
      deprecated: true
      description: |
        Restore the default theme
        Warning: Since Bonita 7.13, theme management is deprecated
      operationId: restoreTheme
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ThemeRestoreRequest'
        description: Partial Theme 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'
  /API/system/i18nlocale:
    get:
      tags:
        - I18nlocale
      summary: Finds I18nlocales
      description: |
        List the available I18nlocales with pagination params and filters
      operationId: searchI18nlocales
      parameters:
        - $ref: '#/components/parameters/pageIndex'
        - $ref: '#/components/parameters/pageCount'
      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/I18nlocale'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/system/i18ntranslation:
    get:
      tags:
        - I18ntranslation
      summary: Finds I18ntranslations
      description: |
        List the available I18ntranslations with pagination params and filters
        Returns all translations of the product. If a locale is specified in the filter, that translation for that locale are returned.
        If no locale is specified, the translations in English are returned.

        You can filter on `locale`
      operationId: searchI18ntranslations
      parameters:
        - $ref: '#/components/parameters/pageIndex'
        - $ref: '#/components/parameters/pageCount'
        - $ref: '#/components/parameters/pageFilter'
      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/I18ntranslation'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/system/session/unusedId:
    get:
      tags:
        - Session
      summary: Get the current user session
      description: |
        Returns session information for the current user
      operationId: getSession
      x-codeSamples:
        - lang: Shell
          label: Curl
          source: |
            curl -b saved_cookies.txt -X GET --url 'http://localhost:8080/bonita/API/system/session/unusedId'
      responses:
        '200':
          description: 'Success '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Session'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/system/tenant/{id}:
    get:
      tags:
        - SystemTenant
      summary: Get the current Tenant
      deprecated: true
      description: |
        Pause and resume tenant services in order to do maintenance on a tenant.

        Warning: since Bonita 9.0.0, /API/system/tenant API resource is deprecated. Use /API/system/maintenance instead to retrieve the maintenance state.
      operationId: getSystemTenant
      parameters:
        - description: ID of the tenant
          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/SystemTenant'
        '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:
        - SystemTenant
      summary: Update the current Tenant
      deprecated: true
      description: |
        Pause or resume the current tenant.

        Warning: since Bonita 9.0.0, /API/system/tenant API resource is deprecated. Use /API/system/maintenance instead to enable the maintenance mode (same behavior as pausing the tenant).
      operationId: updateSystemTenant
      parameters:
        - description: ID of the tenant
          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/TenantPauseRequest'
        description: Partial SystemTenant 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'
  /API/system/maintenance:
    get:
      tags:
        - Maintenance
      summary: Get the maintenance details
      description: |
        Returns maintenance details of the platform
      operationId: getMaintenanceDetails
      x-codeSamples:
        - lang: Shell
          label: Curl
          source: |
            curl -b saved_cookies.txt -X GET --url 'http://localhost:8080/bonita/API/system/maintenance'
      responses:
        '200':
          description: 'Success '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceDetails'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
    put:
      tags:
        - Maintenance
      summary: Update the maintenance details
      description: |
        Update maintenance details
      operationId: updateMaintenanceDetails
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MaintenanceDetails'
        description: Maintenance details; One or all attributes can be updated
        required: true
      responses:
        '200':
          description: 'Success '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MaintenanceDetails'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/system/information:
    get:
      tags:
        - Information
      summary: Get the system information
      description: |
        Returns system information details of the platform.
        Requires to be logged in as a user having the Admin profile.
      operationId: getSystemInformation
      x-codeSamples:
        - lang: Shell
          label: Curl
          source: |
            curl -b saved_cookies.txt -X GET --url 'http://localhost:8080/bonita/API/system/information'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SystemInformation'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/system/license/unusedid:
    get:
      tags:
        - License
      summary: Get the current server license
      description: |
        Returns license information for the current server. Requires to be logged in as a tenant technical administrator.
        The same information can be retrieved as a user having simply the Admin profile through the API `GET /system/information`.
      operationId: getLicense
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/License'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /APIv2/service/install:
    post:
      tags:
        - Application
      summary: Upload an application configuration file
      deprecated: true
      description: |
        ![edition](https://img.shields.io/badge/edition-entreprise-blue)

        Upload an application configuration file in the `bconf` format.

        Warning: as of 9.0.0, uploading an application configuration file using this API is deprecated.
      operationId: uploadApplicationConfiguration
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - configuration
              properties:
                configuration:
                  type: string
                  format: binary
      responses:
        '200':
          description: 'Success: the temp file name as present on the server'
          content:
            text/plain:
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /API/tenant/bdm:
    get:
      tags:
        - BDM
      summary: Get the BDM
      description: |
        Returns the current BDM. Make this call to get the status the BDM.
      operationId: getBdm
      responses:
        '200':
          description: 'Success '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Bdm'
        '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'
    post:
      tags:
        - BDM
      summary: Install a BDM
      deprecated: true
      description: |
        Install a BDM

        Warning: as of 9.0.0, importing a BDM using this API is deprecated.
      operationId: installBDM
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BDMInstallRequest'
      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'
  /portal/organizationUpload:
    post:
      tags:
        - Organization
        - Upload
      summary: Import an organization
      description: |
        Upload organization
      operationId: uploadOrganization
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FileUploadRequest'
      responses:
        '200':
          description: 'Success '
          content:
            text/plain:
              schema:
                type: string
                maxLength: 250
                pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
                example: tmp_organization_data.xml
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /services/organization/import:
    post:
      tags:
        - Organization
      summary: Import an organization
      description: |
        Import an organization
      operationId: importOrganization
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                organizationDataUpload:
                  type: string
                  description: Uploaded file
                importPolicy:
                  type: string
                  description: Import policy
      responses:
        '200':
          description: 'Success '
        '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'
  /portal/profilesUpload:
    post:
      tags:
        - Profile
        - Upload
      summary: Upload profiles
      deprecated: true
      description: |
        ![edition](https://img.shields.io/badge/edition-entreprise-blue)

        Upload profiles

        Warning: as of 9.0.0, uploading profiles using the portal is deprecated.
      operationId: uploadprofiles
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FileUploadRequest'
      responses:
        '200':
          description: 'Success '
          content:
            text/plain:
              schema:
                type: string
                maxLength: 250
                pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
                example: tmp_profiles_data.xml
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
  /services/profile/import:
    post:
      tags:
        - Profile
      summary: Import profiles
      deprecated: true
      description: |
        Import profiles

        Warning: as of 9.0.0, importing profiles using this service is deprecated.
      operationId: importProfiles
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              properties:
                profilesDataUpload:
                  type: string
                  description: Uploaded file
                importPolicy:
                  type: string
                  description: Import policy
      responses:
        '200':
          description: 'Success '
        '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/formFileUpload:
    post:
      tags:
        - FormFileUpload
      summary: Upload a file
      description: |
        Supports any type of files, used to upload a file before submitting a process or task form with a document in its contract
      operationId: formFileUpload
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/FormFileUploadRequest'
      responses:
        '200':
          description: Success
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/FormFileUploadResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        5XX:
          $ref: '#/components/responses/ServerError'
components:
  securitySchemes:
    bonita_auth:
      name: JSESSIONID
      description: |
        To call the REST API, you must first log on with a user registered in the Engine database. Please refer to the __[Login API](#operation/login)__ operations section.
      type: apiKey
      in: cookie
    bonita_token:
      name: X-Bonita-API-Token
      description: |
        To call the REST API, you must first log on with a user registered in the Engine database. Please refer to the __[Login API](#operation/login)__ operations section.
      type: apiKey
      in: header
  schemas:
    LoginRequest:
      type: object
      required:
        - username
        - password
      properties:
        username:
          type: string
          description: the username
        password:
          type: string
          format: password
          description: the password
        tenant:
          type: string
          description: the user tenant
        redirect:
          type: string
          default: 'false'
          description: '"true" or "false". "false" indicates that the service should not redirect to Bonita Portal (after a successful login) or to the login page (after a login failure).'
        redirectURL:
          type: string
          default: ''
          description: the URL of the page to be displayed after login
          nullable: true
      example:
        username: install
        password: install
        redirect: 'false'
        redirectURL: null
    Error:
      type: object
      additionalProperties: true
      properties:
        message:
          type: string
          description: The error message
        exception:
          type: string
          description: The exception type
        explanations:
          description: Further details on the error
          type: array
          items:
            type: string
    AbstractApplication:
      type: object
      properties:
        createdBy:
          description: Author user ID
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        creationDate:
          description: creation date of the application
          type: string
        description:
          description: description of the application
          type: string
        displayName:
          description: display name of the application
          type: string
        id:
          description: id of the application
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        lastUpdateDate:
          description: last update date of the application
          type: string
        profileId:
          description: profile authorized to access this application
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        token:
          description: token of the application used to build the application URL
          type: string
        updatedBy:
          description: Last updating user ID
          type: string
        version:
          description: version of the application
          type: string
        state:
          description: application state
          type: string
          enum:
            - ACTIVATED
            - DEACTIVATED
        visibility:
          description: visibility of the Application. This value is purely indicative, changing it in the application object won't change the accessibility to the actual application.
          enum:
            - ALL
            - TECHNICAL_USER
            - RESTRICTED
          x-enumDescriptions:
            ALL: Everyone can use the application
            TECHNICAL_USER: Only the technical user can use the application
            RESTRICTED: Access to the application is determined by the user profile
        editable:
          description: Indicates whether the application can be modified
          type: boolean
    ApplicationLink:
      title: Application Link
      description: Contains the meta information of a Bonita Living Application Link.
      allOf:
        - type: object
          properties:
            link:
              description: true for an application link
              type: boolean
              enum:
                - true
        - $ref: '#/components/schemas/AbstractApplication'
        - type: object
          description: Contains the meta information of a Bonita Living Application Link.
      example:
        id: '306'
        link: 'true'
        creationDate: '1411548289900'
        icon: ''
        createdBy": '1'
        profileId: '2'
        description: My application link description
        token: myadvapp
        state: ACTIVATED
        displayName: My app link
        updatedBy: '1'
        visibility: ALL
        editable: 'true'
        lastUpdateDate: '1411548289900'
        version: '1.0'
    LegacyApplication:
      title: Legacy application
      description: Contains the meta information of a legacy Bonita Living Application.
      allOf:
        - type: object
          properties:
            link:
              description: false for a legacy application
              type: boolean
              enum:
                - false
        - $ref: '#/components/schemas/AbstractApplication'
        - type: object
          description: Contains the meta information of a legacy Bonita Living Application.
          properties:
            homePageId:
              description: id of the application page used as the home page
              type: string
              maxLength: 250
              pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
            layoutId:
              description: id of the layout used by the application
              type: string
              maxLength: 250
              pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
            themeId:
              description: id of the theme used by the application
              type: string
              maxLength: 250
              pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
      example:
        id: '305'
        link: 'false'
        creationDate: '1411548289900'
        icon: ''
        createdBy": '1'
        profileId: '2'
        description: My application description
        token: myapp
        state: DEACTIVATED
        displayName: My app
        updatedBy: '1'
        visibility: ALL
        editable: 'true'
        lastUpdateDate: '1411548289900'
        version: '1.0'
        homePageId: '26'
        themeId: '1'
        layoutId: '3'
    Application:
      oneOf:
        - $ref: '#/components/schemas/ApplicationLink'
        - $ref: '#/components/schemas/LegacyApplication'
    CreateApplicationRequest:
      type: object
      properties:
        link:
          description: true for an application link, false for a legacy application
          type: boolean
          default: 'false'
          enum:
            - true
            - false
        description:
          description: description of the application
          type: string
        displayName:
          description: display name of the application
          type: string
        profileId:
          description: profile authorized to access this application
          type: string
        token:
          description: token of the application used to build the application URL
          type: string
        version:
          description: version of the application
          type: string
      example:
        link: 'false'
        version: '1.0'
        profileId: '2'
        token: myapp
        displayName: My app
        description: My application description
    ApplicationUpdateRequest:
      type: object
      properties:
        description:
          description: description of the application
          type: string
        displayName:
          description: display name of the application
          type: string
        profileId:
          description: profile authorized to access this application
          type: string
        token:
          description: token of the application used to build the application URL
          type: string
        version:
          description: version of the application
          type: string
        themeId:
          description: |
            ![edition](https://img.shields.io/badge/edition-entreprise-blue)

            theme id for the application
          type: string
        layoutId:
          description: |
            ![edition](https://img.shields.io/badge/edition-entreprise-blue)

            layout id for the application
          type: string
      example:
        version: '1.0'
        profileId: '2'
        token: myapp
        displayName: My app
        description: My application description
        themeId: '2'
        layoutId: '17'
    FileUploadRequest:
      type: object
      description: The file to upload
      properties:
        file:
          type: string
          format: binary
    ApplicationMenu:
      type: object
      properties:
        id:
          description: id of the application menu item
          type: string
        parentMenuId:
          description: id of the parent menu of this menu item, or -1 for a top-level item
          type: string
        applicationPageId:
          description: id of the application page targeted by this menu item, or -1 if there is no targeted page (that is, the item is a parent menu)
          type: string
        applicationId:
          description: id of the application related to this menu item
          type: string
        menuIndex:
          description: index of the menu item
          type: string
        displayName:
          description: label to display for this menu in the application navigation bar or menu
          type: string
      example:
        id: '8'
        applicationId: '1'
        applicationPageId: '5'
        menuIndex: '1'
        parentMenuId: '-1'
        displayName: menuLabel
    ApplicationMenuCreateRequest:
      type: object
      properties:
        displayName:
          description: display name of the application menu
          type: string
        applicationPageId:
          description: the application menu page ID
          type: string
        menuIndex:
          description: the application menu index
          type: string
        parentMenuId:
          description: the application parent menu ID
          type: string
      example:
        displayName: My updated label
    ApplicationMenuUpdateRequest:
      type: object
      properties:
        parentMenuId:
          description: id of the parent menu of this menu item, or -1 for a top-level item
          type: string
        applicationPageId:
          description: id of the application page targeted by this menu item, or -1 if there is no targeted page (that is, the item is a parent menu)
          type: string
        applicationId:
          description: id of the application related to this menu item
          type: string
        menuIndex:
          description: index of the menu item
          type: string
        displayName:
          description: label to display for this menu in the application navigation bar or menu
          type: string
      example:
        displayName: menuLabel
        applicationId: '1'
        applicationPageId: '5'
        menuIndex: '1'
        parentMenuId: '-1'
    ApplicationPage:
      type: object
      properties:
        id:
          description: id of the application page item
          type: string
        token:
          description: 'token use to access the page using a URL : ../appName/pageToken/'
          type: string
        applicationId:
          description: id of the application related to this page
          type: string
        pageId:
          description: id of the custom page to display
          type: string
      example:
        id: '9876'
        token: myPage
        applicationId: '1234'
        pageId: '5678'
    ApplicationPageCreateRequest:
      type: object
      properties:
        token:
          description: 'token use to access the page using a URL : ../appName/pageToken/'
          type: string
        applicationId:
          description: id of the application related to this page
          type: string
        pageId:
          description: id of the custom page to display
          type: string
      example:
        token: myPage
        applicationId: '1234'
        pageId: '5678'
    AnyValue:
      nullable: true
      type: object
      description: Can be any value - string, number, boolean, array or object or null depending on your query.
    BusinessData:
      type: object
      additionalProperties: true
      description: |
        Retrieve business data value. Depending on the object attribute loading policy,
        the API returns either the full object in JSON representation or the HATEOAS links to the object attributes.

        Long attributes use a string representation added in 7.0.1 as a workaround for the JavaScript integer spectrum issue.

        Representation of object attributes with an _always load_ policy:

        ```json
        {
          "persistenceId": _number_, // <-- deprecated
          "persistenceId_string": "_number_"
          "persistenceVersion": _number_, // <-- deprecated
          "persistenceVersion_string": "_number_"
          "attributeName":_attributeType_
          ...
        }
        ```

        The string representation added in 7.0.1 for Long attributes is a workaround for the JavaScript integer spectrum issue.

        HATEOAS representation of object attribute with a _load when needed_ policy:
        ```json
        "links":[
           {
           "rel":_string_
           "href":_uri_
           }
        ]
        ```
      properties:
        persistenceId_string:
          description: Id of the business data object
          type: string
        persistenceVersion_string:
          description: Version of the business data object instance
          type: string
      example:
        persistenceId_string: '1'
        persistenceVersion_string: '0'
        contractName: contract for Netcom3
        terms:
          - persistenceId: 1
            persistenceId_string: '1'
            persistenceVersion: 0
            persistenceVersion_string: '0'
            termName: term Name
          - persistenceId: 2
            persistenceId_string: '2'
            persistenceVersion: 0
            persistenceVersion_string: '0'
            termName: term Name
        client:
          persistenceId: 13
          persistenceId_string: '13'
          persistenceVersion: 0
          persistenceVersion_string: '0'
          clientName: client name
          description: n/a
          industry:
            - persistenceId: 2
              persistenceId_string: '2'
              persistenceVersion: 0
              persistenceVersion_string: '0'
              industryName: Services
            - persistenceId: 3
              persistenceId_string: '3'
              persistenceVersion: 0
              persistenceVersion_string: '0'
              industryName: Software
    TenantResourceState:
      description: Tenant resource state (BDM, BDM access control, ...)
      type: string
      enum:
        - INSTALLING
        - INSTALLED
    BDMAccessControl:
      type: object
      properties:
        id:
          description: Id of the BDM access control
          type: string
        name:
          description: BDM access control name
          type: string
        state:
          $ref: '#/components/schemas/TenantResourceState'
        lastUpdatedBy:
          description: 'If `lastUpdatedBy: -1` it means that the access control were last installed or updated by tenant_technical_user.'
          type: string
        lastUpdateDate:
          description: Last date when the access control were installed or updated.
          type: string
      example:
        id: 4090
        name: bdm_access_control.xml
        type: BDM_ACCESS_CONTROL
        state: INSTALLED
        lastUpdatedBy: 4
        lastUpdateDate: '2018-01-17T17:05:36.671Z'
    ActivityType:
      type: string
      description: the activity type (string)
      enum:
        - AUTOMATIC_TASK
        - HUMAN_TASK
        - USER_TASK
        - MANUAL_TASK
        - LOOP_ACTIVITY
        - MULTI_INSTANCE_ACTIVITY
        - CALL_ACTIVITY
    ActivityState:
      type: string
      description: the current state of the activity
      enum:
        - failed
        - initializing
        - ready
        - executing
        - completing
        - completed
        - waiting
        - skipped
        - cancelled
        - aborted
        - cancelling subtasks
        - aborting activity with boundary
        - completing activity with boundary
    ActivityPriority:
      type: string
      description: the priority of the current activity
      enum:
        - highest
        - above_normal
        - normal
        - under_normal
        - lowest
    Activity:
      type: object
      description: |
        Use this resource to retrieve activities (human or service tasks), call activities, and subprocesses currently running on the platform.
        It enables you to perform maintenance tasks like skipping or replaying a failed task and modifying variables.
      properties:
        id:
          type: string
          description: the activity id
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        type:
          $ref: '#/components/schemas/ActivityType'
        name:
          type: string
          description: the activity technical name
        displayName:
          type: string
          description: the human readable activity name
        description:
          type: string
          description: the activity description
        displayDescription:
          type: string
          description: the human readable activity description
        state:
          $ref: '#/components/schemas/ActivityState'
        reached_state_date:
          type: string
          description: the date ('yyyy-MM-dd HH:mm:ss.SSS') when this activity reached the current state, for example '2014-10-17 16:05:42.626'
        last_update_date:
          type: string
          description: the date ('yyyy-MM-dd HH:mm:ss.SSS') when this activity was last updated, for example '2014-10-17 16:05:42.626)
        dueDate:
          type: string
          description: the date ('yyyy-MM-dd HH:mm:ss.SSS') when this activity is due, for example '2014-10-17 16:05:42.626'
        priority:
          $ref: '#/components/schemas/ActivityPriority'
        processId:
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
          description: the process definition id of the process instance which define this activity
        parentCaseId:
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
          description: the immediate containing process instance id (long, a.k.a process instance id)
        rootCaseId:
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
          description: the top/root process instance id (long, a.k.a case id). In case of an event sub process, `parentCaseId` will the id of the process instance called while `rootCaseId` will be the one from the caller process instance
        rootContainerId:
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
          description: same as rootCaseId
        executedBy:
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
          description: the id of the user who performed this activity. The activity has to be a human task otherwise its value will be 0
        executedBySubstitute:
          type: string
          description: the id of the user who did actually performed the activity when it has been done in the name of someone else. Value is 0 otherwise
        actorId:
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
          description: the id of the actor that can execute this activity, null otherwise
        assigned_id:
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
          description: the user id that this activity is assigned to, or 0 if it is unassigned
        assigned_date:
          type: string
          pattern: ^\d{4}-\d{2}-\d{2}\s\d+:\d+:\d+\.\d+$
          description: the date ('yyyy-MM-dd HH:mm:ss.SSS') when the current activity was assigned, for example '2014-10-17 16:05:42.626'
      example:
        displayDescription: validate expense request
        executedBySubstitute: '0'
        caseId: '76539'
        parentCaseId: '68743'
        rootCaseId: '65879'
        processId: '7012'
        rootContainerId: '7000'
        state: completed
        type: the activity type as a string
        assigned_id: '304'
        assigned_date: '2014-10-17 16:05:42.626'
        id: '809764'
        executedBy: '0'
        priority: the priority of the current activity as a string
        actorId: '50'
        description: In this step a manager reviews and validates an expense request.
        name: Validate
        reached_state_date: '2014-10-18 10:37:05.643'
        displayName: Validate expense request
        dueDate: '2014-10-21 16:05:42.626'
        last_update_date: '2014-10-18 10:37:05.643'
    ActivityUpdateRequest:
      type: object
      properties:
        variables:
          description: |
            Activity variables to update.

            **Note**: if there is no data with the specified name in the activity,
            the update will be applied to the process data if a variable with the specified name exists.

            **Note**: if the task definition includes a connector that is executed on finish and updates the value of a variable, the value set by the REST API call is overwritten.
          type: string
        state:
          description: |
            The target state of the activity
            - Execute a task: `completed`
            - Skip activity: `skipped` - Make this call after all failed connectors have been reset ![edition](https://img.shields.io/badge/edition-entreprise-blue)
            - Replay activity: `replay`
          type: string
      example:
        variables: '[{"name":"foo","value":"bar"}]'
        state: completed
    ArchivedActivity:
      type: object
      description: Use this resource to retrieve finished activities (human or service tasks), call activities, and subprocesses.
      properties:
        id:
          type: string
          description: the archived activity id
        type:
          $ref: '#/components/schemas/ActivityType'
        name:
          type: string
          description: the archived activity technical name
        displayName:
          type: string
          description: the human readable archived activity name
        description:
          type: string
          description: the archived activity description
        displayDescription:
          type: string
          description: the human readable archived activity description
        state:
          $ref: '#/components/schemas/ActivityState'
        reached_state_date:
          type: string
          description: the date ('yyyy-MM-dd HH:mm:ss.SSS') when this archived activity reached the current state, for example '2014-10-17 16:05:42.626'
        last_update_date:
          type: string
          description: the date ('yyyy-MM-dd HH:mm:ss.SSS') when this archived activity was last updated, for example '2014-10-17 16:05:42.626)
        dueDate:
          type: string
          description: the date ('yyyy-MM-dd HH:mm:ss.SSS') when this archived activity is due, for example '2014-10-17 16:05:42.626'
        priority:
          $ref: '#/components/schemas/ActivityPriority'
        processId:
          type: string
          description: the process definition id of the process instance which define this archived activity
        parentCaseId:
          type: string
          description: the immediate containing process instance id (a.k.a case id)
        rootCaseId:
          type: string
          description: the top/root process instance id (a.k.a case id). In case of an "event sub process", `parentCaseId` will the id of the process instance called while `rootCaseId` will be the one from the caller case
        rootContainerId:
          type: string
          description: same as `rootCaseId`
        executedBy:
          type: string
          description: the id of the user who performed this archived activity. The archived activity has to be a human task otherwise its value will be 0
        executedBySubstitute:
          type: string
          description: the id of the user who did actually performed the archived activity when it has been done in the name of someone else. Value is 0 otherwise
        actorId:
          type: string
          description: the id of the actor that can execute this archived activity, null otherwise
        assigned_id:
          type: string
          description: the user id that this archived activity is assigned to, or 0 if it is unassigned
        assigned_date:
          type: string
          description: the date ('yyyy-MM-dd HH:mm:ss.SSS') when the current archived activity was assigned, for example '2014-10-17 16:05:42.626'
        sourceObjectId:
          type: string
          description: the original id of the archived activity before it was archived
        archivedDate:
          type: string
          description: the date (('yyyy-MM-dd HH:mm:ss.SSS')) when this archived activity was archived, for example '2014-10-17 16:05:42.626'
    AbstractTask:
      type: object
      properties:
        id:
          description: the task id
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        type:
          description: the task type
          type: string
        name:
          description: the task technical name
          type: string
        displayName:
          description: the human readable task name
          type: string
        description:
          description: the task description
          type: string
        displayDescription:
          description: the human readable task description
          type: string
        state:
          $ref: '#/components/schemas/ActivityState'
        reached_state_date:
          description: the date ('yyyy-MM-dd HH:mm:ss.SSS') when this task reached the current state for example '2014-10-17 16:05:42.626'
          type: string
          pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$
        last_update_date:
          description: the date ('yyyy-MM-dd HH:mm:ss.SSS') when this task was last updated for example '2014-10-17 16:05:42.626)
          type: string
          pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$
        dueDate:
          description: the date ('yyyy-MM-dd HH:mm:ss.SSS') when this task is due for example '2014-10-17 16:05:42.626'
          type: string
          pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$
        priority:
          description: the priority (string) of the current task
          type: string
        processId:
          description: the process definition id of the process instance which define this task
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        parentCaseId:
          description: the immediate containing process instance id (case id)
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        parentTaskId:
          description: the parent Task id
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        rootCaseId:
          description: the top/root process instance id (case id). In case of an "event sub process" `parentCaseId` will the id of the process instance called while `rootCaseId` will be the one from the caller process instance
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        rootContainerId:
          description: same as rootCaseId
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        executedBy:
          description: the id of the user who performed this task. The task has to be a human task otherwise its value will be 0
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        executedBySubstitute:
          description: the id of the user who did actually performed the task when it has been done in the name of someone else. Value is 0 otherwise
          type: string
        actorId:
          description: the id of the actor that can execute this task null otherwise
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        assigned_id:
          description: the user id that this task is assigned to or 0 if it is unassigned
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        assigned_date:
          description: the date ('yyyy-MM-dd HH:mm:ss.SSS') when the current task was assigned for example '2014-10-17 16:05:42.626'
          type: string
          pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$
        isTerminal:
          description: True if the task is the last one in a flow
          type: boolean
      example:
        displayDescription: This is my subtask
        executedBySubstitute: 1
        processId: 8367255255370238000
        parentCaseId: 1
        state: ready
        rootContainerId: 1
        type: MANUAL_TASK
        assigned_id: 1
        assigned_date: '2014-12-01 17:39:53.784'
        id: 40006
        executedBy: 1
        caseId: 1
        priority: above_normal
        actorId: 1
        description: This is my subtask
        name: My subtask
        reached_state_date: '2014-12-01 17:39:53.784'
        rootCaseId: 1
        displayName: My subtask
        parentTaskId: 40001
        dueDate: '2014-12-25 00:00:00.000'
        last_update_date: '2014-12-01 17:39:53.784'
    HumanTask:
      allOf:
        - $ref: '#/components/schemas/AbstractTask'
        - type: object
          description: |
            A Human task is Manual task or a User task. A User task is a task that can be done by a user.
            A Manual task is a subtask of a user task, and is also done by a user.
          example:
            displayDescription: null
            executedBySubstitute: 0
            processId: 5826139717723008000
            state: ready
            rootContainerId: 1002
            type: USER_TASK
            assigned_id: null
            assigned_date: null
            id: 20004
            executedBy: 0
            caseId: 1002
            priority: normal
            actorId: 102
            description: null
            name: Analyse case
            reached_state_date: '2014-09-05 11:11:30.808'
            displayName: Analyse case
            dueDate: '2014-09-05 12:11:30.775'
            last_update_date: '2014-09-05 11:11:30.808'
    HumanTaskUpdateRequest:
      type: object
      properties:
        assigned_id:
          description: The id of the user to assign this Human task to
          type: string
        state:
          description: state of the HumanTask
          type: string
      example:
        assigned_id: '1234'
        state: new_state
    ManualTask:
      allOf:
        - $ref: '#/components/schemas/AbstractTask'
        - type: object
          description: Use the manualTask resource to access process subtasks. For archived subtasks use archivedManualTask.
          example:
            displayDescription: This is my subtask
            executedBySubstitute: 1
            processId: 8367255255370238000
            parentCaseId: 1
            state: ready
            rootContainerId: 1
            type: MANUAL_TASK
            assigned_id: 1
            assigned_date: '2014-12-01 17:39:53.784'
            id: 40006
            executedBy: 1
            caseId: 1
            priority: above_normal
            actorId: 1
            description: This is my subtask
            name: My subtask
            reached_state_date: '2014-12-01 17:39:53.784'
            rootCaseId: 1
            displayName: My subtask
            parentTaskId: 40001
            dueDate: '2014-12-25 00:00:00.000'
            last_update_date: '2014-12-01 17:39:53.784'
    ManualTaskCreateRequest:
      type: object
      properties:
        parentTaskId:
          description: The parent task ID
          type: string
        state:
          description: The task state
          type: string
        name:
          description: The task name
          type: string
        description:
          description: The task description
          type: string
        priority:
          description: The task priority
          type: string
        dueDate:
          description: The task due date
          type: string
        assigned_id:
          description: The id of the user assigned to the task
          type: string
      example:
        parentTaskId: '40001'
        state: ready
        name: My subtask
        description: This is my subtask
        priority: above_normal
        dueDate: '2014-12-25 00:00:00.000'
        assigned_id: '1'
    ManualTaskUpdateRequest:
      type: object
      properties:
        state:
          description: State of the ManualTask (completed)
          type: string
        executedBy:
          description: Id of the task executor
          type: string
      example:
        state: completed
        executedBy: '1'
    Task:
      allOf:
        - $ref: '#/components/schemas/AbstractTask'
        - type: object
          description: A process task
          example:
            displayDescription: null
            executedBySubstitute: 0
            processId: 9132099022957911000
            parentCaseId: 5
            state: ready
            rootContainerId: 5
            type: USER_TASK
            assigned_id: 4
            assigned_date: '2014-12-01 16:22:54.685'
            id: 10
            executedBy: 0
            caseId: 5
            priority: normal
            actorId: 6
            description: null
            name: Step1
            reached_state_date: '2014-12-01 16:22:50.814'
            rootCaseId: 5
            displayName: Step1
            dueDate: '2014-12-01 17:22:50.809'
            last_update_date: '2014-12-01 16:22:50.814'
    UpdateTaskByIdRequest:
      type: object
      additionalProperties: true
      properties:
        state:
          description: state of the Task (completed)
          type: string
        displayName:
          description: display name of the Task
          type: string
    UserTask:
      allOf:
        - $ref: '#/components/schemas/AbstractTask'
        - type: object
          description: An executable task that is performed by a user.
          example:
            displayDescription: ''
            executedBySubstitute: 0
            processId: 5826139717723008000
            state: ready
            rootContainerId: 1002
            type: USER_TASK
            assigned_id: null
            assigned_date: ''
            id: 20004
            executedBy: 0
            caseId: 1002
            priority: normal
            actorId: 102
            description: ''
            name: Analyse case
            reached_state_date: '2014-09-05 11:11:30.808'
            displayName: Analyse case
            dueDate: '2014-09-05 12:11:30.775'
            last_update_date: '2014-09-05 11:11:30.808'
    UserTaskUpdateRequest:
      type: object
      properties:
        state:
          description: The UserTask state
          type: string
        assigned_id:
          description: The id of the user assign to  the UserTask
          type: string
      example:
        assigned_id: '1'
        state: skipped
    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
    ContractInputType:
      type: string
      description: the contract input type (string)
      enum:
        - TEXT
        - BOOLEAN
        - DATE
        - INTEGER
        - DECIMAL
        - BYTE_ARRAY
        - FILE
        - LONG
        - LOCALDATE
        - LOCALDATETIME
        - OFFSETDATETIME
    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'
    Contract:
      type: object
      properties:
        constraints:
          type: array
          items:
            $ref: '#/components/schemas/ContractConstraint'
        inputs:
          type: array
          items:
            $ref: '#/components/schemas/ContractInput'
    AbstractArchivedTask:
      allOf:
        - $ref: '#/components/schemas/AbstractTask'
        - type: object
          description: An Archived task is a task that has been archived
          properties:
            sourceObjectId:
              type: string
              description: the original id of the task before it was archived
              maxLength: 250
              pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
            archivedDate:
              description: the date ('yyyy-MM-dd HH:mm:ss.SSS') when the current task was assigned for example '2014-10-17 16:05:42.626'
              type: string
              pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$
    ArchivedHumanTask:
      allOf:
        - $ref: '#/components/schemas/AbstractArchivedTask'
        - type: object
          description: An Archived Human task is a User task or Manual task that has been archived
          example:
            displayDescription: ''
            executedBySubstitute: '0'
            processId: '5826139717723008213'
            state: skipped
            rootContainerId: '1002'
            type: USER_TASK
            assigned_id: '2'
            id: '240002'
            executedBy: '0'
            sourceObjectId: '20004'
            caseId: '1002'
            priority: normal
            actorId: '102'
            description: ''
            name: Analyse case
            reached_state_date: '2014-09-09 17:21:51.946'
            displayName: Analyse case
            archivedDate: '2014-09-09 17:21:51.986'
            dueDate: '2014-09-05 12:11:30.775'
            last_update_date: '2014-09-09 17:21:51.946'
    ArchivedManualTask:
      allOf:
        - $ref: '#/components/schemas/AbstractArchivedTask'
        - type: object
          description: Use the archivedManualTask resource to access archived process subtasks.
          example:
            displayDescription: this is a test
            executedBySubstitute: 1
            processId: 8367255255370238000
            parentCaseId: 1
            state: completed
            rootContainerId: 1
            type: MANUAL_TASK
            assigned_id: 1
            id: 160007
            sourceObjectId: 40003
            executedBy: 1
            caseId: 1
            priority: highest
            actorId: 1
            description: this is a test
            name: myTest
            reached_state_date: '2014-12-01 17:20:47.200'
            rootCaseId: 1
            archivedDate: '2014-12-01 17:20:47.217'
            displayName: myTest
            parentTaskId: 40001
            dueDate: '2014-12-17 00:00:00.000'
            last_update_date: '2014-12-01 17:20:47.200'
    ArchivedUserTask:
      allOf:
        - $ref: '#/components/schemas/AbstractArchivedTask'
        - type: object
          description: An executable task that has been performed by a user or skipped and is archived.
          example:
            displayDescription: null
            executedBySubstitute: 0
            processId: 5826139717723008000
            state: skipped
            rootContainerId: 1002
            type: USER_TASK
            assigned_id: 2
            id: 240002
            executedBy: 0
            caseId: 1002
            priority: normal
            actorId: 102
            description: null
            name: Analyse case
            reached_state_date: '2014-09-09 17:21:51.946'
            displayName: Analyse case
            archivedDate: '2014-09-09 17:21:51.986'
            dueDate: '2014-09-05 12:11:30.775'
            last_update_date: '2014-09-09 17:21:51.946'
    ArchivedTask:
      allOf:
        - $ref: '#/components/schemas/AbstractArchivedTask'
        - type: object
          description: Use the archived task resource to get information about archived tasks.
          example:
            displayDescription: null
            executedBySubstitute: 4
            processId: 9132099022957911000
            parentCaseId: 5
            state: completed
            rootContainerId: 5
            type: USER_TASK
            assigned_id: 4
            id: 9
            sourceObjectId: 10
            executedBy: 4
            caseId: 5
            priority: normal
            actorId: 6
            description: null
            name: Step1
            reached_state_date: '2014-12-01 16:24:32.457'
            rootCaseId: 5
            archivedDate: '2014-12-01 16:24:32.460'
            displayName: Step1
            dueDate: '2014-12-01 17:22:50.809'
            last_update_date: '2014-12-01 16:24:32.457'
    ActivityVariable:
      type: object
      description: This resource enables you to retrieve the value of a specific variable name for a specific process instance (or case). Only persistent variables are concerned by this resource, not transient variables.
      properties:
        tenantId:
          description: The ID of the tenant where the current user is logged in (technical information)
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        tenantId_string:
          description: number (since 7.0.1)
          type: string
        id:
          description: The identifier of the variable
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        id_string:
          description: number (since 7.0.1)
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        name:
          description: The name of the activity variable
          type: string
        description:
          description: The description of the variable if any
          type: string
        transientData:
          description: 'FALSE'
          type: string
        className:
          description: The fully qualified class name of the variable type
          type: string
        containerId:
          description: The ID of the activity containing this variable (same as the one passed as parameter) if the variable is defined at activity level or ID of the process instance if the variable is defined on the process
          type: string
        containerId_string:
          description: number (since 7.0.1)
          type: string
        containerType:
          description: ACTIVITY_INSTANCE | PROCESS_INSTANCE depending on whether the variable is defined at activity or process level.
          type: string
          enum:
            - ACTIVITY_INSTANCE
            - PROCESS_INSTANCE
        value:
          description: the value of this variable. The format of the value depends on the type of the variable
          type: string
      example:
        tenantId: 0
        tenantId_string: 0
        id: 5010
        id_string: 5010
        name: RequestValidationData
        description: null
        transientData: false
        className: java.lang.String
        containerId: 20004
        containerId_string: 20004
        containerType: ACTIVITY_INSTANCE
        value: Confirmed
    ArchivedActivityVariable:
      type: object
      description: This resource enables you to retrieve the value of a specific archived variable name for a specific case (or process instance). Only persistent variables are concerned by this resource, not transient variables.
      properties:
        name:
          description: The name of the archived  activity variable
          type: string
        description:
          description: The description of the variable if any
          type: string
        type:
          description: The fully qualified class name of the variable type
          type: string
        containerId:
          description: The ID of the activity containing this variable (same as the one passed as parameter)
          type: string
        containerType:
          description: ACTIVITY_INSTANCE
          type: string
        value:
          description: the value of this variable. The format of the value depends on the type of the variable
          type: string
        archivedDate:
          description: The date when this variable was archived. The date format is yyyy-MM-dd HH:mm:ss.SSS
          type: string
        sourcedObjectId:
          description: The id of the activity variable before it was archived
          type: string
      example:
        name: RequestValidationData
        description: null
        type: java.lang.String
        containerId: 20004
        containerType: ACTIVITY_INSTANCE
        value: Confirmed
        archivedDate: '2021-12-27 23:10:59.342'
        sourceObjectId: 42
    ProcessInstanceVariable:
      type: object
      description: A process instance  variable
      properties:
        description:
          description: Detailed description of the process instance variable, as set in the definition at design-time
          type: string
        name:
          description: name of the variable in the process instance
          type: string
        value:
          description: the current value of the process instance variable
          type: string
        case_id:
          description: ID of the process instance this variable belongs to
          type: string
        type:
          description: the Java type of the variable
          type: string
      example:
        description: ''
        name: myInvoiceAmount
        value: '14.2'
        case_id: 1
        type: java.lang.Float
    ArchivedProcessInstanceVariable:
      type: object
      description: An archived case variable
      properties:
        name:
          description: The name of the variable
          type: string
        description:
          description: Detailed description of the case variable, as set in the definition at design-time
          type: string
        type:
          description: The fully qualified class name of the variable type
          type: string
        case_id:
          description: ID of the case this variable belongs to
          type: string
        value:
          description: the value of this variable. The format of the value depends on the type of the variable
          type: string
        archivedDate:
          description: The date when this variable was archived. The date format is yyyy-MM-dd HH:mm:ss.SSS
          type: string
        sourcedObjectId:
          description: The id of the variable before it was archived
          type: string
      example:
        name: RequestValidationData
        description: null
        type: java.lang.String
        case_id: 20004
        value: Confirmed
        archivedDate: '2021-12-27 23:10:59.342'
        sourceObjectId: 42
    ProcessInstanceVariableUpdateRequest:
      type: object
      properties:
        type:
          description: the java class name
          type: string
        value:
          description: the new value
          type: string
      example:
        type: java.lang.String
        value: My new value
    ProcessInstanceDocument:
      type: object
      description: A document in an active case
      properties:
        id:
          description: documentId
          type: string
        creationDate:
          description: date and time
          type: string
        author:
          deprecated: true
          description: submittorUserId
          type: string
        index:
          description: index in a list of documents, or -1 for a single document
          type: string
        contentMimetype:
          description: MIME type
          type: string
        caseId:
          description: caseId
          type: string
        contentStorageId:
          description: storageId
          type: string
        isInternal:
          description: '`true` if  the the document object contains the content directly. `false` if the document is specified by URL so the document object contains a reference to the content, not the content itself.'
          type: boolean
        description:
          description: description
          type: string
        name:
          description: name
          type: string
        fileName:
          description: filename
          type: string
        submittedBy:
          description: submittorUserId
          type: string
        url:
          description: urlForDownload
          type: string
        version:
          description: version
          type: string
      example:
        id: '3'
        creationDate: '2014-10-09 16:45:36.658'
        author: '1'
        index: '-1'
        contentMimetype: application/octet-stream
        caseId: '1'
        contentStorageId: '4'
        isInternal: 'true'
        description: draft
        name: Doc 1
        fileName: document_1.jpg
        submittedBy: '1'
        url: documentDownload?fileName=document_1.jpg&contentStorageId=4
        version: '1'
    ProcessInstanceDocumentCreateRequest:
      type: object
      properties:
        caseId:
          description: The process instance id
          type: string
        file:
          description: The local file name to upload from (as from the temp upload folder)
          type: string
        url:
          description: The remote url to upload from
          type: string
        name:
          description: The file display name
          type: string
        fileName:
          description: The target file name
          type: string
        description:
          description: The document description
          type: string
      example:
        caseId: '1'
        file: doc.jpg
        name: Doc 1
        fileName: document_1.jpg
        description: draft
    ProcessInstanceDocumentUpdateRequest:
      type: object
      properties:
        file:
          description: The local file name to upload from (as from the temp upload folder)
          type: string
        url:
          description: The remote url to upload from
          type: string
        name:
          description: The file display name
          type: string
        fileName:
          description: The target file name
          type: string
        description:
          description: The document description
          type: string
      example:
        file: Expense policy rev2.pdf
        description: updated version of document
        fileName: revision2.pdf
    ArchivedProcessInstanceDocument:
      allOf:
        - $ref: '#/components/schemas/ProcessInstanceDocument'
        - type: object
          description: A document in an active case
          properties:
            sourceObjectId:
              description: original document id
              type: string
            archivedDate:
              description: the date ('yyyy-MM-dd HH:mm:ss.SSS') when the current task was assigned for example '2014-10-17 16:05:42.626'
              type: string
              pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$
          example:
            id: '1'
            creationDate: '2014-10-09 16:39:52.472'
            author: '1'
            index: '0'
            contentMimetype: text/plain
            caseId: '1'
            contentStorageId: '1'
            isInternal: 'true'
            description: ''
            name: myDoc
            fileName: test1.txt
            submittedBy: '1'
            url: documentDownload?fileName=test1.txt&contentStorageId=1
            version: '1'
            sourceObjectId: '1'
            archivedDate: '2014-10-09 17:39:52.473'
    Actor:
      type: object
      description: ''
      properties:
        id:
          description: actor id
          type: integer
          format: int64
        process_id:
          description: process definition id
          type: integer
          format: int64
        description:
          description: a description of the actor
          type: string
        name:
          description: name of the actor (as specified on human tasks and for the initiator of the process)
          type: string
        displayName:
          description: the display name of the actor
          type: string
      example:
        id: '1'
        process_id: '4717422838168315799'
        description: null
        name: employee
        displayName: Employee actor
    ActorUpdateRequest:
      type: object
      properties:
        displayName:
          description: display name of the Actor
          type: string
        description:
          description: description of the Actor
          type: string
      example:
        displayName: My actor
        description: My actor description
    ActorMember:
      type: object
      description: An actor member represents the association between the organization and the actor af a process. In an organization we have four member_types = USER, GROUP, ROLE and MEMBERSHIP (role in a group). You can assign a actor to a user by specifying a role and or a group, or specific user.
      properties:
        id:
          description: actor member id
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        actor_id:
          description: id of the actor for this mapping
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        role_id:
          description: id of role, or -1 if the member type is not role
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        group_id:
          description: id of group, or -1 if the member type is not group
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
        user_id:
          description: id of user, or -1 if the member type is not user
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9\_\-\.]{0,250}$
      example:
        id: '206'
        actor_id: '2'
        role_id: '4'
        group_id: '8'
        user_id: '-1'
    ProcessInstance:
      type: object
      description: ProcessInstance (Case) is an instance of a process. When you start a process, it creates a process instances.
      properties:
        id:
          description: the identifier of the ProcessInstance (Case)
          type: string
        end_date:
          description: the date set when the process instance is closed
          type: string
        failedFlowNodes:
          description: count of failed flow nodes if parameter n=failedFlowNodes is given
          type: string
        startedBySubstitute:
          description: the identifier of the substitute user (as Process manager or Administrator) who started the process. It can be also the substitute user if d=startedBySubstitute is given.
          type: string
        start:
          description: the starting date of the case
          type: string
        activeFlowNodes:
          description: count of active flow nodes if parameter n=activeFlowNodes is given
          type: string
        state:
          description: 'state: an enum that represent the state of the process instances'
          type: string
          enum:
            - initializing
            - started
            - suspended
            - cancelled
            - aborted
            - completing
            - completed
            - error
            - aborting
        rootCaseId:
          description: the identifier of the container of the case
          type: string
        started_by:
          description: the identifier of the user who started the case
          type: string
        processDefinitionId:
          description: the identifier of the process related of the case
          type: string
        last_update_date:
          description: the date of the last update done on the case
          type: string
        searchIndex1Label:
          description: the 1st search index label (from 6.5, in Subscription editions only)
          type: string
        searchIndex2Label:
          description: the 2nd search index label (from 6.5, in Subscription editions only)
          type: string
        searchIndex3Label:
          description: the 3rd search index label (from 6.5, in Subscription editions only)
          type: string
        searchIndex4Label:
          description: the 4th search index label (from 6.5, in Subscription editions only)
          type: string
        searchIndex5Label:
          description: the 5th search index label (from 6.5, in Subscription editions only)
          type: string
        searchIndex1Value:
          description: the 1st search index value (from 6.5, in Subscription editions only)
          type: string
        searchIndex2Value:
          description: the 2nd search index value (from 6.5, in Subscription editions only)
          type: string
        searchIndex3Value:
          description: the 3rd search index value (from 6.5, in Subscription editions only)
          type: string
        searchIndex4Value:
          description: the 4th search index value (from 6.5, in Subscription editions only)
          type: string
        searchIndex5Value:
          description: the 5th search index value (from 6.5, in Subscription editions only)
          type: string
      example:
        id: 1
        end_date": ''
        failedFlowNodes": 9
        startedBySubstitute": 345
        start": '2014-11-27 17:55:00.906'
        activeFlowNodes": '9'
        state": started
        rootCaseId": '1'
        started_by": 989
        processDefinitionId": '5777042023671752656'
        last_update_date": '2014-11-27 17:55:00.906'
        searchIndex1Label: mySearchIndex1Label
        searchIndex2Label: mySearchIndex2Label
        searchIndex3Label: mySearchIndex3Label
        searchIndex4Label: mySearchIndex4Label
        searchIndex5Label: mySearchIndex5Label
        searchIndex1Value: mySearchIndex1Value
        searchIndex2Value: mySearchIndex2Value
        searchIndex3Value: mySearchIndex3Value
        searchIndex4Value: mySearchIndex4Value
        searchIndex5Value: mySearchIndex5Value
    ProcessVariable:
      type: object
      additionalProperties:
        type: object
      properties:
        name:
          description: variable name
          type: string
    ProcessInstanceCreateRequest:
      type: object
      properties:
        processDefinitionId:
          description: the process definition Id
          type: string
        variables:
          description: process variables initial values
          type: array
          items:
            $ref: '#/components/schemas/ProcessVariable'
      example:
        processDefinitionId: '5777042023671752656'
        variables:
          - name: stringVariable
            value: aValue
          - name: dateVariable
            value: 349246800000
          - name: numericVariable
            value: 55
    ArchivedProcessInstance:
      allOf:
        - $ref: '#/components/schemas/ProcessInstance'
        - type: object
          description: A completed instance of a process.
          properties:
            sourceObjectId:
              description: the id of the process instance before it was archived
              type: string
            archivedDate:
              description: the date set when the process instance was archived
              type: string
          example:
            id: 9
            end_date: '2014-10-22 10:57:00.299'
            startedBySubstitute: '4'
            sourceObjectId: '3'
            start: '2014-10-22 10:56:53.415'
            state: completed
            rootCaseId: '3'
            started_by: '4'
            archivedDate: '2014-10-22 10:57:00.299'
            processDefinitionId: '6054482369194211518'
            last_update_date": '2014-10-22 10:57:00.299'
            searchIndex1Label: case9SearchIndex1Label
            searchIndex2Label: case9SearchIndex2Label
            searchIndex3Label: case9SearchIndex3Label
            searchIndex4Label: case9SearchIndex4Label
            searchIndex5Label: case9SearchIndex5Label
            searchIndex1Value: case9SearchIndex1Value
            searchIndex2Value: case9SearchIndex2Value
            searchIndex3Value: case9SearchIndex3Value
            searchIndex4Value: case9SearchIndex4Value
            searchIndex5Value: case9SearchIndex5Value
    ProcessInstanceInfo:
      type: object
      description: 'Retrieves information about a process instances. It returns counters for each flow node in the process instances, showing the number of flow node instances that are in each state (possible states are: ready, executing, waiting, initializing, failed, completing, completed, skipped, cancelled, aborted). If there are no flow node instances in a given state, no counter is returned for that state for the flow node.'
      properties:
        id:
          description: case identifier
          type: string
        flowNodeStatesCounters:
          type: object
          description: flow nodes counters
          additionalProperties:
            type: object
            properties:
              completed:
                description: number of instance of the given Flow Node in completed state
                type: integer
                format: int64
              skipped:
                description: number of instance of the given Flow Node in skipped state
                type: integer
                format: int64
              cancelled:
                description: number of instance of the given Flow Node in cancelled state
                type: integer
                format: int64
              aborted:
                description: number of instance of the given Flow Node in aborted state
                type: integer
                format: int64
              ready:
                description: number of instance of the given Flow Node in ready state
                type: integer
                format: int64
              failed:
                description: number of instance of the given Flow Node in failed state
                type: integer
                format: int64
              executing:
                description: number of instance of the given Flow Node in executing state
                type: integer
                format: int64
              waiting:
                description: number of instance of the given Flow Node in waiting state
                type: integer
                format: int64
              initializing:
                description: number of instance of the given Flow Node in initializing state
                type: integer
                format: int64
              completing:
                description: number of instance of the given Flow Node in completing state
                type: integer
                format: int64
      example:
        id: 123
        flowNodeStatesCounters:
          Step1:
            completed: 2
            ready: 1
            executing: 5
          Step3:
            completed: 10
            failed: 2
    ProcessInstanceComment:
      type: object
      description: ''
      properties:
        id:
          description: the comment id
          type: string
        content:
          description: the comment content
          type: string
        tenantId:
          description: the id of the tenant the comment is associated to
          type: string
        processInstanceId:
          description: the process instance (case) the comment is associated to
          type: string
        postDate:
          description: the comment creation date
          type: string
        userId:
          description: the user that created the comment
          type: string
      example:
        content: Need to review the last inputs of this case
        tenantId: '1'
        id: '20005'
        processInstanceId: '1'
        postDate: '2016-06-16 14:51:33.053'
        userId: 9798
    ProcessInstanceCommentCreateRequest:
      type: object
      properties:
        processInstanceId:
          description: the process instance (case) the comment is associated to
          type: string
        content:
          description: the comment content
          type: string
      example:
        processInstanceId: '5777042023671752656'
        content: The process instance has been started
    ArchivedProcessInstanceComment:
      allOf:
        - $ref: '#/components/schemas/ProcessInstanceComment'
        - type: object
          description: Information about the comment of an archived process instances.
          properties:
            archivedDate:
              description: the date set when the process instance comment was archived
              type: string
          example:
            id: 20005
            content: Need to review the last inputs of this case
            processInstanceId: 1
            postDate: '2016-06-16 14:51:33.053'
            archivedDate: '2016-06-17 10:18:24.723'
            userId: 30
    ActivationState:
      description: the state of the process definition (ENABLED or DISABLED)
      type: string
      enum:
        - ENABLED
        - DISABLED
    ConfigurationState:
      description: the configuration state of the process (UNRESOLVED or RESOLVED)
      type: string
      enum:
        - RESOLVED
        - UNRESOLVED
    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
    ProcessCreateRequest:
      type: object
      properties:
        fileupload:
          description: the bar file to deploy (previously uploaded in tmp folder)
          type: string
      example:
        fileupload: tmp_4431838172282406107.bar
    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
    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
            additionalProperties: true
        connectors:
          type: array
          items:
            type: object
            additionalProperties: true
        businessDataDefinitions:
          type: array
          items:
            type: object
            additionalProperties: true
        documentListDefinitions:
          type: array
          items:
            type: object
            additionalProperties: true
    DesignProcessDefinitionParamater:
      type: object
      properties:
        type:
          description: the parameter type
          type: string
        description:
          description: the parameter description
          type: string
        name:
          description: the parameter name
          type: string
    ActorDefinition:
      type: object
      description: Actor definition
      properties:
        name:
          description: the actor name
          type: string
        description:
          description: the actor description
          type: string
        initiator:
          description: true, if this actor can start the process
          type: boolean
    Expression:
      type: object
      properties:
        id:
          description: the expression id
          type: string
        name:
          description: the expression name
          type: string
        content:
          description: the expression content
          type: string
        expressionType:
          description: the expression type
          type: string
        returnType:
          description: the expression return type
          type: string
        interpreter:
          description: the expression interpreter
          type: string
        dependencies:
          description: the expression dependencies
          type: array
          items:
            $ref: '#/components/schemas/Expression'
    DesignProcessDefinitionContext:
      type: object
      description: The process definition expressions
      properties:
        key:
          type: string
        expression:
          $ref: '#/components/schemas/Expression'
    DesignProcessDefinition:
      type: object
      description: Represents the Design Definition of a process. It gives access to process attributes.
      properties:
        displayName:
          description: The process definition display name
          type: string
        displayDescription:
          description: The process definition display description name
          type: string
        flowElementContainer:
          $ref: '#/components/schemas/FlowElementContainerDefinition'
        parameters:
          description: The process parameter definitions
          type: array
          items:
            $ref: '#/components/schemas/DesignProcessDefinitionParamater'
        actorsList:
          description: The list of process actor definitions
          type: array
          items:
            $ref: '#/components/schemas/ActorDefinition'
        actorInitiator:
          $ref: '#/components/schemas/ActorDefinition'
        stringIndexLabels:
          description: The process definition labels
          type: array
          items:
            type: string
        stringIndexValues:
          description: The process definition expressions
          type: array
          items:
            $ref: '#/components/schemas/Expression'
        contract:
          description: the process instantiation contract
          $ref: '#/components/schemas/Contract'
        context:
          description: The process definition expressions
          type: array
          items:
            $ref: '#/components/schemas/DesignProcessDefinitionContext'
    ProcessInstantiationResponse:
      type: object
      properties:
        caseId:
          type: string
      example:
        caseId: '12345678'
    ProcessInfo:
      type: object
      description: 'Retrieves the execution data of all open cases of a process. It returns counters for each flow node in the process, showing the number of flow node instances that are in an non-final state (possible states are: ready, executing, waiting, initializing, failed, completing). If there are no flow node instances in a given state, no counter is returned for that state for the flow node.'
      properties:
        processDefinitionId:
          description: process identifier
          type: string
        flowNodeStatesCounters:
          type: object
          description: flow nodes counters
          additionalProperties:
            type: object
            properties:
              ready:
                description: number of instance of the given Flow Node in ready state
                type: integer
                format: int64
              failed:
                description: number of instance of the given Flow Node in failed state
                type: integer
                format: int64
              executing:
                description: number of instance of the given Flow Node in executing state
                type: integer
                format: int64
              waiting:
                description: number of instance of the given Flow Node in waiting state
                type: integer
                format: int64
              initializing:
                description: number of instance of the given Flow Node in initializing state
                type: integer
                format: int64
              completing:
                description: number of instance of the given Flow Node in completing state
                type: integer
                format: int64
      example:
        processDefinitionId: 123
        flowNodeStatesCounters:
          Step1:
            executing: 2
            ready: 1
            failed: 5
          Step3:
            ready: 10
            failed: 2
    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
    ProcessParameter:
      type: object
      description: ''
      properties:
        process_id:
          description: the identifier of the process definition
          type: string
        process_name:
          description: the name of the related process
          type: string
        description:
          description: the description of the parameter
          type: string
        name:
          description: the name of the parameter
          type: string
        value:
          description: the value of the parameter
          type: string
        process_version:
          description: the version of the process
          type: string
        type:
          description: the type of the parameter
          type: string
      example:
        process_id: 4880205209556179000
        process_name: myProcessName
        description: myProcessDescription
        name: myParameterName
        value: myParameterValue
        process_version: '1.0'
        type: java.lang.String
    ProcessParameterUpdateRequest:
      type: object
      properties:
        value:
          description: value of the Process Parameter
          type: string
      example:
        value: myNewValue
    ProcessResolutionProblem:
      type: object
      description: This resource represents a problem in a process that needs to be resolved for the process to run. It can be an actor, a connector implementation, or a parameter (in the Enterprise, Performance, Efficiency, or Teamwork edition).
      properties:
        message:
          description: resolution problem
          type: string
        resource_id:
          description: id of the unresolved resource
          type: string
        target_type:
          description: the type of the unresolved resource (parameter, actor, or connector)
          type: string
    ProcessSupervisor:
      type: object
      description: The process supervisor has management rights over a process. He can configure and monitor it. You can give the ProcessSupervisor rights to some users by specifying a role and or a group, or a specific user. In order to be able to manage the processes he supervises in the portal, a user should also have the profile `Process Manager`
      properties:
        process_id:
          description: Id of the process
          type: string
        role_id:
          description: Id of role, or -1 if the supervisor type is not role or membership
          type: string
        group_id:
          description: Id of group, or -1 if the supervisor type is not group or membership
          type: string
        user_id:
          description: Id of user, or -1 if the supervisor type is not user
          type: string
      example:
        process_id: 8040901857674754000
        user_id: 2
        role_id: -1
        group_id: -1
    ProcessConnectorDependency:
      type: object
      description: Use the processConnectorDependency resource to access connector dependencies.
      properties:
        connector_version:
          description: <connector version>
          type: string
        connector_process_id:
          description: <process id>
          type: string
        filename:
          description: <filename representing the connector>
          type: string
        connector_name:
          description: <connector name>
          type: string
      example:
        connector_version: 1.0.0
        connector_process_id: 4971555129176050000
        filename: bonita-connector-email-impl-1.0.12.jar
        connector_name: email
    ConnectorFailure:
      type: object
      description: ''
      properties:
        errorMessage:
          description: the message of the connector failure
          type: string
        connectorInstanceId:
          description: the ID of the connector instance (see connectorInstance resource documentation)
          type: string
        errorStackTrace:
          description: the stack trace of the error
          type: string
      example:
        errorMessage: Error while executing the groovy script
        connectorInstanceId: 5
        errorStackTrace: "org.bonitasoft.engine.core.connector.exception.SConnectorException: PROCESS_DEFINITION_ID=8030057793979348308 | PROCESS_NAME=Pool1 | PROCESS_VERSION=1.0 | PROCESS_INSTANCE_ID=5 | ROOT_PROCESS_INSTANCE_ID=5 | FLOW_NODE_DEFINITION_ID=-6089366458284481881 | FLOW_NODE_INSTANCE_ID=12 | FLOW_NODE_NAME=Étape1 | CONNECTOR_DEFINITION_IMPLEMENTATION_CLASS_NAME=expression execution connector | CONNECTOR_INSTANCE_ID=5 | org.bonitasoft.engine.connector.exception.SConnectorException: java.util.concurrent.ExecutionException: java.lang.Exception: Error while executing the groovy script\n\tat org.bonitasoft.engine.core.connector.impl.ConnectorServiceImpl.executeConnectorInClassloader(ConnectorServiceImpl.java:332)"
    ConnectorInstance:
      type: object
      description: ''
      properties:
        containerType:
          description: the type of the containing activity
          type: string
        connectorId:
          description: the connector id
          type: string
        id:
          description: 'the connector instance id '
          type: integer
          format: int64
        name:
          description: the connector name
          type: string
        activationEvent:
          description: the name of the event that activated the connector instance
          type: string
          enum:
            - ON_ENTER
            - ON_FINISH
        state:
          description: the connector state
          type: string
          enum:
            - TO_BE_EXECUTED
            - EXECUTING
            - TO_RE_EXECUTE
            - DONE
            - FAILED
            - SKIPPED
        containerId:
          description: the containing activity instance id
          type: string
        version:
          description: the connector version
          type: string
      example:
        containerType: flowNode
        connectorId: scripting-groovy-script
        id: 3
        name: hello world
        activationEvent: ON_FINISH
        state: TO_BE_EXECUTED
        containerId: 15
        version: 1.0.0
    ArchivedConnectorInstance:
      allOf:
        - $ref: '#/components/schemas/ConnectorInstance'
        - type: object
          description: Information about archived connector instances attached to an archived process or an archived flow node.
          properties:
            archivedDate:
              description: the date ('yyyy-MM-dd HH:mm:ss.SSS') when the current task was assigned for example '2014-10-17 16:05:42.626'
              type: string
              pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$
    FlowNode:
      type: object
      description: A flow node (gateway, event, or task) in an open instance of a process.
      properties:
        id:
          description: 'the flow node id '
          type: string
        displayDescription:
          description: 'the human readable flow node description '
          type: string
        executedBySubstitute:
          description: the id of the user who really performed this flow node when a substitute did it, or 0 if the flow node was not performed by a substitute
          type: string
        caseId:
          description: the process instance id that is associated with this flow node
          type: string
        parentCaseId:
          description: the parent process instance id that is associated with this flow node's case
          type: string
        rootCaseId:
          description: the root process instance initiator id that is associated with this flow node's case
          type: string
        processId:
          description: the process id that is associated with this flow node
          type: string
        rootContainerId:
          description: the root process id of the root process instance that is associated with this flow node
          type: string
        state:
          description: the current state of the flow node (ready, completed, failed)
          type: string
        type:
          description: 'the flow node type '
          type: string
        assigned_id:
          description: the user id that this flow node is assigned to, or 0 if it is unassigned
          type: string
        assigned_date:
          description: the date ('yyyy-MM-dd HH:mm:ss.SSS') when the current flow node was assigned, for example '2014-10-17 16:05:42.626'
          type: string
        executedBy:
          description: the id of the user who executed the flow node, or 0 if the flow node has not been executed
          type: string
        priority:
          description: the priority of the current flow node
          type: string
        actorId:
          description: the id of the actor that can execute this flow node, null otherwise
          type: string
        description:
          description: 'the flow node description '
          type: string
        name:
          description: 'the flow node name '
          type: string
        reached_state_date:
          description: the date ('yyyy-MM-dd HH:mm:ss.SSS') when this flow node reached the current state, for example '2014-10-17 16:05:42.626'
          type: string
        displayName:
          description: the display name of this flow node
          type: string
        dueDate:
          description: the date ('yyyy-MM-dd HH:mm:ss.SSS') when this flow node is due, for example '2014-10-17 16:05:42.626'
          type: string
        last_update_date:
          description: the date ('yyyy-MM-dd HH:mm:ss.SSS') when this flow node was last updated, for example '2014-10-17 16:05:42.626)
          type: string
        parentTaskId":
          description: 'in case of a subtask, the parent task id '
          type: string
      example:
        displayDescription": ''
        executedBySubstitute": 0
        processId": 7596769292810274000
        parentCaseId": 1
        state": failed
        rootContainerId": 1
        type": USER_TASK
        assigned_id": null
        assigned_date": ''
        id": '77456'
        executedBy": 0
        caseId": 1
        priority": normal
        actorId": 4
        description": ''
        name": Step1
        reached_state_date": '2014-12-10 08:59:47.884'
        rootCaseId": 1
        displayName": Step1
        dueDate": '2014-12-10 09:59:47.855'
        last_update_date": '2014-12-10 08:59:47.884'
    FlowNodeUpdateRequest:
      type: object
      properties:
        state:
          description: state of the FlowNode
          type: string
      example:
        state: replay
    ArchivedFlowNode:
      allOf:
        - $ref: '#/components/schemas/FlowNode'
        - type: object
          description: A flow node (gateway or event or task) in an archived instance of a process.
          properties:
            sourceObjectId:
              description: the original id of the flowNode before it was archived
              type: string
            archivedDate:
              description: the date ('yyyy-MM-dd HH:mm:ss.SSS') when the current task was assigned for example '2014-10-17 16:05:42.626'
              type: string
              pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1]) (2[0-3]|[01][0-9]):[0-5][0-9]:[0-5][0-9]$
    TimerEventTrigger:
      type: object
      description: BPM timer event triggers
      properties:
        id:
          description: the ID of the timer returned
          type: string
        id_string:
          description: the ID of the timer returned
          type: string
        eventInstanceId:
          description: the ID of the event instance to which this trigger is related
          type: string
        eventInstanceId_string:
          description: the ID of the event instance to which this trigger is related
          type: string
        executionDate:
          description: the long value of the next execution date (number of milliseconds from January 1st, 1970 00:00:00)
          type: string
        eventInstanceName:
          description: the name of the event instance to which this trigger is related
          type: string
      example:
        id: 4015
        id_string: '4015'
        eventInstanceId: 2
        eventInstanceId_string: '2'
        executionDate: 1413980484194
        eventInstanceName: Timer1
    TimerEventTriggerUpdateRequest:
      type: object
      properties:
        executionDate:
          description: executionDate of the TimerEventTrigger
          type: integer
          format: int64
      example:
        executionDate: 1433980484194
    TimerEventTriggerUpdateResponse:
      type: object
      properties:
        executionDate:
          description: executionDate of the TimerEventTrigger
          type: integer
          format: int64
      example:
        executionDate: 1433980484194
    Message:
      type: object
      description: Use this resource to send BPM message events. Message events are caught by processes using `catch message event` flow nodes (Start, intermediate, boundary or receive tasks).
      properties:
        messageName:
          description: the message name
          type: string
        targetProcess:
          description: the target process name
          type: string
        targetFlowNode:
          description: the target FlowNode name
          type: string
        messageContent:
          description: the message content
          type: object
          additionalProperties:
            type: object
            required:
              - value
            properties:
              value:
                description: ''
                type: string
              type:
                description: |
                  Date types must be in the ISO-8601 format. When not set, the type is guessed using the value.
                  Be careful as it can lead to type inconsistency in the target process (eg: a java.lang.Long is expected and the guessed type is a java.lang.Integer)
                type: string
                enum:
                  - java.lang.String
                  - java.lang.Boolean
                  - java.lang.Integer
                  - java.lang.Double
                  - java.lang.Float
                  - java.lang.Long
                  - java.util.Date
                  - java.time.LocalDate
                  - java.time.LocalDateTime
                  - java.time.OffsetDateTime
        correlations:
          description: the message correlations
          type: object
          maxItems: 5
          additionalProperties:
            type: object
            required:
              - value
            properties:
              value:
                description: ''
                type: string
              type:
                description: |
                  Date types must be in the ISO-8601 format. When not set, the type is guessed using the value.
                  Be careful as it can lead to type inconsistency in the target process (eg: a java.lang.Long is expected and the guessed type is a java.lang.Integer)
                type: string
                enum:
                  - java.lang.String
                  - java.lang.Boolean
                  - java.lang.Integer
                  - java.lang.Double
                  - java.lang.Float
                  - java.lang.Long
                  - java.util.Date
                  - java.time.LocalDate
                  - java.time.LocalDateTime
                  - java.time.OffsetDateTime
    Signal:
      type: object
      description: Signal
      properties:
        name:
          description: the signal name
          type: string
    CustomUserDefinition:
      type: object
      description: Custom user definition
      properties:
        id:
          description: definition id
          type: string
        description:
          description: definition description
          type: string
        name:
          description: definition name
          type: string
      example:
        id: 101
        name: skill
        description: Team player
    CustomUserDefinitionCreateRequest:
      type: object
      properties:
        name:
          description: definition name
          type: string
        description:
          description: definition description
          type: string
      example:
        name: skill
        description: Team player
    CustomUserValue:
      type: object
      description: ''
      properties:
        userId:
          description: user id
          type: string
        value:
          description: definition value
          type: string
        definitionId:
          description: definition id
          type: string
    CustomUserValueUpdateRequest:
      type: object
      properties:
        value:
          description: new value to set
          type: string
      example:
        value: My new value
    CustomUser:
      type: object
      description: Custom user defintion and value
      properties:
        userId:
          description: user id
          type: string
        value:
          description: definition value
          type: string
        definitionId:
          $ref: '#/components/schemas/CustomUserDefinition'
    FormMapping:
      type: object
      description: Form Mapping specifies the mapping of a form to a process or a task. The mapping indicates the technology used to create the form, in the `target` attribute.
      properties:
        id:
          description: the form mapping identifier
          type: string
        processDefinitionId:
          description: the process identifier related to this form mapping
          type: string
        type:
          description: the form mapping type
          type: string
          enum:
            - PROCESSSTART
            - PROCESSOVERVIEW
            - TASK
        target:
          description: the target
          type: string
          enum:
            - URL
            - INTERNAL
            - LEGACY
            - UNDEFINED
            - NONE
        task:
          description: the task name when type is TASK - null otherwise
          type: string
        pageId:
          description: the custom page identifier when type is INTERNAL - null otherwise
          type: string
        pageMappingKey:
          description: the page mapping key part used to generate the form URL
          type: string
        lastUpdateBy:
          description: the identifier of the user who last updated this form mapping - 0 if no update has been done yet
          type: string
        lastUpdateDate:
          description: the last update date in milliseconds - null if no update has been done yet
          type: string
        url:
          description: the external URL (string) when type is URL - null otherwise
          type: string
      example:
        id: 5
        processDefinitionId: 7281286536417002000
        type: TASK
        target: URL
        task: Validate Feedback
        pageId: null
        pageMappingKey: taskInstance/myProcess/1.0/Validate Feedback
        lastUpdatedBy: 4
        lastUpdateDate: 1425295012666
        url: http://customerportal.bonitasoft.com
    FormMappingUpdateRequest:
      type: object
      properties:
        pageId:
          description: pageId of the FormMapping
          type: string
        url:
          description: url of the FormMapping
          type: string
      example:
        pageId: '123'
        url: http://somewhe.re/over/the/rainbow
    ProfessionalContactData:
      type: object
      description: ''
      required:
        - id
      properties:
        id:
          description: user ID
          type: string
        fax_number:
          description: fax number
          type: string
        building:
          description: building
          type: string
        phone_number:
          description: phone number
          type: string
        website:
          description: website
          type: string
        zipcode:
          description: zipcode
          type: string
        state:
          description: state
          type: string
        city:
          description: city
          type: string
        country:
          description: country
          type: string
        mobile_number:
          description: mobile phone number
          type: string
        address:
          description: address
          type: string
        room:
          description: room
          type: string
        email:
          description: email
          type: string
      example:
        id: 4
        fax_number: 484-302-0766
        building: '70'
        phone_number: 484-302-5766
        website: ''
        zipcode: '19108'
        state: PA
        city: Philadelphia
        country: United States
        mobile_number: ''
        address: Renwick Drive
        email: walter.bates@acme.com
        room: ''
    Group:
      type: object
      description: Group
      required:
        - name
      properties:
        id:
          description: group ID
          type: string
        name:
          description: name
          type: string
        displayName:
          description: display name
          type: string
        parent_path:
          description: the path of the parent group of this group (empty if the group has no parent)
          type: string
        parent_group_id:
          description: the id of the parent group of this group (empty if the group has no parent)
          type: string
        path:
          description: the full path of the group (including its parent path)
          type: string
        description:
          description: description
          type: string
        creation_date:
          description: 'creation date (format: `2014-12-31 15:17:24.736`)'
          type: string
        created_by_user_id:
          description: id of the user who created the group (-1 if the group was created by the tenant admin or by an organisation import)
          type: string
        last_update_date:
          description: 'last update date (format: `2014-12-31 15:17:24.736`)'
          type: string
        icon:
          description: icon path
          type: string
      example:
        id: 3
        creation_date: '2014-12-02 11:33:48.501'
        created_by_user_id: -1
        icon: ''
        parent_path: /acme
        description: This group represents the finance department of the ACME organization
        name: finance
        path: /acme/finance
        parent_group_id: 1
        displayName: Finance
        last_update_date: '2014-12-02 11:33:48.501'
    GroupCreateRequest:
      type: object
      required:
        - name
      properties:
        name:
          description: name
          type: string
        displayName:
          description: display name
          type: string
        parent_group_id:
          description: the id of the parent group of this group (empty if the group has no parent)
          type: string
        description:
          description: description
          type: string
        icon:
          description: icon path
          type: string
      example:
        icon: ''
        name: HR
        displayName: Human Resources
        description: Human resources department
    GroupUpdateRequest:
      type: object
      required:
        - name
      properties:
        name:
          description: name
          type: string
        displayName:
          description: display name
          type: string
        parent_group_id:
          description: the id of the parent group of this group (empty if the group has no parent)
          type: string
        description:
          description: description
          type: string
        icon:
          description: icon path
          type: string
      example:
        name: HR
        displayName: Humman resources
    Membership:
      type: object
      description: ''
      properties:
        assigned_date:
          description: 'creation date (format: `2014-12-31 15:17:24.736`)'
          type: string
        role_id:
          description: id of the role of this membership
          type: integer
          format: int64
        assigned_by_user_id:
          description: id of the user who created the membership (-1 if the role was created by the tenant admin or by an organisation import)
          type: string
        group_id:
          description: id of the group of this membership
          type: string
        user_id:
          description: id of the user in this membership
          type: string
      example:
        assigned_date: '2014-12-02 17:57:09.315'
        role_id": 4
        assigned_by_user_id: 12
        group_id: 5
        user_id: 125
    MembershipCreateRequest:
      type: object
      required:
        - role_id
        - group_id
        - user_id
      properties:
        role_id:
          description: id of the role of this membership
          type: string
        group_id:
          description: id of the group of this membership
          type: string
        user_id:
          description: id of the user in this membership
          type: string
      example:
        user_id: '4'
        group_id: '5'
        role_id: '1'
    Role:
      type: object
      description: The role of a user in a group
      properties:
        id:
          description: role ID
          type: string
        name:
          description: name
          type: string
        displayName:
          description: display name
          type: string
        description:
          description: description
          type: string
        icon:
          description: icon path
          type: string
        creation_date:
          description: 'creation date (format: `2014-12-31 15:17:24.736`)'
          type: string
        created_by_user_id:
          description: Id of the user who created the role (-1 if the role was created by the tenant admin or by an organisation import)
          type: string
        last_update_date:
          description: 'last update date (format: `2014-12-31 15:17:24.736`)'
          type: string
      example:
        icon: ''
        name: manager
        displayName: department manager
        description: manager of the department
        creation_date: '2014-12-01 18:51:54.791'
        created_by_user_id: 4
        last_update_date: '2014-12-01 18:51:54.791'
    RoleCreateRequest:
      type: object
      required:
        - name
      properties:
        name:
          description: name
          type: string
        displayName:
          description: display name
          type: string
        description:
          description: description
          type: string
        icon:
          description: icon path
          type: string
      example:
        icon: ''
        name: manager
        displayName: department manager
        description: manager of the department
    RoleUpdateRequest:
      type: object
      required:
        - name
      properties:
        name:
          description: name
          type: string
        displayName:
          description: display name
          type: string
        description:
          description: description
          type: string
        icon:
          description: icon path
          type: string
    User:
      type: object
      properties:
        id:
          description: user id
          type: string
        enabled:
          description: if "true", user is active.
          type: string
        userName:
          description: user name
          type: string
        firstname:
          description: user last name
          type: string
        lastname:
          description: user last name
          type: string
        password:
          description: user password
          format: password
          type: string
        icon:
          description: ' bonita icon path (ie. /default/icon_user.png)'
          type: string
        title:
          description: user title
          type: string
        job_title:
          description: user job title
          type: string
        manager_id:
          description: user manager id
          type: string
        last_connection:
          description: last connection date
          type: string
        created_by_user_id:
          description: created by
          type: string
        creation_date:
          description: creation date
          type: string
        last_update_date:
          description: user last update date
          type: string
    UserCreateRequest:
      type: object
      required:
        - userName
        - password
        - password_confirm
        - firstname
        - lastname
        - enabled
      properties:
        userName:
          description: user name
          type: string
        firstname:
          description: user last name
          type: string
        lastname:
          description: user last name
          type: string
        password:
          description: user password
          format: password
          type: string
        password_confirm:
          description: user password confirmation
          format: password
          type: string
        icon:
          description: ' bonita icon path (ie. /default/icon_user.png)'
          type: string
        title:
          description: user title
          type: string
        job_title:
          description: user job title
          type: string
        manager_id:
          description: user manager id
          type: string
        enabled:
          description: true|false if the user is enabled or not
          type: string
      example:
        userName: New.User
        password: bpm
        password_confirm: bpm
        icon: ''
        firstname: New
        lastname: User
        title: Mr
        job_title: Human resources benefits
        manager_id: '3'
        enabled: 'true'
    UserUpdateRequest:
      type: object
      properties:
        enabled:
          description: if "true", user will be activated.
          type: string
        userName:
          description: user name
          type: string
        firstname:
          description: user last name
          type: string
        lastname:
          description: user last name
          type: string
        password:
          description: user password
          format: password
          type: string
        icon:
          description: ' bonita icon path (ie. /default/icon_user.png)'
          type: string
        title:
          description: user title
          type: string
        job_title:
          description: user job title
          type: string
        manager_id:
          description: user manager id
          type: string
    Platform:
      type: object
      description: The bonita platform
      properties:
        state:
          description: platform state
          type: string
          enum:
            - STARTED
            - STOPPED
        version:
          description: the current version of the platform
          type: string
        initialVersion:
          description: the version in which the platform was created
          type: string
        previousVersion:
          description: the previous version the platform was in or empty if there is none
          type: string
        createdBy:
          description: the user name of the platform administrator
          type: string
        created:
          description: the creation date
          type: string
      example:
        createdBy: platformAdmin
        created: '2014-12-04 15:46:46.065'
        initialVersion: 6.4.0
        state: STARTED
        previousVersion: ''
        version: 6.4.0
    PlatformUpdateRequest:
      type: object
      properties:
        state:
          description: Platform state
          type: string
          enum:
            - start
            - stop
      example:
        state: stop
    Tenant:
      type: object
      deprecated: true
      description: Since Bonita 7.12, tenant management is deprecated
      properties:
        id:
          description: id of the tenant
          type: string
        creation:
          description: the creation date
          type: string
        icon:
          description: the path of the icon
          type: string
        name:
          description: the name of the tenant
          type: string
        description:
          description: the description
          type: string
        username:
          description: the username
          type: string
        password:
          description: the password
          type: string
          format: password
        state:
          description: the tenant state
          type: string
          enum:
            - ACTIVATED
            - DEACTIVATED
      example:
        id: 1
        creation: '2014-12-04 15:46:46.256'
        icon: /default.png
        username: ''
        description: Default tenant
        name: default
        state: ACTIVATED
        password: ''
    TenantCreateRequest:
      type: object
      deprecated: true
      description: Since Bonita 7.12, tenant creation is deprecated
      properties:
        name:
          description: the name of the tenant
          type: string
        description:
          description: the description
          type: string
        username:
          description: the username
          type: string
        password:
          description: the password
          type: string
          format: password
      example:
        name: MyTenant
        description: My tenant
        username: john
        password: bpm
    TenantUpdateRequest:
      type: object
      deprecated: true
      description: Since Bonita 7.12, tenant update is deprecated
      properties:
        name:
          description: the name of the tenant
          type: string
        description:
          description: the description
          type: string
        username:
          description: the username
          type: string
        password:
          description: the password
          type: string
          format: password
        icon:
          description: the path of the icon
          type: string
        state:
          description: the tenant state
          type: string
          enum:
            - ACTIVATED
            - DEACTIVATED
      example:
        name: MyTenant
        description: My new tenant description
        username: john
        password: bpm
        icon: /default.png
        state: ACTIVATED
    PlatformLicense:
      type: object
      description: ''
      properties:
        licenseStartDate:
          description: date with format `yyyy-MM-dd` - first day (included) of license file validity
          type: string
        duration:
          description: number of days for license file validity
          type: string
        licenseExpirationDate:
          description: date with format `yyyy-MM-dd` - last day (included) of license file validity
          type: string
        numberOfCPUCores:
          description: number of CPUs
          type: string
        edition:
          description: name of the Bonita edition enabled by the license
          type: string
        licenseMode:
          description: available mode enabled by the license
          type: string
        requestKey:
          description: |
            request key to use to generate a new license on the customer portal
            If you have a subscription that specifies case-counter licensing, additional fields are present:
          type: string
        subscriptionStartPeriod:
          description: date with format `yyyy-MM-dd` - first day (included) of current period for number of process instances provisioned
          type: string
        subscriptionEndPeriod:
          description: date with format `yyyy-MM-dd` - last day (included) of current period for number of process instances provisioned
          type: string
        caseCounterLimit:
          description: number of process instances provisioned for period between `subscriptionStartPeriod` and `subscriptionEndPeriod`
          type: integer
          format: int64
        caseCounter:
          description: number of consumed process instances for period between `subscriptionStartPeriod` and `subscriptionEndPeriod`
          type: integer
          format: int64
    Page:
      type: object
      properties:
        id:
          description: page id
          type: string
        creationDate:
          description: date and time
          type: string
        createdBy:
          description: created by user id
          type: string
        isProvided:
          description: is provided
          type: boolean
        description:
          description: description
          type: string
        contentName:
          description: content name
          type: string
        displayName:
          description: custom page display name
          type: string
        updatedBy:
          description: updated by user id
          type: string
        lastUpdateDate:
          description: date and time
          type: string
        urlToken:
          description: custom page urlToken
          type: string
    PageCreateRequest:
      type: object
      properties:
        pageZip:
          description: Zip name as named in the temp folder after upload
          type: string
      example:
        pageZip: tmp_4338264789005487499.zip:new-bonita-angular-dashboard.zip
    PageUpdateRequest:
      type: object
      properties:
        pageZip:
          description: pageZip as named in the temp folder after upload
          type: string
      example:
        pageZip: tmp_4338264789005487499.zip:new-bonita-angular-dashboard.zip
    Profile:
      type: object
      description: Profile
      properties:
        id:
          description: profile id
          type: string
        creationDate:
          description: date and time of profile creation
          type: string
        icon:
          description: icon used in the portal to represent the profile
          type: string
        createdBy:
          description: id of the uer who created the profile
          type: string
        description:
          description: a description of the profile
          type: string
        name:
          description: profile name
          type: string
        isdefault:
          description: 'true | false '
          type: boolean
        lastUpdateDate:
          description: date and time of the last update to the profile
          type: string
        updatedBy:
          description: the id of the user who last updated the profile
          type: string
      example:
        id: 101
        creationDate: '2014-12-04 16:29:23.434'
        icon: /profiles/profileDefault.png
        createdBy: 1
        description: This is my custom profile
        name: MyCustomProfile
        is_default: false
        lastUpdateDate: '2014-12-04 16:29:23.434'
        updatedBy: 1
    ProfileCreateRequest:
      type: object
      properties:
        description:
          description: a description of the profile
          type: string
        name:
          description: profile name
          type: string
      example:
        name: MyCustomProfile
        description: This is my custom profile
    ProfileUpdateRequest:
      type: object
      properties:
        description:
          description: description of the Profile
          type: string
        displayName:
          description: display name of the Profile
          type: string
      example:
        displayName: My app
        description: My application description
    ProfileEntry:
      type: object
      description: Profile entry
      properties:
        id:
          description: profileEntry id
          type: string
        icon:
          description: icon used in the portal to represent a profileEntry
          type: string
        index:
          description: position in a menu
          type: string
        profile_id:
          description: id of the profile that contains this profileEntry
          type: string
        page:
          description: pageToken (menu name or menu item name) used in a portal menu to identify the page associated with the profileEntry
          type: string
        description:
          description: description
          type: string
        name:
          description: name of the profileEntry
          type: string
        type:
          description: link (if menu item) | folder (if menu)
          type: string
        isCustom:
          description: ' true | false '
          type: boolean
        parent_id:
          description: id or parent profileEntry if in a folder
          type: string
    ProfileEntryCreateRequest:
      type: object
      properties:
        profile_id:
          description: id of the profile that contains this profileEntry
          type: string
        page:
          description: pageToken (menu name or menu item name) used in a portal menu to identify the page associated with the profileEntry
          type: string
        description:
          description: description
          type: string
        name:
          description: name of the profileEntry
          type: string
        type:
          description: link (if menu item) | folder (if menu)
          type: string
        isCustom:
          description: ' true | false '
          type: boolean
        parent_id:
          description: id or parent profileEntry if in a folder
          type: string
      example:
        page: tasklistingadmin
        parent_id: '0'
        name: Test menu
        profile_id: '102'
        type: link
        isCustom: false
    ProfileEntryUpdateRequest:
      type: object
      properties:
        profile_id:
          description: id of the profile that contains this profileEntry
          type: string
        page:
          description: pageToken (menu name or menu item name) used in a portal menu to identify the page associated with the profileEntry
          type: string
        description:
          description: description
          type: string
        name:
          description: name of the profileEntry
          type: string
        type:
          description: link (if menu item) | folder (if menu)
          type: string
        isCustom:
          description: ' true | false '
          type: boolean
        parent_id:
          description: id or parent profileEntry if in a folder
          type: string
      example:
        page: tasklistingadmin
        parent_id: '0'
        name: Test menu
        profile_id: '102'
        type: link
        isCustom: false
    ProfileMember:
      type: object
      description: Profile member
      properties:
        id:
          description: profile member id
          type: string
        profile_id:
          description: id of the profile for this mapping
          type: string
        role_id:
          description: id of role, or -1 if the member type is not role
          type: string
        group_id:
          description: id of group, or -1 if the member type is not group
          type: string
        user_id:
          description: id of user, or -1 if the member type is not user
          type: string
      example:
        id: 204
        profile_id: 2
        role_id: -1
        group_id: -1
        user_id: 101
    ProfileMemberCreateRequest:
      type: object
      properties:
        profile_id:
          description: id of the profile for this mapping
          type: string
        role_id:
          description: id of role, or -1 if the member type is not role
          type: string
        group_id:
          description: id of group, or -1 if the member type is not group
          type: string
        user_id:
          description: id of user, or -1 if the member type is not user
          type: string
        member_type:
          description: member type
          type: string
          enum:
            - USER
            - ROLE
            - GROUP
      example:
        profile_id: '2'
        member_type: USER
        user_id: '101'
    ThemeCreateRequest:
      type: object
      deprecated: true
      description: Since Bonita 7.13, theme management is deprecated
      properties:
        type:
          description: theme type
          type: string
          enum:
            - portal
            - mobile
        zipFilePathportal:
          description: tmp zip file Path as uploaded to portal
          type: string
      example:
        type: portal
        zipFilePathportal: tmp_1939634566964075173.zip
    ThemeRestoreRequest:
      type: object
      deprecated: true
      description: Since Bonita 7.13, theme management is deprecated
      properties:
        type:
          description: theme type
          type: string
          enum:
            - portal
            - mobile
      example:
        type: portal
    I18nlocale:
      type: object
      description: ''
      properties:
        name:
          description: Name of the language
          type: string
        locale:
          description: code of the locale
          type: string
      example:
        name: English
        locale: en
    I18ntranslation:
      description: ''
      type: object
      additionalProperties:
        type: string
      example:
        value: Gehen Sie dazu zum %profilelink%.
        key: To do so, go to %profilelink%.
    Session:
      type: object
      properties:
        user_id:
          description: user id
          type: string
        user_name:
          description: user name
          type: string
        session_id:
          description: the session id
          type: string
        conf:
          description: conf
          type: string
        is_technical_user:
          description: 'is technical user: true|false'
          type: boolean
        is_guest_user:
          description: 'is technical user: true|false'
          type: boolean
        version:
          description: bonita version
          type: string
        copyright:
          description: bonita copyright
          type: string
      example:
        user_id: -1
        user_name: install
        session_id: '501670672784361704'
        conf: '["F2A1B8E895F82077F59E4F11D001FC5823BC629E","CEEE6B727AB3EA8834DB0A732A1D8E8B230EE368","53A5CA40F466070283D58B8069C98F36A6D4142C","CA34A74DEF742742DAF395904D87FB1CC5EEF78B","1E49E265B8708F2B474226C9F6211A427E2ADC02","691A18FC27888346B838C65BF73858673D85DF4A","835E3A67C0516F6F5178468E3A9CCC7FE8F3AF52","74CD60A3CD84EEE4E13C17197508DAFEA2927F9A","98B3E3369C0724F4CCD784EF257EA7E0AE7BDCB2"]'
        is_technical_user: true
        is_guest_user: false
        version: 7.11.1
        copyright: Bonitasoft © 2020
    SystemTenant:
      type: object
      description: ''
      properties:
        id:
          description: system tenant id
          type: string
        paused:
          description: whether the system tenant is paused or not
          type: boolean
      example:
        id: 1
        paused: false
    TenantPauseRequest:
      type: object
      properties:
        paused:
          description: wether the system tenant should be paused or not
          type: string
      example:
        paused: true
    MaintenanceDetails:
      type: object
      properties:
        maintenanceState:
          description: maintenance state
          type: string
          enum:
            - ENABLED
            - DISABLED
        maintenanceMessage:
          description: maintenance message
          type: string
        maintenanceMessageActive:
          description: is maintenance message active
          type: boolean
      example:
        maintenanceState: DISABLED
        maintenanceMessage: maintenance msg
        maintenanceMessageActive: true
    SystemInformation:
      type: object
      description: ''
      properties:
        licenseStartDate:
          description: date in milliseconds timestamp since Epoch - first day (included) of license file validity - Subscription editions only
          type: string
        duration:
          description: number of days for license file validity - Subscription editions only
          type: string
        licenseExpirationDate:
          description: date in milliseconds timestamp since Epoch - last day (included) of license file validity - Subscription editions only
          type: string
        numberOfCPUCores:
          description: number of CPUs allowed by the license, if license mode is CPU-based - Subscription editions only
          type: string
        edition:
          description: name of the Bonita edition enabled by the license - Community & Subscription editions
          type: string
        subscriptionType:
          description: type of the Subscription the customer has purchased with Bonitasoft - Subscription editions only
          type: string
        licenseMode:
          description: available mode enabled by the license - Subscription editions only
          type: string
        managedAppsLimit:
          description: number of managed apps provisioned for in a Bonita Central environment - Subscription editions only
          type: integer
          format: int64
        licensee:
          description: Owner of the license - Subscription editions only
          type: string
        contactInfo:
          description: E-mail address of the owner of the license - Subscription editions only
          type: string
        expirationDate:
          description: License expiration date in milliseconds timestamp since Epoch - Subscription editions only
          type: integer
          format: int64
        activeFeatures:
          description: List of active features that the license allow access to (separated by comma) - Subscription editions only
          type: string
        requestKey:
          description: |
            request key to use to generate a new license on the customer portal.  

            If you have a subscription that specifies case-counter licensing, additional fields are present:
          type: string
        subscriptionStartPeriod:
          description: date in milliseconds timestamp since Epoch - first day (included) of current period for number of process instances provisioned - Subscription editions only
          type: string
        subscriptionEndPeriod:
          description: date in milliseconds timestamp since Epoch - last day (included) of current period for number of process instances provisioned - Subscription editions only
          type: string
        caseCounterLimit:
          description: number of maximum process instances that can be started - Community & Subscription editions
          type: integer
          format: int64
        caseCounter:
          description: number of consumed process instances - Community & Subscription editions
          type: integer
          format: int64
    License:
      type: object
      description: Bonita license
      properties:
        owner:
          description: Owner of the license
          type: string
        edition:
          description: name of the Bonita edition enabled by the license (Community,...)
          type: string
        nb_cpu_cores:
          description: number of CPUs
          type: string
        expirationDate:
          description: 'License expiration date with format: `yyyy-MM-dd HH:mm:ss.SSS`'
          type: integer
          format: int64
    Bdm:
      type: object
      description: ''
      properties:
        id:
          description: BDM id
          type: string
        name:
          description: BDM name
          type: string
        type:
          description: BDM type
          type: string
        state:
          $ref: '#/components/schemas/TenantResourceState'
        lastUpdatedBy:
          description: This value is always -1 because only the tenant_technical_user can install BDM.
          type: string
          default: '-1'
        lastUpdateDate:
          description: Last date when the BDM was installed or updated.
          type: string
      example:
        id: '309'
        name: client_bdm.zip
        type: BDM
        state: INSTALLED
        lastUpdatedBy: -1
        lastUpdateDate: '2018-01-17T17:05:36.671Z'
    BDMInstallRequest:
      type: object
      properties:
        fileUpload:
          type: string
          description: the temporary file name once uploaded on the server
      example:
        fileUpload: tmp_uploaded_bdm.zip
    FormFileUploadRequest:
      type: object
      description: A file to upload
      properties:
        file:
          type: string
          format: binary
    FormFileUploadResponse:
      type: object
      description: Form file upload response
      properties:
        filename:
          description: file name
          type: string
        tempPath:
          description: temporary path of a file
          type: string
        contentType:
          description: response content type
          type: string
      example:
        filename: 66c5d4e99167e.pdf
        tempPath: 885efa7d-c639-4076-ba5d-04a7fbfc1d11.pdf
        contentType: application/pdf
  responses:
    BadRequest:
      description: Bad request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: Bad request
    Unauthorized:
      description: Authorization information is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: Unauthorized
    Forbidden:
      description: Forbidden, The request contained valid data and was understood by the server, but the server is refusing action.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: Forbidden, The request contained valid data and was understood by the server, but the server is refusing action.
    ServerError:
      description: Unexpected error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: An unexpected error occured.
    NotFound:
      description: The resource for the specified ID was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: Resource not found.
    OK:
      description: OK
    NoContent:
      description: OK (no content).
  parameters:
    pageIndex:
      description: index of the page to display
      explode: true
      in: query
      name: p
      example: '0'
      required: true
      schema:
        type: integer
        minimum: 0
        default: 0
        format: int32
      style: form
    pageCount:
      description: maximum number of elements to retrieve
      explode: true
      in: query
      name: c
      example: '10'
      required: true
      schema:
        type: integer
        minimum: 1
        default: 20
        format: int32
      style: form
    pageFilter:
      description: can filter on attributes with the format f={filter\_name}={filter\_value} with the name/value pair as url encoded string.
      explode: true
      in: query
      name: f
      required: false
      schema:
        type: array
        items:
          type: string
          maxLength: 250
          pattern: ^[A-Za-z0-9%]{0,250}$
      style: form
      example: abc%3d123
    pageOrder:
      description: can order on attributes
      explode: true
      in: query
      name: o
      required: false
      schema:
        type: string
        maxLength: 250
        pattern: ^[A-Za-z0-9%]{0,250}$
      style: form
      example: myProp%20ASC
    pageSearch:
      description: can search on attributes
      explode: true
      in: query
      name: s
      required: false
      schema:
        type: string
        maxLength: 250
        pattern: ^[A-Za-z0-9%]{0,250}$
      style: form
x-tagGroups:
  - name: Authentication
    tags:
      - PortalAuthentication
      - PlatformAuthentication
  - name: Application
    tags:
      - Application
      - ApplicationMenu
      - ApplicationPage
      - FormMapping
  - name: BDM
    tags:
      - BDM
      - BusinessDataQuery
      - BDMAccessControl
  - name: BPM
    tags:
      - Activity
      - ArchivedActivity
      - HumanTask
      - ManualTask
      - Task
      - UserTask
      - ArchivedHumanTask
      - ArchivedManualTask
      - ArchivedTask
      - ArchivedUserTask
      - ActivityVariable
      - ArchivedActivityVariable
      - ProcessInstanceVariable
      - ArchivedProcessInstanceVariable
      - ProcessInstanceDocument
      - ArchivedProcessInstanceDocument
      - Actor
      - ActorMember
      - ProcessInstance
      - ArchivedProcessInstance
      - ProcessInstanceInfo
      - ProcessInstanceComment
      - ArchivedProcessInstanceComment
      - Process
      - Diagram
      - ProcessInfo
      - ProcessParameter
      - ProcessResolutionProblem
      - ProcessSupervisor
      - ProcessConnectorDependency
      - ConnectorFailure
      - ConnectorInstance
      - ArchivedConnectorInstance
      - FlowNode
      - ArchivedFlowNode
      - TimerEventTrigger
      - Message
      - Signal
  - name: Custom user info
    tags:
      - CustomUserDefinition
      - CustomUserValue
      - CustomUser
  - name: Identity
    tags:
      - ProfessionalContactData
      - Group
      - Membership
      - Role
      - User
      - Authentication
  - name: Platform
    tags:
      - PlatformAuthentication
      - Platform
      - PlatformTenant
      - Tenant
      - License
      - Information
  - name: Portal
    tags:
      - Page
      - Profile
      - ProfileEntry
      - ProfileMember
      - Theme
      - Upload
  - name: System
    tags:
      - I18nlocale
      - I18ntranslation
      - Session
      - Maintenance
      - SystemTenant
  - name: Other
    tags:
      - RestAPIextensions
  - name: Upload
    tags:
      - FormFileUpload
