Skip to content
Snippets Groups Projects
Select Git revision
  • a34b7855451c1161c82d3f09767862c45ba9f775
  • master default protected
  • dev protected
  • replication_test_two
  • release-1.11 protected
  • replication_test
  • release-1.10 protected
  • 533-integrate-semantic-recommendation-2
  • 556-usage-statistics
  • 553-semantic-recommendation-2
  • 553-semantic-recommendation
  • release-1.9 protected
  • 551-init-broker-service-permissions
  • 549-test-oai-pmh
  • 545-saving-multiple-times-breaks-pid-metadata
  • 499-standalone-compute-service-2
  • 539-load-tests
  • hotfix/helm-chart
  • luca_ba_new_interface
  • 534-bug-when-adding-access-to-user-that-is-not-registered-at-dashboard-service
  • release-1.8 protected
  • v1.11.0 protected
  • v1.10.5 protected
  • v1.10.4 protected
  • v1.10.3 protected
  • v1.10.2 protected
  • v1.10.1 protected
  • v1.10.0-rc13 protected
  • v1.10.0-rc12 protected
  • v1.10.0-rc11 protected
  • v1.10.0-rc10 protected
  • v1.10.0-rc9 protected
  • v1.10.0-rc8 protected
  • v1.10.0-rc7 protected
  • v1.10.0-rc6 protected
  • v1.10.0-rc5 protected
  • v1.10.0-rc4 protected
  • v1.10.0-rc3 protected
  • v1.10.0-rc2 protected
  • v1.10.0rc1 protected
  • v1.10.0rc0 protected
41 results

dbrepo-1.8.2rc6-py3-none-any.whl

Blame
  • yq 169.47 KiB
    openapi: 3.0.1
    info:
      title: Database Repository Metadata Service API
      description: Service that manages the metadata
      contact:
        name: Prof. Andreas Rauber
        email: andreas.rauber@tuwien.ac.at
      license:
        name: Apache 2.0
        url: https://www.apache.org/licenses/LICENSE-2.0
      version: 1.6.2
    externalDocs:
      description: Sourcecode Documentation
      url: https://www.ifs.tuwien.ac.at/infrastructures/dbrepo/1.6.2/system-services-metadata/
    servers:
    - url: http://localhost
      description: Development instance
    - url: https://test.dbrepo.tuwien.ac.at
      description: Staging instance
    paths:
      /api/database:
        get:
          tags:
          - database-endpoint
          summary: List databases
          description: "Lists all databases in the metadata database. Requests with HTTP\
            \ method **GET** return the list of databases, requests with HTTP method **HEAD**\
            \ only the number in the `X-Count` header."
          operationId: list
          parameters:
          - name: internal_name
            in: query
            required: false
            schema:
              type: string
          responses:
            "200":
              description: List of databases
              headers:
                Access-Control-Expose-Headers:
                  description: Expose `X-Count` custom header
                  required: true
                  style: simple
                X-Count:
                  description: Number of databases
                  required: true
                  style: simple
              content:
                application/json:
                  schema:
                    type: array
                    items:
                      $ref: "#/components/schemas/DatabaseBriefDto"
        post:
          tags:
          - database-endpoint
          summary: Create database
          description: Creates a database in the container with id. Requires roles `create-database`.
          operationId: create_5
          requestBody:
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/DatabaseCreateDto"
            required: true
          responses:
            "409":
              description: Query store could not be created
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "502":
              description: Connection to search service failed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "400":
              description: Database create query is malformed or image is not supported
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "423":
              description: Database quota exceeded
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "403":
              description: Database create permission is missing or grant permissions
                at broker service failed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "503":
              description: Failed to save in search service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: Failed to fin container/user/database in metadata database
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "201":
              description: Created a new database
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/DatabaseBriefDto"
          security:
          - bearerAuth: []
          - basicAuth: []
        head:
          tags:
          - database-endpoint
          summary: List databases
          description: "Lists all databases in the metadata database. Requests with HTTP\
            \ method **GET** return the list of databases, requests with HTTP method **HEAD**\
            \ only the number in the `X-Count` header."
          operationId: list_1
          parameters:
          - name: internal_name
            in: query
            required: false
            schema:
              type: string
          responses:
            "200":
              description: List of databases
              headers:
                Access-Control-Expose-Headers:
                  description: Expose `X-Count` custom header
                  required: true
                  style: simple
                X-Count:
                  description: Number of databases
                  required: true
                  style: simple
              content:
                application/json:
                  schema:
                    type: array
                    items:
                      $ref: "#/components/schemas/DatabaseBriefDto"
      /api/database/{databaseId}/access/{userId}:
        get:
          tags:
          - access-endpoint
          summary: Find/Check access
          description: "Finds or checks access of a user with given id to a database with\
            \ given id. Requests with HTTP method **GET** return the access object, requests\
            \ with HTTP method **HEAD** only the status. When the user has at least *READ*\
            \ access, the status 200 is returned, 403 otherwise. Requires role `check-database-access`\
            \ or `check-foreign-database-access`."
          operationId: find
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          - name: userId
            in: path
            required: true
            schema:
              type: string
              format: uuid
          responses:
            "403":
              description: No access to this database
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: Database not found
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "200":
              description: Found database access
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/DatabaseAccessDto"
          security:
          - bearerAuth: []
          - basicAuth: []
        put:
          tags:
          - access-endpoint
          summary: Modify access
          description: Modifies access of a user with given id to database with given
            id. Requires role `update-database-access`.
          operationId: update_5
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          - name: userId
            in: path
            required: true
            schema:
              type: string
              format: uuid
          requestBody:
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/UpdateDatabaseAccessDto"
            required: true
          responses:
            "404":
              description: Database or user not found
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "403":
              description: Modify access not permitted when no access is granted in the
                first place
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "503":
              description: Access could not be updated in the data service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "202":
              description: Modified access
            "502":
              description: Access could not be updated due to connection error in the
                data service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "400":
              description: Modify access query or database connection is malformed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
        post:
          tags:
          - access-endpoint
          summary: Give access
          description: Give a user with given id access to some database with given id.
            Requires role `create-database-access`.
          operationId: create_8
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          - name: userId
            in: path
            required: true
            schema:
              type: string
              format: uuid
          requestBody:
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/UpdateDatabaseAccessDto"
            required: true
          responses:
            "404":
              description: Database or user not found
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "503":
              description: Access could not be created in the data service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "403":
              description: Failed giving access
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "202":
              description: Granting access succeeded
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/DatabaseAccessDto"
            "400":
              description: Granting access query or database connection is malformed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "502":
              description: Access could not be created due to connection error
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
        delete:
          tags:
          - access-endpoint
          summary: Delete access
          description: Delete access of a user with id to a database with id. Requires
            role `delete-database-access`.
          operationId: revoke
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          - name: userId
            in: path
            required: true
            schema:
              type: string
              format: uuid
          responses:
            "403":
              description: Revoke of access not permitted as no access was found
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "202":
              description: Deleted access
            "502":
              description: Access could not be created due to connection error
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: "User, database with access was not found"
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "503":
              description: Access could not be revoked in the data service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "400":
              description: Modify access query or database connection is malformed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
        head:
          tags:
          - access-endpoint
          summary: Find/Check access
          description: "Finds or checks access of a user with given id to a database with\
            \ given id. Requests with HTTP method **GET** return the access object, requests\
            \ with HTTP method **HEAD** only the status. When the user has at least *READ*\
            \ access, the status 200 is returned, 403 otherwise. Requires role `check-database-access`\
            \ or `check-foreign-database-access`."
          operationId: find_1
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          - name: userId
            in: path
            required: true
            schema:
              type: string
              format: uuid
          responses:
            "403":
              description: No access to this database
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: Database not found
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "200":
              description: Found database access
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/DatabaseAccessDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/user/{userId}:
        get:
          tags:
          - user-endpoint
          summary: Get user
          description: Gets own user information from the metadata database. Requires
            authentication. Foreign user information can only be obtained if additional
            role `find-foreign-user` is present. Finding information about internal users
            results in a 404 error.
          operationId: find_2
          parameters:
          - name: userId
            in: path
            required: true
            schema:
              type: string
              format: uuid
          responses:
            "404":
              description: User was not found
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "200":
              description: Found user
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/UserDto"
            "403":
              description: Find user is not permitted
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
        put:
          tags:
          - user-endpoint
          summary: Update user
          description: Updates user with id. Requires role `modify-user-information`.
          operationId: modify
          parameters:
          - name: userId
            in: path
            required: true
            schema:
              type: string
              format: uuid
          requestBody:
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/UserUpdateDto"
            required: true
          responses:
            "202":
              description: Modified user information
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/UserDto"
            "404":
              description: Failed to find database/user in metadata database
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "400":
              description: Modify user query is malformed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "403":
              description: Not allowed to modify user metadata
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/user/{userId}/password:
        put:
          tags:
          - user-endpoint
          summary: Update user password
          description: Updates password of user with id. Requires authentication.
          operationId: password
          parameters:
          - name: userId
            in: path
            required: true
            schema:
              type: string
              format: uuid
          requestBody:
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/UserPasswordDto"
            required: true
          responses:
            "400":
              description: Invalid password payload
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "202":
              description: Modified user password
            "403":
              description: Not allowed to change foreign user password
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "503":
              description: Failed to get user in auth service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: Failed to find database/user in metadata database
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "502":
              description: Connection to auth service failed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/user/token:
        put:
          tags:
          - user-endpoint
          summary: Refresh token
          description: Refreshes user token by refresh token.
          operationId: refreshToken
          requestBody:
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/RefreshTokenRequestDto"
            required: true
          responses:
            "202":
              description: Refreshed user token
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/TokenDto"
            "403":
              description: Not allowed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "400":
              description: Invalid refresh token
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "502":
              description: Connection to auth service failed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
        post:
          tags:
          - user-endpoint
          summary: Create token
          description: Creates a user token via the Auth Service.
          operationId: getToken
          requestBody:
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/LoginRequestDto"
            required: true
          responses:
            "400":
              description: Invalid login request
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "403":
              description: Not allowed to get token
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: Failed to find user in auth database
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "503":
              description: Failed to get user in auth service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "202":
              description: Obtained user token
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/TokenDto"
            "428":
              description: Account is not fully setup in auth service (requires password
                change?)
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "502":
              description: Connection to auth service failed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
      /api/ontology/{ontologyId}:
        get:
          tags:
          - ontology-endpoint
          summary: Find ontology
          description: Finds an ontology with id in the metadata database.
          operationId: find_3
          parameters:
          - name: ontologyId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          responses:
            "404":
              description: Could not find ontology
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "200":
              description: Find one ontology
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/OntologyDto"
        put:
          tags:
          - ontology-endpoint
          summary: Update ontology
          description: Updates an ontology with id. Requires role `update-ontology`.
          operationId: update
          parameters:
          - name: ontologyId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          requestBody:
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/OntologyModifyDto"
            required: true
          responses:
            "404":
              description: Could not find ontology
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "202":
              description: Updated ontology successfully
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/OntologyDto"
          security:
          - bearerAuth: []
          - basicAuth: []
        delete:
          tags:
          - ontology-endpoint
          summary: Delete ontology
          description: Deletes an ontology with given id. Requires role `delete-ontology`.
          operationId: delete
          parameters:
          - name: ontologyId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          responses:
            "202":
              description: Deleted ontology successfully
              content:
                application/json: {}
            "404":
              description: Could not find ontology
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/message/{messageId}:
        put:
          tags:
          - message-endpoint
          summary: Update message
          description: Updates a message with id. Requires role `update-maintenance-message`.
          operationId: update_1
          parameters:
          - name: messageId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          requestBody:
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/BannerMessageUpdateDto"
            required: true
          responses:
            "202":
              description: Updated message
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/BannerMessageBriefDto"
            "404":
              description: Could not find message
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
        delete:
          tags:
          - message-endpoint
          summary: Delete message
          description: Deletes a message with id. Requires role `delete-maintenance-message`.
          operationId: delete_1
          parameters:
          - name: messageId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          responses:
            "404":
              description: Could not find message
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "202":
              description: Deleted message
              content:
                application/json: {}
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/image/{imageId}:
        get:
          tags:
          - image-endpoint
          summary: Find image
          description: Finds a container image in the metadata database.
          operationId: findById
          parameters:
          - name: imageId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          responses:
            "404":
              description: Image could not be found
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "200":
              description: Found image
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ImageDto"
        put:
          tags:
          - image-endpoint
          summary: Update image
          description: Updates container image in the metadata database. Requires role
            `modify-image`.
          operationId: update_2
          parameters:
          - name: imageId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          requestBody:
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/ImageChangeDto"
            required: true
          responses:
            "404":
              description: Image could not be found
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "202":
              description: Updated image successfully
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ImageDto"
          security:
          - bearerAuth: []
          - basicAuth: []
        delete:
          tags:
          - image-endpoint
          summary: Delete image
          description: Deletes a container image in the metadata database. Requires role
            `delete-image`.
          operationId: delete_2
          parameters:
          - name: imageId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          responses:
            "202":
              description: Deleted image successfully
            "404":
              description: Image could not be found
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/identifier/{identifierId}:
        get:
          tags:
          - identifier-endpoint
          summary: Find identifier
          description: Finds an identifier with id. The response format depends on the
            HTTP `Accept` header set on the request.
          operationId: find_6
          parameters:
          - name: identifierId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          - name: Accept
            in: header
            required: true
            schema:
              type: string
          responses:
            "200":
              description: Found identifier successfully
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/IdentifierDto"
                application/ld+json:
                  schema:
                    $ref: "#/components/schemas/LdDatasetDto"
                text/csv: {}
                text/xml: {}
                text/bibliography: {}
                text/bibliography; style=apa: {}
                text/bibliography; style=ieee: {}
                text/bibliography; style=bibtex: {}
            "502":
              description: Connection to data service failed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "400":
              description: "Identifier could not be exported, the requested style is not\
                \ known"
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "409":
              description: Exported resource was not found
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "410":
              description: Failed to retrieve from S3 endpoint
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: Identifier could not be found
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "406":
              description: Failed to find acceptable representation
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "503":
              description: Failed to find in data service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
        put:
          tags:
          - identifier-endpoint
          summary: Save identifier
          description: Saves an identifier with id as a draft identifier. Identifiers
            can only be created for objects the user has at least *READ* access in the
            associated database (requires role `create-identifier`) or for any object
            in any database (requires role `create-foreign-identifier`).
          operationId: save
          parameters:
          - name: identifierId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          requestBody:
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/IdentifierSaveDto"
            required: true
          responses:
            "502":
              description: Connection to search service failed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: "Failed to find database, table or view"
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "400":
              description: Identifier form contains invalid request data
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "503":
              description: Failed to save in search service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "202":
              description: Saved identifier
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/IdentifierDto"
            "403":
              description: Insufficient access rights or authorities
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
        delete:
          tags:
          - identifier-endpoint
          summary: Delete identifier
          description: Deletes an identifier with id. Requires role `delete-identifier`.
          operationId: delete_3
          parameters:
          - name: identifierId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          responses:
            "502":
              description: Connection to search service failed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "503":
              description: Failed to delete in search service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: Identifier or database could not be found
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "202":
              description: Deleted identifier
            "403":
              description: Deleting identifier not permitted
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/identifier/{identifierId}/publish:
        put:
          tags:
          - identifier-endpoint
          summary: Publish identifier
          description: Publishes an identifier with id. A published identifier cannot
            be changed anymore. Requires role `publish-identifier`.
          operationId: publish
          parameters:
          - name: identifierId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          responses:
            "502":
              description: Connection to search service failed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: "Failed to find database, table or view"
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "202":
              description: Published identifier
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/IdentifierDto"
            "400":
              description: Identifier form contains invalid request data
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "503":
              description: Failed to save in search service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "403":
              description: Insufficient access rights or authorities
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/database/{databaseId}/visibility:
        put:
          tags:
          - database-endpoint
          summary: Update database visibility
          description: Updates the database with id on the visibility. Only the database
            owner can perform this operation. Requires role `modify-database-visibility`.
          operationId: visibility
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          requestBody:
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/DatabaseModifyVisibilityDto"
            required: true
          responses:
            "502":
              description: Connection to search service failed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: Failed to find database in metadata database
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "202":
              description: Visibility modified successfully
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/DatabaseBriefDto"
            "400":
              description: The visibility payload is malformed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "503":
              description: Failed to save in search service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "403":
              description: Visibility modification is not permitted
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/database/{databaseId}/view/{viewId}:
        get:
          tags:
          - view-endpoint
          summary: Get view
          description: Gets a view with id in the metadata database.
          operationId: find_7
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          - name: viewId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          responses:
            "403":
              description: Find view is not permitted
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: "Database, view or user could not be found"
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "200":
              description: Find view successfully
              headers:
                X-Username:
                  description: The authentication username
                  style: simple
                Access-Control-Expose-Headers:
                  description: Expose custom headers
                  style: simple
                X-Type:
                  description: The JDBC connection type
                  style: simple
                X-View:
                  description: The view internal name
                  style: simple
                X-Database:
                  description: The database internal name
                  style: simple
                X-Password:
                  description: The authentication password
                  style: simple
                X-Host:
                  description: The database hostname
                  style: simple
                X-Port:
                  description: The database port number
                  style: simple
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ViewDto"
          security:
          - bearerAuth: []
          - basicAuth: []
        put:
          tags:
          - view-endpoint
          summary: Update view
          description: Updates a view with id. This can only be performed by the view
            owner or database owner. Requires role `create-database-view`.
          operationId: update_3
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          - name: viewId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          requestBody:
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/ViewUpdateDto"
            required: true
          responses:
            "502":
              description: Connection to search service failed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: Database or View could not be found
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "403":
              description: Update not allowed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "503":
              description: Failed to save in search service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "400":
              description: Update view query is malformed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "202":
              description: Update view successfully
              content:
                '*/*':
                  schema:
                    $ref: "#/components/schemas/ViewDto"
          security:
          - bearerAuth: []
          - basicAuth: []
        delete:
          tags:
          - view-endpoint
          summary: Delete view
          description: Deletes a view with id. Requires role `delete-database-view`.
          operationId: delete_4
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          - name: viewId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          responses:
            "502":
              description: Connection to search service failed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "423":
              description: Delete view resulted in an invalid query statement
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: "Database, view or user could not be found"
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "202":
              description: Delete view successfully
              content:
                '*/*':
                  schema:
                    type: object
            "400":
              description: Delete view query is malformed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "503":
              description: Failed to save in search service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "403":
              description: Deletion not allowed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/database/{databaseId}/table/{tableId}:
        get:
          tags:
          - table-endpoint
          summary: Find table
          description: "Finds a table with id. When a table is hidden (i.e. when `is_public`\
            \ is `false`), then the user needs to have at least read access and the role\
            \ `find-table`. When the `system` role is present, the endpoint responds with\
            \ additional connection metadata in the header."
          operationId: findById_2
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          - name: tableId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          responses:
            "200":
              description: Find table successfully
              headers:
                X-Username:
                  description: The authentication username
                  style: simple
                X-Table:
                  description: The table internal name
                  style: simple
                Access-Control-Expose-Headers:
                  description: Expose custom headers
                  style: simple
                X-Type:
                  description: The JDBC connection type
                  style: simple
                X-Database:
                  description: The database internal name
                  style: simple
                X-Password:
                  description: The authentication password
                  style: simple
                X-Host:
                  description: The database hostname
                  style: simple
                X-Port:
                  description: The database port number
                  style: simple
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/TableDto"
            "503":
              description: Failed to obtain queue information from broker service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "403":
              description: Access to the database is forbidden
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "502":
              description: Failed to establish connection with broker service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: "Table, database or container could not be found"
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
        put:
          tags:
          - table-endpoint
          summary: Update table
          description: Updates a table in the database with id. Requires role `update-table`.
          operationId: update_4
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          - name: tableId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          requestBody:
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/TableUpdateDto"
            required: true
          responses:
            "403":
              description: Update table visibility not permitted
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "502":
              description: Connection to search service failed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: Table could not be found
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "202":
              description: Updated the table
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/TableBriefDto"
            "503":
              description: Failed to save in search service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "400":
              description: Update table visibility payload is malformed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
        delete:
          tags:
          - table-endpoint
          summary: Delete table
          description: Deletes a table with id. Only the owner of a table can perform
            this action (requires role `delete-table`) or anyone can delete a table (requires
            role `delete-foreign-table`).
          operationId: delete_5
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          - name: tableId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          responses:
            "502":
              description: Connection to search service failed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "403":
              description: Access to the database is forbidden
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "202":
              description: Delete table successfully
            "503":
              description: Failed to save in search service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "400":
              description: Delete table query resulted in an invalid query statement
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: "Table, database or container could not be found"
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/database/{databaseId}/table/{tableId}/statistic:
        put:
          tags:
          - table-endpoint
          summary: Update statistics
          description: "Updates basic statistical properties (min, max, mean, median,\
            \ std.dev) for numerical columns in a table with id. This action can only\
            \ be performed by the table owner. Requires role `update-table-statistic`."
          operationId: updateStatistic
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          - name: tableId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          responses:
            "502":
              description: Connection to search service failed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "503":
              description: Failed to save in search service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "400":
              description: Failed to map column statistic to known columns
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: Failed to find database/table in metadata database
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "403":
              description: Not the owner
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "202":
              description: Updated table statistics successfully
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/database/{databaseId}/table/{tableId}/column/{columnId}:
        put:
          tags:
          - table-endpoint
          summary: Update semantics
          description: Updates column semantics of a table column with id. Only the table
            owner with at least *READ* access to the associated database can update the
            column semantics (requires role `modify-table-column-semantics`) or foreign
            table columns if role `modify-foreign-table-column-semantics`.
          operationId: updateColumn
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          - name: tableId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          - name: columnId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          requestBody:
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/ColumnSemanticsUpdateDto"
            required: true
          responses:
            "502":
              description: Connection to search service failed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "403":
              description: Access to the database is forbidden
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: Failed to find user/table/database/ontology in metadata database
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "503":
              description: Failed to save in search service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "202":
              description: Updated column semantics successfully
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ColumnDto"
            "400":
              description: Update semantic concept query is malformed or update unit of
                measurement query is malformed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/database/{databaseId}/owner:
        put:
          tags:
          - database-endpoint
          summary: Update database owner
          description: Updates the database with id on the owner. Only the database owner
            can perform this operation. Requires role `modify-database-owner`.
          operationId: transfer
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          requestBody:
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/DatabaseTransferDto"
            required: true
          responses:
            "502":
              description: Connection to search service failed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "503":
              description: Failed to save in search service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "202":
              description: Transfer of ownership was successful
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/DatabaseBriefDto"
            "403":
              description: Transfer of ownership is not permitted
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: Database or user could not be found
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "400":
              description: Owner payload is malformed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/database/{databaseId}/metadata/view:
        put:
          tags:
          - database-endpoint
          summary: Update database view schemas
          description: Updates the database with id with generated metadata from view
            that are not yet known to the database. Only the database owner can perform
            this operation. Requires role `find-database`.
          operationId: refreshViewMetadata
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          responses:
            "502":
              description: Connection to search service failed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: Failed to find database in metadata database
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "503":
              description: Failed to save in search service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "200":
              description: Refreshed database views metadata
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/DatabaseBriefDto"
            "403":
              description: Refresh view metadata is not permitted
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/database/{databaseId}/metadata/table:
        put:
          tags:
          - database-endpoint
          summary: Update database table schemas
          description: Updates the database with id with generated metadata from tables
            that are not yet known to the database. Only the database owner can perform
            this operation. Requires role `find-database`.
          operationId: refreshTableMetadata
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          responses:
            "403":
              description: Not allowed to refresh table metadata
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "502":
              description: Connection to search service failed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: Failed to fin user/database in metadata database
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "503":
              description: Failed to save in search service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "200":
              description: Refreshed database tables metadata
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/DatabaseBriefDto"
            "400":
              description: Failed to parse payload at search service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/database/{databaseId}/image:
        get:
          tags:
          - database-endpoint
          summary: Get database preview image
          description: Gets the database with id on the preview image.
          operationId: findPreviewImage
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          responses:
            "404":
              description: Database or user could not be found
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "200":
              description: View of image was successful
              content:
                '*/*':
                  schema:
                    type: array
                    items:
                      type: string
                      format: byte
          security:
          - bearerAuth: []
          - basicAuth: []
        put:
          tags:
          - database-endpoint
          summary: Update database preview image
          description: Updates the database with id on the preview image. Only the database
            owner can perform this operation. Requires role `modify-database-image`.
          operationId: modifyImage
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          requestBody:
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/DatabaseModifyImageDto"
            required: true
          responses:
            "502":
              description: Connection to search service failed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "202":
              description: Modify of image was successful
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/DatabaseBriefDto"
            "410":
              description: File was not found in the Storage Service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: Database could not be found
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "503":
              description: Failed to save in search service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "403":
              description: Modify of image is not permitted
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/user:
        get:
          tags:
          - user-endpoint
          summary: List users
          description: "Lists users known to the metadata database. Internal users are\
            \ omitted from the result list. If the optional query parameter `username`\
            \ is present, the result list can be filtered by matching this exact username."
          operationId: findAll
          parameters:
          - name: username
            in: query
            required: false
            schema:
              type: string
          responses:
            "200":
              description: List users
              content:
                application/json:
                  schema:
                    type: array
                    items:
                      $ref: "#/components/schemas/UserBriefDto"
        post:
          tags:
          - user-endpoint
          summary: Create user
          description: Creates a user in the auth service and metadata database. Requires
            that no credentials are sent in the request.
          operationId: create
          requestBody:
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/SignupRequestDto"
            required: true
          responses:
            "403":
              description: Internal authentication to the auth service is invalid
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "400":
              description: Parameters are not well-formed (likely email)
              content:
                application/json: {}
            "409":
              description: User with username already exists
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "417":
              description: User with e-mail already exists
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "503":
              description: Failed to create in auth service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "201":
              description: Created user
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/UserDto"
            "502":
              description: Failed to create in auth service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: Default role not found
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
      /api/ontology:
        get:
          tags:
          - ontology-endpoint
          summary: List ontologies
          description: Lists all ontologies known to the metadata database.
          operationId: findAll_2
          responses:
            "200":
              description: List ontologies
              content:
                application/json:
                  schema:
                    type: array
                    items:
                      $ref: "#/components/schemas/OntologyBriefDto"
        post:
          tags:
          - ontology-endpoint
          summary: Create ontology
          description: Creates an ontology in the metadata database. Requires role `create-ontology`.
          operationId: create_1
          requestBody:
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/OntologyCreateDto"
            required: true
          responses:
            "201":
              description: Registered ontology successfully
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/OntologyDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/message:
        get:
          tags:
          - message-endpoint
          summary: List messages
          description: "Lists messages known to the metadata database. Messages can be\
            \ filtered be filtered with the optional `active` parameter. If set to *true*,\
            \ only active messages (that is, messages whose end time has not been reached)\
            \ will be returned. Otherwise only inactive messages are returned. If not\
            \ set, active and inactive messages are returned."
          operationId: list_2
          parameters:
          - name: active
            in: query
            required: false
            schema:
              type: boolean
          responses:
            "200":
              description: List messages
              content:
                application/json:
                  schema:
                    type: array
                    items:
                      $ref: "#/components/schemas/BannerMessageDto"
        post:
          tags:
          - message-endpoint
          summary: Create message
          description: Creates a message in the metadata database. Requires role `create-maintenance-message`.
          operationId: create_2
          requestBody:
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/BannerMessageCreateDto"
            required: true
          responses:
            "201":
              description: Created message
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/BannerMessageBriefDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/image:
        get:
          tags:
          - image-endpoint
          summary: List images
          description: Lists all container images known to the metadata database.
          operationId: findAll_3
          responses:
            "200":
              description: List images
              content:
                application/json:
                  schema:
                    type: array
                    items:
                      $ref: "#/components/schemas/ImageBriefDto"
        post:
          tags:
          - image-endpoint
          summary: Create image
          description: Creates a container image in the metadata database. Requires role
            `create-image`.
          operationId: create_3
          requestBody:
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/ImageCreateDto"
            required: true
          responses:
            "409":
              description: Image already exists
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "400":
              description: Image specification is invalid
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "201":
              description: Created image
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ImageDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/identifier:
        get:
          tags:
          - identifier-endpoint
          summary: List identifiers
          description: Lists all identifiers known to the metadata database
          operationId: findAll_4
          parameters:
          - name: dbid
            in: query
            required: false
            schema:
              type: integer
              format: int64
          - name: qid
            in: query
            required: false
            schema:
              type: integer
              format: int64
          - name: vid
            in: query
            required: false
            schema:
              type: integer
              format: int64
          - name: tid
            in: query
            required: false
            schema:
              type: integer
              format: int64
          - name: Accept
            in: header
            required: true
            schema:
              type: string
          responses:
            "200":
              description: Found identifiers successfully
              content:
                application/json:
                  schema:
                    type: array
                    items:
                      type: string
                application/ld+json:
                  schema:
                    type: array
                    items:
                      $ref: "#/components/schemas/LdDatasetDto"
            "406":
              description: "Identifier could not be exported, the requested style is not\
                \ known"
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
        post:
          tags:
          - identifier-endpoint
          summary: Create identifier
          description: Create an identifier with id to create a draft identifier. Identifiers
            can only be created for objects the user has at least *READ* access in the
            associated database (requires role `create-identifier`) or for any object
            in any database (requires role `create-foreign-identifier`).
          operationId: create_4
          requestBody:
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/IdentifierCreateDto"
            required: true
          responses:
            "502":
              description: Connection to search service failed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "201":
              description: Drafted identifier
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/IdentifierDto"
            "404":
              description: "Failed to find database, table or view"
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "400":
              description: Identifier form contains invalid request data
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "503":
              description: Failed to save in search service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "403":
              description: Insufficient access rights or authorities
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/database/{databaseId}/view:
        get:
          tags:
          - view-endpoint
          summary: List views
          description: Lists views known to the metadata database.
          operationId: findAll_5
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          responses:
            "200":
              description: Find views successfully
              content:
                application/json:
                  schema:
                    type: array
                    items:
                      $ref: "#/components/schemas/ViewBriefDto"
            "404":
              description: Database or user could not be found
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
        post:
          tags:
          - view-endpoint
          summary: Create view
          description: Creates a view. This can only be performed by the database owner.
            Requires role `create-database-view`.
          operationId: create_6
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          requestBody:
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/ViewCreateDto"
            required: true
          responses:
            "423":
              description: Create view resulted in an invalid query statement
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "502":
              description: Connection to search service failed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "201":
              description: Create view successfully
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ViewBriefDto"
            "503":
              description: Failed to save in search service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "403":
              description: Credentials missing
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: Failed to find database/user in metadata database.
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "400":
              description: Create view query is malformed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/database/{databaseId}/table:
        get:
          tags:
          - table-endpoint
          summary: List tables
          description: "Lists all tables known to the metadata database. When a database\
            \ has a hidden schema (i.e. when `is_schema_public` is `false`), then the\
            \ user needs to have at least read access and the role `list-tables`."
          operationId: list_4
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          responses:
            "403":
              description: List tables not permitted
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: Database could not be found
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "200":
              description: List tables
              content:
                application/json:
                  schema:
                    type: array
                    items:
                      $ref: "#/components/schemas/TableBriefDto"
          security:
          - bearerAuth: []
          - basicAuth: []
        post:
          tags:
          - table-endpoint
          summary: Create table
          description: Creates a table in the database with id. Requires role `create-table`.
          operationId: create_7
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          requestBody:
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/TableCreateDto"
            required: true
          responses:
            "502":
              description: Connection to search service failed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "403":
              description: Create table not permitted
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "201":
              description: Created a new table
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/TableBriefDto"
            "409":
              description: Create table conflicts with existing table name
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: "Database, container or user could not be found"
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "503":
              description: Failed to save in search service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "400":
              description: Create table query is malformed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/container:
        get:
          tags:
          - container-endpoint
          summary: List containers
          description: List all containers in the metadata database.
          operationId: findAll_6
          parameters:
          - name: limit
            in: query
            required: false
            schema:
              type: integer
              format: int32
          responses:
            "200":
              description: List containers
              content:
                application/json:
                  schema:
                    type: array
                    items:
                      $ref: "#/components/schemas/ContainerBriefDto"
        post:
          tags:
          - container-endpoint
          summary: Create container
          description: Creates a container in the metadata database. Requires role `create-container`.
          operationId: create_9
          requestBody:
            content:
              application/json:
                schema:
                  $ref: "#/components/schemas/ContainerCreateDto"
            required: true
          responses:
            "400":
              description: Container payload malformed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: Container image or user could not be found
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "409":
              description: Container name already exists
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "201":
              description: Created a new container
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ContainerDto"
            "403":
              description: "Create container not permitted, need authority `create-container`"
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/unit:
        get:
          tags:
          - unit-endpoint
          summary: List units
          description: Lists units known to the metadata database.
          operationId: findAll_1
          responses:
            "200":
              description: Find all semantic units
              content:
                application/json:
                  schema:
                    type: array
                    items:
                      $ref: "#/components/schemas/UnitDto"
      /api/ontology/{ontologyId}/entity:
        get:
          tags:
          - ontology-endpoint
          summary: Find entities
          description: Finds semantic entities by label or uri in an ontology with id.
            Requires role `execute-semantic-query`.
          operationId: find_4
          parameters:
          - name: ontologyId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          - name: label
            in: query
            required: false
            schema:
              type: string
          - name: uri
            in: query
            required: false
            schema:
              type: string
          responses:
            "400":
              description: Filter params are invalid
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "200":
              description: Found entities
              content:
                application/json:
                  schema:
                    type: array
                    items:
                      $ref: "#/components/schemas/EntityDto"
            "404":
              description: Could not find ontology
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "422":
              description: Ontology does not have rdf or sparql endpoint
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "417":
              description: Generated query or uri is malformed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/oai:
        get:
          tags:
          - metadata-endpoint
          summary: Get record
          operationId: identify_1_1_1_1
          parameters:
          - name: verb
            in: query
          - name: parameters
            in: query
            required: true
            schema:
              $ref: "#/components/schemas/OaiListIdentifiersParameters"
          responses:
            "200":
              description: List containers
              content:
                text/xml: {}
      /api/message/message/{messageId}:
        get:
          tags:
          - message-endpoint
          summary: Find message
          description: Finds a message with id in the metadata database.
          operationId: find_5
          parameters:
          - name: messageId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          responses:
            "200":
              description: Get messages
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/BannerMessageDto"
            "404":
              description: Could not find message
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
      /api/license:
        get:
          tags:
          - license-endpoint
          summary: List licenses
          description: Lists licenses known to the metadata database.
          operationId: list_3
          responses:
            "200":
              description: List of licenses
              content:
                application/json:
                  schema:
                    type: array
                    items:
                      $ref: "#/components/schemas/LicenseDto"
      /api/identifier/retrieve:
        get:
          tags:
          - identifier-endpoint
          summary: Retrieve PID metadata
          description: "Retrieves Persistent Identifier (PID) metadata from external endpoints.\
            \ Supported PIDs are: ORCID, ROR, DOI."
          operationId: retrieve
          parameters:
          - name: url
            in: query
            required: true
            schema:
              type: string
          responses:
            "200":
              description: Retrieved metadata from identifier
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/IdentifierDto"
            "404":
              description: Failed to find metadata for identifier
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
      /api/database/{databaseId}:
        get:
          tags:
          - database-endpoint
          summary: Find database
          description: Finds a database with id.
          operationId: findById_1
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          responses:
            "503":
              description: Failed to find queue information in broker service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "502":
              description: Connection to the broker service could not be established
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "200":
              description: Database found successfully
              headers:
                X-Username:
                  description: The authentication username
                  style: simple
                Access-Control-Expose-Headers:
                  description: Expose custom headers
                  style: simple
                X-Password:
                  description: The authentication password
                  style: simple
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/DatabaseBriefDto"
            "403":
              description: Not allowed to view database
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: "Database, user or exchange could not be found"
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/database/{databaseId}/table/{tableId}/suggest:
        get:
          tags:
          - table-endpoint
          summary: Suggest semantics
          description: Suggests semantic concepts for a table. This action can only be
            performed by the table owner. Requires role `table-semantic-analyse`.
          operationId: analyseTable
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          - name: tableId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          responses:
            "417":
              description: Generated query is malformed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "422":
              description: Ontology does not have rdf or sparql endpoint
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "400":
              description: Failed to parse statistic in search service
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "403":
              description: Not the table owner.
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "404":
              description: Failed to find database/table in metadata database
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "200":
              description: Suggested table semantics successfully
              content:
                application/json:
                  schema:
                    type: array
                    items:
                      $ref: "#/components/schemas/EntityDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/database/{databaseId}/table/{tableId}/column/{columnId}/suggest:
        get:
          tags:
          - table-endpoint
          summary: Suggest semantics
          description: Suggests column semantics. Requires role `table-semantic-analyse`.
          operationId: analyseTableColumn
          parameters:
          - name: databaseId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          - name: tableId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          - name: columnId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          responses:
            "400":
              description: Generated query is malformed
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "422":
              description: Ontology does not have rdf or sparql endpoint
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "200":
              description: Suggested table column semantics successfully
              content:
                application/json:
                  schema:
                    type: array
                    items:
                      $ref: "#/components/schemas/TableColumnEntityDto"
            "404":
              description: Failed to find database/table in metadata database
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/container/{containerId}:
        get:
          tags:
          - container-endpoint
          summary: Find container
          description: Finds a container in the metadata database.
          operationId: findById_3
          parameters:
          - name: containerId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          responses:
            "200":
              description: Found container
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ContainerDto"
            "404":
              description: Container image could not be found
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
        delete:
          tags:
          - container-endpoint
          summary: Delete container
          description: Deletes a container in the metadata database. Requires role `delete-container`.
          operationId: delete_6
          parameters:
          - name: containerId
            in: path
            required: true
            schema:
              type: integer
              format: int64
          responses:
            "404":
              description: Container not found
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
            "202":
              description: Deleted container
            "403":
              description: "Create container not permitted, need authority `delete-container`"
              content:
                application/json:
                  schema:
                    $ref: "#/components/schemas/ApiErrorDto"
          security:
          - bearerAuth: []
          - basicAuth: []
      /api/concept:
        get:
          tags:
          - concept-endpoint
          summary: List concepts
          description: List all semantic concepts known to the metadata database
          operationId: findAll_7
          responses:
            "200":
              description: List concepts
              content:
                application/json:
                  schema:
                    type: array
                    items:
                      $ref: "#/components/schemas/ConceptDto"
    components:
      schemas:
        DatabaseBriefDto:
          required:
          - contact
          - id
          - internal_name
          - is_public
          - is_schema_public
          - name
          - owner_id
          type: object
          properties:
            id:
              type: integer
              format: int64
            name:
              type: string
              example: Air Quality
            description:
              type: string
              example: Air Quality
            identifiers:
              type: array
              items:
                $ref: "#/components/schemas/IdentifierBriefDto"
            contact:
              $ref: "#/components/schemas/UserBriefDto"
            internal_name:
              type: string
              example: air_quality
            is_public:
              type: boolean
              example: true
            is_schema_public:
              type: boolean
              example: true
            owner_id:
              type: string
              format: uuid
            preview_image:
              type: string
        IdentifierBriefDto:
          required:
          - created_by
          - database_id
          - id
          - publication_year
          - publisher
          - titles
          - type
          type: object
          properties:
            id:
              type: integer
              format: int64
            type:
              type: string
              enum:
              - database
              - subset
              - table
              - view
            titles:
              type: array
              items:
                $ref: "#/components/schemas/IdentifierTitleDto"
            doi:
              type: string
              example: 10.1038/nphys1170
            publisher:
              type: string
              example: TU Wien
            status:
              type: string
              enum:
              - draft
              - published
            database_id:
              type: integer
              format: int64
              example: 1
            query_id:
              type: integer
              format: int64
              example: 1
            table_id:
              type: integer
              format: int64
              example: 1
            view_id:
              type: integer
              format: int64
              example: 1
            publication_year:
              type: integer
              format: int32
              example: 2022
            created_by:
              type: string
              format: uuid
        IdentifierTitleDto:
          required:
          - id
          type: object
          properties:
            id:
              type: integer
              format: int64
            title:
              type: string
              example: Airquality Demonstrator
            language:
              type: string
              example: en
              enum:
              - ab
              - aa
              - af
              - ak
              - sq
              - am
              - ar
              - an
              - hy
              - as
              - av
              - ae
              - ay
              - az
              - bm
              - ba
              - eu
              - be
              - bn
              - bh
              - bi
              - bs
              - br
              - bg
              - my
              - ca
              - km
              - ch
              - ce
              - ny
              - zh
              - cu
              - cv
              - kw
              - co
              - cr
              - hr
              - cs
              - da
              - dv
              - nl
              - dz
              - en
              - eo
              - et
              - ee
              - fo
              - fj
              - fi
              - fr
              - ff
              - gd
              - gl
              - lg
              - ka
              - de
              - ki
              - el
              - kl
              - gn
              - gu
              - ht
              - ha
              - he
              - hz
              - hi
              - ho
              - hu
              - is
              - io
              - ig
              - id
              - ia
              - ie
              - iu
              - ik
              - ga
              - it
              - ja
              - jv
              - kn
              - kr
              - ks
              - kk
              - rw
              - kv
              - kg
              - ko
              - kj
              - ku
              - ky
              - lo
              - la
              - lv
              - lb
              - li
              - ln
              - lt
              - lu
              - mk
              - mg
              - ms
              - ml
              - mt
              - gv
              - mi
              - mr
              - mh
              - ro
              - mn
              - na
              - nv
              - nd
              - ng
              - ne
              - se
              - "no"
              - nb
              - nn
              - ii
              - oc
              - oj
              - or
              - om
              - os
              - pi
              - pa
              - ps
              - fa
              - pl
              - pt
              - qu
              - rm
              - rn
              - ru
              - sm
              - sg
              - sa
              - sc
              - sr
              - sn
              - sd
              - si
              - sk
              - sl
              - so
              - st
              - nr
              - es
              - su
              - sw
              - ss
              - sv
              - tl
              - ty
              - tg
              - ta
              - tt
              - te
              - th
              - bo
              - ti
              - to
              - ts
              - tn
              - tr
              - tk
              - tw
              - ug
              - uk
              - ur
              - uz
              - ve
              - vi
              - vo
              - wa
              - cy
              - fy
              - wo
              - xh
              - yi
              - yo
              - za
              - zu
            type:
              type: string
              enum:
              - AlternativeTitle
              - Subtitle
              - TranslatedTitle
              - Other
        UserBriefDto:
          required:
          - id
          - username
          type: object
          properties:
            id:
              type: string
              format: uuid
              example: 1ffc7b0e-9aeb-4e8b-b8f1-68f3936155b4
            username:
              type: string
              description: Only contains lowercase characters
              example: jcarberry
            name:
              type: string
              example: Josiah Carberry
            orcid:
              type: string
              example: 0000-0002-1825-0097
            qualified_name:
              type: string
              example: Josiah Carberry — @jcarberry
            given_name:
              type: string
              example: Josiah
            family_name:
              type: string
              example: Carberry
        ApiErrorDto:
          required:
          - code
          - message
          - status
          type: object
          properties:
            status:
              type: string
              example: NOT_FOUND
              enum:
              - 100 CONTINUE
              - 101 SWITCHING_PROTOCOLS
              - 102 PROCESSING
              - 103 EARLY_HINTS
              - 103 CHECKPOINT
              - 200 OK
              - 201 CREATED
              - 202 ACCEPTED
              - 203 NON_AUTHORITATIVE_INFORMATION
              - 204 NO_CONTENT
              - 205 RESET_CONTENT
              - 206 PARTIAL_CONTENT
              - 207 MULTI_STATUS
              - 208 ALREADY_REPORTED
              - 226 IM_USED
              - 300 MULTIPLE_CHOICES
              - 301 MOVED_PERMANENTLY
              - 302 FOUND
              - 302 MOVED_TEMPORARILY
              - 303 SEE_OTHER
              - 304 NOT_MODIFIED
              - 305 USE_PROXY
              - 307 TEMPORARY_REDIRECT
              - 308 PERMANENT_REDIRECT
              - 400 BAD_REQUEST
              - 401 UNAUTHORIZED
              - 402 PAYMENT_REQUIRED
              - 403 FORBIDDEN
              - 404 NOT_FOUND
              - 405 METHOD_NOT_ALLOWED
              - 406 NOT_ACCEPTABLE
              - 407 PROXY_AUTHENTICATION_REQUIRED
              - 408 REQUEST_TIMEOUT
              - 409 CONFLICT
              - 410 GONE
              - 411 LENGTH_REQUIRED
              - 412 PRECONDITION_FAILED
              - 413 PAYLOAD_TOO_LARGE
              - 413 REQUEST_ENTITY_TOO_LARGE
              - 414 URI_TOO_LONG
              - 414 REQUEST_URI_TOO_LONG
              - 415 UNSUPPORTED_MEDIA_TYPE
              - 416 REQUESTED_RANGE_NOT_SATISFIABLE
              - 417 EXPECTATION_FAILED
              - 418 I_AM_A_TEAPOT
              - 419 INSUFFICIENT_SPACE_ON_RESOURCE
              - 420 METHOD_FAILURE
              - 421 DESTINATION_LOCKED
              - 422 UNPROCESSABLE_ENTITY
              - 423 LOCKED
              - 424 FAILED_DEPENDENCY
              - 425 TOO_EARLY
              - 426 UPGRADE_REQUIRED
              - 428 PRECONDITION_REQUIRED
              - 429 TOO_MANY_REQUESTS
              - 431 REQUEST_HEADER_FIELDS_TOO_LARGE
              - 451 UNAVAILABLE_FOR_LEGAL_REASONS
              - 500 INTERNAL_SERVER_ERROR
              - 501 NOT_IMPLEMENTED
              - 502 BAD_GATEWAY
              - 503 SERVICE_UNAVAILABLE
              - 504 GATEWAY_TIMEOUT
              - 505 HTTP_VERSION_NOT_SUPPORTED
              - 506 VARIANT_ALSO_NEGOTIATES
              - 507 INSUFFICIENT_STORAGE
              - 508 LOOP_DETECTED
              - 509 BANDWIDTH_LIMIT_EXCEEDED
              - 510 NOT_EXTENDED
              - 511 NETWORK_AUTHENTICATION_REQUIRED
            message:
              type: string
              example: Error message
            code:
              type: string
              example: error.service.code
        DatabaseAccessDto:
          required:
          - type
          - user
          type: object
          properties:
            user:
              $ref: "#/components/schemas/UserBriefDto"
            type:
              type: string
              enum:
              - read
              - write_own
              - write_all
        UserUpdateDto:
          required:
          - language
          - theme
          type: object
          properties:
            firstname:
              type: string
              example: Josiah
            lastname:
              type: string
              example: Carberry
            affiliation:
              type: string
              example: Brown University
            orcid:
              type: string
              example: 0000-0002-1825-0097
            theme:
              type: string
              example: dark
            language:
              type: string
              example: en
        UserAttributesDto:
          required:
          - language
          - theme
          type: object
          properties:
            theme:
              type: string
              example: light
            orcid:
              type: string
              example: https://orcid.org/0000-0002-1825-0097
            affiliation:
              type: string
              example: Brown University
            language:
              type: string
              example: en
        UserDto:
          required:
          - attributes
          - id
          type: object
          properties:
            id:
              type: string
              format: uuid
              example: 1ffc7b0e-9aeb-4e8b-b8f1-68f3936155b4
            name:
              type: string
              example: Josiah Carberry
            attributes:
              $ref: "#/components/schemas/UserAttributesDto"
            last_retrieved:
              type: string
              format: date-time
            qualified_name:
              type: string
              example: Josiah Carberry — @jcarberry
            given_name:
              type: string
              example: Josiah
            family_name:
              type: string
              example: Carberry
        UserPasswordDto:
          required:
          - password
          type: object
          properties:
            password:
              type: string
        RefreshTokenRequestDto:
          required:
          - refresh_token
          type: object
          properties:
            refresh_token:
              type: string
              example: refresh_token
        TokenDto:
          required:
          - access_token
          - expires_in
          - id_token
          - not-before-policy
          - refresh_expires_in
          - refresh_token
          - scope
          - session_state
          - token_type
          type: object
          properties:
            scope:
              type: string
            access_token:
              type: string
            expires_in:
              type: integer
              format: int64
            refresh_token:
              type: string
            refresh_expires_in:
              type: integer
              format: int64
            id_token:
              type: string
            session_state:
              type: string
            token_type:
              type: string
            not-before-policy:
              type: integer
              format: int64
        OntologyModifyDto:
          required:
          - prefix
          - uri
          type: object
          properties:
            uri:
              type: string
              example: Ontology URI
            prefix:
              type: string
              example: Ontology prefix
            sparql_endpoint:
              type: string
              example: Ontology SPARQL endpoint
            rdf_path:
              type: string
              example: rdf/om-2.0.rdf
        OntologyDto:
          required:
          - id
          - prefix
          - rdf
          - sparql
          - uri
          type: object
          properties:
            id:
              type: integer
              format: int64
            uri:
              type: string
              example: http://www.wikidata.org/
            prefix:
              type: string
              example: wd
            sparql:
              type: boolean
              example: true
            rdf:
              type: boolean
              example: false
            uri_pattern:
              type: string
              example: http://www.wikidata.org/entity/.*
            sparql_endpoint:
              type: string
              example: https://query.wikidata.org/sparql
            rdf_path:
              type: string
              example: rdf/om-2.0.rdf
        BannerMessageUpdateDto:
          required:
          - message
          - type
          type: object
          properties:
            type:
              type: string
              enum:
              - error
              - warning
              - info
            message:
              type: string
              example: Maintenance starts on 8am on Monday
            link:
              type: string
              example: https://example.com
            link_text:
              type: string
              example: More
            display_start:
              type: string
              format: date-time
              example: 2021-03-12T15:26:21Z
            display_end:
              type: string
              format: date-time
              example: 2021-03-12T15:26:21Z
        BannerMessageBriefDto:
          required:
          - message
          - type
          type: object
          properties:
            type:
              type: string
              enum:
              - error
              - warning
              - info
            message:
              type: string
              example: Maintenance starts on 8am on Monday
            link:
              type: string
              example: https://example.com
            link_text:
              type: string
              example: More
        ImageChangeDto:
          required:
          - dialect
          - driver_class
          - jdbc_method
          - registry
          type: object
          properties:
            registry:
              type: string
              example: docker.io/library
            defaultPort:
              maximum: 65535
              minimum: 1024
              type: integer
              format: int32
              example: 5432
            dialect:
              type: string
              example: Postgres
            driver_class:
              type: string
              example: org.postgresql.Driver
            jdbc_method:
              type: string
              example: postgresql
        DataTypeDto:
          required:
          - display_name
          - documentation
          - is_buildable
          - is_quoted
          - value
          type: object
          properties:
            value:
              type: string
              example: time
            documentation:
              type: string
              example: https://mariadb.com/kb/en/time/
            display_name:
              type: string
              example: TIME(fsp)
            size_min:
              type: integer
              format: int32
              example: 0
            size_max:
              type: integer
              format: int32
              example: 6
            size_default:
              type: integer
              format: int32
              example: 0
            size_required:
              type: boolean
              example: false
            d_min:
              type: integer
              format: int32
            d_max:
              type: integer
              format: int32
            d_default:
              type: integer
              format: int32
            d_required:
              type: boolean
            data_hint:
              type: string
              example: "e.g. HH:MM:SS, HH:MM, HHMMSS, H:M:S"
            type_hint:
              type: string
              example: "fsp=microsecond precision, min. 0, max. 6"
            is_quoted:
              type: boolean
              description: frontend needs to quote this data type
              example: false
            is_buildable:
              type: boolean
              description: frontend can build this data type
              example: true
        ImageDto:
          required:
          - data_types
          - default
          - default_port
          - dialect
          - driver_class
          - id
          - jdbc_method
          - name
          - operators
          - registry
          - version
          type: object
          properties:
            id:
              type: integer
              format: int64
            registry:
              type: string
              example: docker.io/library
            name:
              type: string
              example: mariadb
            version:
              type: string
              example: "10.5"
            dialect:
              type: string
              example: org.hibernate.dialect.MariaDBDialect
            operators:
              type: array
              items:
                $ref: "#/components/schemas/OperatorDto"
            driver_class:
              type: string
              example: org.mariadb.jdbc.Driver
            jdbc_method:
              type: string
              example: mariadb
            default:
              type: boolean
              example: false
            default_port:
              type: integer
              format: int32
              example: 3306
            data_types:
              type: array
              items:
                $ref: "#/components/schemas/DataTypeDto"
        OperatorDto:
          required:
          - display_name
          - documentation
          - value
          type: object
          properties:
            id:
              type: integer
              format: int64
            value:
              type: string
              example: XOR
            documentation:
              type: string
              example: https://mariadb.com/kb/en/xor/
            display_name:
              type: string
              example: XOR
        CreatorSaveDto:
          required:
          - creator_name
          - id
          type: object
          properties:
            id:
              type: integer
              format: int64
              example: 1
            firstname:
              type: string
              example: Josiah
            lastname:
              type: string
              example: Carberry
            affiliation:
              type: string
              example: Wesleyan University
            creator_name:
              type: string
              example: "Carberry, Josiah"
            name_type:
              type: string
              example: Personal
              enum:
              - Personal
              - Organizational
            name_identifier:
              type: string
              example: 0000-0002-1825-0097
            name_identifier_scheme:
              type: string
              example: ORCID
              enum:
              - ORCID
              - ROR
              - ISNI
              - GRID
            affiliation_identifier:
              type: string
              example: https://ror.org/04d836q62
            affiliation_identifier_scheme:
              type: string
              example: ROR
              enum:
              - ROR
              - GRID
              - ISNI
        IdentifierFunderSaveDto:
          required:
          - funder_name
          - id
          type: object
          properties:
            id:
              type: integer
              format: int64
              example: 1
            funder_name:
              type: string
              example: European Commission
            funder_identifier:
              type: string
              example: http://doi.org/10.13039/501100000780
            funder_identifier_type:
              type: string
              example: Crossref Funder ID
              enum:
              - Crossref Funder ID
              - ROR
              - GND
              - ISNI
              - Other
            scheme_uri:
              type: string
              example: http://doi.org/
            award_number:
              type: string
              example: "824087"
            award_title:
              type: string
              example: EOSC-Life
        IdentifierSaveDescriptionDto:
          required:
          - description
          - id
          type: object
          properties:
            id:
              type: integer
              format: int64
              example: 1
            description:
              type: string
              example: "Air quality reports at Stephansplatz, Vienna"
            language:
              type: string
              example: en
              enum:
              - ab
              - aa
              - af
              - ak
              - sq
              - am
              - ar
              - an
              - hy
              - as
              - av
              - ae
              - ay
              - az
              - bm
              - ba
              - eu
              - be
              - bn
              - bh
              - bi
              - bs
              - br
              - bg
              - my
              - ca
              - km
              - ch
              - ce
              - ny
              - zh
              - cu
              - cv
              - kw
              - co
              - cr
              - hr
              - cs
              - da
              - dv
              - nl
              - dz
              - en
              - eo
              - et
              - ee
              - fo
              - fj
              - fi
              - fr
              - ff
              - gd
              - gl
              - lg
              - ka
              - de
              - ki
              - el
              - kl
              - gn
              - gu
              - ht
              - ha
              - he
              - hz
              - hi
              - ho
              - hu
              - is
              - io
              - ig
              - id
              - ia
              - ie
              - iu
              - ik
              - ga
              - it
              - ja
              - jv
              - kn
              - kr
              - ks
              - kk
              - rw
              - kv
              - kg
              - ko
              - kj
              - ku
              - ky
              - lo
              - la
              - lv
              - lb
              - li
              - ln
              - lt
              - lu
              - mk
              - mg
              - ms
              - ml
              - mt
              - gv
              - mi
              - mr
              - mh
              - ro
              - mn
              - na
              - nv
              - nd
              - ng
              - ne
              - se
              - "no"
              - nb
              - nn
              - ii
              - oc
              - oj
              - or
              - om
              - os
              - pi
              - pa
              - ps
              - fa
              - pl
              - pt
              - qu
              - rm
              - rn
              - ru
              - sm
              - sg
              - sa
              - sc
              - sr
              - sn
              - sd
              - si
              - sk
              - sl
              - so
              - st
              - nr
              - es
              - su
              - sw
              - ss
              - sv
              - tl
              - ty
              - tg
              - ta
              - tt
              - te
              - th
              - bo
              - ti
              - to
              - ts
              - tn
              - tr
              - tk
              - tw
              - ug
              - uk
              - ur
              - uz
              - ve
              - vi
              - vo
              - wa
              - cy
              - fy
              - wo
              - xh
              - yi
              - yo
              - za
              - zu
            type:
              type: string
              example: Abstract
              enum:
              - Abstract
              - Methods
              - SeriesInformation
              - TableOfContents
              - TechnicalInfo
              - Other
        IdentifierSaveDto:
          required:
          - creators
          - database_id
          - id
          - publication_year
          - publisher
          - titles
          - type
          type: object
          properties:
            id:
              type: integer
              format: int64
              example: 1
            type:
              type: string
              example: database
              enum:
              - database
              - subset
              - table
              - view
            doi:
              type: string
              example: 10.1111/11111111
            titles:
              type: array
              items:
                $ref: "#/components/schemas/IdentifierSaveTitleDto"
            descriptions:
              type: array
              items:
                $ref: "#/components/schemas/IdentifierSaveDescriptionDto"
            funders:
              type: array
              items:
                $ref: "#/components/schemas/IdentifierFunderSaveDto"
            licenses:
              type: array
              items:
                $ref: "#/components/schemas/LicenseDto"
            publisher:
              type: string
              example: TU Wien
            language:
              type: string
              enum:
              - ab
              - aa
              - af
              - ak
              - sq
              - am
              - ar
              - an
              - hy
              - as
              - av
              - ae
              - ay
              - az
              - bm
              - ba
              - eu
              - be
              - bn
              - bh
              - bi
              - bs
              - br
              - bg
              - my
              - ca
              - km
              - ch
              - ce
              - ny
              - zh
              - cu
              - cv
              - kw
              - co
              - cr
              - hr
              - cs
              - da
              - dv
              - nl
              - dz
              - en
              - eo
              - et
              - ee
              - fo
              - fj
              - fi
              - fr
              - ff
              - gd
              - gl
              - lg
              - ka
              - de
              - ki
              - el
              - kl
              - gn
              - gu
              - ht
              - ha
              - he
              - hz
              - hi
              - ho
              - hu
              - is
              - io
              - ig
              - id
              - ia
              - ie
              - iu
              - ik
              - ga
              - it
              - ja
              - jv
              - kn
              - kr
              - ks
              - kk
              - rw
              - kv
              - kg
              - ko
              - kj
              - ku
              - ky
              - lo
              - la
              - lv
              - lb
              - li
              - ln
              - lt
              - lu
              - mk
              - mg
              - ms
              - ml
              - mt
              - gv
              - mi
              - mr
              - mh
              - ro
              - mn
              - na
              - nv
              - nd
              - ng
              - ne
              - se
              - "no"
              - nb
              - nn
              - ii
              - oc
              - oj
              - or
              - om
              - os
              - pi
              - pa
              - ps
              - fa
              - pl
              - pt
              - qu
              - rm
              - rn
              - ru
              - sm
              - sg
              - sa
              - sc
              - sr
              - sn
              - sd
              - si
              - sk
              - sl
              - so
              - st
              - nr
              - es
              - su
              - sw
              - ss
              - sv
              - tl
              - ty
              - tg
              - ta
              - tt
              - te
              - th
              - bo
              - ti
              - to
              - ts
              - tn
              - tr
              - tk
              - tw
              - ug
              - uk
              - ur
              - uz
              - ve
              - vi
              - vo
              - wa
              - cy
              - fy
              - wo
              - xh
              - yi
              - yo
              - za
              - zu
            creators:
              type: array
              items:
                $ref: "#/components/schemas/CreatorSaveDto"
            database_id:
              type: integer
              format: int64
              example: 1
            query_id:
              type: integer
              format: int64
            view_id:
              type: integer
              format: int64
            table_id:
              type: integer
              format: int64
            publication_day:
              type: integer
              format: int32
              example: 15
            publication_month:
              type: integer
              format: int32
              example: 12
            publication_year:
              type: integer
              format: int32
              example: 2022
            related_identifiers:
              type: array
              items:
                $ref: "#/components/schemas/RelatedIdentifierSaveDto"
        IdentifierSaveTitleDto:
          required:
          - id
          - title
          type: object
          properties:
            id:
              type: integer
              format: int64
              example: 1
            title:
              type: string
              example: Airquality Demonstrator
            language:
              type: string
              example: en
              enum:
              - ab
              - aa
              - af
              - ak
              - sq
              - am
              - ar
              - an
              - hy
              - as
              - av
              - ae
              - ay
              - az
              - bm
              - ba
              - eu
              - be
              - bn
              - bh
              - bi
              - bs
              - br
              - bg
              - my
              - ca
              - km
              - ch
              - ce
              - ny
              - zh
              - cu
              - cv
              - kw
              - co
              - cr
              - hr
              - cs
              - da
              - dv
              - nl
              - dz
              - en
              - eo
              - et
              - ee
              - fo
              - fj
              - fi
              - fr
              - ff
              - gd
              - gl
              - lg
              - ka
              - de
              - ki
              - el
              - kl
              - gn
              - gu
              - ht
              - ha
              - he
              - hz
              - hi
              - ho
              - hu
              - is
              - io
              - ig
              - id
              - ia
              - ie
              - iu
              - ik
              - ga
              - it
              - ja
              - jv
              - kn
              - kr
              - ks
              - kk
              - rw
              - kv
              - kg
              - ko
              - kj
              - ku
              - ky
              - lo
              - la
              - lv
              - lb
              - li
              - ln
              - lt
              - lu
              - mk
              - mg
              - ms
              - ml
              - mt
              - gv
              - mi
              - mr
              - mh
              - ro
              - mn
              - na
              - nv
              - nd
              - ng
              - ne
              - se
              - "no"
              - nb
              - nn
              - ii
              - oc
              - oj
              - or
              - om
              - os
              - pi
              - pa
              - ps
              - fa
              - pl
              - pt
              - qu
              - rm
              - rn
              - ru
              - sm
              - sg
              - sa
              - sc
              - sr
              - sn
              - sd
              - si
              - sk
              - sl
              - so
              - st
              - nr
              - es
              - su
              - sw
              - ss
              - sv
              - tl
              - ty
              - tg
              - ta
              - tt
              - te
              - th
              - bo
              - ti
              - to
              - ts
              - tn
              - tr
              - tk
              - tw
              - ug
              - uk
              - ur
              - uz
              - ve
              - vi
              - vo
              - wa
              - cy
              - fy
              - wo
              - xh
              - yi
              - yo
              - za
              - zu
            type:
              type: string
              example: Subtitle
              enum:
              - AlternativeTitle
              - Subtitle
              - TranslatedTitle
              - Other
        LicenseDto:
          required:
          - identifier
          - uri
          type: object
          properties:
            identifier:
              type: string
              example: MIT
            uri:
              type: string
              example: https://opensource.org/licenses/MIT
            description:
              type: string
              example: "A short and simple permissive license with conditions only requiring\
                \ preservation of copyright and license notices. Licensed works, modifications,\
                \ and larger works may be distributed under different terms and without\
                \ source code."
        RelatedIdentifierSaveDto:
          required:
          - id
          - relation
          - type
          - value
          type: object
          properties:
            id:
              type: integer
              format: int64
              example: 1
            value:
              type: string
              example: 10.70124/dc4zh-9ce78
            type:
              type: string
              example: DOI
              enum:
              - DOI
              - URL
              - URN
              - ARK
              - arXiv
              - bibcode
              - EAN13
              - EISSN
              - Handle
              - IGSN
              - ISBN
              - ISTC
              - LISSN
              - LSID
              - PMID
              - PURL
              - UPC
              - w3id
            relation:
              type: string
              example: Cites
              enum:
              - IsCitedBy
              - Cites
              - IsSupplementTo
              - IsSupplementedBy
              - IsContinuedBy
              - Continues
              - IsDescribedBy
              - Describes
              - HasMetadata
              - IsMetadataFor
              - HasVersion
              - IsVersionOf
              - IsNewVersionOf
              - IsPreviousVersionOf
              - IsPartOf
              - HasPart
              - IsPublishedIn
              - IsReferencedBy
              - References
              - IsDocumentedBy
              - Documents
              - IsCompiledBy
              - Compiles
              - IsVariantFormOf
              - IsOriginalFormOf
              - IsIdenticalTo
              - IsReviewedBy
              - Reviews
              - IsDerivedFrom
              - IsSourceOf
              - IsRequiredBy
              - Requires
              - IsObsoletedBy
              - Obsoletes
        CreatorDto:
          required:
          - creator_name
          - id
          type: object
          properties:
            id:
              type: integer
              format: int64
            firstname:
              type: string
              example: Josiah
            lastname:
              type: string
              example: Carberry
            affiliation:
              type: string
              example: Brown University
            creator_name:
              type: string
              example: "Carberry, Josiah"
            name_type:
              type: string
              example: Personal
              enum:
              - Personal
              - Organizational
            name_identifier:
              type: string
              example: 0000-0002-1825-0097
            name_identifier_scheme:
              type: string
              example: ORCID
              enum:
              - ORCID
              - ROR
              - ISNI
              - GRID
            name_identifier_scheme_uri:
              type: string
              example: https://orcid.org/
            affiliation_identifier:
              type: string
              example: https://ror.org/05gq02987
            affiliation_identifier_scheme:
              type: string
              example: ROR
              enum:
              - ROR
              - GRID
              - ISNI
            affiliation_identifier_scheme_uri:
              type: string
              example: https://ror.org/
        IdentifierDescriptionDto:
          required:
          - id
          type: object
          properties:
            id:
              type: integer
              format: int64
            description:
              type: string
              example: "Air quality reports at Stephansplatz, Vienna"
            language:
              type: string
              example: en
              enum:
              - ab
              - aa
              - af
              - ak
              - sq
              - am
              - ar
              - an
              - hy
              - as
              - av
              - ae
              - ay
              - az
              - bm
              - ba
              - eu
              - be
              - bn
              - bh
              - bi
              - bs
              - br
              - bg
              - my
              - ca
              - km
              - ch
              - ce
              - ny
              - zh
              - cu
              - cv
              - kw
              - co
              - cr
              - hr
              - cs
              - da
              - dv
              - nl
              - dz
              - en
              - eo
              - et
              - ee
              - fo
              - fj
              - fi
              - fr
              - ff
              - gd
              - gl
              - lg
              - ka
              - de
              - ki
              - el
              - kl
              - gn
              - gu
              - ht
              - ha
              - he
              - hz
              - hi
              - ho
              - hu
              - is
              - io
              - ig
              - id
              - ia
              - ie
              - iu
              - ik
              - ga
              - it
              - ja
              - jv
              - kn
              - kr
              - ks
              - kk
              - rw
              - kv
              - kg
              - ko
              - kj
              - ku
              - ky
              - lo
              - la
              - lv
              - lb
              - li
              - ln
              - lt
              - lu
              - mk
              - mg
              - ms
              - ml
              - mt
              - gv
              - mi
              - mr
              - mh
              - ro
              - mn
              - na
              - nv
              - nd
              - ng
              - ne
              - se
              - "no"
              - nb
              - nn
              - ii
              - oc
              - oj
              - or
              - om
              - os
              - pi
              - pa
              - ps
              - fa
              - pl
              - pt
              - qu
              - rm
              - rn
              - ru
              - sm
              - sg
              - sa
              - sc
              - sr
              - sn
              - sd
              - si
              - sk
              - sl
              - so
              - st
              - nr
              - es
              - su
              - sw
              - ss
              - sv
              - tl
              - ty
              - tg
              - ta
              - tt
              - te
              - th
              - bo
              - ti
              - to
              - ts
              - tn
              - tr
              - tk
              - tw
              - ug
              - uk
              - ur
              - uz
              - ve
              - vi
              - vo
              - wa
              - cy
              - fy
              - wo
              - xh
              - yi
              - yo
              - za
              - zu
            type:
              type: string
              example: Abstract
              enum:
              - Abstract
              - Methods
              - SeriesInformation
              - TableOfContents
              - TechnicalInfo
              - Other
        IdentifierDto:
          required:
          - creators
          - database_id
          - id
          - owner
          - publication_year
          - publisher
          - query
          - query_hash
          - query_normalized
          - titles
          - type
          type: object
          properties:
            id:
              type: integer
              format: int64
            type:
              type: string
              enum:
              - database
              - subset
              - table
              - view
            titles:
              type: array
              items:
                $ref: "#/components/schemas/IdentifierTitleDto"
            descriptions:
              type: array
              items:
                $ref: "#/components/schemas/IdentifierDescriptionDto"
            funders:
              type: array
              items:
                $ref: "#/components/schemas/IdentifierFunderDto"
            query:
              type: string
              example: "SELECT `id`, `value`, `location` FROM `air_quality` WHERE `location`\
                \ = \"09:STEF\""
            execution:
              type: string
              format: date-time
              example: 2021-03-12T15:26:21Z
            doi:
              type: string
              example: 10.1038/nphys1170
            publisher:
              type: string
              example: TU Wien
            owner:
              $ref: "#/components/schemas/UserBriefDto"
            language:
              type: string
              enum:
              - ab
              - aa
              - af
              - ak
              - sq
              - am
              - ar
              - an
              - hy
              - as
              - av
              - ae
              - ay
              - az
              - bm
              - ba
              - eu
              - be
              - bn
              - bh
              - bi
              - bs
              - br
              - bg
              - my
              - ca
              - km
              - ch
              - ce
              - ny
              - zh
              - cu
              - cv
              - kw
              - co
              - cr
              - hr
              - cs
              - da
              - dv
              - nl
              - dz
              - en
              - eo
              - et
              - ee
              - fo
              - fj
              - fi
              - fr
              - ff
              - gd
              - gl
              - lg
              - ka
              - de
              - ki
              - el
              - kl
              - gn
              - gu
              - ht
              - ha
              - he
              - hz
              - hi
              - ho
              - hu
              - is
              - io
              - ig
              - id
              - ia
              - ie
              - iu
              - ik
              - ga
              - it
              - ja
              - jv
              - kn
              - kr
              - ks
              - kk
              - rw
              - kv
              - kg
              - ko
              - kj
              - ku
              - ky
              - lo
              - la
              - lv
              - lb
              - li
              - ln
              - lt
              - lu
              - mk
              - mg
              - ms
              - ml
              - mt
              - gv
              - mi
              - mr
              - mh
              - ro
              - mn
              - na
              - nv
              - nd
              - ng
              - ne
              - se
              - "no"
              - nb
              - nn
              - ii
              - oc
              - oj
              - or
              - om
              - os
              - pi
              - pa
              - ps
              - fa
              - pl
              - pt
              - qu
              - rm
              - rn
              - ru
              - sm
              - sg
              - sa
              - sc
              - sr
              - sn
              - sd
              - si
              - sk
              - sl
              - so
              - st
              - nr
              - es
              - su
              - sw
              - ss
              - sv
              - tl
              - ty
              - tg
              - ta
              - tt
              - te
              - th
              - bo
              - ti
              - to
              - ts
              - tn
              - tr
              - tk
              - tw
              - ug
              - uk
              - ur
              - uz
              - ve
              - vi
              - vo
              - wa
              - cy
              - fy
              - wo
              - xh
              - yi
              - yo
              - za
              - zu
            licenses:
              type: array
              items:
                $ref: "#/components/schemas/LicenseDto"
            creators:
              type: array
              items:
                $ref: "#/components/schemas/CreatorDto"
            status:
              type: string
              enum:
              - draft
              - published
            database_id:
              type: integer
              format: int64
              example: 1
            query_id:
              type: integer
              format: int64
              example: 1
            table_id:
              type: integer
              format: int64
              example: 1
            view_id:
              type: integer
              format: int64
              example: 1
            query_normalized:
              type: string
              example: "SELECT `id`, `value`, `location` FROM `air_quality` WHERE `location`\
                \ = \"09:STEF\""
            related_identifiers:
              type: array
              items:
                $ref: "#/components/schemas/RelatedIdentifierDto"
            query_hash:
              type: string
              description: query hash in sha512
            result_hash:
              type: string
              example: 34fe82cda2c53f13f8d90cfd7a3469e3a939ff311add50dce30d9136397bf8e5
            result_number:
              type: integer
              format: int64
              example: 1
            publication_day:
              type: integer
              format: int32
              example: 15
            publication_month:
              type: integer
              format: int32
              example: 12
            publication_year:
              type: integer
              format: int32
              example: 2022
        IdentifierFunderDto:
          required:
          - funder_name
          - id
          type: object
          properties:
            id:
              type: integer
              format: int64
            funder_name:
              type: string
              example: European Commission
            funder_identifier:
              type: string
              example: http://doi.org/10.13039/501100000780
            funder_identifier_type:
              type: string
              example: Crossref Funder ID
              enum:
              - Crossref Funder ID
              - ROR
              - GND
              - ISNI
              - Other
            scheme_uri:
              type: string
              example: http://doi.org/
            award_number:
              type: string
              example: "824087"
            award_title:
              type: string
              example: EOSC-Life
        RelatedIdentifierDto:
          required:
          - id
          - relation
          - type
          - value
          type: object
          properties:
            id:
              type: integer
              format: int64
            value:
              type: string
              example: 10.70124/dc4zh-9ce78
            type:
              type: string
              example: DOI
              enum:
              - DOI
              - URL
              - URN
              - ARK
              - arXiv
              - bibcode
              - EAN13
              - EISSN
              - Handle
              - IGSN
              - ISBN
              - ISTC
              - LISSN
              - LSID
              - PMID
              - PURL
              - UPC
              - w3id
            relation:
              type: string
              example: Cites
              enum:
              - IsCitedBy
              - Cites
              - IsSupplementTo
              - IsSupplementedBy
              - IsContinuedBy
              - Continues
              - IsDescribedBy
              - Describes
              - HasMetadata
              - IsMetadataFor
              - HasVersion
              - IsVersionOf
              - IsNewVersionOf
              - IsPreviousVersionOf
              - IsPartOf
              - HasPart
              - IsPublishedIn
              - IsReferencedBy
              - References
              - IsDocumentedBy
              - Documents
              - IsCompiledBy
              - Compiles
              - IsVariantFormOf
              - IsOriginalFormOf
              - IsIdenticalTo
              - IsReviewedBy
              - Reviews
              - IsDerivedFrom
              - IsSourceOf
              - IsRequiredBy
              - Requires
              - IsObsoletedBy
              - Obsoletes
        DatabaseModifyVisibilityDto:
          required:
          - is_public
          - is_schema_public
          type: object
          properties:
            is_public:
              type: boolean
              example: true
            is_schema_public:
              type: boolean
              example: true
        ViewUpdateDto:
          required:
          - is_public
          - is_schema_public
          type: object
          properties:
            is_public:
              type: boolean
              example: true
            is_schema_public:
              type: boolean
              example: true
        ViewColumnDto:
          required:
          - auto_generated
          - database_id
          - id
          - internal_name
          - is_null_allowed
          - name
          - ord
          - type
          type: object
          properties:
            id:
              type: integer
              format: int64
            name:
              maxLength: 64
              minLength: 0
              type: string
              example: Date
            size:
              type: integer
              format: int64
              example: 255
            d:
              type: integer
              format: int64
              example: 0
            description:
              maxLength: 2048
              minLength: 0
              type: string
              example: Column comment
            database_id:
              type: integer
              format: int64
            ord:
              type: integer
              format: int32
              example: 0
            internal_name:
              maxLength: 64
              minLength: 0
              type: string
              example: mdb_date
            auto_generated:
              type: boolean
              example: false
            index_length:
              type: integer
              format: int64
            length:
              type: integer
              format: int64
            type:
              type: string
              example: string
              enum:
              - char
              - varchar
              - binary
              - varbinary
              - tinyblob
              - tinytext
              - text
              - blob
              - mediumtext
              - mediumblob
              - longtext
              - longblob
              - enum
              - set
              - serial
              - bit
              - tinyint
              - bool
              - smallint
              - mediumint
              - int
              - bigint
              - float
              - double
              - decimal
              - date
              - datetime
              - timestamp
              - time
              - year
            is_null_allowed:
              type: boolean
              example: false
        ViewDto:
          required:
          - columns
          - database_id
          - id
          - internal_name
          - name
          - owner
          - query
          - query_hash
          type: object
          properties:
            id:
              type: integer
              format: int64
            name:
              type: string
              example: Air Quality
            identifiers:
              type: array
              items:
                $ref: "#/components/schemas/IdentifierDto"
            query:
              type: string
              example: SELECT `id` FROM `air_quality` ORDER BY `value` DESC
            owner:
              $ref: "#/components/schemas/UserBriefDto"
            columns:
              type: array
              items:
                $ref: "#/components/schemas/ViewColumnDto"
            last_retrieved:
              type: string
              format: date-time
            database_id:
              type: integer
              format: int64
            internal_name:
              type: string
              example: air_quality
            is_public:
              type: boolean
              example: true
            is_schema_public:
              type: boolean
              example: true
            initial_view:
              type: boolean
              description: True if it is the default view for the database
              example: true
            query_hash:
              type: string
              example: 7de03e818900b6ea6d58ad0306d4a741d658c6df3d1964e89ed2395d8c7e7916
        TableUpdateDto:
          required:
          - is_public
          - is_schema_public
          type: object
          properties:
            description:
              maxLength: 180
              minLength: 0
              type: string
              example: Air Quality in Austria
            is_public:
              type: boolean
              example: true
            is_schema_public:
              type: boolean
              example: true
        TableBriefDto:
          required:
          - database_id
          - id
          - internal_name
          - is_public
          - is_schema_public
          - is_versioned
          - name
          - owned_by
          type: object
          properties:
            id:
              type: integer
              format: int64
            name:
              type: string
              example: Air Quality
            description:
              type: string
              example: Air Quality in Austria
            database_id:
              type: integer
              format: int64
            internal_name:
              type: string
              example: air_quality
            is_versioned:
              type: boolean
              example: true
            is_public:
              type: boolean
              example: true
            is_schema_public:
              type: boolean
              example: true
            owned_by:
              type: string
              format: uuid
        ColumnSemanticsUpdateDto:
          type: object
          properties:
            concept_uri:
              type: string
            unit_uri:
              type: string
        ColumnDto:
          required:
          - database_id
          - id
          - internal_name
          - is_null_allowed
          - name
          - ord
          - table_id
          - type
          type: object
          properties:
            id:
              type: integer
              format: int64
              example: 1
            name:
              maxLength: 64
              minLength: 0
              type: string
              example: Given Name
            alias:
              type: string
              example: firstname
            size:
              type: integer
              format: int64
              example: 255
            d:
              type: integer
              format: int64
              example: 0
            mean:
              type: number
              example: 45.4
            median:
              type: number
              example: 51
            concept:
              $ref: "#/components/schemas/ConceptBriefDto"
            unit:
              $ref: "#/components/schemas/UnitBriefDto"
            description:
              maxLength: 2048
              minLength: 0
              type: string
              example: Column comment
            enums:
              type: array
              items:
                type: string
            sets:
              type: array
              items:
                type: string
            database_id:
              type: integer
              format: int64
              example: 2
            table_id:
              type: integer
              format: int64
              example: 3
            ord:
              type: integer
              format: int32
              example: 0
            internal_name:
              maxLength: 64
              minLength: 0
              type: string
              example: given_name
            index_length:
              type: integer
              format: int64
              example: 255
            length:
              type: integer
              format: int64
              example: 255
            type:
              type: string
              example: varchar
              enum:
              - char
              - varchar
              - binary
              - varbinary
              - tinyblob
              - tinytext
              - text
              - blob
              - mediumtext
              - mediumblob
              - longtext
              - longblob
              - enum
              - set
              - serial
              - bit
              - tinyint
              - bool
              - smallint
              - mediumint
              - int
              - bigint
              - float
              - double
              - decimal
              - date
              - datetime
              - timestamp
              - time
              - year
            data_length:
              type: integer
              format: int64
              example: 34300
            max_data_length:
              type: integer
              format: int64
              example: 34300
            num_rows:
              type: integer
              format: int64
              example: 32
            val_min:
              type: number
              example: 0
            val_max:
              type: number
              example: 100
            std_dev:
              type: number
              example: 5.32
            is_null_allowed:
              type: boolean
              example: false
        ConceptBriefDto:
          required:
          - id
          - uri
          type: object
          properties:
            id:
              type: integer
              format: int64
              example: 23
            uri:
              type: string
              example: http://www.wikidata.org/entity/Q202444
            name:
              type: string
              example: given name
            description:
              type: string
              example: "name typically used to differentiate people from the same family,\
                \ clan, or other social group who have a common last name"
        UnitBriefDto:
          required:
          - id
          - uri
          type: object
          properties:
            id:
              type: integer
              format: int64
              example: 34
            uri:
              type: string
              example: http://www.wikidata.org/entity/Q1422583
            name:
              type: string
              example: importance
            description:
              type: string
              example: "subjective magnitude of value, meaning, or purpose"
        DatabaseTransferDto:
          required:
          - id
          type: object
          properties:
            id:
              type: string
              format: uuid
        DatabaseModifyImageDto:
          type: object
          properties:
            key:
              type: string
        UpdateDatabaseAccessDto:
          required:
          - type
          type: object
          properties:
            type:
              type: string
              enum:
              - read
              - write_own
              - write_all
        SignupRequestDto:
          required:
          - email
          - password
          - username
          type: object
          properties:
            username:
              pattern: "^[a-z0-9]{3,}$"
              type: string
              example: user
            email:
              type: string
              example: user@example.com
            password:
              type: string
        LoginRequestDto:
          required:
          - password
          - username
          type: object
          properties:
            username:
              type: string
              example: user
            password:
              type: string
        OntologyCreateDto:
          required:
          - prefix
          - uri
          type: object
          properties:
            uri:
              type: string
              example: Ontology URI
            prefix:
              type: string
              example: Ontology prefix
            sparql_endpoint:
              type: string
              example: Ontology SPARQL endpoint
        BannerMessageCreateDto:
          required:
          - message
          - type
          type: object
          properties:
            type:
              type: string
              enum:
              - error
              - warning
              - info
            message:
              type: string
              example: Maintenance starts on 8am on Monday
            link:
              type: string
              example: https://example.com
            link_text:
              type: string
              example: More
            display_start:
              type: string
              format: date-time
              example: 2021-03-12T15:26:21Z
            display_end:
              type: string
              format: date-time
              example: 2021-03-12T15:26:21Z
        ImageCreateDto:
          required:
          - default_port
          - dialect
          - driver_class
          - is_default
          - jdbc_method
          - name
          - registry
          - version
          type: object
          properties:
            registry:
              type: string
              example: docker.io/library
            name:
              type: string
              example: mariadb
            version:
              type: string
            dialect:
              type: string
            is_default:
              type: boolean
              example: false
            driver_class:
              type: string
            jdbc_method:
              type: string
            default_port:
              maximum: 65535
              minimum: 1024
              type: integer
              format: int32
        IdentifierCreateDto:
          required:
          - creators
          - database_id
          - publication_year
          - publisher
          - titles
          - type
          type: object
          properties:
            type:
              type: string
              example: database
              enum:
              - database
              - subset
              - table
              - view
            doi:
              type: string
              example: 10.1111/11111111
            titles:
              type: array
              items:
                $ref: "#/components/schemas/IdentifierSaveTitleDto"
            descriptions:
              type: array
              items:
                $ref: "#/components/schemas/IdentifierSaveDescriptionDto"
            funders:
              type: array
              items:
                $ref: "#/components/schemas/IdentifierFunderSaveDto"
            licenses:
              type: array
              items:
                $ref: "#/components/schemas/LicenseDto"
            publisher:
              type: string
              example: TU Wien
            language:
              type: string
              enum:
              - ab
              - aa
              - af
              - ak
              - sq
              - am
              - ar
              - an
              - hy
              - as
              - av
              - ae
              - ay
              - az
              - bm
              - ba
              - eu
              - be
              - bn
              - bh
              - bi
              - bs
              - br
              - bg
              - my
              - ca
              - km
              - ch
              - ce
              - ny
              - zh
              - cu
              - cv
              - kw
              - co
              - cr
              - hr
              - cs
              - da
              - dv
              - nl
              - dz
              - en
              - eo
              - et
              - ee
              - fo
              - fj
              - fi
              - fr
              - ff
              - gd
              - gl
              - lg
              - ka
              - de
              - ki
              - el
              - kl
              - gn
              - gu
              - ht
              - ha
              - he
              - hz
              - hi
              - ho
              - hu
              - is
              - io
              - ig
              - id
              - ia
              - ie
              - iu
              - ik
              - ga
              - it
              - ja
              - jv
              - kn
              - kr
              - ks
              - kk
              - rw
              - kv
              - kg
              - ko
              - kj
              - ku
              - ky
              - lo
              - la
              - lv
              - lb
              - li
              - ln
              - lt
              - lu
              - mk
              - mg
              - ms
              - ml
              - mt
              - gv
              - mi
              - mr
              - mh
              - ro
              - mn
              - na
              - nv
              - nd
              - ng
              - ne
              - se
              - "no"
              - nb
              - nn
              - ii
              - oc
              - oj
              - or
              - om
              - os
              - pi
              - pa
              - ps
              - fa
              - pl
              - pt
              - qu
              - rm
              - rn
              - ru
              - sm
              - sg
              - sa
              - sc
              - sr
              - sn
              - sd
              - si
              - sk
              - sl
              - so
              - st
              - nr
              - es
              - su
              - sw
              - ss
              - sv
              - tl
              - ty
              - tg
              - ta
              - tt
              - te
              - th
              - bo
              - ti
              - to
              - ts
              - tn
              - tr
              - tk
              - tw
              - ug
              - uk
              - ur
              - uz
              - ve
              - vi
              - vo
              - wa
              - cy
              - fy
              - wo
              - xh
              - yi
              - yo
              - za
              - zu
            creators:
              type: array
              items:
                $ref: "#/components/schemas/CreatorSaveDto"
            database_id:
              type: integer
              format: int64
              example: 1
            query_id:
              type: integer
              format: int64
            view_id:
              type: integer
              format: int64
            table_id:
              type: integer
              format: int64
            publication_day:
              type: integer
              format: int32
              example: 15
            publication_month:
              type: integer
              format: int32
              example: 12
            publication_year:
              type: integer
              format: int32
              example: 2022
            related_identifiers:
              type: array
              items:
                $ref: "#/components/schemas/RelatedIdentifierSaveDto"
        DatabaseCreateDto:
          required:
          - container_id
          - is_public
          - is_schema_public
          - name
          type: object
          properties:
            name:
              type: string
              example: Air Quality
            container_id:
              type: integer
              format: int64
              example: 1
            is_public:
              type: boolean
              example: true
            is_schema_public:
              type: boolean
              example: true
        ViewCreateDto:
          required:
          - is_public
          - is_schema_public
          - name
          - query
          type: object
          properties:
            name:
              maxLength: 63
              minLength: 1
              type: string
              example: Air Quality
            query:
              type: string
              example: SELECT `id` FROM `air_quality`
            is_public:
              type: boolean
              example: true
            is_schema_public:
              type: boolean
              example: true
        ViewBriefDto:
          required:
          - database_id
          - id
          - internal_name
          - name
          - query
          - query_hash
          type: object
          properties:
            id:
              type: integer
              format: int64
            name:
              type: string
              example: Air Quality
            query:
              type: string
              example: SELECT `id` FROM `air_quality` ORDER BY `value` DESC
            database_id:
              type: integer
              format: int64
            internal_name:
              type: string
              example: air_quality
            is_public:
              type: boolean
              example: true
            is_schema_public:
              type: boolean
              example: true
            initial_view:
              type: boolean
              description: True if it is the default view for the database
              example: true
            query_hash:
              type: string
              example: 7de03e818900b6ea6d58ad0306d4a741d658c6df3d1964e89ed2395d8c7e7916
            owned_by:
              type: string
              format: uuid
        ColumnCreateDto:
          required:
          - name
          - null_allowed
          - type
          type: object
          properties:
            name:
              type: string
              example: Date
            type:
              type: string
              example: string
              enum:
              - char
              - varchar
              - binary
              - varbinary
              - tinyblob
              - tinytext
              - text
              - blob
              - mediumtext
              - mediumblob
              - longtext
              - longblob
              - enum
              - set
              - serial
              - bit
              - tinyint
              - bool
              - smallint
              - mediumint
              - int
              - bigint
              - float
              - double
              - decimal
              - date
              - datetime
              - timestamp
              - time
              - year
            size:
              type: integer
              format: int64
              example: 255
            d:
              type: integer
              format: int64
              example: 0
            description:
              maxLength: 2048
              minLength: 0
              type: string
              example: Formatted as YYYY-MM-dd
            enums:
              type: array
              description: "enum values, only considered when type = ENUM"
              items:
                type: string
                description: "enum values, only considered when type = ENUM"
            sets:
              type: array
              description: "set values, only considered when type = SET"
              items:
                type: string
                description: "set values, only considered when type = SET"
            index_length:
              type: integer
              format: int64
            null_allowed:
              type: boolean
              example: true
            concept_uri:
              type: string
            unit_uri:
              type: string
        ConstraintsCreateDto:
          required:
          - checks
          - foreign_keys
          - primary_key
          - uniques
          type: object
          properties:
            uniques:
              type: array
              items:
                type: array
                items:
                  type: string
            checks:
              uniqueItems: true
              type: array
              items:
                type: string
            foreign_keys:
              type: array
              items:
                $ref: "#/components/schemas/ForeignKeyCreateDto"
            primary_key:
              uniqueItems: true
              type: array
              items:
                type: string
        ForeignKeyCreateDto:
          required:
          - columns
          - referenced_columns
          - referenced_table
          type: object
          properties:
            columns:
              type: array
              items:
                type: string
            referenced_table:
              type: string
            referenced_columns:
              type: array
              items:
                type: string
            on_update:
              type: string
              enum:
              - restrict
              - cascade
              - set_null
              - no_action
              - set_default
            on_delete:
              type: string
              enum:
              - restrict
              - cascade
              - set_null
              - no_action
              - set_default
        TableCreateDto:
          required:
          - columns
          - constraints
          - is_public
          - is_schema_public
          - name
          type: object
          properties:
            name:
              maxLength: 64
              minLength: 1
              type: string
              example: Air Quality
            description:
              maxLength: 180
              minLength: 0
              type: string
              example: Air Quality in Austria
            columns:
              type: array
              items:
                $ref: "#/components/schemas/ColumnCreateDto"
            constraints:
              $ref: "#/components/schemas/ConstraintsCreateDto"
            is_public:
              type: boolean
              example: true
            is_schema_public:
              type: boolean
              example: true
        ContainerCreateDto:
          required:
          - host
          - image_id
          - name
          - privileged_password
          - privileged_username
          - quota
          type: object
          properties:
            name:
              type: string
              example: Air Quality
            host:
              type: string
              description: Hostname of container
            port:
              type: integer
              description: Port of container
              format: int32
            quota:
              type: integer
              format: int64
              example: 50
            image_id:
              type: integer
              description: Image ID
              format: int64
            ui_host:
              type: string
            ui_port:
              type: integer
              format: int32
            privileged_username:
              type: string
              description: Username of privileged user
              example: root
            privileged_password:
              type: string
              description: Password of privileged user
        ContainerDto:
          required:
          - count
          - id
          - image
          - internal_name
          - name
          - quota
          type: object
          properties:
            id:
              type: integer
              format: int64
            name:
              type: string
              example: Air Quality
            image:
              $ref: "#/components/schemas/ImageDto"
            quota:
              type: integer
              format: int64
              example: 50
            count:
              type: integer
              format: int64
              example: 10
            last_retrieved:
              type: string
              format: date-time
            internal_name:
              type: string
              example: data-db
            ui_host:
              type: string
            ui_port:
              type: integer
              format: int32
        ColumnBriefDto:
          required:
          - column_type
          - database_id
          - id
          - internal_name
          - name
          - table_id
          type: object
          properties:
            id:
              type: integer
              format: int64
            name:
              type: string
              example: date
            alias:
              type: string
            database_id:
              type: integer
              format: int64
            table_id:
              type: integer
              format: int64
            internal_name:
              type: string
              example: mdb_date
            column_type:
              type: string
              example: date
              enum:
              - char
              - varchar
              - binary
              - varbinary
              - tinyblob
              - tinytext
              - text
              - blob
              - mediumtext
              - mediumblob
              - longtext
              - longblob
              - enum
              - set
              - serial
              - bit
              - tinyint
              - bool
              - smallint
              - mediumint
              - int
              - bigint
              - float
              - double
              - decimal
              - date
              - datetime
              - timestamp
              - time
              - year
        UnitDto:
          required:
          - columns
          - id
          - uri
          type: object
          properties:
            id:
              type: integer
              format: int64
            uri:
              type: string
            name:
              type: string
            description:
              type: string
            columns:
              type: array
              items:
                $ref: "#/components/schemas/ColumnBriefDto"
        OntologyBriefDto:
          required:
          - id
          - prefix
          - rdf
          - sparql
          - uri
          type: object
          properties:
            id:
              type: integer
              format: int64
            uri:
              type: string
              example: http://www.wikidata.org/
            prefix:
              type: string
              example: wd
            sparql:
              type: boolean
              example: true
            rdf:
              type: boolean
              example: false
            uri_pattern:
              type: string
              example: http://www.wikidata.org/entity/.*
        EntityDto:
          required:
          - label
          - uri
          type: object
          properties:
            uri:
              type: string
              example: https://www.wikidata.org/entity/Q1686799
            label:
              type: string
              example: Apache Jena
            description:
              type: string
              example: open source semantic web framework for Java
        OaiListIdentifiersParameters:
          type: object
          properties:
            metadataPrefix:
              type: string
            from:
              type: string
            until:
              type: string
            set:
              type: string
            resumptionToken:
              type: string
            fromDate:
              type: string
              format: date-time
            untilDate:
              type: string
              format: date-time
            parametersString:
              type: string
        BannerMessageDto:
          required:
          - id
          - message
          - type
          type: object
          properties:
            id:
              type: integer
              format: int64
            type:
              type: string
              enum:
              - error
              - warning
              - info
            message:
              type: string
              example: Maintenance starts on 8am on Monday
            link:
              type: string
              example: https://example.com
            link_text:
              type: string
              example: More
            display_start:
              type: string
              format: date-time
              example: 2021-03-12T15:26:21Z
            display_end:
              type: string
              format: date-time
              example: 2021-03-12T15:26:21Z
        ImageBriefDto:
          required:
          - default
          - id
          - jdbc_method
          - name
          - version
          type: object
          properties:
            id:
              type: integer
              format: int64
            name:
              type: string
              example: mariadb
            version:
              type: string
              example: "10.5"
            jdbc_method:
              type: string
              example: mariadb
            default:
              type: boolean
              example: false
        LdCreatorDto:
          required:
          - '@type'
          - name
          type: object
          properties:
            name:
              type: string
            sameAs:
              type: string
            givenName:
              type: string
            familyName:
              type: string
            '@type':
              type: string
        LdDatasetDto:
          required:
          - '@context'
          - '@type'
          - citation
          - creator
          - description
          - hasPart
          - identifier
          - name
          - temporalCoverage
          - url
          - version
          type: object
          properties:
            name:
              type: string
            description:
              type: string
            url:
              type: string
            identifier:
              type: array
              items:
                type: string
            license:
              type: string
            creator:
              type: array
              items:
                $ref: "#/components/schemas/LdCreatorDto"
            citation:
              type: string
            hasPart:
              type: array
              items:
                $ref: "#/components/schemas/LdDatasetDto"
            temporalCoverage:
              type: string
            version:
              type: string
              format: date-time
            '@context':
              type: string
            '@type':
              type: string
        ConstraintsDto:
          type: object
          properties:
            uniques:
              type: array
              items:
                $ref: "#/components/schemas/UniqueDto"
            checks:
              uniqueItems: true
              type: array
              items:
                type: string
            foreign_keys:
              type: array
              items:
                $ref: "#/components/schemas/ForeignKeyDto"
            primary_key:
              uniqueItems: true
              type: array
              items:
                $ref: "#/components/schemas/PrimaryKeyDto"
        ForeignKeyBriefDto:
          type: object
          properties:
            id:
              type: integer
              format: int64
        ForeignKeyDto:
          required:
          - name
          - referenced_table
          - references
          - table
          type: object
          properties:
            id:
              type: integer
              format: int64
            name:
              type: string
            references:
              type: array
              items:
                $ref: "#/components/schemas/ForeignKeyReferenceDto"
            table:
              $ref: "#/components/schemas/TableBriefDto"
            referenced_table:
              $ref: "#/components/schemas/TableBriefDto"
            on_update:
              type: string
              enum:
              - restrict
              - cascade
              - set_null
              - no_action
              - set_default
            on_delete:
              type: string
              enum:
              - restrict
              - cascade
              - set_null
              - no_action
              - set_default
        ForeignKeyReferenceDto:
          required:
          - column
          - foreign_key
          - referenced_column
          type: object
          properties:
            id:
              type: integer
              format: int64
            column:
              $ref: "#/components/schemas/ColumnBriefDto"
            foreign_key:
              $ref: "#/components/schemas/ForeignKeyBriefDto"
            referenced_column:
              $ref: "#/components/schemas/ColumnBriefDto"
        PrimaryKeyDto:
          required:
          - column
          - table
          type: object
          properties:
            id:
              type: integer
              format: int64
            table:
              $ref: "#/components/schemas/TableBriefDto"
            column:
              $ref: "#/components/schemas/ColumnBriefDto"
        TableDto:
          required:
          - columns
          - constraints
          - database_id
          - id
          - internal_name
          - is_public
          - is_schema_public
          - is_versioned
          - name
          - owner
          - queue_name
          - routing_key
          type: object
          properties:
            id:
              type: integer
              format: int64
            name:
              type: string
              example: Air Quality
            alias:
              type: string
            identifiers:
              type: array
              items:
                $ref: "#/components/schemas/IdentifierDto"
            owner:
              $ref: "#/components/schemas/UserBriefDto"
            description:
              maxLength: 2048
              minLength: 0
              type: string
              example: Air Quality in Austria
            columns:
              type: array
              items:
                $ref: "#/components/schemas/ColumnDto"
            constraints:
              $ref: "#/components/schemas/ConstraintsDto"
            last_retrieved:
              type: string
              format: date-time
            database_id:
              type: integer
              format: int64
            internal_name:
              type: string
              example: air_quality
            is_versioned:
              type: boolean
              example: true
            is_schema_public:
              type: boolean
              example: true
            queue_name:
              type: string
              example: air_quality
            queue_type:
              type: string
              example: quorum
            routing_key:
              type: string
              example: dbrepo.1.2
            is_public:
              type: boolean
              example: true
            num_rows:
              type: integer
              format: int64
              example: 5
            data_length:
              type: integer
              description: in bytes
              format: int64
              example: 16384
            max_data_length:
              type: integer
              description: in bytes
              format: int64
              example: 0
            avg_row_length:
              type: integer
              description: in bytes
              format: int64
              example: 3276
        UniqueDto:
          required:
          - columns
          - id
          - name
          - table
          type: object
          properties:
            id:
              type: integer
              format: int64
            name:
              type: string
            table:
              $ref: "#/components/schemas/TableBriefDto"
            columns:
              type: array
              items:
                $ref: "#/components/schemas/ColumnDto"
        TableColumnEntityDto:
          required:
          - column_id
          - database_id
          - table_id
          - uri
          type: object
          properties:
            uri:
              type: string
              example: https://www.wikidata.org/entity/Q1686799
            label:
              type: string
              example: Apache Jena
            description:
              type: string
              example: open source semantic web framework for Java
            database_id:
              type: integer
              format: int64
              example: 1
            table_id:
              type: integer
              format: int64
              example: 1
            column_id:
              type: integer
              format: int64
              example: 1
        ContainerBriefDto:
          required:
          - count
          - hash
          - id
          - image
          - internal_name
          - name
          - quota
          type: object
          properties:
            id:
              type: integer
              format: int64
            hash:
              type: string
              example: f829dd8a884182d0da846f365dee1221fd16610a14c81b8f9f295ff162749e50
            name:
              type: string
              example: Air Quality
            image:
              $ref: "#/components/schemas/ImageBriefDto"
            quota:
              type: integer
              format: int32
              example: 50
            count:
              type: integer
              format: int32
              example: 10
            internal_name:
              type: string
              example: air-quality
        ConceptDto:
          required:
          - columns
          - id
          - uri
          type: object
          properties:
            id:
              type: integer
              format: int64
            uri:
              type: string
            name:
              type: string
            description:
              type: string
            columns:
              type: array
              items:
                $ref: "#/components/schemas/ColumnBriefDto"
      securitySchemes:
        basicAuth:
          type: http
          scheme: basic
        bearerAuth:
          type: http
          scheme: bearer
          bearerFormat: JWT