---
openapi: 3.1.0
components:
  schemas:
    AbstractRequest:
      type: object
      title: Base class for all requests
      properties:
        query:
          type: string
          title: The query to edit / the resulting query (in case we're in a response
            context)
        database:
          type: string
          examples:
          - dj/northwind
          title: ID of the database to operate on
        limit:
          type: integer
          format: int32
          title: Limit the result table to 'limit' rows. This value is overridden
            if the query states the limit explicitly.
        col:
          $ref: "#/components/schemas/Col"
          type: object
          title: the existing column to operate on
    AddColumnRequest:
      type: object
      title: "AddColumnRequest: instrucuts the editor to add / join a column"
      properties:
        query:
          type: string
          title: The query to edit / the resulting query (in case we're in a response
            context)
        database:
          type: string
          examples:
          - dj/northwind
          title: ID of the database to operate on
        limit:
          type: integer
          format: int32
          title: Limit the result table to 'limit' rows. This value is overridden
            if the query states the limit explicitly.
        col:
          $ref: "#/components/schemas/Col"
          type: object
          title: the existing column to operate on
        add:
          $ref: "#/components/schemas/Col"
          type: object
          title: the column to add
        preview:
          title: the preview data (not used by the backend and only included for JSON
            compatibility)
    Choice:
      type: object
      title: "Choice: represents a foreign key choice for select UIs"
      properties:
        name:
          type: string
          title: string representation
        value:
          title: key value
    Col:
      type: object
      title: "Col: identifies a column"
      properties:
        column:
          type: string
          title: column name
        table:
          type: string
          title: "name of the table (omit quotes, schema and database)"
    ColCondition:
      type: object
      title: "ColCondition: defines a filter condition for a column"
      properties:
        col:
          $ref: "#/components/schemas/Col"
          type: object
          title: The column to apply the filter on
        condition:
          type: string
          examples:
          - < 4
          title: "The filter condition in the native query syntax, assuming the column\
            \ is the left operand. Null if no filter is to be set"
    DistinctRequest:
      type: object
      title: "DistinctRequest: instructs the editor to toggle distinct and change\
        \ limit"
      properties:
        query:
          type: string
          title: The query to edit / the resulting query (in case we're in a response
            context)
        database:
          type: string
          examples:
          - dj/northwind
          title: ID of the database to operate on
        limit:
          type: integer
          format: int32
          title: Limit the result table to 'limit' rows. This value is overridden
            if the query states the limit explicitly.
        distinct:
          type: boolean
          title: Distinct value to set
        querylimit:
          type: integer
          format: int32
          title: "limit to set in the query, null means no limit"
    ExpressionAndData:
      type: object
      properties:
        expression:
          type: string
          examples:
          - $.x
          title: jsonata expression
        data:
          examples:
          - x: 1
            "y": 2
    ExpressionCursorData:
      type: object
      properties:
        expression:
          type: string
          examples:
          - $.x
          title: jsonata expression
        data:
          examples:
          - x: 1
            "y": 2
        foreach:
          type: boolean
    FileInfo:
      type: object
      properties:
        filename:
          type: string
        content_type:
          type: string
        content:
          type: string
    InitialQueryRequest:
      type: object
      title: "InitialQueryRequest: JSON input for getInitialQuery"
      properties:
        table:
          type: string
          examples:
          - dj/northwind/EMPLOYEES
          title: ID of the table that is the basis for the initial query
        limit:
          type: integer
          format: int32
          title: Limits the result to 'limit' rows
    Mapping:
      type: object
      properties:
        sourceTable:
          type: string
        extractColumn:
          type: string
        extractKey:
          type: string
        pk:
          type: string
        rowMapping:
          type: object
          additionalProperties:
            type: string
        rowFilter:
          type: string
    MoveColumnRequest:
      type: object
      title: "MoveColumnRequest: instructs the editor to move a column projection"
      properties:
        query:
          type: string
          title: The query to edit / the resulting query (in case we're in a response
            context)
        database:
          type: string
          examples:
          - dj/northwind
          title: ID of the database to operate on
        limit:
          type: integer
          format: int32
          title: Limit the result table to 'limit' rows. This value is overridden
            if the query states the limit explicitly.
        col:
          $ref: "#/components/schemas/Col"
          type: object
          title: the existing column to operate on
        position:
          type: integer
          format: int32
          title: The new column position
    Origin:
      type: object
      title: "Origin: represents an incoming (fk) link to an object"
      properties:
        id:
          $ref: "#/components/schemas/Resource"
          type: object
          title: ID of the record where the link originates
        pk:
          type: string
          title: ID of the pk column
        fk:
          type: string
          title: ID of the fk column
    Property:
      type: object
      title: "Property: JSON schema description of a property"
      properties:
        ID:
          type: string
          examples:
          - dj/northwind/EMPLOYEES/LAST_NAME
          title: Primary key
        parent:
          type: string
          examples:
          - dj/northwind/EMPLOYEE
          title: Table the property is defined in
        name:
          type: string
          title: name of the property
        pkpos:
          type: integer
          format: int32
          title: "If the property is the primary key, this is 0. If it is part of\
            \ a composite key, it is 0,1,2,.. Null if this is no key."
        ref:
          type: string
          examples:
          - dj/northwind/EMPLOYEE/EMPLOYEE_ID
          title: ID of the property / column this foreign key is pointing to. Null
            if the column is no foreign key
        type:
          type: string
          examples:
          - number
          title: JSON type of the property
        title:
          type: string
          title: JSON schema title
        comment:
          type: string
        description:
          type: string
          title: JSON schema description
        widget:
          type: string
          title: JSON schema form widget to use for visualization
        widgetType:
          type: string
          title: JSON schema form custom widget
        choicesUrl:
          type: string
          title: JSON schema form option choices URL
        choicesVerb:
          type: string
          title: JSON schema form option choices verb
        jsonata:
          type: string
          title: JSON schema form option choices jsonata
        displayWith:
          type: string
          title: customize select / autocomplete
        items:
          $ref: "#/components/schemas/Property"
          type: object
          title: JSON schema array type
        properties:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/Property"
          title: JSON schema object properties
        additionalProperties:
          $ref: "#/components/schemas/Property"
          type: object
          title: JSON schema additional properties
        switch:
          type: string
          title: JSON schema form switch
        case:
          type: array
          items:
            type: string
          title: JSON schema form case
        enum:
          type: array
          items:
            type: string
          title: JSON schema enum
        $ref:
          type: string
          title: JSON schema ref
        layout:
          type: string
          title: JSON schema form layout
        dbType:
          type: string
          title: native database type of the property
        readOnly:
          type: boolean
          title: JSON schema readOnly
        createOnly:
          type: boolean
          title: JSON schema createOnly
        required:
          type: boolean
          title: JSON schema required
        examples:
          type: array
          items:
            type: string
          title: JSON schema examples
        style:
          title: JSON schema form style
        choices:
          type: array
          items:
            type: string
          title: JSON schema form choices
        format:
          type: string
          title: field string format
        errorMessage:
          type: string
          title: custom validation error message
    QueryColumn:
      type: object
      title: "QueryColumn: describes a table result column"
      properties:
        columnID:
          type: string
          examples:
          - dj/northwind/EMPLOYEES/LAST_NAME
          title: The ID of the property. Null if the column is computed
        displayName:
          type: string
          title: The projection name. This is also the key in the table row objects
        col:
          $ref: "#/components/schemas/Col"
          type: object
          title: The column object describing the column. Null if the column is computed
        type:
          type: string
          examples:
          - number
          title: "JSON type of the column (number, string, object, array)"
        dbType:
          type: string
          title: Native type in the source database
        keyTable:
          type: string
          title: "if the column is a pk, keyTable contains the table name (same as\
            \ col.table). If it is a fk, contains the name of the referenced table"
        database:
          type: string
          examples:
          - dj/northwind
          title: ID of the database we'Re operating on
        where:
          type: string
          examples:
          - < 4
          title: Filter applied on the column. Null if no filter is present
        groupBy:
          type: string
          examples:
          - GROUP BY
          title: Aggregation applied on the column. Null if no aggregation is present
        prop:
          $ref: "#/components/schemas/Property"
          type: object
          title: Optional column schema
    QueryDatabase:
      type: object
      title: "QueryDatabase: Base class for several request and response structures"
      properties:
        query:
          type: string
          title: The query to edit / the resulting query (in case we're in a response
            context)
        database:
          type: string
          examples:
          - dj/northwind
          title: ID of the database to operate on
        limit:
          type: integer
          format: int32
          title: Limit the result table to 'limit' rows. This value is overridden
            if the query states the limit explicitly.
    QueryResponse:
      type: object
      title: "QueryResponse: returned by all query editor calls"
      properties:
        query:
          type: string
          title: The query to edit / the resulting query (in case we're in a response
            context)
        database:
          type: string
          examples:
          - dj/northwind
          title: ID of the database to operate on
        limit:
          type: integer
          format: int32
          title: Limit the result table to 'limit' rows. This value is overridden
            if the query states the limit explicitly.
        data:
          type: array
          items:
            type: object
            additionalProperties: {}
          title: "Query result as a list of objects, each representing one row"
        metadata:
          type: array
          items:
            $ref: "#/components/schemas/QueryColumn"
          title: List of column metadata
        joinOptions:
          type: array
          items:
            $ref: "#/components/schemas/AddColumnRequest"
          title: Possible columns that can be joined to the current query
        fieldNames:
          type: array
          items:
            type: string
          title: The result table's column names from left to right
        compatibilityError:
          type: string
          title: "In case the query is correct but its structure is outside of the\
            \ query editor's support, the reason why it is not supported is listed\
            \ here. Allows the UI to still display the results but disable editing\
            \ controls."
        distinct:
          type: boolean
          title: Distinct query
        querylimit:
          type: integer
          format: int32
          title: "limit set in the query, null means no limit"
    RemoveColumnRequest:
      type: object
      title: "RemoveColumnRequest: instructs the editor to remove a column projection"
      properties:
        query:
          type: string
          title: The query to edit / the resulting query (in case we're in a response
            context)
        database:
          type: string
          examples:
          - dj/northwind
          title: ID of the database to operate on
        limit:
          type: integer
          format: int32
          title: Limit the result table to 'limit' rows. This value is overridden
            if the query states the limit explicitly.
        col:
          $ref: "#/components/schemas/Col"
          type: object
          title: the existing column to operate on
    RenameRequest:
      type: object
      title: "RenameRequest: instructs the editor to rename a column"
      properties:
        query:
          type: string
          title: The query to edit / the resulting query (in case we're in a response
            context)
        database:
          type: string
          examples:
          - dj/northwind
          title: ID of the database to operate on
        limit:
          type: integer
          format: int32
          title: Limit the result table to 'limit' rows. This value is overridden
            if the query states the limit explicitly.
        col:
          $ref: "#/components/schemas/Col"
          type: object
          title: the existing column to operate on
        name:
          type: string
          title: The new column name
    Resource:
      type: object
      title: "Resource: represents an object ID"
      properties:
        database:
          type: string
          title: name of the database
        table:
          type: string
          title: name of the table
        pk:
          type: array
          items: {}
          title: primary keys
    Result:
      type: object
      properties:
        source:
          type: object
          additionalProperties:
            type: array
            items:
              type: object
              additionalProperties: {}
        result:
          type: object
          additionalProperties:
            type: array
            items:
              type: object
              additionalProperties: {}
        mappings:
          type: object
          additionalProperties:
            $ref: "#/components/schemas/Mapping"
        columns:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        datatypes:
          type: object
          additionalProperties:
            type: array
            items:
              type: string
        warning:
          type: string
        createSchema:
          type: boolean
    SearchResult:
      type: object
      title: "SearchResult: represents a search result"
      properties:
        id:
          $ref: "#/components/schemas/Resource"
          type: object
          title: ID of the record that matches
        column:
          type: string
          title: name of the column containing the match
        match:
          title: matching value
    SetWhereRequest:
      type: object
      title: "SetWhereRequest: instructs the editor to set filter for the table projections"
      properties:
        query:
          type: string
          title: The query to edit / the resulting query (in case we're in a response
            context)
        database:
          type: string
          examples:
          - dj/northwind
          title: ID of the database to operate on
        limit:
          type: integer
          format: int32
          title: Limit the result table to 'limit' rows. This value is overridden
            if the query states the limit explicitly.
        cols:
          type: array
          items:
            $ref: "#/components/schemas/ColCondition"
          title: One filter definition for each table column
    SortRequest:
      type: object
      title: "SortRequest: instructs the editor to sort by a column"
      properties:
        query:
          type: string
          title: The query to edit / the resulting query (in case we're in a response
            context)
        database:
          type: string
          examples:
          - dj/northwind
          title: ID of the database to operate on
        limit:
          type: integer
          format: int32
          title: Limit the result table to 'limit' rows. This value is overridden
            if the query states the limit explicitly.
        col:
          $ref: "#/components/schemas/Col"
          type: object
          title: the existing column to operate on
        order:
          type: string
          title: "sort order (null - empty string, asc, desc)"
    SubscriptionInfo:
      type: object
      title: "SubscriptionInfo: details about the subscription"
      properties:
        subscriptionName:
          type: string
          title: Active subscription
        subscriptionManageUrl:
          type: string
          title: URL to manage the subscription
        subscriptionInvoiceUrl:
          type: string
          title: URL to view the last invoice
        stripeId:
          type: string
          title: Stripe ID
    SystemInfo:
      type: object
      title: "SystemInfo: holds the version info and system status"
      properties:
        version:
          type: string
          title: Semantic version string
        title:
          type: string
          title: Software / library name
        vendor:
          type: string
          title: Vendor company name
        name:
          type: string
          title: Software / library package name
        buildTime:
          type: string
          title: Build time
        runtime:
          type: string
          title: Runtime
        workingDir:
          type: string
          title: Runtime working directory
        home:
          type: string
          title: Dashjoin home directory
        appurl:
          type: string
          title: App Repository
        status:
          type: string
          title: System status
        uptime:
          type: integer
          format: int64
          title: System uptime in milliseconds
    SystemInfo1:
      type: object
      title: "SystemInfo: holds the version info and system status"
      properties:
        version:
          type: string
          title: Semantic version string
        title:
          type: string
          title: Software / library name
        vendor:
          type: string
          title: Vendor company name
        name:
          type: string
          title: Software / library package name
        buildTime:
          type: string
          title: Build time
        runtime:
          type: string
          title: Runtime
        workingDir:
          type: string
          title: Runtime working directory
        home:
          type: string
          title: Dashjoin home directory
        appurl:
          type: string
          title: App Repository
        status:
          type: string
          title: System status
        uptime:
          type: integer
          format: int64
          title: System uptime in milliseconds
    UserProfile:
      type: object
      title: "UserProfile: info about the user"
      properties:
        username:
          type: string
          title: Username
        email:
          type: string
          title: EMail
        roles:
          type: array
          items:
            type: string
          title: Roles
        settings:
          type: object
          additionalProperties: {}
          title: Various settings
        translations:
          type: object
          additionalProperties: {}
    Version:
      type: object
      title: "Version: holds the version and vendor info from the jar's manifest"
      properties:
        version:
          type: string
          title: Semantic version string
        title:
          type: string
          title: Software / library name
        vendor:
          type: string
          title: Vendor company name
        name:
          type: string
          title: Software / library package name
        buildTime:
          type: string
          title: Build time
        runtime:
          type: string
          title: Runtime
        workingDir:
          type: string
          title: Runtime working directory
        home:
          type: string
          title: Dashjoin home directory
        appurl:
          type: string
          title: App Repository
  securitySchemes:
    Basic_Auth:
      type: http
      scheme: basic
    SecurityScheme:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Authentication
info:
  contact:
    email: info@dashjoin.com
    name: Dashjoin
    url: https://dashjoin.com
  termsOfService: https://dashjoin.com/legal.html#privacy
  title: Dashjoin API
  version: 1.0.0
tags:
- name: default
  description: Dashjoin Platform API
security:
- SecurityScheme: []
- Basic_Auth: []
paths:
  /*:
    get:
      responses:
        "204":
          description: No Content
  /rest/ai/ais:
    get:
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
      summary: Ais
      tags:
      - AI Service
  /rest/ai/documents:
    get:
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
      summary: Documents
      tags:
      - AI Service
  /rest/ai/models:
    get:
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema: {}
      summary: Models
      tags:
      - AI Service
  /rest/ai/tags:
    get:
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
      summary: Tags
      tags:
      - AI Service
  /rest/ai/text:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FileInfo"
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: string
        "400":
          description: Bad Request
      summary: Text
      tags:
      - AI Service
  /rest/ai/tools:
    get:
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema: {}
      summary: Tools
      tags:
      - AI Service
  /rest/database/all/{database}/{table}:
    parameters:
    - description: database name to run the operation on
      example: northwind
      name: database
      in: path
      required: true
      schema:
        type: string
    - description: table name to run the operation on
      example: EMPLOYEES
      name: table
      in: path
      required: true
      schema:
        type: string
    post:
      summary: like read but returns all matches in a list (arguments are and-connected
        column equalities)
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - description: table name to run the operation on
        example: EMPLOYEES
        name: table
        in: path
        required: true
        schema:
          type: string
      - name: descending
        in: query
        schema:
          type: boolean
      - name: limit
        in: query
        schema:
          type: integer
          format: int32
      - name: offset
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
        required: true
      responses:
        default:
          description: Tabular result (list of JSON objects)
        "400":
          description: Bad Request
      tags:
      - Data
  /rest/database/crud/{database}/{table}:
    parameters:
    - description: database name to run the operation on
      example: northwind
      name: database
      in: path
      required: true
      schema:
        type: string
    - description: table name to run the operation on
      example: EMPLOYEES
      name: table
      in: path
      required: true
      schema:
        type: string
    get:
      summary: like read but returns all matches in a list (arguments are and-connected
        column equalities)
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - description: table name to run the operation on
        example: EMPLOYEES
        name: table
        in: path
        required: true
        schema:
          type: string
      - name: arguments
        in: query
        schema:
          type: string
      - name: descending
        in: query
        schema:
          type: boolean
      - name: limit
        in: query
        schema:
          type: integer
          format: int32
      - name: offset
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        default:
          description: Tabular result (list of JSON objects)
      tags:
      - Data
    put:
      summary: creates a new instance in the table associated with the table
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - description: table name to run the operation on
        example: EMPLOYEES
        name: table
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
        required: true
      responses:
        default:
          description: "Returns the global identifier of the new record (dj/database/table/ID).\
            \ The segments are URL encoded. ID is the primary key. For composite primary\
            \ keys, ID is pk1/../pkn where pki is URL encoded again."
        "400":
          description: Bad Request
      tags:
      - Data
  /rest/database/crud/{database}/{table}/{objectId1}:
    parameters:
    - description: database name to run the operation on
      example: northwind
      name: database
      in: path
      required: true
      schema:
        type: string
    - description: table name to run the operation on
      example: EMPLOYEES
      name: table
      in: path
      required: true
      schema:
        type: string
    post:
      summary: updates the object defined by the globally unique identifier with the
        values provided in object
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - description: Primary key of the record to operate on
        example: "1"
        name: objectId1
        in: path
        required: true
        schema:
          type: string
      - description: table name to run the operation on
        example: EMPLOYEES
        name: table
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
        required: true
      responses:
        "201":
          description: Created
        "400":
          description: Bad Request
      tags:
      - Data
    get:
      summary: reads the object defined by the given globally unique identifier
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - description: Primary key of the record to operate on
        example: "1"
        name: objectId1
        in: path
        required: true
        schema:
          type: string
      - description: table name to run the operation on
        example: EMPLOYEES
        name: table
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: JSON object representing the record
      tags:
      - Data
    delete:
      summary: deletes the object defined by the globally unique identifier
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - description: Primary key of the record to operate on
        example: "1"
        name: objectId1
        in: path
        required: true
        schema:
          type: string
      - description: table name to run the operation on
        example: EMPLOYEES
        name: table
        in: path
        required: true
        schema:
          type: string
      responses:
        "204":
          description: No Content
      tags:
      - Data
  /rest/database/crud/{database}/{table}/{objectId1}/{objectId2}:
    parameters:
    - description: database name to run the operation on
      example: northwind
      name: database
      in: path
      required: true
      schema:
        type: string
    - description: table name to run the operation on
      example: EMPLOYEES
      name: table
      in: path
      required: true
      schema:
        type: string
    post:
      summary: updates the object defined by the globally unique identifier with the
        values provided in object
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 1 of the record to operate on
        example: "1"
        name: objectId1
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 2 of the record to operate on
        example: "1"
        name: objectId2
        in: path
        required: true
        schema:
          type: string
      - description: table name to run the operation on
        example: EMPLOYEES
        name: table
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
        required: true
      responses:
        "201":
          description: Created
        "400":
          description: Bad Request
      tags:
      - Data
    get:
      summary: reads the object defined by the given globally unique identifier
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 1 of the record to operate on
        example: "1"
        name: objectId1
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 2 of the record to operate on
        example: "1"
        name: objectId2
        in: path
        required: true
        schema:
          type: string
      - description: table name to run the operation on
        example: EMPLOYEES
        name: table
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: JSON object representing the record
      tags:
      - Data
    delete:
      summary: deletes the object defined by the globally unique identifier
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 1 of the record to operate on
        example: "1"
        name: objectId1
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 2 of the record to operate on
        example: "1"
        name: objectId2
        in: path
        required: true
        schema:
          type: string
      - description: table name to run the operation on
        example: EMPLOYEES
        name: table
        in: path
        required: true
        schema:
          type: string
      responses:
        "204":
          description: No Content
      tags:
      - Data
  /rest/database/crud/{database}/{table}/{objectId1}/{objectId2}/{objectId3}:
    parameters:
    - description: database name to run the operation on
      example: northwind
      name: database
      in: path
      required: true
      schema:
        type: string
    - description: table name to run the operation on
      example: EMPLOYEES
      name: table
      in: path
      required: true
      schema:
        type: string
    post:
      summary: updates the object defined by the globally unique identifier with the
        values provided in object
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 1 of the record to operate on
        example: "1"
        name: objectId1
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 2 of the record to operate on
        example: "1"
        name: objectId2
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 3 of the record to operate on
        example: "1"
        name: objectId3
        in: path
        required: true
        schema:
          type: string
      - description: table name to run the operation on
        example: EMPLOYEES
        name: table
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
        required: true
      responses:
        "201":
          description: Created
        "400":
          description: Bad Request
      tags:
      - Data
    get:
      summary: reads the object defined by the given globally unique identifier
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 1 of the record to operate on
        example: "1"
        name: objectId1
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 2 of the record to operate on
        example: "1"
        name: objectId2
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 3 of the record to operate on
        example: "1"
        name: objectId3
        in: path
        required: true
        schema:
          type: string
      - description: table name to run the operation on
        example: EMPLOYEES
        name: table
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: JSON object representing the record
      tags:
      - Data
    delete:
      summary: deletes the object defined by the globally unique identifier
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 1 of the record to operate on
        example: "1"
        name: objectId1
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 2 of the record to operate on
        example: "1"
        name: objectId2
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 3 of the record to operate on
        example: "1"
        name: objectId3
        in: path
        required: true
        schema:
          type: string
      - description: table name to run the operation on
        example: EMPLOYEES
        name: table
        in: path
        required: true
        schema:
          type: string
      responses:
        "204":
          description: No Content
      tags:
      - Data
  /rest/database/crud/{database}/{table}/{objectId1}/{objectId2}/{objectId3}/{objectId4}:
    parameters:
    - description: database name to run the operation on
      example: northwind
      name: database
      in: path
      required: true
      schema:
        type: string
    - description: table name to run the operation on
      example: EMPLOYEES
      name: table
      in: path
      required: true
      schema:
        type: string
    post:
      summary: updates the object defined by the globally unique identifier with the
        values provided in object
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 1 of the record to operate on
        example: "1"
        name: objectId1
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 2 of the record to operate on
        example: "1"
        name: objectId2
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 3 of the record to operate on
        example: "1"
        name: objectId3
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 4 of the record to operate on
        example: "1"
        name: objectId4
        in: path
        required: true
        schema:
          type: string
      - description: table name to run the operation on
        example: EMPLOYEES
        name: table
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
        required: true
      responses:
        "201":
          description: Created
        "400":
          description: Bad Request
      tags:
      - Data
    get:
      summary: reads the object defined by the given globally unique identifier
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 1 of the record to operate on
        example: "1"
        name: objectId1
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 2 of the record to operate on
        example: "1"
        name: objectId2
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 3 of the record to operate on
        example: "1"
        name: objectId3
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 4 of the record to operate on
        example: "1"
        name: objectId4
        in: path
        required: true
        schema:
          type: string
      - description: table name to run the operation on
        example: EMPLOYEES
        name: table
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: JSON object representing the record
      tags:
      - Data
    delete:
      summary: deletes the object defined by the globally unique identifier
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 1 of the record to operate on
        example: "1"
        name: objectId1
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 2 of the record to operate on
        example: "1"
        name: objectId2
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 3 of the record to operate on
        example: "1"
        name: objectId3
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 4 of the record to operate on
        example: "1"
        name: objectId4
        in: path
        required: true
        schema:
          type: string
      - description: table name to run the operation on
        example: EMPLOYEES
        name: table
        in: path
        required: true
        schema:
          type: string
      responses:
        "204":
          description: No Content
      tags:
      - Data
  /rest/database/incoming/{database}/{table}/{objectId1}:
    parameters:
    - description: database name to run the operation on
      example: northwind
      name: database
      in: path
      required: true
      schema:
        type: string
    - description: table name to run the operation on
      example: EMPLOYEES
      name: table
      in: path
      required: true
      schema:
        type: string
    get:
      summary: returns IDs of objects who have a FK pointing to the object defined
        by the given globally unique identifier
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - description: Primary key of the record to operate on
        example: "1"
        name: objectId1
        in: path
        required: true
        schema:
          type: string
      - description: table name to run the operation on
        example: EMPLOYEES
        name: table
        in: path
        required: true
        schema:
          type: string
      - name: limit
        in: query
        schema:
          type: integer
          format: int32
      - name: offset
        in: query
        schema:
          type: integer
          format: int32
      responses:
        default:
          description: List of incoming links
      tags:
      - Data
  /rest/database/incoming/{database}/{table}/{objectId1}/{objectId2}:
    parameters:
    - description: database name to run the operation on
      example: northwind
      name: database
      in: path
      required: true
      schema:
        type: string
    - description: table name to run the operation on
      example: EMPLOYEES
      name: table
      in: path
      required: true
      schema:
        type: string
    get:
      summary: returns IDs of objects who have a FK pointing to the object defined
        by the given globally unique identifier
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 1 of the record to operate on
        example: "1"
        name: objectId1
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 2 of the record to operate on
        example: "1"
        name: objectId2
        in: path
        required: true
        schema:
          type: string
      - description: table name to run the operation on
        example: EMPLOYEES
        name: table
        in: path
        required: true
        schema:
          type: string
      - name: limit
        in: query
        schema:
          type: integer
          format: int32
      - name: offset
        in: query
        schema:
          type: integer
          format: int32
      responses:
        default:
          description: List of incoming links
      tags:
      - Data
  /rest/database/incoming/{database}/{table}/{objectId1}/{objectId2}/{objectId3}:
    parameters:
    - description: database name to run the operation on
      example: northwind
      name: database
      in: path
      required: true
      schema:
        type: string
    - description: table name to run the operation on
      example: EMPLOYEES
      name: table
      in: path
      required: true
      schema:
        type: string
    get:
      summary: returns IDs of objects who have a FK pointing to the object defined
        by the given globally unique identifier
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 1 of the record to operate on
        example: "1"
        name: objectId1
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 2 of the record to operate on
        example: "1"
        name: objectId2
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 3 of the record to operate on
        example: "1"
        name: objectId3
        in: path
        required: true
        schema:
          type: string
      - description: table name to run the operation on
        example: EMPLOYEES
        name: table
        in: path
        required: true
        schema:
          type: string
      - name: limit
        in: query
        schema:
          type: integer
          format: int32
      - name: offset
        in: query
        schema:
          type: integer
          format: int32
      responses:
        default:
          description: List of incoming links
      tags:
      - Data
  /rest/database/incoming/{database}/{table}/{objectId1}/{objectId2}/{objectId3}/{objectId4}:
    parameters:
    - description: database name to run the operation on
      example: northwind
      name: database
      in: path
      required: true
      schema:
        type: string
    - description: table name to run the operation on
      example: EMPLOYEES
      name: table
      in: path
      required: true
      schema:
        type: string
    get:
      summary: returns IDs of objects who have a FK pointing to the object defined
        by the given globally unique identifier
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 1 of the record to operate on
        example: "1"
        name: objectId1
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 2 of the record to operate on
        example: "1"
        name: objectId2
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 3 of the record to operate on
        example: "1"
        name: objectId3
        in: path
        required: true
        schema:
          type: string
      - description: Composite primary key 4 of the record to operate on
        example: "1"
        name: objectId4
        in: path
        required: true
        schema:
          type: string
      - description: table name to run the operation on
        example: EMPLOYEES
        name: table
        in: path
        required: true
        schema:
          type: string
      - name: limit
        in: query
        schema:
          type: integer
          format: int32
      - name: offset
        in: query
        schema:
          type: integer
          format: int32
      responses:
        default:
          description: List of incoming links
      tags:
      - Data
  /rest/database/keys/{database}/{table}:
    parameters:
    - description: database name to run the operation on
      example: northwind
      name: database
      in: path
      required: true
      schema:
        type: string
    - description: table name to run the operation on
      example: EMPLOYEES
      name: table
      in: path
      required: true
      schema:
        type: string
    get:
      summary: return limit keys whose string representation begin with prefix
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - description: table name to run the operation on
        example: EMPLOYEES
        name: table
        in: path
        required: true
        schema:
          type: string
      - name: limit
        in: query
        schema:
          type: integer
          format: int32
      - name: prefix
        in: query
        schema:
          type: string
      responses:
        default:
          description: key value and string display name (list of JSON objects)
      tags:
      - Data
  /rest/database/list/{database}/{table}:
    parameters:
    - description: database name to run the operation on
      example: northwind
      name: database
      in: path
      required: true
      schema:
        type: string
    - description: table name to run the operation on
      example: EMPLOYEES
      name: table
      in: path
      required: true
      schema:
        type: string
    post:
      summary: "like read, but returns all keys posted"
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - description: table name to run the operation on
        example: EMPLOYEES
        name: table
        in: path
        required: true
        schema:
          type: string
      - name: ignoreMissing
        in: query
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              type: array
              items:
                type: string
        required: true
      responses:
        default:
          description: Map of objectId to JSON object representing the record
        "400":
          description: Bad Request
      tags:
      - Data
  /rest/database/query/{database}/{queryId}:
    parameters:
    - description: database name to run the operation on
      example: northwind
      name: database
      in: path
      required: true
      schema:
        type: string
    post:
      summary: "looks up the query with the given ID in the catalog, finds the right\
        \ database, inserts the arguments, runs the query and returns the result"
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - name: queryId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
        required: true
      responses:
        default:
          description: Tabular query result (list of JSON objects)
        "400":
          description: Bad Request
      tags:
      - Data
  /rest/database/queryGraph/{database}/{queryId}:
    parameters:
    - description: database name to run the operation on
      example: northwind
      name: database
      in: path
      required: true
      schema:
        type: string
    post:
      summary: "looks up the query with the given ID in the catalog, finds the right\
        \ database, inserts the arguments, runs the query and returns the result"
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - name: queryId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
        required: true
      responses:
        default:
          description: Tabular query result (list of JSON objects)
        "400":
          description: Bad Request
      tags:
      - Data
  /rest/database/queryMeta/{database}/{queryId}:
    parameters:
    - description: database name to run the operation on
      example: northwind
      name: database
      in: path
      required: true
      schema:
        type: string
    post:
      summary: "looks up the query with the given ID in the catalog, finds the right\
        \ database, inserts the arguments, and returns the result metadata"
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - name: queryId
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
        required: true
      responses:
        default:
          description: Map of column name (as they appear when running the query)
            to Property describing the column
        "400":
          description: Bad Request
      tags:
      - Data
  /rest/database/search/{database}/{search}:
    parameters:
    - description: database name to run the operation on
      example: northwind
      name: database
      in: path
      required: true
      schema:
        type: string
    get:
      summary: performs a full text search on all databases
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - name: search
        in: path
        required: true
        schema:
          type: string
      - name: limit
        in: query
        schema:
          type: integer
          format: int32
      responses:
        default:
          description: Tabular query result (list of JSON objects)
      tags:
      - Data
  /rest/database/search/{database}/{table}/{search}:
    parameters:
    - description: database name to run the operation on
      example: northwind
      name: database
      in: path
      required: true
      schema:
        type: string
    - description: table name to run the operation on
      example: EMPLOYEES
      name: table
      in: path
      required: true
      schema:
        type: string
    get:
      summary: performs a full text search on all databases
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - name: search
        in: path
        required: true
        schema:
          type: string
      - description: table name to run the operation on
        example: EMPLOYEES
        name: table
        in: path
        required: true
        schema:
          type: string
      - name: limit
        in: query
        schema:
          type: integer
          format: int32
      responses:
        default:
          description: Tabular query result (list of JSON objects)
      tags:
      - Data
  /rest/database/search/{search}:
    get:
      summary: performs a full text search on all databases
      parameters:
      - name: search
        in: path
        required: true
        schema:
          type: string
      - name: limit
        in: query
        schema:
          type: integer
          format: int32
      responses:
        default:
          description: Tabular query result (list of JSON objects)
      tags:
      - Data
  /rest/database/tableLabels:
    get:
      summary: returns all table IDs and the corresponding labels from all databases
        known to the system
      responses:
        default:
          description: List of table ID
      tags:
      - Data
  /rest/database/tables:
    get:
      summary: returns all table IDs from all databases known to the system
      responses:
        default:
          description: List of table ID
      tags:
      - Data
  /rest/database/traverse/{database}/{table}/{objectId1}:
    parameters:
    - description: database name to run the operation on
      example: northwind
      name: database
      in: path
      required: true
      schema:
        type: string
    - description: table name to run the operation on
      example: EMPLOYEES
      name: table
      in: path
      required: true
      schema:
        type: string
    get:
      summary: "starting at the object defined by the given globally unique identifier,\
        \ reads the object related via fk"
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - description: Primary key of the record to operate on
        example: "1"
        name: objectId1
        in: path
        required: true
        schema:
          type: string
      - description: table name to run the operation on
        example: EMPLOYEES
        name: table
        in: path
        required: true
        schema:
          type: string
      - name: fk
        in: query
        schema:
          type: string
      responses:
        default:
          description: JSON object representing the record
      tags:
      - Data
  /rest/database/traverse/{database}/{table}/{objectId1}/{objectId2}:
    parameters:
    - description: database name to run the operation on
      example: northwind
      name: database
      in: path
      required: true
      schema:
        type: string
    - description: table name to run the operation on
      example: EMPLOYEES
      name: table
      in: path
      required: true
      schema:
        type: string
    get:
      summary: "starting at the object defined by the given globally unique identifier,\
        \ reads the object related via fk"
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      - description: Primary key of the record to operate on
        example: "1"
        name: objectId1
        in: path
        required: true
        schema:
          type: string
      - description: table name to run the operation on
        example: EMPLOYEES
        name: table
        in: path
        required: true
        schema:
          type: string
      - name: fk
        in: query
        schema:
          type: string
      responses:
        default:
          description: JSON object representing the record
      tags:
      - Data
  /rest/expression:
    post:
      summary: evaluates the expression with the data context
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExpressionAndData"
        required: true
      responses:
        default:
          description: evaluation result
        "400":
          description: Bad Request
      tags:
      - Expression Service
  /rest/expression-preview:
    post:
      summary: evaluates the expression with the data context
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExpressionCursorData"
        required: true
      responses:
        default:
          description: evaluation result
        "400":
          description: Bad Request
      tags:
      - Expression Preview Service
  /rest/expression/{expression}:
    get:
      summary: evaluates the expression with the data context
      parameters:
      - name: expression
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: evaluation result
      tags:
      - Expression Service
  /rest/fs/home:
    head:
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
        required: true
      responses:
        "200":
          description: OK
      summary: Handle Web Dav Request Without Path
      tags:
      - Web Dav Service
    options:
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
        required: true
      responses:
        "200":
          description: OK
      summary: Handle Web Dav Request Without Path
      tags:
      - Web Dav Service
  /rest/fs/home/{path}:
    get:
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
        required: true
      responses:
        "200":
          description: OK
      summary: Handle Web Dav Request
      tags:
      - Web Dav Service
    put:
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
        required: true
      responses:
        "200":
          description: OK
      summary: Handle Web Dav Request
      tags:
      - Web Dav Service
    delete:
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
        required: true
      responses:
        "200":
          description: OK
      summary: Handle Web Dav Request
      tags:
      - Web Dav Service
    head:
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
        required: true
      responses:
        "200":
          description: OK
      summary: Handle Web Dav Request
      tags:
      - Web Dav Service
    options:
      requestBody:
        content:
          application/octet-stream:
            schema:
              type: string
              format: binary
        required: true
      responses:
        "200":
          description: OK
      summary: Handle Web Dav Request
      tags:
      - Web Dav Service
  /rest/function/{function}:
    post:
      summary: runs a predefined function with the provided argument
      parameters:
      - description: name of the function to run
        example: echo
        name: function
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema: {}
        required: true
      responses:
        default:
          description: Returns the function result
        "400":
          description: Bad Request
      tags:
      - Function Service
  /rest/functionStream/sse/{function}:
    post:
      summary: streams a predefined function with the provided argument
      parameters:
      - description: name of the function to run
        example: echo
        name: function
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema: {}
        required: true
      responses:
        default:
          description: Returns the function result
        "400":
          description: Bad Request
      tags:
      - Function Stream Service
  /rest/functionStream/{function}:
    post:
      summary: streams a predefined function with the provided argument
      parameters:
      - description: name of the function to run
        example: echo
        name: function
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema: {}
        required: true
      responses:
        default:
          description: Returns the function result
        "400":
          description: Bad Request
      tags:
      - Function Stream Service
  /rest/jsonapi/{database}:
    get:
      parameters:
      - name: database
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
          content:
            application/vnd.api+json:
              schema:
                type: object
                additionalProperties: {}
      summary: Discover
      tags:
      - Json Api
  /rest/jsonapi/{database}/{type}:
    get:
      parameters:
      - name: database
        in: path
        required: true
        schema:
          type: string
      - name: type
        in: path
        required: true
        schema:
          type: string
      - name: filter
        in: query
        schema:
          type: string
      - name: "page[limit]"
        in: query
        schema:
          type: integer
          format: int32
      - name: "page[offset]"
        in: query
        schema:
          type: integer
          format: int32
      - name: sort
        in: query
        schema:
          type: string
      responses:
        "200":
          description: OK
          content:
            application/vnd.api+json:
              schema:
                type: object
                additionalProperties: {}
      summary: Get Table
      tags:
      - Json Api
  /rest/jsonapi/{database}/{type}/{id}:
    get:
      parameters:
      - name: database
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: type
        in: path
        required: true
        schema:
          type: string
      responses:
        "200":
          description: OK
          content:
            application/vnd.api+json:
              schema:
                type: object
                additionalProperties: {}
      summary: Get Record
      tags:
      - Json Api
  /rest/manage/append:
    post:
      summary: Append data into existing tables
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: query
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
        required: true
      responses:
        "201":
          description: Created
        "400":
          description: Bad Request
      tags:
      - Manage
  /rest/manage/create:
    post:
      summary: Create tables and insert data
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: query
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
        required: true
      responses:
        "201":
          description: Created
        "400":
          description: Bad Request
      tags:
      - Manage
  /rest/manage/createStubs:
    get:
      summary: Reads the openapi.yaml configured and creates function stubs
      responses:
        "204":
          description: No Content
      tags:
      - Manage
  /rest/manage/createTable/{database}:
    post:
      summary: Creates a table according to the given JSON schema
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          text/plain:
            schema:
              type: string
        required: true
      responses:
        "201":
          description: Created
      tags:
      - Manage
  /rest/manage/export/{database}:
    get:
      summary: exports the contents of the database
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: path
        required: true
        schema:
          type: string
      responses:
        default:
          description: map of db tables
      tags:
      - Manage
  /rest/manage/getConfigurableFunctions:
    get:
      summary: returns all configurable function implementation classes found on the
        backend's service loader classpath
      responses:
        default:
          description: List of class names
      tags:
      - Manage
  /rest/manage/getDatabases:
    get:
      summary: returns all DB implementation classes found on the backend's service
        loader classpath
      responses:
        default:
          description: List of class names
      tags:
      - Manage
  /rest/manage/getDrivers:
    get:
      summary: returns all JDBC driver classes found on the backend's service loader
        classpath
      responses:
        default:
          description: List of version objects describing each driver
      tags:
      - Manage
  /rest/manage/getFunctions:
    get:
      summary: returns all action implementation classes found on the backend's service
        loader classpath
      responses:
        default:
          description: List of class names
      tags:
      - Manage
  /rest/manage/openapi:
    get:
      summary: "Reads the openapi.yaml configured and merges functions, queries, and\
        \ schemas into it"
      responses:
        "200":
          description: OK
          content:
            text/plain:
              schema:
                type: string
      tags:
      - Manage
  /rest/manage/replace:
    post:
      summary: Delete data in tables and insert new data
      parameters:
      - description: database name to run the operation on
        example: northwind
        name: database
        in: query
        schema:
          type: string
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
        required: true
      responses:
        "201":
          description: Created
        "400":
          description: Bad Request
      tags:
      - Manage
  /rest/manage/resetSchedule:
    get:
      summary: reloads function schedules
      responses:
        default:
          description: job to next execution time or cron syntax error
      tags:
      - Manage
  /rest/manage/roles:
    get:
      summary: returns the roles of the current user
      responses:
        default:
          description: list of roles
      tags:
      - Manage
  /rest/manage/saveapi:
    get:
      summary: Writes the output of /openapi back to the source
      responses:
        "204":
          description: No Content
      tags:
      - Manage
  /rest/manage/version:
    get:
      summary: returns the version of the Dashjoin platform
      responses:
        default:
          description: Version object describing the platform
      tags:
      - Manage
  /rest/mapping/addColumn/{table}/{column}:
    post:
      parameters:
      - name: column
        in: path
        required: true
        schema:
          type: string
      - name: table
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Result"
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Result"
        "400":
          description: Bad Request
      summary: Add Column
      tags:
      - Mapping Service
  /rest/mapping/addTable/{table}/{newname}:
    post:
      parameters:
      - name: newname
        in: path
        required: true
        schema:
          type: string
      - name: table
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Result"
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Result"
        "400":
          description: Bad Request
      summary: Add Table
      tags:
      - Mapping Service
  /rest/mapping/column/{table}/{column}/{expression}:
    post:
      parameters:
      - name: column
        in: path
        required: true
        schema:
          type: string
      - name: expression
        in: path
        required: true
        schema:
          type: string
      - name: table
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Result"
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Result"
        "400":
          description: Bad Request
      summary: Column
      tags:
      - Mapping Service
  /rest/mapping/extractTable/{table}/{column}:
    post:
      parameters:
      - name: column
        in: path
        required: true
        schema:
          type: string
      - name: table
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Result"
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Result"
        "400":
          description: Bad Request
      summary: Extract Table
      tags:
      - Mapping Service
  /rest/mapping/filter/{table}/{filter}:
    post:
      parameters:
      - name: filter
        in: path
        required: true
        schema:
          type: string
      - name: table
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Result"
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Result"
        "400":
          description: Bad Request
      summary: Filter
      tags:
      - Mapping Service
  /rest/mapping/gather/{function}:
    post:
      parameters:
      - name: function
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: {}
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Result"
        "400":
          description: Bad Request
      summary: Gather
      tags:
      - Mapping Service
  /rest/mapping/removeColumn/{table}/{column}:
    post:
      parameters:
      - name: column
        in: path
        required: true
        schema:
          type: string
      - name: table
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Result"
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Result"
        "400":
          description: Bad Request
      summary: Remove Column
      tags:
      - Mapping Service
  /rest/mapping/removeTable/{table}:
    post:
      parameters:
      - name: table
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Result"
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Result"
        "400":
          description: Bad Request
      summary: Remove Table
      tags:
      - Mapping Service
  /rest/mapping/renameColumn/{table}/{column}/{newname}:
    post:
      parameters:
      - name: column
        in: path
        required: true
        schema:
          type: string
      - name: newname
        in: path
        required: true
        schema:
          type: string
      - name: table
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Result"
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Result"
        "400":
          description: Bad Request
      summary: Rename Column
      tags:
      - Mapping Service
  /rest/mapping/renameTable/{table}/{newname}:
    post:
      parameters:
      - name: newname
        in: path
        required: true
        schema:
          type: string
      - name: table
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Result"
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Result"
        "400":
          description: Bad Request
      summary: Rename Table
      tags:
      - Mapping Service
  /rest/mapping/reset:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Result"
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Result"
        "400":
          description: Bad Request
      summary: Reset
      tags:
      - Mapping Service
  /rest/odata/{database}/{type}:
    get:
      parameters:
      - name: database
        in: path
        required: true
        schema:
          type: string
      - name: type
        in: path
        required: true
        schema:
          type: string
      - name: $filter
        in: query
        schema:
          type: string
      - name: $orderby
        in: query
        schema:
          type: string
      - name: $select
        in: query
        schema:
          type: string
      - name: $skip
        in: query
        schema:
          type: integer
          format: int32
      - name: $top
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
      summary: Get Table
      tags:
      - Odata Api
  /rest/odata/{database}/{type}/{field}:
    get:
      parameters:
      - name: database
        in: path
        required: true
        schema:
          type: string
      - name: field
        in: path
        required: true
        schema:
          type: string
      - name: type
        in: path
        required: true
        schema:
          type: string
      - name: $filter
        in: query
        schema:
          type: string
      - name: $orderby
        in: query
        schema:
          type: string
      - name: $select
        in: query
        schema:
          type: string
      - name: $skip
        in: query
        schema:
          type: integer
          format: int32
      - name: $top
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: object
                additionalProperties: {}
      summary: Get Field
      tags:
      - Odata Api
  /rest/odata/{database}/{type}/{field}/$value:
    get:
      parameters:
      - name: database
        in: path
        required: true
        schema:
          type: string
      - name: field
        in: path
        required: true
        schema:
          type: string
      - name: type
        in: path
        required: true
        schema:
          type: string
      - name: $filter
        in: query
        schema:
          type: string
      - name: $orderby
        in: query
        schema:
          type: string
      - name: $select
        in: query
        schema:
          type: string
      - name: $skip
        in: query
        schema:
          type: integer
          format: int32
      - name: $top
        in: query
        schema:
          type: integer
          format: int32
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema: {}
      summary: Get Value
      tags:
      - Odata Api
