diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2d267383844b5daab2dbf1e91873f0c3bf933645..166f504e42ec3e9b328944da3a61d7835e1477cf 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -177,8 +177,9 @@ build-data-service:
     - build-metadata-service
   dependencies:
     - build-metadata-service
-  script:
+  before_script:
     - "mvn -f ./dbrepo-metadata-service/pom.xml clean install $MAVEN_OPTS -DskipTests"
+  script:
     - "mvn -f ./dbrepo-data-service/pom.xml clean package $MAVEN_OPTS -DskipTests"
   # Compiled classes are needed for SonarQube in later stages
   artifacts:
@@ -198,8 +199,9 @@ build-ui:
 build-search-service:
   image: docker.io/python:${PYTHON_VERSION}-alpine${ALPINE_VERSION}
   stage: build
-  script:
+  before_script:
     - "pip install pipenv"
+  script:
     - "cd dbrepo-search-service && pipenv install --system --deploy"
 
 build-images:
@@ -403,7 +405,7 @@ test-lib:
   script:
     - "pip install pipenv"
     - "pipenv install gunicorn && pipenv install --dev --system --deploy"
-    - cd ./lib/python/ && coverage run -m pytest tests/test_unit_analyse.py tests/test_unit_container.py tests/test_unit_concept.py tests/test_unit_database.py tests/test_unit_identifier.py tests/test_unit_license.py tests/test_unit_query.py tests/test_unit_rest_client.py tests/test_unit_table.py tests/test_unit_user.py tests/test_unit_view.py tests/test_unit_unit.py tests/test_integration_table.py --junitxml=report.xml && coverage html --omit="tests/*" && coverage report --omit="tests/*" > ./coverage.txt
+    - cd ./lib/python/ && coverage run -m pytest tests/test_unit_container.py tests/test_unit_concept.py tests/test_unit_database.py tests/test_unit_identifier.py tests/test_unit_license.py tests/test_unit_query.py tests/test_unit_rest_client.py tests/test_unit_table.py tests/test_unit_user.py tests/test_unit_view.py tests/test_unit_unit.py --junitxml=report.xml && coverage html --omit="tests/*" && coverage report --omit="tests/*" > ./coverage.txt
     - "cat ./coverage.txt | grep -o 'TOTAL[^%]*%'"
   artifacts:
     when: always
diff --git a/dbrepo-analyse-service/build.sh b/dbrepo-analyse-service/build.sh
deleted file mode 100755
index 8460f7b7f5d906a14a2f127ed1c86c3a5637a6de..0000000000000000000000000000000000000000
--- a/dbrepo-analyse-service/build.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-
-# needed for MariaDB Connector/C 
-apt update && apt install -y curl gcc libmariadb3 libmariadb-dev
-
-python3 -m venv ./dbrepo-analyse-service/venv
-source ./dbrepo-analyse-service/venv/bin/activate
-PIPENV_PIPFILE=./dbrepo-analyse-service/Pipfile pipenv install --dev
\ No newline at end of file
diff --git a/dbrepo-analyse-service/test.sh b/dbrepo-analyse-service/test.sh
deleted file mode 100755
index f77b0f294c88e510cb0373da9a6f3bab69c2f8f7..0000000000000000000000000000000000000000
--- a/dbrepo-analyse-service/test.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-source ./dbrepo-analyse-service/venv/bin/activate
-cd ./dbrepo-analyse-service/ && coverage run -m pytest test/test_determine_dt.py test/test_determine_pk.py test/test_s3_client.py --junitxml=report.xml && coverage html --omit="test/*" && coverage report --omit="test/*" > ./coverage.txt
\ No newline at end of file
diff --git a/dbrepo-analyse-service/tests/test_s3_client.py b/dbrepo-analyse-service/tests/test_s3_client.py
index 4ab03078242ae5f68bd01e23887b603c6de239f9..cbc47a67409caa05a2b54738cc36ccc9534cdaa3 100644
--- a/dbrepo-analyse-service/tests/test_s3_client.py
+++ b/dbrepo-analyse-service/tests/test_s3_client.py
@@ -117,19 +117,6 @@ class S3ClientTest(unittest.TestCase):
         else:
             self.fail('FileNotFoundError not raised')
 
-    # @Test
-    def test_bucket_exists_notExists_fails(self):
-
-        # test
-        try:
-            S3Client().bucket_exists_or_exit("idnonotexist")
-        except FileNotFoundError:
-            pass
-        except Exception:
-            self.fail('unexpected exception raised')
-        else:
-            self.fail('FileNotFoundError not raised')
-
 
 if __name__ == '__main__':
     unittest.main()
diff --git a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationTest.java b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationTest.java
index f235f39d63a905e34017933bcc6365c85a299442..bd4eb4d04b2973d6751f43548a49312f2c240853 100644
--- a/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationTest.java
+++ b/dbrepo-data-service/rest-service/src/test/java/at/tuwien/service/TableServiceIntegrationTest.java
@@ -387,7 +387,7 @@ public class TableServiceIntegrationTest extends AbstractUnitTest {
         assertEquals(1, response.size());
         final TableHistoryDto history0 = response.get(0);
         assertNotNull(history0.getTimestamp());
-        assertEquals("INSERT", history0.getEvent());
+        assertEquals(HistoryEventTypeDto.INSERT, history0.getEvent());
         assertEquals(3, history0.getTotal());
     }
 
diff --git a/dbrepo-metadata-service/rest-service/src/test/resources/init/dbrepo-realm.json b/dbrepo-metadata-service/rest-service/src/test/resources/init/dbrepo-realm.json
index fb6df2007f2c5d50ab9ad744b622e248ea158cde..9cba9bceda462b48c59b058f43d0ddef8dd1f6c6 100644
--- a/dbrepo-metadata-service/rest-service/src/test/resources/init/dbrepo-realm.json
+++ b/dbrepo-metadata-service/rest-service/src/test/resources/init/dbrepo-realm.json
@@ -1475,6 +1475,39 @@
         "claim.name" : "language",
         "jsonType.label" : "String"
       }
+    }, {
+      "id" : "9bdc3e60-09b8-4241-915e-29f083434026",
+      "name" : "provider",
+      "protocol" : "openid-connect",
+      "protocolMapper" : "oidc-usersessionmodel-note-mapper",
+      "consentRequired" : false,
+      "config" : {
+        "user.session.note" : "identity_provider",
+        "introspection.token.claim" : "true",
+        "userinfo.token.claim" : "true",
+        "id.token.claim" : "true",
+        "lightweight.claim" : "false",
+        "access.token.claim" : "true",
+        "claim.name" : "identity_provider",
+        "jsonType.label" : "String",
+        "access.tokenResponse.claim" : "false"
+      }
+    }, {
+      "id" : "e567cb5c-8856-4124-8b86-f19cd53d7c71",
+      "name" : "setup_finished",
+      "protocol" : "openid-connect",
+      "protocolMapper" : "oidc-usermodel-attribute-mapper",
+      "consentRequired" : false,
+      "config" : {
+        "introspection.token.claim" : "true",
+        "userinfo.token.claim" : "true",
+        "user.attribute" : "SETUP_FINISHED",
+        "id.token.claim" : "true",
+        "lightweight.claim" : "false",
+        "access.token.claim" : "true",
+        "claim.name" : "setup_finished",
+        "jsonType.label" : "boolean"
+      }
     }, {
       "id" : "b817424d-7f91-43d8-b7d0-6a32582377fb",
       "name" : "family name",
@@ -2326,12 +2359,12 @@
     "strictTransportSecurity" : "max-age=31536000; includeSubDomains"
   },
   "smtpServer" : { },
-  "loginTheme" : "keycloak",
+  "loginTheme" : "keycloak.v2",
   "accountTheme" : "",
   "adminTheme" : "",
   "emailTheme" : "",
   "eventsEnabled" : false,
-  "eventsListeners" : [ "jboss-logging" ],
+  "eventsListeners" : [ "create-event-listener", "jboss-logging" ],
   "enabledEventTypes" : [ "SEND_RESET_PASSWORD", "UPDATE_CONSENT_ERROR", "GRANT_CONSENT", "VERIFY_PROFILE_ERROR", "REMOVE_TOTP", "REVOKE_GRANT", "UPDATE_TOTP", "LOGIN_ERROR", "CLIENT_LOGIN", "RESET_PASSWORD_ERROR", "IMPERSONATE_ERROR", "CODE_TO_TOKEN_ERROR", "CUSTOM_REQUIRED_ACTION", "OAUTH2_DEVICE_CODE_TO_TOKEN_ERROR", "RESTART_AUTHENTICATION", "IMPERSONATE", "UPDATE_PROFILE_ERROR", "LOGIN", "OAUTH2_DEVICE_VERIFY_USER_CODE", "UPDATE_PASSWORD_ERROR", "CLIENT_INITIATED_ACCOUNT_LINKING", "TOKEN_EXCHANGE", "AUTHREQID_TO_TOKEN", "LOGOUT", "REGISTER", "DELETE_ACCOUNT_ERROR", "CLIENT_REGISTER", "IDENTITY_PROVIDER_LINK_ACCOUNT", "DELETE_ACCOUNT", "UPDATE_PASSWORD", "CLIENT_DELETE", "FEDERATED_IDENTITY_LINK_ERROR", "IDENTITY_PROVIDER_FIRST_LOGIN", "CLIENT_DELETE_ERROR", "VERIFY_EMAIL", "CLIENT_LOGIN_ERROR", "RESTART_AUTHENTICATION_ERROR", "EXECUTE_ACTIONS", "REMOVE_FEDERATED_IDENTITY_ERROR", "TOKEN_EXCHANGE_ERROR", "PERMISSION_TOKEN", "SEND_IDENTITY_PROVIDER_LINK_ERROR", "EXECUTE_ACTION_TOKEN_ERROR", "SEND_VERIFY_EMAIL", "OAUTH2_DEVICE_AUTH", "EXECUTE_ACTIONS_ERROR", "REMOVE_FEDERATED_IDENTITY", "OAUTH2_DEVICE_CODE_TO_TOKEN", "IDENTITY_PROVIDER_POST_LOGIN", "IDENTITY_PROVIDER_LINK_ACCOUNT_ERROR", "OAUTH2_DEVICE_VERIFY_USER_CODE_ERROR", "UPDATE_EMAIL", "REGISTER_ERROR", "REVOKE_GRANT_ERROR", "EXECUTE_ACTION_TOKEN", "LOGOUT_ERROR", "UPDATE_EMAIL_ERROR", "CLIENT_UPDATE_ERROR", "AUTHREQID_TO_TOKEN_ERROR", "UPDATE_PROFILE", "CLIENT_REGISTER_ERROR", "FEDERATED_IDENTITY_LINK", "SEND_IDENTITY_PROVIDER_LINK", "SEND_VERIFY_EMAIL_ERROR", "RESET_PASSWORD", "CLIENT_INITIATED_ACCOUNT_LINKING_ERROR", "OAUTH2_DEVICE_AUTH_ERROR", "UPDATE_CONSENT", "REMOVE_TOTP_ERROR", "VERIFY_EMAIL_ERROR", "SEND_RESET_PASSWORD_ERROR", "CLIENT_UPDATE", "CUSTOM_REQUIRED_ACTION_ERROR", "IDENTITY_PROVIDER_POST_LOGIN_ERROR", "UPDATE_TOTP_ERROR", "CODE_TO_TOKEN", "VERIFY_PROFILE", "GRANT_CONSENT_ERROR", "IDENTITY_PROVIDER_FIRST_LOGIN_ERROR" ],
   "adminEventsEnabled" : false,
   "adminEventsDetailsEnabled" : false,
@@ -2379,7 +2412,7 @@
       "subType" : "anonymous",
       "subComponents" : { },
       "config" : {
-        "allowed-protocol-mapper-types" : [ "oidc-usermodel-property-mapper", "oidc-usermodel-attribute-mapper", "saml-role-list-mapper", "oidc-address-mapper", "oidc-full-name-mapper", "oidc-sha256-pairwise-sub-mapper", "saml-user-attribute-mapper", "saml-user-property-mapper" ]
+        "allowed-protocol-mapper-types" : [ "oidc-full-name-mapper", "oidc-usermodel-property-mapper", "saml-user-attribute-mapper", "oidc-address-mapper", "saml-user-property-mapper", "oidc-usermodel-attribute-mapper", "oidc-sha256-pairwise-sub-mapper", "saml-role-list-mapper" ]
       }
     }, {
       "id" : "1849e52a-b8c9-44a8-af3d-ee19376a1ed1",
@@ -2405,7 +2438,7 @@
       "subType" : "authenticated",
       "subComponents" : { },
       "config" : {
-        "allowed-protocol-mapper-types" : [ "oidc-full-name-mapper", "saml-role-list-mapper", "saml-user-property-mapper", "oidc-usermodel-property-mapper", "oidc-usermodel-attribute-mapper", "oidc-address-mapper", "oidc-sha256-pairwise-sub-mapper", "saml-user-attribute-mapper" ]
+        "allowed-protocol-mapper-types" : [ "oidc-address-mapper", "oidc-usermodel-attribute-mapper", "saml-user-property-mapper", "saml-user-attribute-mapper", "saml-role-list-mapper", "oidc-usermodel-property-mapper", "oidc-full-name-mapper", "oidc-sha256-pairwise-sub-mapper" ]
       }
     } ],
     "org.keycloak.userprofile.UserProfileProvider" : [ {
diff --git a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/KeycloakGatewayImpl.java b/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/KeycloakGatewayImpl.java
index d088fb63ef7ce3085d49030f584123f71c3c9543..b67ddfdbfd2d8fc51420d814b79bf8fa98c3c3d8 100644
--- a/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/KeycloakGatewayImpl.java
+++ b/dbrepo-metadata-service/services/src/main/java/at/tuwien/gateway/impl/KeycloakGatewayImpl.java
@@ -16,6 +16,7 @@ import org.keycloak.admin.client.Keycloak;
 import org.keycloak.admin.client.KeycloakBuilder;
 import org.keycloak.admin.client.resource.UserResource;
 import org.keycloak.representations.idm.UserRepresentation;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -29,6 +30,7 @@ public class KeycloakGatewayImpl implements KeycloakGateway {
     private final KeycloakConfig keycloakConfig;
     private final MetadataMapper metadataMapper;
 
+    @Autowired
     public KeycloakGatewayImpl(Keycloak keycloak, KeycloakConfig keycloakConfig, MetadataMapper metadataMapper) {
         this.keycloak = keycloak;
         this.keycloakConfig = keycloakConfig;
diff --git a/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/BaseTest.java b/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/BaseTest.java
index 7440de878ba3a1c6cceb74f1b36ef54c0f5b8e95..1c88f1775a0d2aba3760178da9b8931cc7b4a603 100644
--- a/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/BaseTest.java
+++ b/dbrepo-metadata-service/test/src/main/java/at/tuwien/test/BaseTest.java
@@ -149,7 +149,7 @@ public abstract class BaseTest {
 
     public static final String RABBITMQ_IMAGE = "rabbitmq:3.13.7";
 
-    public static final String KEYCLOAK_IMAGE = "quay.io/keycloak/keycloak:26.0";
+    public static final String KEYCLOAK_IMAGE = "quay.io/keycloak/keycloak:26.0.4";
 
     public static final String[] DEFAULT_SEMANTICS_HANDLING = new String[]{"default-semantics-handling",
             "create-semantic-unit", "execute-semantic-query", "table-semantic-analyse", "create-semantic-concept"};
diff --git a/dbrepo-search-service/tests/conftest.py b/dbrepo-search-service/tests/conftest.py
index 1d603685d63e464a4ffe2f4aac005c2af319fc5a..93af4d45873c99d9cf83438a2f35d2763044b283 100644
--- a/dbrepo-search-service/tests/conftest.py
+++ b/dbrepo-search-service/tests/conftest.py
@@ -15,7 +15,7 @@ def session(request):
     :return: The OpenSearch container
     """
     logging.debug("[fixture] creating opensearch container")
-    container = OpenSearchContainer()
+    container = OpenSearchContainer(image="opensearchproject/opensearch:2.10.0")
     logging.debug("[fixture] starting opensearch container")
     container.start()
 
diff --git a/lib/python/Pipfile b/lib/python/Pipfile
index 662d60f59560b5a6fdc8e200af5845e2f85b171b..b7ebe44f3ab7d19fdec0ee847e82f95f7ab5d7a6 100644
--- a/lib/python/Pipfile
+++ b/lib/python/Pipfile
@@ -21,7 +21,6 @@ pytest = "*"
 requests-mock = "*"
 furo = "*"
 pytest-ordering = "*"
-testcontainers = "*"
 httpx = "*"
 
 [requires]
diff --git a/lib/python/Pipfile.lock b/lib/python/Pipfile.lock
index f33975b8cccafdc33f6f6f115e47bdece97939d8..d4c90209c06fd3690890b9a76944cb25817ff139 100644
--- a/lib/python/Pipfile.lock
+++ b/lib/python/Pipfile.lock
@@ -1,7 +1,7 @@
 {
     "_meta": {
         "hash": {
-            "sha256": "598d2fb07f9f85270aa16f90dd8ef90b11618a241b5ba050a6dce3b2b250813e"
+            "sha256": "049bd8a6ac52e886dce11e7d7de630464e073e360471f35125a2eccf7c30a7a7"
         },
         "pipfile-spec": 6,
         "requires": {
@@ -1266,14 +1266,6 @@
             "markers": "python_version >= '3.7' and python_full_version not in '3.9.0, 3.9.1'",
             "version": "==44.0.1"
         },
-        "docker": {
-            "hashes": [
-                "sha256:ad8c70e6e3f8926cb8a92619b832b4ea5299e2831c14284663184e200546fa6c",
-                "sha256:c96b93b7f0a746f9e77d325bcfb87422a3d8bd4f03136ae8a85b37f1898d5fc0"
-            ],
-            "markers": "python_version >= '3.8'",
-            "version": "==7.1.0"
-        },
         "docutils": {
             "hashes": [
                 "sha256:3a6b18732edf182daa3cd12775bbb338cf5691468f91eeeb109deff6ebfa986f",
@@ -1580,14 +1572,6 @@
             "index": "pypi",
             "version": "==0.6"
         },
-        "python-dotenv": {
-            "hashes": [
-                "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca",
-                "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"
-            ],
-            "markers": "python_version >= '3.8'",
-            "version": "==1.0.1"
-        },
         "pyyaml": {
             "hashes": [
                 "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff",
@@ -1695,6 +1679,14 @@
             "markers": "python_full_version >= '3.8.0'",
             "version": "==13.9.4"
         },
+        "roman-numerals-py": {
+            "hashes": [
+                "sha256:91199c4373658c03d87d9fe004f4a5120a20f6cb192be745c2377cce274ef41c",
+                "sha256:a1421ce66b3eab7e8735065458de3fa5c4a46263d50f9f4ac8f0e5e7701dd125"
+            ],
+            "markers": "python_version >= '3.9'",
+            "version": "==3.0.0"
+        },
         "secretstorage": {
             "hashes": [
                 "sha256:2403533ef369eca6d2ba81718576c5e0f564d5cca1b58f73a8b23e7d4eeebd77",
@@ -1736,11 +1728,11 @@
         },
         "sphinx": {
             "hashes": [
-                "sha256:09719015511837b76bf6e03e42eb7595ac8c2e41eeb9c29c5b755c6b677992a2",
-                "sha256:43c1911eecb0d3e161ad78611bc905d1ad0e523e4ddc202a58a821773dc4c927"
+                "sha256:3c0a40ff71ace28b316bde7387d93b9249a3688c202181519689b66d5d0aed53",
+                "sha256:5b0067853d6e97f3fa87563e3404ebd008fce03525b55b25da90706764da6215"
             ],
-            "markers": "python_version >= '3.10'",
-            "version": "==8.1.3"
+            "markers": "python_version >= '3.11'",
+            "version": "==8.2.0"
         },
         "sphinx-basic-ng": {
             "hashes": [
@@ -1798,14 +1790,6 @@
             "markers": "python_version >= '3.9'",
             "version": "==2.0.0"
         },
-        "testcontainers": {
-            "hashes": [
-                "sha256:315fb94b42a383872df530aa45319745278ef0cc18b9cfcdc231a75d14afa5a0",
-                "sha256:37fe9a222549ddb788463935965b16f91809e9a8d654f437d6a59eac9b77f76f"
-            ],
-            "index": "pypi",
-            "version": "==4.9.1"
-        },
         "twine": {
             "hashes": [
                 "sha256:a47f973caf122930bf0fbbf17f80b83bc1602c9ce393c7845f289a3001dc5384",
@@ -1830,91 +1814,6 @@
             "markers": "python_version >= '3.9'",
             "version": "==2.3.0"
         },
-        "wrapt": {
-            "hashes": [
-                "sha256:08e7ce672e35efa54c5024936e559469436f8b8096253404faeb54d2a878416f",
-                "sha256:0a6e821770cf99cc586d33833b2ff32faebdbe886bd6322395606cf55153246c",
-                "sha256:0b929ac182f5ace000d459c59c2c9c33047e20e935f8e39371fa6e3b85d56f4a",
-                "sha256:129a150f5c445165ff941fc02ee27df65940fcb8a22a61828b1853c98763a64b",
-                "sha256:13e6afb7fe71fe7485a4550a8844cc9ffbe263c0f1a1eea569bc7091d4898555",
-                "sha256:1473400e5b2733e58b396a04eb7f35f541e1fb976d0c0724d0223dd607e0f74c",
-                "sha256:18983c537e04d11cf027fbb60a1e8dfd5190e2b60cc27bc0808e653e7b218d1b",
-                "sha256:1a7ed2d9d039bd41e889f6fb9364554052ca21ce823580f6a07c4ec245c1f5d6",
-                "sha256:1e1fe0e6ab7775fd842bc39e86f6dcfc4507ab0ffe206093e76d61cde37225c8",
-                "sha256:1fb5699e4464afe5c7e65fa51d4f99e0b2eadcc176e4aa33600a3df7801d6662",
-                "sha256:2696993ee1eebd20b8e4ee4356483c4cb696066ddc24bd70bcbb80fa56ff9061",
-                "sha256:35621ae4c00e056adb0009f8e86e28eb4a41a4bfa8f9bfa9fca7d343fe94f998",
-                "sha256:36ccae62f64235cf8ddb682073a60519426fdd4725524ae38874adf72b5f2aeb",
-                "sha256:3cedbfa9c940fdad3e6e941db7138e26ce8aad38ab5fe9dcfadfed9db7a54e62",
-                "sha256:3d57c572081fed831ad2d26fd430d565b76aa277ed1d30ff4d40670b1c0dd984",
-                "sha256:3fc7cb4c1c744f8c05cd5f9438a3caa6ab94ce8344e952d7c45a8ed59dd88392",
-                "sha256:4011d137b9955791f9084749cba9a367c68d50ab8d11d64c50ba1688c9b457f2",
-                "sha256:40d615e4fe22f4ad3528448c193b218e077656ca9ccb22ce2cb20db730f8d306",
-                "sha256:410a92fefd2e0e10d26210e1dfb4a876ddaf8439ef60d6434f21ef8d87efc5b7",
-                "sha256:41388e9d4d1522446fe79d3213196bd9e3b301a336965b9e27ca2788ebd122f3",
-                "sha256:468090021f391fe0056ad3e807e3d9034e0fd01adcd3bdfba977b6fdf4213ea9",
-                "sha256:49703ce2ddc220df165bd2962f8e03b84c89fee2d65e1c24a7defff6f988f4d6",
-                "sha256:4a721d3c943dae44f8e243b380cb645a709ba5bd35d3ad27bc2ed947e9c68192",
-                "sha256:4afd5814270fdf6380616b321fd31435a462019d834f83c8611a0ce7484c7317",
-                "sha256:4c82b8785d98cdd9fed4cac84d765d234ed3251bd6afe34cb7ac523cb93e8b4f",
-                "sha256:4db983e7bca53819efdbd64590ee96c9213894272c776966ca6306b73e4affda",
-                "sha256:582530701bff1dec6779efa00c516496968edd851fba224fbd86e46cc6b73563",
-                "sha256:58455b79ec2661c3600e65c0a716955adc2410f7383755d537584b0de41b1d8a",
-                "sha256:58705da316756681ad3c9c73fd15499aa4d8c69f9fd38dc8a35e06c12468582f",
-                "sha256:5bb1d0dbf99411f3d871deb6faa9aabb9d4e744d67dcaaa05399af89d847a91d",
-                "sha256:5c803c401ea1c1c18de70a06a6f79fcc9c5acfc79133e9869e730ad7f8ad8ef9",
-                "sha256:5cbabee4f083b6b4cd282f5b817a867cf0b1028c54d445b7ec7cfe6505057cf8",
-                "sha256:612dff5db80beef9e649c6d803a8d50c409082f1fedc9dbcdfde2983b2025b82",
-                "sha256:62c2caa1585c82b3f7a7ab56afef7b3602021d6da34fbc1cf234ff139fed3cd9",
-                "sha256:69606d7bb691b50a4240ce6b22ebb319c1cfb164e5f6569835058196e0f3a845",
-                "sha256:6d9187b01bebc3875bac9b087948a2bccefe464a7d8f627cf6e48b1bbae30f82",
-                "sha256:6ed6ffac43aecfe6d86ec5b74b06a5be33d5bb9243d055141e8cabb12aa08125",
-                "sha256:703919b1633412ab54bcf920ab388735832fdcb9f9a00ae49387f0fe67dad504",
-                "sha256:766d8bbefcb9e00c3ac3b000d9acc51f1b399513f44d77dfe0eb026ad7c9a19b",
-                "sha256:80dd7db6a7cb57ffbc279c4394246414ec99537ae81ffd702443335a61dbf3a7",
-                "sha256:8112e52c5822fc4253f3901b676c55ddf288614dc7011634e2719718eaa187dc",
-                "sha256:8c8b293cd65ad716d13d8dd3624e42e5a19cc2a2f1acc74b30c2c13f15cb61a6",
-                "sha256:8fdbdb757d5390f7c675e558fd3186d590973244fab0c5fe63d373ade3e99d40",
-                "sha256:91bd7d1773e64019f9288b7a5101f3ae50d3d8e6b1de7edee9c2ccc1d32f0c0a",
-                "sha256:95c658736ec15602da0ed73f312d410117723914a5c91a14ee4cdd72f1d790b3",
-                "sha256:99039fa9e6306880572915728d7f6c24a86ec57b0a83f6b2491e1d8ab0235b9a",
-                "sha256:9a2bce789a5ea90e51a02dfcc39e31b7f1e662bc3317979aa7e5538e3a034f72",
-                "sha256:9a7d15bbd2bc99e92e39f49a04653062ee6085c0e18b3b7512a4f2fe91f2d681",
-                "sha256:9abc77a4ce4c6f2a3168ff34b1da9b0f311a8f1cfd694ec96b0603dff1c79438",
-                "sha256:9e8659775f1adf02eb1e6f109751268e493c73716ca5761f8acb695e52a756ae",
-                "sha256:9fee687dce376205d9a494e9c121e27183b2a3df18037f89d69bd7b35bcf59e2",
-                "sha256:a5aaeff38654462bc4b09023918b7f21790efb807f54c000a39d41d69cf552cb",
-                "sha256:a604bf7a053f8362d27eb9fefd2097f82600b856d5abe996d623babd067b1ab5",
-                "sha256:abbb9e76177c35d4e8568e58650aa6926040d6a9f6f03435b7a522bf1c487f9a",
-                "sha256:acc130bc0375999da18e3d19e5a86403667ac0c4042a094fefb7eec8ebac7cf3",
-                "sha256:b18f2d1533a71f069c7f82d524a52599053d4c7166e9dd374ae2136b7f40f7c8",
-                "sha256:b4e42a40a5e164cbfdb7b386c966a588b1047558a990981ace551ed7e12ca9c2",
-                "sha256:b5e251054542ae57ac7f3fba5d10bfff615b6c2fb09abeb37d2f1463f841ae22",
-                "sha256:b60fb58b90c6d63779cb0c0c54eeb38941bae3ecf7a73c764c52c88c2dcb9d72",
-                "sha256:b870b5df5b71d8c3359d21be8f0d6c485fa0ebdb6477dda51a1ea54a9b558061",
-                "sha256:ba0f0eb61ef00ea10e00eb53a9129501f52385c44853dbd6c4ad3f403603083f",
-                "sha256:bb87745b2e6dc56361bfde481d5a378dc314b252a98d7dd19a651a3fa58f24a9",
-                "sha256:bb90fb8bda722a1b9d48ac1e6c38f923ea757b3baf8ebd0c82e09c5c1a0e7a04",
-                "sha256:bc570b5f14a79734437cb7b0500376b6b791153314986074486e0b0fa8d71d98",
-                "sha256:c86563182421896d73858e08e1db93afdd2b947a70064b813d515d66549e15f9",
-                "sha256:c958bcfd59bacc2d0249dcfe575e71da54f9dcf4a8bdf89c4cb9a68a1170d73f",
-                "sha256:d18a4865f46b8579d44e4fe1e2bcbc6472ad83d98e22a26c963d46e4c125ef0b",
-                "sha256:d5e2439eecc762cd85e7bd37161d4714aa03a33c5ba884e26c81559817ca0925",
-                "sha256:e3890b508a23299083e065f435a492b5435eba6e304a7114d2f919d400888cc6",
-                "sha256:e496a8ce2c256da1eb98bd15803a79bee00fc351f5dfb9ea82594a3f058309e0",
-                "sha256:e8b2816ebef96d83657b56306152a93909a83f23994f4b30ad4573b00bd11bb9",
-                "sha256:eaf675418ed6b3b31c7a989fd007fa7c3be66ce14e5c3b27336383604c9da85c",
-                "sha256:ec89ed91f2fa8e3f52ae53cd3cf640d6feff92ba90d62236a81e4e563ac0e991",
-                "sha256:ecc840861360ba9d176d413a5489b9a0aff6d6303d7e733e2c4623cfa26904a6",
-                "sha256:f09b286faeff3c750a879d336fb6d8713206fc97af3adc14def0cdd349df6000",
-                "sha256:f393cda562f79828f38a819f4788641ac7c4085f30f1ce1a68672baa686482bb",
-                "sha256:f917c1180fdb8623c2b75a99192f4025e412597c50b2ac870f156de8fb101119",
-                "sha256:fc78a84e2dfbc27afe4b2bd7c80c8db9bca75cc5b85df52bfe634596a1da846b",
-                "sha256:ff04ef6eec3eee8a5efef2401495967a916feaa353643defcc03fc74fe213b58"
-            ],
-            "markers": "python_version >= '3.8'",
-            "version": "==1.17.2"
-        },
         "zipp": {
             "hashes": [
                 "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4",
diff --git a/lib/python/pytest.ini b/lib/python/pytest.ini
new file mode 100644
index 0000000000000000000000000000000000000000..21cb1c450f4c85de4ba416e0fe68ec9a93345aee
--- /dev/null
+++ b/lib/python/pytest.ini
@@ -0,0 +1,3 @@
+[pytest]
+log_cli = 1
+log_level = info
\ No newline at end of file
diff --git a/lib/python/tests/conftest.py b/lib/python/tests/conftest.py
deleted file mode 100644
index d1a41ca922c870f37fb12f2b9a68de5d1ff68286..0000000000000000000000000000000000000000
--- a/lib/python/tests/conftest.py
+++ /dev/null
@@ -1,31 +0,0 @@
-import logging
-import os
-
-import pytest
-from testcontainers.generic import ServerContainer
-
-logging.basicConfig(level=logging.DEBUG)
-
-
-@pytest.fixture(scope="session", autouse=True)
-def session(request):
-    """
-    Create one TUSd container per test run only
-    :param request: /
-    :return: The TUSd container
-    """
-    logging.debug("[fixture] creating container")
-    container = ServerContainer(port=8080, image='tusproject/tusd:v2.4.0').with_command("-base-path=/api/upload/files/")
-    logging.debug("[fixture] starting container")
-    container.start()
-    # set the environment for the client
-    endpoint = f"http://{container.get_container_host_ip()}:{container.get_exposed_port(8080)}/api/upload/files"
-    logging.debug(f'set upload endpoint {endpoint}')
-    os.environ['REST_UPLOAD_ENDPOINT'] = endpoint
-
-    # destructor
-    def stop_tusd():
-        container.stop()
-
-    request.addfinalizer(stop_tusd)
-    return container
diff --git a/lib/python/tests/test_integration_table.py b/lib/python/tests/test_integration_table.py
deleted file mode 100644
index f8ca294779e8d93559514e533820ccd3e773566d..0000000000000000000000000000000000000000
--- a/lib/python/tests/test_integration_table.py
+++ /dev/null
@@ -1,83 +0,0 @@
-import os
-import unittest
-
-import requests_mock
-from pandas import DataFrame
-
-from dbrepo.RestClient import RestClient
-from dbrepo.api.exceptions import ForbiddenError, MalformedError, NotExistsError, ServiceError, ResponseCodeError
-
-
-class TableUnitTest(unittest.TestCase):
-
-    def test_import_table_data_succeeds(self):
-        with requests_mock.Mocker() as mock:
-            mock.register_uri('POST', os.environ.get('REST_UPLOAD_ENDPOINT'), real_http=True)
-            # mock
-            mock.post('/api/database/1/table/9/data/import', status_code=202)
-            # test
-            RestClient(username="a", password="b").import_table_data(database_id=1, table_id=9,
-                                                                     dataframe=DataFrame())
-
-    def test_import_table_data_400_fails(self):
-        with requests_mock.Mocker() as mock:
-            mock.register_uri('POST', os.environ.get('REST_UPLOAD_ENDPOINT'), real_http=True)
-            # mock
-            mock.post('/api/database/1/table/9/data/import', status_code=400)
-            try:
-                RestClient(username="a", password="b").import_table_data(database_id=1, table_id=9,
-                                                                         dataframe=DataFrame())
-            except MalformedError:
-                pass
-
-    def test_import_table_data_403_fails(self):
-        with requests_mock.Mocker() as mock:
-            mock.register_uri('POST', os.environ.get('REST_UPLOAD_ENDPOINT'), real_http=True)
-            # mock
-            mock.post('/api/database/1/table/9/data/import', status_code=403)
-            # test
-            try:
-                RestClient(username="a", password="b").import_table_data(database_id=1, table_id=9,
-                                                                         dataframe=DataFrame())
-            except ForbiddenError:
-                pass
-
-    def test_import_table_data_404_fails(self):
-        with requests_mock.Mocker() as mock:
-            mock.register_uri('POST', os.environ.get('REST_UPLOAD_ENDPOINT'), real_http=True)
-            # mock
-            mock.post('/api/database/1/table/9/data/import', status_code=404)
-            # test
-            try:
-                RestClient(username="a", password="b").import_table_data(database_id=1, table_id=9,
-                                                                         dataframe=DataFrame())
-            except NotExistsError:
-                pass
-
-    def test_import_table_data_503_fails(self):
-        with requests_mock.Mocker() as mock:
-            mock.register_uri('POST', os.environ.get('REST_UPLOAD_ENDPOINT'), real_http=True)
-            # mock
-            mock.post('/api/database/1/table/9/data/import', status_code=503)
-            # test
-            try:
-                RestClient(username="a", password="b").import_table_data(database_id=1, table_id=9,
-                                                                         dataframe=DataFrame())
-            except ServiceError:
-                pass
-
-    def test_import_table_data_unknown_fails(self):
-        with requests_mock.Mocker() as mock:
-            mock.register_uri('POST', os.environ.get('REST_UPLOAD_ENDPOINT'), real_http=True)
-            # mock
-            mock.post('/api/database/1/table/9/data/import', status_code=200)
-            # test
-            try:
-                RestClient(username="a", password="b").import_table_data(database_id=1, table_id=9,
-                                                                         dataframe=DataFrame())
-            except ResponseCodeError:
-                pass
-
-
-if __name__ == "__main__":
-    unittest.main()
diff --git a/lib/python/tests/test_unit_analyse.py b/lib/python/tests/test_unit_analyse.py
deleted file mode 100644
index fbbb342f790a19b9e930db8df899ae1d044ab590..0000000000000000000000000000000000000000
--- a/lib/python/tests/test_unit_analyse.py
+++ /dev/null
@@ -1,104 +0,0 @@
-import os
-import re
-import unittest
-
-import requests_mock
-from pandas import DataFrame
-
-from dbrepo.RestClient import RestClient
-from dbrepo.api.dto import KeyAnalysis, DatatypeAnalysis, ColumnType
-from dbrepo.api.exceptions import NotExistsError, MalformedError, ResponseCodeError
-
-
-class AnalyseUnitTest(unittest.TestCase):
-
-    def test_analyse_keys_succeeds(self):
-        with requests_mock.Mocker() as mock:
-            exp = KeyAnalysis(keys={'id': 0, 'firstname': 1, 'lastname': 2})
-            # mock
-            mock.register_uri('POST', os.environ.get('REST_UPLOAD_ENDPOINT'), real_http=True)
-            mock.register_uri('GET', '/api/analyse/keys', json=exp.model_dump(), status_code=202)
-            # test
-            response = RestClient().analyse_keys(dataframe=DataFrame())
-            self.assertEqual(exp, response)
-
-    def test_analyse_keys_400_fails(self):
-        with requests_mock.Mocker() as mock:
-            # mock
-            mock.register_uri('POST', os.environ.get('REST_UPLOAD_ENDPOINT'), real_http=True)
-            mock.register_uri('GET', '/api/analyse/keys', status_code=400)
-            # test
-            try:
-                RestClient().analyse_keys(dataframe=DataFrame())
-            except MalformedError:
-                pass
-
-    def test_analyse_keys_404_fails(self):
-        with requests_mock.Mocker() as mock:
-            # mock
-            mock.register_uri('POST', os.environ.get('REST_UPLOAD_ENDPOINT'), real_http=True)
-            mock.register_uri('GET', '/api/analyse/keys', status_code=404)
-            # test
-            try:
-                RestClient().analyse_keys(dataframe=DataFrame())
-            except NotExistsError:
-                pass
-
-    def test_analyse_keys_unknown_fails(self):
-        with requests_mock.Mocker() as mock:
-            # mock
-            mock.register_uri('POST', os.environ.get('REST_UPLOAD_ENDPOINT'), real_http=True)
-            mock.register_uri('GET', '/api/analyse/keys', status_code=200)
-            # test
-            try:
-                RestClient().analyse_keys(dataframe=DataFrame())
-            except ResponseCodeError:
-                pass
-
-    def test_analyse_datatypes_succeeds(self):
-        with requests_mock.Mocker() as mock:
-            exp = DatatypeAnalysis(separator=',',
-                                   columns={'id': ColumnType.SERIAL})
-            # mock
-            mock.register_uri('POST', os.environ.get('REST_UPLOAD_ENDPOINT'), real_http=True)
-            mock.register_uri('GET', re.compile('/api/analyse/datatypes.*'), json=exp.model_dump(), status_code=202)
-            # test
-            response = RestClient().analyse_datatypes(dataframe=DataFrame())
-            self.assertEqual(exp, response)
-
-    def test_analyse_datatypes_400_fails(self):
-        with requests_mock.Mocker() as mock:
-            # mock
-            mock.register_uri('POST', os.environ.get('REST_UPLOAD_ENDPOINT'), real_http=True)
-            mock.register_uri('GET', re.compile('/api/analyse/datatypes.*'), status_code=400)
-            # test
-            try:
-                RestClient().analyse_datatypes(dataframe=DataFrame())
-            except MalformedError:
-                pass
-
-    def test_analyse_datatypes_404_fails(self):
-        with requests_mock.Mocker() as mock:
-            # mock
-            mock.register_uri('POST', os.environ.get('REST_UPLOAD_ENDPOINT'), real_http=True)
-            mock.register_uri('GET', re.compile('/api/analyse/datatypes.*'), status_code=404)
-            # test
-            try:
-                RestClient().analyse_datatypes(dataframe=DataFrame())
-            except NotExistsError:
-                pass
-
-    def test_analyse_datatypes_unknown_fails(self):
-        with requests_mock.Mocker() as mock:
-            # mock
-            mock.register_uri('POST', os.environ.get('REST_UPLOAD_ENDPOINT'), real_http=True)
-            mock.register_uri('GET', re.compile('/api/analyse/datatypes.*'), status_code=200)
-            # test
-            try:
-                RestClient().analyse_datatypes(dataframe=DataFrame())
-            except ResponseCodeError:
-                pass
-
-
-if __name__ == "__main__":
-    unittest.main()
diff --git a/yq b/yq
deleted file mode 100644
index 5578822fb407e254544a2b532ef439174956ea45..0000000000000000000000000000000000000000
--- a/yq
+++ /dev/null
@@ -1,7043 +0,0 @@
-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