openapi: 3.0.1
info:
  contact:
    email: matthias.mueller@appng.org
    name: appNG developer team
    url: http://appng.org
  description: The REST API for appNG
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0
  title: appNG REST API
  version: 1.0.0
servers:
- url: /
security:
- appNGCookie: []
paths:
  /service/{site}/{application}/rest/openapi/navigation:
    get:
      operationId: getNavigation
      parameters:
      - description: the site to call
        explode: false
        in: path
        name: site
        required: true
        schema:
          type: string
        style: simple
      - description: the application to call
        explode: false
        in: path
        name: application
        required: true
        schema:
          type: string
        style: simple
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Navigation'
          description: datasource response
      tags:
      - appNG
      x-accepts: application/json
  /service/{site}/{application}/rest/openapi/page/{id}/{pageUrlParams}:
    get:
      operationId: getPageWithUrlParams
      parameters:
      - description: the site to call
        explode: false
        in: path
        name: site
        required: true
        schema:
          type: string
        style: simple
      - description: the application to call
        explode: false
        in: path
        name: application
        required: true
        schema:
          type: string
        style: simple
      - description: the ID of the page
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      - description: the URL path to parametrize the page with.
        explode: false
        in: path
        name: pageUrlParams
        required: true
        schema:
          type: string
        style: simple
      - description: a list of section IDs to fill
        explode: true
        in: query
        name: _sect
        required: false
        schema:
          items:
            type: string
          type: array
        style: form
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageDefinition'
          description: datasource response
      tags:
      - appNG
      x-accepts: application/json
  /service/{site}/{application}/rest/openapi/datasource/{id}/{params}:
    get:
      description: Returns a datasource by id
      operationId: getDatasource
      parameters:
      - description: the site to call
        explode: false
        in: path
        name: site
        required: true
        schema:
          type: string
        style: simple
      - description: the application to call
        explode: false
        in: path
        name: application
        required: true
        schema:
          type: string
        style: simple
      - description: The id of the datasource.
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      - description: |
          The id of the datasource.
          Parameters (including sorting and filtering parameters) are passed as matrix style parameters.
          Note that names and values of these matrix parameters must be URL-Encoded
        example: ;name=appng;host=localhost;sortSites=name%3Aasc%3Bhost%3Adesc%3Bpage%3A0%3BpageSize%3A10
        explode: true
        in: path
        name: params
        required: true
        schema:
          type: string
        style: matrix
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Datasource'
          description: datasource response
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: unexpected error
      tags:
      - appNG
      x-accepts: application/json
  /service/{site}/{application}/rest/openapi/action/{event-id}/{id}/{params}:
    get:
      description: Returns an action. To be used for initially retrieving the action.
      operationId: getAction
      parameters:
      - description: the site to call
        explode: false
        in: path
        name: site
        required: true
        schema:
          type: string
        style: simple
      - description: the application to call
        explode: false
        in: path
        name: application
        required: true
        schema:
          type: string
        style: simple
      - description: event-id of the action
        explode: false
        in: path
        name: event-id
        required: true
        schema:
          type: string
        style: simple
      - description: The ID of the action.
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      - description: Parameters (including sorting and filtering parameters) are passed
          as matrix style parameters. Note that names and values of these matrix parameters
          must be URL-Encoded
        example: ;name=appng;host=localhost;sortSites=name%3Aasc%3Bhost%3Adesc%3Bpage%3A0%3BpageSize%3A10
        explode: true
        in: path
        name: params
        required: true
        schema:
          type: string
        style: matrix
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Action'
          description: action response
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Action'
          description: action response, in case an recoverable error occurred
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: unexpected/unrecoverable error
      tags:
      - appNG
      x-accepts: application/json
  /service/{site}/{application}/rest/openapi/action/multipart/{event-id}/{id}/{params}:
    post:
      description: Performs an action.
      operationId: performActionMultiPart
      parameters:
      - description: the site to call
        explode: false
        in: path
        name: site
        required: true
        schema:
          type: string
        style: simple
      - description: the application to call
        explode: false
        in: path
        name: application
        required: true
        schema:
          type: string
        style: simple
      - description: event-id of the action
        explode: false
        in: path
        name: event-id
        required: true
        schema:
          type: string
        style: simple
      - description: The ID of the action.
        explode: false
        in: path
        name: id
        required: true
        schema:
          type: string
        style: simple
      - description: Parameters (including sorting and filtering parameters) are passed
          as matrix style parameters. Note that names and values of these matrix parameters
          must be URL-Encoded
        example: ;name=appng;host=localhost;sortSites=name%3Aasc%3Bhost%3Adesc%3Bpage%3A0%3BpageSize%3A10
        explode: true
        in: path
        name: params
        required: true
        schema:
          type: string
        style: matrix
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
        description: For each field of an action, a multipart parameter must be present
          .
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Action'
          description: action response
        "400":
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Action'
          description: action response, in case an recoverable error occurred
        default:
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorModel'
          description: unexpected/unrecoverable error
      tags:
      - appNG
      x-contentType: multipart/form-data
      x-accepts: application/json
components:
  schemas:
    PageDefinition:
      example:
        sessionParameters:
          key: sessionParameters
        appVersion: ""
        appNGVersion: ""
        urlTemplate: urlTemplate
        title:
          value: value
        urlPath: urlPath
        sections:
        - hidden: true
          elements:
          - collapsed: true
            datasource:
              item:
                links:
                - default: true
                  icon: icon
                  id: id
                  label: label
                  confirmation: confirmation
                  type: page
                  target: target
                - default: true
                  icon: icon
                  id: id
                  label: label
                  confirmation: confirmation
                  type: page
                  target: target
                fields:
                  key:
                    name: name
                    formattedValue: formattedValue
                    icons:
                    - name: name
                      label: label
                    - name: name
                      label: label
                    value: '{}'
                selected: true
              appVersion: ""
              appNGVersion: ""
              filters:
              - name: name
                options:
                  entries:
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  multiple: true
                label: label
              - name: name
                options:
                  entries:
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  multiple: true
                label: label
              title: title
              filterResetPath: filterResetPath
              permissions:
              - mode: READ
                ref: ref
                value: true
              - mode: READ
                ref: ref
                value: true
              messages:
              - level: OK
                text: text
                key: key
              - level: OK
                text: text
                key: key
              links:
              - default: true
                icon: icon
                id: id
                label: label
                confirmation: confirmation
                type: page
                target: target
              - default: true
                icon: icon
                id: id
                label: label
                confirmation: confirmation
                type: page
                target: target
              _self: _self
              id: id
              page:
                number: 6
                isFirst: true
                totalItems: 5
                pageSizes:
                - path: path
                  size: 2
                - path: path
                  size: 2
                size: 1
                isLast: true
                _last: _last
                totalPages: 5
                _first: _first
                _next: _next
                _previous: _previous
              fields:
              - name: name
                format: format
                rules:
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                label: label
                sort:
                  pathDesc: pathDesc
                  prio: 0
                  pathAsc: pathAsc
                  order: asc
                fields: {}
              - name: name
                format: format
                rules:
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                label: label
                sort:
                  pathDesc: pathDesc
                  prio: 0
                  pathAsc: pathAsc
                  order: asc
                fields: {}
              parameters:
                key: parameters
              user:
                authenticated: true
                decimalSeparator: "."
                nickName: nickName
                timezone: Europe/Berlin
                name: name
                groupingSeparator: ','
                locale: en_US
                email: john@example.com
              items:
              - links:
                - default: true
                  icon: icon
                  id: id
                  label: label
                  confirmation: confirmation
                  type: page
                  target: target
                - default: true
                  icon: icon
                  id: id
                  label: label
                  confirmation: confirmation
                  type: page
                  target: target
                fields:
                  key:
                    name: name
                    formattedValue: formattedValue
                    icons:
                    - name: name
                      label: label
                    - name: name
                      label: label
                    value: '{}'
                selected: true
              - links:
                - default: true
                  icon: icon
                  id: id
                  label: label
                  confirmation: confirmation
                  type: page
                  target: target
                - default: true
                  icon: icon
                  id: id
                  label: label
                  confirmation: confirmation
                  type: page
                  target: target
                fields:
                  key:
                    name: name
                    formattedValue: formattedValue
                    icons:
                    - name: name
                      label: label
                    - name: name
                      label: label
                    value: '{}'
                selected: true
            action:
              appVersion: ""
              appNGVersion: ""
              title: title
              permissions:
              - mode: READ
                ref: ref
                value: true
              - mode: READ
                ref: ref
                value: true
              messages:
              - level: OK
                text: text
                key: key
              - level: OK
                text: text
                key: key
              _self: _self
              id: id
              fields:
              - visible: true
                readonly: true
                name: name
                format: format
                options:
                  entries:
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  multiple: true
                formattedValue: formattedValue
                messages:
                - level: OK
                  text: text
                  key: key
                - level: OK
                  text: text
                  key: key
                rules:
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                label: label
                fields:
                - null
                - null
                value: '{}'
              - visible: true
                readonly: true
                name: name
                format: format
                options:
                  entries:
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  multiple: true
                formattedValue: formattedValue
                messages:
                - level: OK
                  text: text
                  key: key
                - level: OK
                  text: text
                  key: key
                rules:
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                label: label
                fields:
                - null
                - null
                value: '{}'
              event-id: event-id
              parameters:
                key: parameters
              user:
                authenticated: true
                decimalSeparator: "."
                nickName: nickName
                timezone: Europe/Berlin
                name: name
                groupingSeparator: ','
                locale: en_US
                email: john@example.com
              _execute: _execute
              onSuccess: onSuccess
            title: title
          - collapsed: true
            datasource:
              item:
                links:
                - default: true
                  icon: icon
                  id: id
                  label: label
                  confirmation: confirmation
                  type: page
                  target: target
                - default: true
                  icon: icon
                  id: id
                  label: label
                  confirmation: confirmation
                  type: page
                  target: target
                fields:
                  key:
                    name: name
                    formattedValue: formattedValue
                    icons:
                    - name: name
                      label: label
                    - name: name
                      label: label
                    value: '{}'
                selected: true
              appVersion: ""
              appNGVersion: ""
              filters:
              - name: name
                options:
                  entries:
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  multiple: true
                label: label
              - name: name
                options:
                  entries:
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  multiple: true
                label: label
              title: title
              filterResetPath: filterResetPath
              permissions:
              - mode: READ
                ref: ref
                value: true
              - mode: READ
                ref: ref
                value: true
              messages:
              - level: OK
                text: text
                key: key
              - level: OK
                text: text
                key: key
              links:
              - default: true
                icon: icon
                id: id
                label: label
                confirmation: confirmation
                type: page
                target: target
              - default: true
                icon: icon
                id: id
                label: label
                confirmation: confirmation
                type: page
                target: target
              _self: _self
              id: id
              page:
                number: 6
                isFirst: true
                totalItems: 5
                pageSizes:
                - path: path
                  size: 2
                - path: path
                  size: 2
                size: 1
                isLast: true
                _last: _last
                totalPages: 5
                _first: _first
                _next: _next
                _previous: _previous
              fields:
              - name: name
                format: format
                rules:
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                label: label
                sort:
                  pathDesc: pathDesc
                  prio: 0
                  pathAsc: pathAsc
                  order: asc
                fields: {}
              - name: name
                format: format
                rules:
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                label: label
                sort:
                  pathDesc: pathDesc
                  prio: 0
                  pathAsc: pathAsc
                  order: asc
                fields: {}
              parameters:
                key: parameters
              user:
                authenticated: true
                decimalSeparator: "."
                nickName: nickName
                timezone: Europe/Berlin
                name: name
                groupingSeparator: ','
                locale: en_US
                email: john@example.com
              items:
              - links:
                - default: true
                  icon: icon
                  id: id
                  label: label
                  confirmation: confirmation
                  type: page
                  target: target
                - default: true
                  icon: icon
                  id: id
                  label: label
                  confirmation: confirmation
                  type: page
                  target: target
                fields:
                  key:
                    name: name
                    formattedValue: formattedValue
                    icons:
                    - name: name
                      label: label
                    - name: name
                      label: label
                    value: '{}'
                selected: true
              - links:
                - default: true
                  icon: icon
                  id: id
                  label: label
                  confirmation: confirmation
                  type: page
                  target: target
                - default: true
                  icon: icon
                  id: id
                  label: label
                  confirmation: confirmation
                  type: page
                  target: target
                fields:
                  key:
                    name: name
                    formattedValue: formattedValue
                    icons:
                    - name: name
                      label: label
                    - name: name
                      label: label
                    value: '{}'
                selected: true
            action:
              appVersion: ""
              appNGVersion: ""
              title: title
              permissions:
              - mode: READ
                ref: ref
                value: true
              - mode: READ
                ref: ref
                value: true
              messages:
              - level: OK
                text: text
                key: key
              - level: OK
                text: text
                key: key
              _self: _self
              id: id
              fields:
              - visible: true
                readonly: true
                name: name
                format: format
                options:
                  entries:
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  multiple: true
                formattedValue: formattedValue
                messages:
                - level: OK
                  text: text
                  key: key
                - level: OK
                  text: text
                  key: key
                rules:
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                label: label
                fields:
                - null
                - null
                value: '{}'
              - visible: true
                readonly: true
                name: name
                format: format
                options:
                  entries:
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  multiple: true
                formattedValue: formattedValue
                messages:
                - level: OK
                  text: text
                  key: key
                - level: OK
                  text: text
                  key: key
                rules:
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                label: label
                fields:
                - null
                - null
                value: '{}'
              event-id: event-id
              parameters:
                key: parameters
              user:
                authenticated: true
                decimalSeparator: "."
                nickName: nickName
                timezone: Europe/Berlin
                name: name
                groupingSeparator: ','
                locale: en_US
                email: john@example.com
              _execute: _execute
              onSuccess: onSuccess
            title: title
          _self: _self
          id: id
          title:
            value: value
        - hidden: true
          elements:
          - collapsed: true
            datasource:
              item:
                links:
                - default: true
                  icon: icon
                  id: id
                  label: label
                  confirmation: confirmation
                  type: page
                  target: target
                - default: true
                  icon: icon
                  id: id
                  label: label
                  confirmation: confirmation
                  type: page
                  target: target
                fields:
                  key:
                    name: name
                    formattedValue: formattedValue
                    icons:
                    - name: name
                      label: label
                    - name: name
                      label: label
                    value: '{}'
                selected: true
              appVersion: ""
              appNGVersion: ""
              filters:
              - name: name
                options:
                  entries:
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  multiple: true
                label: label
              - name: name
                options:
                  entries:
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  multiple: true
                label: label
              title: title
              filterResetPath: filterResetPath
              permissions:
              - mode: READ
                ref: ref
                value: true
              - mode: READ
                ref: ref
                value: true
              messages:
              - level: OK
                text: text
                key: key
              - level: OK
                text: text
                key: key
              links:
              - default: true
                icon: icon
                id: id
                label: label
                confirmation: confirmation
                type: page
                target: target
              - default: true
                icon: icon
                id: id
                label: label
                confirmation: confirmation
                type: page
                target: target
              _self: _self
              id: id
              page:
                number: 6
                isFirst: true
                totalItems: 5
                pageSizes:
                - path: path
                  size: 2
                - path: path
                  size: 2
                size: 1
                isLast: true
                _last: _last
                totalPages: 5
                _first: _first
                _next: _next
                _previous: _previous
              fields:
              - name: name
                format: format
                rules:
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                label: label
                sort:
                  pathDesc: pathDesc
                  prio: 0
                  pathAsc: pathAsc
                  order: asc
                fields: {}
              - name: name
                format: format
                rules:
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                label: label
                sort:
                  pathDesc: pathDesc
                  prio: 0
                  pathAsc: pathAsc
                  order: asc
                fields: {}
              parameters:
                key: parameters
              user:
                authenticated: true
                decimalSeparator: "."
                nickName: nickName
                timezone: Europe/Berlin
                name: name
                groupingSeparator: ','
                locale: en_US
                email: john@example.com
              items:
              - links:
                - default: true
                  icon: icon
                  id: id
                  label: label
                  confirmation: confirmation
                  type: page
                  target: target
                - default: true
                  icon: icon
                  id: id
                  label: label
                  confirmation: confirmation
                  type: page
                  target: target
                fields:
                  key:
                    name: name
                    formattedValue: formattedValue
                    icons:
                    - name: name
                      label: label
                    - name: name
                      label: label
                    value: '{}'
                selected: true
              - links:
                - default: true
                  icon: icon
                  id: id
                  label: label
                  confirmation: confirmation
                  type: page
                  target: target
                - default: true
                  icon: icon
                  id: id
                  label: label
                  confirmation: confirmation
                  type: page
                  target: target
                fields:
                  key:
                    name: name
                    formattedValue: formattedValue
                    icons:
                    - name: name
                      label: label
                    - name: name
                      label: label
                    value: '{}'
                selected: true
            action:
              appVersion: ""
              appNGVersion: ""
              title: title
              permissions:
              - mode: READ
                ref: ref
                value: true
              - mode: READ
                ref: ref
                value: true
              messages:
              - level: OK
                text: text
                key: key
              - level: OK
                text: text
                key: key
              _self: _self
              id: id
              fields:
              - visible: true
                readonly: true
                name: name
                format: format
                options:
                  entries:
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  multiple: true
                formattedValue: formattedValue
                messages:
                - level: OK
                  text: text
                  key: key
                - level: OK
                  text: text
                  key: key
                rules:
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                label: label
                fields:
                - null
                - null
                value: '{}'
              - visible: true
                readonly: true
                name: name
                format: format
                options:
                  entries:
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  multiple: true
                formattedValue: formattedValue
                messages:
                - level: OK
                  text: text
                  key: key
                - level: OK
                  text: text
                  key: key
                rules:
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                label: label
                fields:
                - null
                - null
                value: '{}'
              event-id: event-id
              parameters:
                key: parameters
              user:
                authenticated: true
                decimalSeparator: "."
                nickName: nickName
                timezone: Europe/Berlin
                name: name
                groupingSeparator: ','
                locale: en_US
                email: john@example.com
              _execute: _execute
              onSuccess: onSuccess
            title: title
          - collapsed: true
            datasource:
              item:
                links:
                - default: true
                  icon: icon
                  id: id
                  label: label
                  confirmation: confirmation
                  type: page
                  target: target
                - default: true
                  icon: icon
                  id: id
                  label: label
                  confirmation: confirmation
                  type: page
                  target: target
                fields:
                  key:
                    name: name
                    formattedValue: formattedValue
                    icons:
                    - name: name
                      label: label
                    - name: name
                      label: label
                    value: '{}'
                selected: true
              appVersion: ""
              appNGVersion: ""
              filters:
              - name: name
                options:
                  entries:
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  multiple: true
                label: label
              - name: name
                options:
                  entries:
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  multiple: true
                label: label
              title: title
              filterResetPath: filterResetPath
              permissions:
              - mode: READ
                ref: ref
                value: true
              - mode: READ
                ref: ref
                value: true
              messages:
              - level: OK
                text: text
                key: key
              - level: OK
                text: text
                key: key
              links:
              - default: true
                icon: icon
                id: id
                label: label
                confirmation: confirmation
                type: page
                target: target
              - default: true
                icon: icon
                id: id
                label: label
                confirmation: confirmation
                type: page
                target: target
              _self: _self
              id: id
              page:
                number: 6
                isFirst: true
                totalItems: 5
                pageSizes:
                - path: path
                  size: 2
                - path: path
                  size: 2
                size: 1
                isLast: true
                _last: _last
                totalPages: 5
                _first: _first
                _next: _next
                _previous: _previous
              fields:
              - name: name
                format: format
                rules:
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                label: label
                sort:
                  pathDesc: pathDesc
                  prio: 0
                  pathAsc: pathAsc
                  order: asc
                fields: {}
              - name: name
                format: format
                rules:
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                label: label
                sort:
                  pathDesc: pathDesc
                  prio: 0
                  pathAsc: pathAsc
                  order: asc
                fields: {}
              parameters:
                key: parameters
              user:
                authenticated: true
                decimalSeparator: "."
                nickName: nickName
                timezone: Europe/Berlin
                name: name
                groupingSeparator: ','
                locale: en_US
                email: john@example.com
              items:
              - links:
                - default: true
                  icon: icon
                  id: id
                  label: label
                  confirmation: confirmation
                  type: page
                  target: target
                - default: true
                  icon: icon
                  id: id
                  label: label
                  confirmation: confirmation
                  type: page
                  target: target
                fields:
                  key:
                    name: name
                    formattedValue: formattedValue
                    icons:
                    - name: name
                      label: label
                    - name: name
                      label: label
                    value: '{}'
                selected: true
              - links:
                - default: true
                  icon: icon
                  id: id
                  label: label
                  confirmation: confirmation
                  type: page
                  target: target
                - default: true
                  icon: icon
                  id: id
                  label: label
                  confirmation: confirmation
                  type: page
                  target: target
                fields:
                  key:
                    name: name
                    formattedValue: formattedValue
                    icons:
                    - name: name
                      label: label
                    - name: name
                      label: label
                    value: '{}'
                selected: true
            action:
              appVersion: ""
              appNGVersion: ""
              title: title
              permissions:
              - mode: READ
                ref: ref
                value: true
              - mode: READ
                ref: ref
                value: true
              messages:
              - level: OK
                text: text
                key: key
              - level: OK
                text: text
                key: key
              _self: _self
              id: id
              fields:
              - visible: true
                readonly: true
                name: name
                format: format
                options:
                  entries:
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  multiple: true
                formattedValue: formattedValue
                messages:
                - level: OK
                  text: text
                  key: key
                - level: OK
                  text: text
                  key: key
                rules:
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                label: label
                fields:
                - null
                - null
                value: '{}'
              - visible: true
                readonly: true
                name: name
                format: format
                options:
                  entries:
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  - hits: 0
                    options:
                    - null
                    - null
                    label: label
                    value: value
                    selected: true
                  multiple: true
                formattedValue: formattedValue
                messages:
                - level: OK
                  text: text
                  key: key
                - level: OK
                  text: text
                  key: key
                rules:
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                - messageKey: messageKey
                  options:
                    key: options
                  active: true
                  type: type
                  message: message
                label: label
                fields:
                - null
                - null
                value: '{}'
              event-id: event-id
              parameters:
                key: parameters
              user:
                authenticated: true
                decimalSeparator: "."
                nickName: nickName
                timezone: Europe/Berlin
                name: name
                groupingSeparator: ','
                locale: en_US
                email: john@example.com
              _execute: _execute
              onSuccess: onSuccess
            title: title
          _self: _self
          id: id
          title:
            value: value
        _userUrl: _userUrl
        getParameters:
          key: getParameters
        messages:
        - level: OK
          text: text
          key: key
        - level: OK
          text: text
          key: key
        links:
        - default: true
          icon: icon
          id: id
          label: label
          confirmation: confirmation
          type: page
          target: target
        - default: true
          icon: icon
          id: id
          label: label
          confirmation: confirmation
          type: page
          target: target
        _self: _self
        id: id
        urlParameters:
        - name: name
          value: value
        - name: name
          value: value
        user:
          authenticated: true
          decimalSeparator: "."
          nickName: nickName
          timezone: Europe/Berlin
          name: name
          groupingSeparator: ','
          locale: en_US
          email: john@example.com
      properties:
        _self:
          description: The URL of the page
          type: string
        _userUrl:
          description: The URL of the page represented to the user
          type: string
        user:
          $ref: '#/components/schemas/User'
        id:
          type: string
        messages:
          items:
            $ref: '#/components/schemas/Message'
          type: array
        urlPath:
          description: the current URL path
          type: string
        urlParameters:
          items:
            $ref: '#/components/schemas/Parameter'
          type: array
        urlTemplate:
          description: A complete template for teh full path this page can handle
          type: string
        getParameters:
          additionalProperties:
            type: string
          type: object
        sessionParameters:
          additionalProperties:
            type: string
          type: object
        title:
          $ref: '#/components/schemas/Label'
        links:
          items:
            $ref: '#/components/schemas/Link'
          type: array
        sections:
          items:
            $ref: '#/components/schemas/Section'
          type: array
        appNGVersion:
          description: The version of appNG
          type: String
        appVersion:
          description: The version of the application
          type: String
      required:
      - _self
      - id
      type: object
    Section:
      example:
        hidden: true
        elements:
        - collapsed: true
          datasource:
            item:
              links:
              - default: true
                icon: icon
                id: id
                label: label
                confirmation: confirmation
                type: page
                target: target
              - default: true
                icon: icon
                id: id
                label: label
                confirmation: confirmation
                type: page
                target: target
              fields:
                key:
                  name: name
                  formattedValue: formattedValue
                  icons:
                  - name: name
                    label: label
                  - name: name
                    label: label
                  value: '{}'
              selected: true
            appVersion: ""
            appNGVersion: ""
            filters:
            - name: name
              options:
                entries:
                - hits: 0
                  options:
                  - null
                  - null
                  label: label
                  value: value
                  selected: true
                - hits: 0
                  options:
                  - null
                  - null
                  label: label
                  value: value
                  selected: true
                multiple: true
              label: label
            - name: name
              options:
                entries:
                - hits: 0
                  options:
                  - null
                  - null
                  label: label
                  value: value
                  selected: true
                - hits: 0
                  options:
                  - null
                  - null
                  label: label
                  value: value
                  selected: true
                multiple: true
              label: label
            title: title
            filterResetPath: filterResetPath
            permissions:
            - mode: READ
              ref: ref
              value: true
            - mode: READ
              ref: ref
              value: true
            messages:
            - level: OK
              text: text
              key: key
            - level: OK
              text: text
              key: key
            links:
            - default: true
              icon: icon
              id: id
              label: label
              confirmation: confirmation
              type: page
              target: target
            - default: true
              icon: icon
              id: id
              label: label
              confirmation: confirmation
              type: page
              target: target
            _self: _self
            id: id
            page:
              number: 6
              isFirst: true
              totalItems: 5
              pageSizes:
              - path: path
                size: 2
              - path: path
                size: 2
              size: 1
              isLast: true
              _last: _last
              totalPages: 5
              _first: _first
              _next: _next
              _previous: _previous
            fields:
            - name: name
              format: format
              rules:
              - messageKey: messageKey
                options:
                  key: options
                active: true
                type: type
                message: message
              - messageKey: messageKey
                options:
                  key: options
                active: true
                type: type
                message: message
              label: label
              sort:
                pathDesc: pathDesc
                prio: 0
                pathAsc: pathAsc
                order: asc
              fields: {}
            - name: name
              format: format
              rules:
              - messageKey: messageKey
                options:
                  key: options
                active: true
                type: type
                message: message
              - messageKey: messageKey
                options:
                  key: options
                active: true
                type: type
                message: message
              label: label
              sort:
                pathDesc: pathDesc
                prio: 0
                pathAsc: pathAsc
                order: asc
              fields: {}
            parameters:
              key: parameters
            user:
              authenticated: true
              decimalSeparator: "."
              nickName: nickName
              timezone: Europe/Berlin
              name: name
              groupingSeparator: ','
              locale: en_US
              email: john@example.com
            items:
            - links:
              - default: true
                icon: icon
                id: id
                label: label
                confirmation: confirmation
                type: page
                target: target
              - default: true
                icon: icon
                id: id
                label: label
                confirmation: confirmation
                type: page
                target: target
              fields:
                key:
                  name: name
                  formattedValue: formattedValue
                  icons:
                  - name: name
                    label: label
                  - name: name
                    label: label
                  value: '{}'
              selected: true
            - links:
              - default: true
                icon: icon
                id: id
                label: label
                confirmation: confirmation
                type: page
                target: target
              - default: true
                icon: icon
                id: id
                label: label
                confirmation: confirmation
                type: page
                target: target
              fields:
                key:
                  name: name
                  formattedValue: formattedValue
                  icons:
                  - name: name
                    label: label
                  - name: name
                    label: label
                  value: '{}'
              selected: true
          action:
            appVersion: ""
            appNGVersion: ""
            title: title
            permissions:
            - mode: READ
              ref: ref
              value: true
            - mode: READ
              ref: ref
              value: true
            messages:
            - level: OK
              text: text
              key: key
            - level: OK
              text: text
              key: key
            _self: _self
            id: id
            fields:
            - visible: true
              readonly: true
              name: name
              format: format
              options:
                entries:
                - hits: 0
                  options:
                  - null
                  - null
                  label: label
                  value: value
                  selected: true
                - hits: 0
                  options:
                  - null
                  - null
                  label: label
                  value: value
                  selected: true
                multiple: true
              formattedValue: formattedValue
              messages:
              - level: OK
                text: text
                key: key
              - level: OK
                text: text
                key: key
              rules:
              - messageKey: messageKey
                options:
                  key: options
                active: true
                type: type
                message: message
              - messageKey: messageKey
                options:
                  key: options
                active: true
                type: type
                message: message
              label: label
              fields:
              - null
              - null
              value: '{}'
            - visible: true
              readonly: true
              name: name
              format: format
              options:
                entries:
                - hits: 0
                  options:
                  - null
                  - null
                  label: label
                  value: value
                  selected: true
                - hits: 0
                  options:
                  - null
                  - null
                  label: label
                  value: value
                  selected: true
                multiple: true
              formattedValue: formattedValue
              messages:
              - level: OK
                text: text
                key: key
              - level: OK
                text: text
                key: key
              rules:
              - messageKey: messageKey
                options:
                  key: options
                active: true
                type: type
                message: message
              - messageKey: messageKey
                options:
                  key: options
                active: true
                type: type
                message: message
              label: label
              fields:
              - null
              - null
              value: '{}'
            event-id: event-id
            parameters:
              key: parameters
            user:
              authenticated: true
              decimalSeparator: "."
              nickName: nickName
              timezone: Europe/Berlin
              name: name
              groupingSeparator: ','
              locale: en_US
              email: john@example.com
            _execute: _execute
            onSuccess: onSuccess
          title: title
        - collapsed: true
          datasource:
            item:
              links:
              - default: true
                icon: icon
                id: id
                label: label
                confirmation: confirmation
                type: page
                target: target
              - default: true
                icon: icon
                id: id
                label: label
                confirmation: confirmation
                type: page
                target: target
              fields:
                key:
                  name: name
                  formattedValue: formattedValue
                  icons:
                  - name: name
                    label: label
                  - name: name
                    label: label
                  value: '{}'
              selected: true
            appVersion: ""
            appNGVersion: ""
            filters:
            - name: name
              options:
                entries:
                - hits: 0
                  options:
                  - null
                  - null
                  label: label
                  value: value
                  selected: true
                - hits: 0
                  options:
                  - null
                  - null
                  label: label
                  value: value
                  selected: true
                multiple: true
              label: label
            - name: name
              options:
                entries:
                - hits: 0
                  options:
                  - null
                  - null
                  label: label
                  value: value
                  selected: true
                - hits: 0
                  options:
                  - null
                  - null
                  label: label
                  value: value
                  selected: true
                multiple: true
              label: label
            title: title
            filterResetPath: filterResetPath
            permissions:
            - mode: READ
              ref: ref
              value: true
            - mode: READ
              ref: ref
              value: true
            messages:
            - level: OK
              text: text
              key: key
            - level: OK
              text: text
              key: key
            links:
            - default: true
              icon: icon
              id: id
              label: label
              confirmation: confirmation
              type: page
              target: target
            - default: true
              icon: icon
              id: id
              label: label
              confirmation: confirmation
              type: page
              target: target
            _self: _self
            id: id
            page:
              number: 6
              isFirst: true
              totalItems: 5
              pageSizes:
              - path: path
                size: 2
              - path: path
                size: 2
              size: 1
              isLast: true
              _last: _last
              totalPages: 5
              _first: _first
              _next: _next
              _previous: _previous
            fields:
            - name: name
              format: format
              rules:
              - messageKey: messageKey
                options:
                  key: options
                active: true
                type: type
                message: message
              - messageKey: messageKey
                options:
                  key: options
                active: true
                type: type
                message: message
              label: label
              sort:
                pathDesc: pathDesc
                prio: 0
                pathAsc: pathAsc
                order: asc
              fields: {}
            - name: name
              format: format
              rules:
              - messageKey: messageKey
                options:
                  key: options
                active: true
                type: type
                message: message
              - messageKey: messageKey
                options:
                  key: options
                active: true
                type: type
                message: message
              label: label
              sort:
                pathDesc: pathDesc
                prio: 0
                pathAsc: pathAsc
                order: asc
              fields: {}
            parameters:
              key: parameters
            user:
              authenticated: true
              decimalSeparator: "."
              nickName: nickName
              timezone: Europe/Berlin
              name: name
              groupingSeparator: ','
              locale: en_US
              email: john@example.com
            items:
            - links:
              - default: true
                icon: icon
                id: id
                label: label
                confirmation: confirmation
                type: page
                target: target
              - default: true
                icon: icon
                id: id
                label: label
                confirmation: confirmation
                type: page
                target: target
              fields:
                key:
                  name: name
                  formattedValue: formattedValue
                  icons:
                  - name: name
                    label: label
                  - name: name
                    label: label
                  value: '{}'
              selected: true
            - links:
              - default: true
                icon: icon
                id: id
                label: label
                confirmation: confirmation
                type: page
                target: target
              - default: true
                icon: icon
                id: id
                label: label
                confirmation: confirmation
                type: page
                target: target
              fields:
                key:
                  name: name
                  formattedValue: formattedValue
                  icons:
                  - name: name
                    label: label
                  - name: name
                    label: label
                  value: '{}'
              selected: true
          action:
            appVersion: ""
            appNGVersion: ""
            title: title
            permissions:
            - mode: READ
              ref: ref
              value: true
            - mode: READ
              ref: ref
              value: true
            messages:
            - level: OK
              text: text
              key: key
            - level: OK
              text: text
              key: key
            _self: _self
            id: id
            fields:
            - visible: true
              readonly: true
              name: name
              format: format
              options:
                entries:
                - hits: 0
                  options:
                  - null
                  - null
                  label: label
                  value: value
                  selected: true
                - hits: 0
                  options:
                  - null
                  - null
                  label: label
                  value: value
                  selected: true
                multiple: true
              formattedValue: formattedValue
              messages:
              - level: OK
                text: text
                key: key
              - level: OK
                text: text
                key: key
              rules:
              - messageKey: messageKey
                options:
                  key: options
                active: true
                type: type
                message: message
              - messageKey: messageKey
                options:
                  key: options
                active: true
                type: type
                message: message
              label: label
              fields:
              - null
              - null
              value: '{}'
            - visible: true
              readonly: true
              name: name
              format: format
              options:
                entries:
                - hits: 0
                  options:
                  - null
                  - null
                  label: label
                  value: value
                  selected: true
                - hits: 0
                  options:
                  - null
                  - null
                  label: label
                  value: value
                  selected: true
                multiple: true
              formattedValue: formattedValue
              messages:
              - level: OK
                text: text
                key: key
              - level: OK
                text: text
                key: key
              rules:
              - messageKey: messageKey
                options:
                  key: options
                active: true
                type: type
                message: message
              - messageKey: messageKey
                options:
                  key: options
                active: true
                type: type
                message: message
              label: label
              fields:
              - null
              - null
              value: '{}'
            event-id: event-id
            parameters:
              key: parameters
            user:
              authenticated: true
              decimalSeparator: "."
              nickName: nickName
              timezone: Europe/Berlin
              name: name
              groupingSeparator: ','
              locale: en_US
              email: john@example.com
            _execute: _execute
            onSuccess: onSuccess
          title: title
        _self: _self
        id: id
        title:
          value: value
      properties:
        _self:
          description: the API path to this section
          type: string
        id:
          type: string
        title:
          $ref: '#/components/schemas/Label'
        hidden:
          description: Whether the section is hidden or not
          type: boolean
        elements:
          items:
            $ref: '#/components/schemas/SectionElement'
          type: array
      required:
      - _self
      - id
      type: object
    SectionElement:
      example:
        collapsed: true
        datasource:
          item:
            links:
            - default: true
              icon: icon
              id: id
              label: label
              confirmation: confirmation
              type: page
              target: target
            - default: true
              icon: icon
              id: id
              label: label
              confirmation: confirmation
              type: page
              target: target
            fields:
              key:
                name: name
                formattedValue: formattedValue
                icons:
                - name: name
                  label: label
                - name: name
                  label: label
                value: '{}'
            selected: true
          appVersion: ""
          appNGVersion: ""
          filters:
          - name: name
            options:
              entries:
              - hits: 0
                options:
                - null
                - null
                label: label
                value: value
                selected: true
              - hits: 0
                options:
                - null
                - null
                label: label
                value: value
                selected: true
              multiple: true
            label: label
          - name: name
            options:
              entries:
              - hits: 0
                options:
                - null
                - null
                label: label
                value: value
                selected: true
              - hits: 0
                options:
                - null
                - null
                label: label
                value: value
                selected: true
              multiple: true
            label: label
          title: title
          filterResetPath: filterResetPath
          permissions:
          - mode: READ
            ref: ref
            value: true
          - mode: READ
            ref: ref
            value: true
          messages:
          - level: OK
            text: text
            key: key
          - level: OK
            text: text
            key: key
          links:
          - default: true
            icon: icon
            id: id
            label: label
            confirmation: confirmation
            type: page
            target: target
          - default: true
            icon: icon
            id: id
            label: label
            confirmation: confirmation
            type: page
            target: target
          _self: _self
          id: id
          page:
            number: 6
            isFirst: true
            totalItems: 5
            pageSizes:
            - path: path
              size: 2
            - path: path
              size: 2
            size: 1
            isLast: true
            _last: _last
            totalPages: 5
            _first: _first
            _next: _next
            _previous: _previous
          fields:
          - name: name
            format: format
            rules:
            - messageKey: messageKey
              options:
                key: options
              active: true
              type: type
              message: message
            - messageKey: messageKey
              options:
                key: options
              active: true
              type: type
              message: message
            label: label
            sort:
              pathDesc: pathDesc
              prio: 0
              pathAsc: pathAsc
              order: asc
            fields: {}
          - name: name
            format: format
            rules:
            - messageKey: messageKey
              options:
                key: options
              active: true
              type: type
              message: message
            - messageKey: messageKey
              options:
                key: options
              active: true
              type: type
              message: message
            label: label
            sort:
              pathDesc: pathDesc
              prio: 0
              pathAsc: pathAsc
              order: asc
            fields: {}
          parameters:
            key: parameters
          user:
            authenticated: true
            decimalSeparator: "."
            nickName: nickName
            timezone: Europe/Berlin
            name: name
            groupingSeparator: ','
            locale: en_US
            email: john@example.com
          items:
          - links:
            - default: true
              icon: icon
              id: id
              label: label
              confirmation: confirmation
              type: page
              target: target
            - default: true
              icon: icon
              id: id
              label: label
              confirmation: confirmation
              type: page
              target: target
            fields:
              key:
                name: name
                formattedValue: formattedValue
                icons:
                - name: name
                  label: label
                - name: name
                  label: label
                value: '{}'
            selected: true
          - links:
            - default: true
              icon: icon
              id: id
              label: label
              confirmation: confirmation
              type: page
              target: target
            - default: true
              icon: icon
              id: id
              label: label
              confirmation: confirmation
              type: page
              target: target
            fields:
              key:
                name: name
                formattedValue: formattedValue
                icons:
                - name: name
                  label: label
                - name: name
                  label: label
                value: '{}'
            selected: true
        action:
          appVersion: ""
          appNGVersion: ""
          title: title
          permissions:
          - mode: READ
            ref: ref
            value: true
          - mode: READ
            ref: ref
            value: true
          messages:
          - level: OK
            text: text
            key: key
          - level: OK
            text: text
            key: key
          _self: _self
          id: id
          fields:
          - visible: true
            readonly: true
            name: name
            format: format
            options:
              entries:
              - hits: 0
                options:
                - null
                - null
                label: label
                value: value
                selected: true
              - hits: 0
                options:
                - null
                - null
                label: label
                value: value
                selected: true
              multiple: true
            formattedValue: formattedValue
            messages:
            - level: OK
              text: text
              key: key
            - level: OK
              text: text
              key: key
            rules:
            - messageKey: messageKey
              options:
                key: options
              active: true
              type: type
              message: message
            - messageKey: messageKey
              options:
                key: options
              active: true
              type: type
              message: message
            label: label
            fields:
            - null
            - null
            value: '{}'
          - visible: true
            readonly: true
            name: name
            format: format
            options:
              entries:
              - hits: 0
                options:
                - null
                - null
                label: label
                value: value
                selected: true
              - hits: 0
                options:
                - null
                - null
                label: label
                value: value
                selected: true
              multiple: true
            formattedValue: formattedValue
            messages:
            - level: OK
              text: text
              key: key
            - level: OK
              text: text
              key: key
            rules:
            - messageKey: messageKey
              options:
                key: options
              active: true
              type: type
              message: message
            - messageKey: messageKey
              options:
                key: options
              active: true
              type: type
              message: message
            label: label
            fields:
            - null
            - null
            value: '{}'
          event-id: event-id
          parameters:
            key: parameters
          user:
            authenticated: true
            decimalSeparator: "."
            nickName: nickName
            timezone: Europe/Berlin
            name: name
            groupingSeparator: ','
            locale: en_US
            email: john@example.com
          _execute: _execute
          onSuccess: onSuccess
        title: title
      properties:
        title:
          type: string
        collapsed:
          description: Whether the element is collapsed
          type: boolean
        datasource:
          $ref: '#/components/schemas/Datasource'
        action:
          $ref: '#/components/schemas/Action'
      type: object
    Action:
      description: An action, representing an executable operation.
      example:
        appVersion: ""
        appNGVersion: ""
        title: title
        permissions:
        - mode: READ
          ref: ref
          value: true
        - mode: READ
          ref: ref
          value: true
        messages:
        - level: OK
          text: text
          key: key
        - level: OK
          text: text
          key: key
        _self: _self
        id: id
        fields:
        - visible: true
          readonly: true
          name: name
          format: format
          options:
            entries:
            - hits: 0
              options:
              - null
              - null
              label: label
              value: value
              selected: true
            - hits: 0
              options:
              - null
              - null
              label: label
              value: value
              selected: true
            multiple: true
          formattedValue: formattedValue
          messages:
          - level: OK
            text: text
            key: key
          - level: OK
            text: text
            key: key
          rules:
          - messageKey: messageKey
            options:
              key: options
            active: true
            type: type
            message: message
          - messageKey: messageKey
            options:
              key: options
            active: true
            type: type
            message: message
          label: label
          fields:
          - null
          - null
          value: '{}'
        - visible: true
          readonly: true
          name: name
          format: format
          options:
            entries:
            - hits: 0
              options:
              - null
              - null
              label: label
              value: value
              selected: true
            - hits: 0
              options:
              - null
              - null
              label: label
              value: value
              selected: true
            multiple: true
          formattedValue: formattedValue
          messages:
          - level: OK
            text: text
            key: key
          - level: OK
            text: text
            key: key
          rules:
          - messageKey: messageKey
            options:
              key: options
            active: true
            type: type
            message: message
          - messageKey: messageKey
            options:
              key: options
            active: true
            type: type
            message: message
          label: label
          fields:
          - null
          - null
          value: '{}'
        event-id: event-id
        parameters:
          key: parameters
        user:
          authenticated: true
          decimalSeparator: "."
          nickName: nickName
          timezone: Europe/Berlin
          name: name
          groupingSeparator: ','
          locale: en_US
          email: john@example.com
        _execute: _execute
        onSuccess: onSuccess
      properties:
        _self:
          description: The URL of the action
          type: string
        _execute:
          description: The URL to execute the action
          type: string
        id:
          description: The Id of the action.
          type: string
        event-id:
          description: The event-Id of the action.
          type: string
        title:
          description: The title of the datasource.
          type: string
        parameters:
          additionalProperties:
            type: string
          description: A list of parameters for the action
          type: object
        user:
          $ref: '#/components/schemas/User'
        messages:
          description: A list of messages.
          items:
            $ref: '#/components/schemas/Message'
          type: array
        fields:
          description: A list of action-fields.
          items:
            $ref: '#/components/schemas/ActionField'
          type: array
        permissions:
          description: The permissions for this action.
          items:
            $ref: '#/components/schemas/Permission'
          type: array
        onSuccess:
          type: string
        appNGVersion:
          description: The version of appNG
          type: String
        appVersion:
          description: The version of the application
          type: String
      required:
      - _self
      - event-id
      - id
      type: object
    Datasource:
      description: A datasource, represented by either a page (of elements) or a single
        element.
      example:
        item:
          links:
          - default: true
            icon: icon
            id: id
            label: label
            confirmation: confirmation
            type: page
            target: target
          - default: true
            icon: icon
            id: id
            label: label
            confirmation: confirmation
            type: page
            target: target
          fields:
            key:
              name: name
              formattedValue: formattedValue
              icons:
              - name: name
                label: label
              - name: name
                label: label
              value: '{}'
          selected: true
        appVersion: ""
        appNGVersion: ""
        filters:
        - name: name
          options:
            entries:
            - hits: 0
              options:
              - null
              - null
              label: label
              value: value
              selected: true
            - hits: 0
              options:
              - null
              - null
              label: label
              value: value
              selected: true
            multiple: true
          label: label
        - name: name
          options:
            entries:
            - hits: 0
              options:
              - null
              - null
              label: label
              value: value
              selected: true
            - hits: 0
              options:
              - null
              - null
              label: label
              value: value
              selected: true
            multiple: true
          label: label
        title: title
        filterResetPath: filterResetPath
        permissions:
        - mode: READ
          ref: ref
          value: true
        - mode: READ
          ref: ref
          value: true
        messages:
        - level: OK
          text: text
          key: key
        - level: OK
          text: text
          key: key
        links:
        - default: true
          icon: icon
          id: id
          label: label
          confirmation: confirmation
          type: page
          target: target
        - default: true
          icon: icon
          id: id
          label: label
          confirmation: confirmation
          type: page
          target: target
        _self: _self
        id: id
        page:
          number: 6
          isFirst: true
          totalItems: 5
          pageSizes:
          - path: path
            size: 2
          - path: path
            size: 2
          size: 1
          isLast: true
          _last: _last
          totalPages: 5
          _first: _first
          _next: _next
          _previous: _previous
        fields:
        - name: name
          format: format
          rules:
          - messageKey: messageKey
            options:
              key: options
            active: true
            type: type
            message: message
          - messageKey: messageKey
            options:
              key: options
            active: true
            type: type
            message: message
          label: label
          sort:
            pathDesc: pathDesc
            prio: 0
            pathAsc: pathAsc
            order: asc
          fields: {}
        - name: name
          format: format
          rules:
          - messageKey: messageKey
            options:
              key: options
            active: true
            type: type
            message: message
          - messageKey: messageKey
            options:
              key: options
            active: true
            type: type
            message: message
          label: label
          sort:
            pathDesc: pathDesc
            prio: 0
            pathAsc: pathAsc
            order: asc
          fields: {}
        parameters:
          key: parameters
        user:
          authenticated: true
          decimalSeparator: "."
          nickName: nickName
          timezone: Europe/Berlin
          name: name
          groupingSeparator: ','
          locale: en_US
          email: john@example.com
        items:
        - links:
          - default: true
            icon: icon
            id: id
            label: label
            confirmation: confirmation
            type: page
            target: target
          - default: true
            icon: icon
            id: id
            label: label
            confirmation: confirmation
            type: page
            target: target
          fields:
            key:
              name: name
              formattedValue: formattedValue
              icons:
              - name: name
                label: label
              - name: name
                label: label
              value: '{}'
          selected: true
        - links:
          - default: true
            icon: icon
            id: id
            label: label
            confirmation: confirmation
            type: page
            target: target
          - default: true
            icon: icon
            id: id
            label: label
            confirmation: confirmation
            type: page
            target: target
          fields:
            key:
              name: name
              formattedValue: formattedValue
              icons:
              - name: name
                label: label
              - name: name
                label: label
              value: '{}'
          selected: true
      properties:
        _self:
          description: The URL of the datasource
          type: string
        id:
          description: The unique ID of the datasource.
          type: string
        title:
          description: The title of the datasource.
          type: string
        parameters:
          additionalProperties:
            type: string
          description: The parameters for the datasource.
          type: object
        user:
          $ref: '#/components/schemas/User'
        links:
          description: A list of links.
          items:
            $ref: '#/components/schemas/Link'
          type: array
        messages:
          description: A list of messages.
          items:
            $ref: '#/components/schemas/Message'
          type: array
        fields:
          description: A list of fields.
          items:
            $ref: '#/components/schemas/Field'
          type: array
        filters:
          description: A list of filters.
          items:
            $ref: '#/components/schemas/Filter'
          type: array
        filterResetPath:
          description: the path to be called to reset the filter
          type: string
        page:
          $ref: '#/components/schemas/Page'
        item:
          $ref: '#/components/schemas/Item'
        items:
          description: The items of this page.
          items:
            $ref: '#/components/schemas/Item'
          type: array
        permissions:
          description: The permissions for this datasource.
          items:
            $ref: '#/components/schemas/Permission'
          type: array
        appNGVersion:
          description: The version of appNG
          type: String
        appVersion:
          description: The version of the application
          type: String
      required:
      - _self
      - id
      type: object
    ErrorModel:
      properties:
        code:
          format: int32
          type: integer
        message:
          type: string
      required:
      - code
      - message
      type: object
    Field:
      description: A field that is part of a datasource.
      example:
        name: name
        format: format
        rules:
        - messageKey: messageKey
          options:
            key: options
          active: true
          type: type
          message: message
        - messageKey: messageKey
          options:
            key: options
          active: true
          type: type
          message: message
        label: label
        sort:
          pathDesc: pathDesc
          prio: 0
          pathAsc: pathAsc
          order: asc
        fields: {}
      properties:
        name:
          description: The name for this field.
          type: string
        label:
          description: The label for this field.
          type: string
        fieldType:
          $ref: '#/components/schemas/FieldType'
        sort:
          $ref: '#/components/schemas/Sort'
        format:
          description: The format for this field, depending on its type.
          type: string
        rules:
          description: The validation rules that should be applied for this field.
          items:
            $ref: '#/components/schemas/ValidationRule'
          type: array
        fields:
          additionalProperties:
            $ref: '#/components/schemas/Field'
          description: The child fields of this field.
          type: object
      required:
      - fieldType
      - name
      type: object
    Icon:
      description: an icon
      example:
        name: name
        label: label
      properties:
        name:
          type: string
        label:
          type: string
      type: object
    FieldValue:
      description: The value of a field within a datasource.
      example:
        name: name
        formattedValue: formattedValue
        icons:
        - name: name
          label: label
        - name: name
          label: label
        value: '{}'
      properties:
        name:
          description: The name of the field.
          type: string
        value:
          description: "The value of the field.\nThis can be a simple string,integer,number\
            \ or boolean value (for simple FieldTypes), \nor an object (namely: an\
            \ associative array of FieldValues for FieldType.OBJECT)\nor an array\
            \ of objects (namely: an array of associative arrays of FieldValues for\
            \ for FieldType.LIST_OBJECT).\n"
          type: object
        formattedValue:
          description: The formatted value of the field (only applies for "simple"
            FieldTypes).
          type: string
        icons:
          items:
            $ref: '#/components/schemas/Icon'
          type: array
      required:
      - name
      type: object
    Page:
      description: A page that contains paging information an a list of elements.
      example:
        number: 6
        isFirst: true
        totalItems: 5
        pageSizes:
        - path: path
          size: 2
        - path: path
          size: 2
        size: 1
        isLast: true
        _last: _last
        totalPages: 5
        _first: _first
        _next: _next
        _previous: _previous
      properties:
        _first:
          description: path to the first page
          type: string
        _previous:
          description: path to the previous page
          type: string
        _next:
          description: path to the next page
          type: string
        _last:
          description: path to the last page
          type: string
        number:
          description: The 0-based number of the current page.
          format: int32
          type: integer
        size:
          description: The number of items per page.
          format: int32
          type: integer
        totalPages:
          description: The number of total pages.
          format: int32
          type: integer
        totalItems:
          description: The total number of items.
          format: int32
          type: integer
        isFirst:
          description: If this is the first page.
          type: boolean
        isLast:
          description: If this is the last page.
          type: boolean
        pageSizes:
          items:
            $ref: '#/components/schemas/PageSize'
          type: array
      required:
      - _first
      - _last
      - _next
      - _previous
      - isFirst
      - isLast
      - number
      - size
      - totalItems
      - totalPages
      type: object
    PageSize:
      description: describes the size and path for setting a page size
      example:
        path: path
        size: 2
      properties:
        size:
          description: the number of items to show
          format: int32
          type: integer
        path:
          description: the path
          type: string
      type: object
    Sort:
      description: Marks a field as sortable, properties are filled only when sorting
        has been applied.
      example:
        pathDesc: pathDesc
        prio: 0
        pathAsc: pathAsc
        order: asc
      properties:
        prio:
          description: The priority for this sort, important when a multi-field sort
            is applied.
          type: integer
        order:
          description: The order for this sort (ascending or descending).
          enum:
          - asc
          - desc
          type: string
        pathAsc:
          description: the path to sort ascending
          type: string
        pathDesc:
          description: the path to sort descending
          type: string
      type: object
    Item:
      description: A single item of a page.
      example:
        links:
        - default: true
          icon: icon
          id: id
          label: label
          confirmation: confirmation
          type: page
          target: target
        - default: true
          icon: icon
          id: id
          label: label
          confirmation: confirmation
          type: page
          target: target
        fields:
          key:
            name: name
            formattedValue: formattedValue
            icons:
            - name: name
              label: label
            - name: name
              label: label
            value: '{}'
        selected: true
      properties:
        fields:
          additionalProperties:
            $ref: '#/components/schemas/FieldValue'
          description: The list of field-values of the item.
          type: object
        selected:
          description: Whether this item is selected/active.
          type: boolean
        links:
          description: A list of links.
          items:
            $ref: '#/components/schemas/Link'
          type: array
      type: object
    Link:
      description: A link.
      discriminator:
        propertyName: linkType
      example:
        default: true
        icon: icon
        id: id
        label: label
        confirmation: confirmation
        type: page
        target: target
      properties:
        type:
          description: |
            * page - Links to a page.
            * extern - Links to an external resource.
            * intern - Links to an internal resource.
            * action - Links to an action.
            * datasource - Links to a datasource
          enum:
          - page
          - extern
          - intern
          - action
          - datasource
          type: string
        id:
          description: The ID for this link.
          type: string
        label:
          description: The label for the link.
          type: string
        target:
          description: The target for the link.
          type: string
        icon:
          description: A descriptive name for an icon that should be used for this
            link.
          type: string
        default:
          description: Whether or not this link should be considered as default.
          type: boolean
        confirmation:
          description: A confirmation message that should be displayed to the user
            before following this link.
          type: string
      required:
      - type
      type: object
    ActionLink:
      allOf:
      - $ref: '#/components/schemas/Link'
      - $ref: '#/components/schemas/ActionLink_allOf'
    Filter:
      description: A filter that applies to a datasource.
      example:
        name: name
        options:
          entries:
          - hits: 0
            options:
            - null
            - null
            label: label
            value: value
            selected: true
          - hits: 0
            options:
            - null
            - null
            label: label
            value: value
            selected: true
          multiple: true
        label: label
      properties:
        name:
          description: The name of the filter.
          type: string
        label:
          description: The label iof the filter.
          type: string
        type:
          $ref: '#/components/schemas/OptionType'
        options:
          $ref: '#/components/schemas/Options'
      type: object
    Options:
      description: A set of selectable options
      example:
        entries:
        - hits: 0
          options:
          - null
          - null
          label: label
          value: value
          selected: true
        - hits: 0
          options:
          - null
          - null
          label: label
          value: value
          selected: true
        multiple: true
      properties:
        multiple:
          description: Whether or not this filter allows multiple options to be selected.
          type: boolean
        entries:
          description: A list of options for this filter.
          items:
            $ref: '#/components/schemas/Option'
          type: array
      type: object
    Option:
      description: A single option, used in a filter or an action-field.
      example:
        hits: 0
        options:
        - null
        - null
        label: label
        value: value
        selected: true
      properties:
        value:
          description: The value for this option.
          type: string
        label:
          description: The label for this option.
          type: string
        selected:
          description: Whether or not this option is selected.
          type: boolean
        hits:
          description: Tells how many hits there are for this option.
          type: integer
        options:
          description: An option can act as a group and thus can itself own a list
            of options.
          items:
            $ref: '#/components/schemas/Option'
          type: array
      type: object
    FieldType:
      description: The possible types for a field/action-field.
      enum:
      - text
      - longtext
      - richtext
      - password
      - url
      - int
      - long
      - decimal
      - checkbox
      - coordinate
      - date
      - file
      - file_multiple
      - image
      - linkpanel
      - list_checkbox
      - list_radio
      - list_select
      - list_text
      - object
      - list_object
      type: string
    OptionType:
      description: The possible types for an option.
      enum:
      - select
      - select_multiple
      - radio
      - checkbox
      - text
      - date
      type: string
    ActionField:
      description: A single field as a part of an action.
      example:
        visible: true
        readonly: true
        name: name
        format: format
        options:
          entries:
          - hits: 0
            options:
            - null
            - null
            label: label
            value: value
            selected: true
          - hits: 0
            options:
            - null
            - null
            label: label
            value: value
            selected: true
          multiple: true
        formattedValue: formattedValue
        messages:
        - level: OK
          text: text
          key: key
        - level: OK
          text: text
          key: key
        rules:
        - messageKey: messageKey
          options:
            key: options
          active: true
          type: type
          message: message
        - messageKey: messageKey
          options:
            key: options
          active: true
          type: type
          message: message
        label: label
        fields:
        - null
        - null
        value: '{}'
      properties:
        name:
          description: The name of the field.
          type: string
        value:
          description: The value of the field. The concrete type of that object depends
            on the fieldType of this field.
          type: object
        label:
          description: The label for the field.
          type: string
        fieldType:
          $ref: '#/components/schemas/FieldType'
        readonly:
          description: Whether or not this field is read-only.
          type: boolean
        visible:
          description: Whether or not this field should be visible.
          type: boolean
        format:
          description: The format for this field, depending on its type.
          type: string
        formattedValue:
          description: The formatted value for this field.
          type: string
        options:
          $ref: '#/components/schemas/Options'
        rules:
          description: The validation rules that should be applied for this field.
          items:
            $ref: '#/components/schemas/ValidationRule'
          type: array
        messages:
          description: The messages related to this field.
          items:
            $ref: '#/components/schemas/Message'
          type: array
        fields:
          description: The child fields of this fieldValue.
          items:
            $ref: '#/components/schemas/ActionField'
          type: array
      type: object
    ValidationRule:
      description: A validation rule that can be bound to an action-field.
      example:
        messageKey: messageKey
        options:
          key: options
        active: true
        type: type
        message: message
      properties:
        type:
          description: The type of the rule.
          type: string
        message:
          description: The error message displayed when the rule isn't fulfilled.
          type: string
        active:
          description: Whether or not this rule is active, meaning it should be applied.
          type: boolean
        messageKey:
          description: The message key for this rule
          type: string
        options:
          additionalProperties:
            type: string
          description: An array defining the custom parameters for this rule.
          type: object
      type: object
    User:
      example:
        authenticated: true
        decimalSeparator: "."
        nickName: nickName
        timezone: Europe/Berlin
        name: name
        groupingSeparator: ','
        locale: en_US
        email: john@example.com
      properties:
        name:
          description: the user's real name
          type: string
        nickName:
          description: the user's nickname
          type: string
        authenticated:
          type: boolean
        email:
          description: The email address of the user.
          example: john@example.com
          type: string
        locale:
          description: The IETF BCP 47 language tag for the user.
          example: en_US
          type: string
        timezone:
          description: The name of the IANA time zone the user is located at.
          example: Europe/Berlin
          type: string
        decimalSeparator:
          description: The charactor used as a decimal separator.
          example: "."
          type: string
        groupingSeparator:
          description: The charactor used when grouping numbers.
          example: ','
          type: string
      type: object
    Message:
      description: A textual message with a certain level.
      example:
        level: OK
        text: text
        key: key
      properties:
        level:
          description: The level of the message.
          enum:
          - OK
          - NOTICE
          - INVALID
          - ERROR
          type: string
        text:
          description: The actual message.
          type: string
        key:
          description: A key for this message
          type: string
      type: object
    Permission:
      description: A permission.
      example:
        mode: READ
        ref: ref
        value: true
      properties:
        mode:
          description: The mode
          enum:
          - READ
          - SET
          type: string
        ref:
          description: The reference id of the permission.
          type: string
        value:
          description: The value, true if the permission is present.
          type: boolean
      type: object
    Parameter:
      description: A single parameter.
      example:
        name: name
        value: value
      properties:
        name:
          description: The name of the parameter.
          type: string
        value:
          description: The value of the parameter.
          type: string
      required:
      - name
      type: object
    Label:
      example:
        value: value
      properties:
        value:
          type: string
      type: object
    Navigation:
      example:
        appNGVersion: ""
        loginAction:
          appVersion: ""
          appNGVersion: ""
          title: title
          permissions:
          - mode: READ
            ref: ref
            value: true
          - mode: READ
            ref: ref
            value: true
          messages:
          - level: OK
            text: text
            key: key
          - level: OK
            text: text
            key: key
          _self: _self
          id: id
          fields:
          - visible: true
            readonly: true
            name: name
            format: format
            options:
              entries:
              - hits: 0
                options:
                - null
                - null
                label: label
                value: value
                selected: true
              - hits: 0
                options:
                - null
                - null
                label: label
                value: value
                selected: true
              multiple: true
            formattedValue: formattedValue
            messages:
            - level: OK
              text: text
              key: key
            - level: OK
              text: text
              key: key
            rules:
            - messageKey: messageKey
              options:
                key: options
              active: true
              type: type
              message: message
            - messageKey: messageKey
              options:
                key: options
              active: true
              type: type
              message: message
            label: label
            fields:
            - null
            - null
            value: '{}'
          - visible: true
            readonly: true
            name: name
            format: format
            options:
              entries:
              - hits: 0
                options:
                - null
                - null
                label: label
                value: value
                selected: true
              - hits: 0
                options:
                - null
                - null
                label: label
                value: value
                selected: true
              multiple: true
            formattedValue: formattedValue
            messages:
            - level: OK
              text: text
              key: key
            - level: OK
              text: text
              key: key
            rules:
            - messageKey: messageKey
              options:
                key: options
              active: true
              type: type
              message: message
            - messageKey: messageKey
              options:
                key: options
              active: true
              type: type
              message: message
            label: label
            fields:
            - null
            - null
            value: '{}'
          event-id: event-id
          parameters:
            key: parameters
          user:
            authenticated: true
            decimalSeparator: "."
            nickName: nickName
            timezone: Europe/Berlin
            name: name
            groupingSeparator: ','
            locale: en_US
            email: john@example.com
          _execute: _execute
          onSuccess: onSuccess
        user:
          authenticated: true
          decimalSeparator: "."
          nickName: nickName
          timezone: Europe/Berlin
          name: name
          groupingSeparator: ','
          locale: en_US
          email: john@example.com
        items:
        - path: path
          default: true
          name: name
          active: true
          _self: _self
          type: SITE
          items:
          - null
          - null
        - path: path
          default: true
          name: name
          active: true
          _self: _self
          type: SITE
          items:
          - null
          - null
      properties:
        user:
          $ref: '#/components/schemas/User'
        items:
          items:
            $ref: '#/components/schemas/NavigationItem'
          type: array
        loginAction:
          $ref: '#/components/schemas/Action'
        appNGVersion:
          description: The version of appNG
          type: String
      type: object
    NavigationItem:
      example:
        path: path
        default: true
        name: name
        active: true
        _self: _self
        type: SITE
        items:
        - null
        - null
      properties:
        _self:
          description: the API path (type PAGE only)
          type: string
        name:
          type: string
        default:
          description: if this is the default page? (type PAGE only)
          type: boolean
        path:
          type: string
        active:
          type: boolean
        type:
          enum:
          - SITE
          - APP
          - PAGE
          type: string
        items:
          items:
            $ref: '#/components/schemas/NavigationItem'
          type: array
      type: object
    ActionLink_allOf:
      properties:
        id:
          description: ID of the action
          type: string
        event-id:
          description: Event-ID of the action
          type: string
        interactive:
          description: Wether or not this action requires additional user-input
          type: boolean
        parameters:
          items:
            $ref: '#/components/schemas/Parameter'
          type: array
      type: object
  securitySchemes:
    appNGCookie:
      in: cookie
      name: JSESSIONID
      type: apiKey

