diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 88dc52ebd0b3f73c4cf7e3e3aa931f864bfe48ff..90f8d02881cb6e0ab69ace55adff7351754f9e8d 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -304,7 +304,7 @@ test-analyse-service:
   script:
     - "pip install pipenv"
     - "pipenv install gunicorn && pipenv install --dev --system --deploy"
-    - cd ./dbrepo-analyse-service/ && coverage run -m pytest tests/test_determine_dt.py tests/test_determine_pk.py tests/test_s3_client.py --junitxml=report.xml && coverage html --omit="tests/*" && coverage report --omit="tests/*" > ./coverage.txt
+    - cd ./dbrepo-analyse-service/ && coverage run -m pytest tests/test_determine_dt.py tests/test_determine_pk.py tests/test_s3_client.py && coverage html --omit="tests/*" && coverage report --omit="tests/*" > ./coverage.txt
     - "cat ./coverage.txt | grep -o 'TOTAL[^%]*%'"
   artifacts:
     when: always
@@ -326,7 +326,7 @@ test-auth-service-init:
     - "pip install pipenv"
     - "pipenv install gunicorn && pipenv install --dev --system --deploy"
   script:
-    - cd ./dbrepo-auth-service/init/ && coverage run -m pytest tests/test_unit_app.py --junitxml=report.xml && coverage html --omit="tests/*" && coverage report --omit="tests/*" > ./coverage.txt
+    - cd ./dbrepo-auth-service/init/ && coverage run -m pytest tests/test_unit_app.py && coverage html --omit="tests/*" && coverage report --omit="tests/*" > ./coverage.txt
     - "cat ./coverage.txt | grep -o 'TOTAL[^%]*%'"
   artifacts:
     when: always
@@ -357,7 +357,7 @@ test-search-service:
   script:
     - "pip install pipenv"
     - "pipenv install gunicorn && pipenv install --dev --system --deploy"
-    - cd ./dbrepo-search-service/ && coverage run -m pytest tests/test_app.py tests/test_jwt.py tests/test_opensearch_client.py tests/test_keycloak_client.py --junitxml=report.xml && coverage html && coverage report > ./coverage.txt
+    - cd ./dbrepo-search-service/ && coverage run --rcfile=.coveragerc -m pytest tests/test_app.py tests/test_jwt.py tests/test_opensearch_client.py tests/test_keycloak_client.py && coverage html && coverage report > ./coverage.txt
     - "cat ./coverage.txt | grep -o 'TOTAL[^%]*%'"
   artifacts:
     when: always
@@ -381,7 +381,7 @@ test-search-service-init:
   script:
     - "pip install pipenv"
     - "pipenv install gunicorn && pipenv install --dev --system --deploy"
-    - cd ./dbrepo-search-service/init/ && coverage run -m pytest tests/test_app.py tests/test_keycloak_client.py tests/test_opensearch_client.py --junitxml=report.xml && coverage html && coverage report > ./coverage.txt
+    - cd ./dbrepo-search-service/init/ && coverage run --rcfile=.coveragerc -m pytest tests/test_app.py tests/test_keycloak_client.py tests/test_opensearch_client.py && coverage html && coverage report > ./coverage.txt
     - "cat ./coverage.txt | grep -o 'TOTAL[^%]*%'"
   artifacts:
     when: always
@@ -405,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_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
+    - cd ./lib/python/ && coverage run -rcfile=.coveragerc -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 && coverage html && coverage report > ./coverage.txt
     - "cat ./coverage.txt | grep -o 'TOTAL[^%]*%'"
   artifacts:
     when: always
diff --git a/dbrepo-search-service/.coveragerc b/dbrepo-search-service/.coveragerc
index 4683a93d3748d16ab20a61f318e3016d3f4a8e09..fe5a089d2ee3bf7b1a47b57c17936c9df551ec53 100644
--- a/dbrepo-search-service/.coveragerc
+++ b/dbrepo-search-service/.coveragerc
@@ -1,5 +1,10 @@
 [report]
+format = html
 omit =
-    */test/*
-    */omlib/*
-    */init/*
\ No newline at end of file
+    # omit tests
+    ./tests/*
+    # omit ext lib
+    ./omlib/*
+
+[html]
+directory = htmlcov
\ No newline at end of file
diff --git a/dbrepo-search-service/init/.coveragerc b/dbrepo-search-service/init/.coveragerc
index b5a0e606be380a3149f066712428e43c82af2bd8..fe5a089d2ee3bf7b1a47b57c17936c9df551ec53 100644
--- a/dbrepo-search-service/init/.coveragerc
+++ b/dbrepo-search-service/init/.coveragerc
@@ -1,5 +1,10 @@
 [report]
-
+format = html
 omit =
     # omit tests
-    ./test/*
\ No newline at end of file
+    ./tests/*
+    # omit ext lib
+    ./omlib/*
+
+[html]
+directory = htmlcov
\ No newline at end of file
diff --git a/dbrepo-search-service/init/clients/opensearch_client.py b/dbrepo-search-service/init/clients/opensearch_client.py
index 35c26f03f5f684adc2652c199db7f99afd6cfc13..deca261ce273563bb84aa19e7525440f4d64bdeb 100644
--- a/dbrepo-search-service/init/clients/opensearch_client.py
+++ b/dbrepo-search-service/init/clients/opensearch_client.py
@@ -51,7 +51,7 @@ class OpenSearchClient:
                                        http_auth=(self.username, self.password))
         return self.instance
 
-    def update_database(self, database_id: int, data: Database) -> Database:
+    def update_database(self, database_id: str, data: Database) -> Database:
         """
         Updates the database data with given id.
 
@@ -66,7 +66,7 @@ class OpenSearchClient:
         response: dict = self._instance().get(index="database", id=database_id)
         return Database.model_validate(response["_source"])
 
-    def delete_database(self, database_id: int) -> None:
+    def delete_database(self, database_id: str) -> None:
         """
         Deletes the database data with given id.
 
diff --git a/dbrepo-search-service/init/tests/test_opensearch_client.py b/dbrepo-search-service/init/tests/test_opensearch_client.py
index 70328df6387dd9d6743804bb3c240637a35d6f40..fe65fd060a363d5ecebf98fa006db78b6f30c555 100644
--- a/dbrepo-search-service/init/tests/test_opensearch_client.py
+++ b/dbrepo-search-service/init/tests/test_opensearch_client.py
@@ -1,14 +1,14 @@
+import os
 import unittest
 
 import opensearchpy
-import os
 from dbrepo.api.dto import Database, Table, Column, ColumnType, Constraints, PrimaryKey, \
     ConceptBrief, UnitBrief, UserBrief, ContainerBrief, ImageBrief, TableBrief, ColumnBrief
 from opensearchpy import NotFoundError
 
 from clients.opensearch_client import OpenSearchClient
 
-req = Database(id=1,
+req = Database(id="209acf92-5c9b-4633-ad99-113c86f6e948",
                name="Test",
                internal_name="test_tuw1",
                owner=UserBrief(id="c6b71ef5-2d2f-48b2-9d79-b8f23a3a0502", username="foo"),
@@ -16,16 +16,15 @@ req = Database(id=1,
                exchange_name="dbrepo",
                is_public=True,
                is_schema_public=True,
-               container=ContainerBrief(id=1,
+               container=ContainerBrief(id="7efe8b27-6cdc-4387-80e3-92ee28f4a7c5",
                                         name="MariaDB",
                                         internal_name="mariadb",
-                                        host="data-db",
-                                        image=ImageBrief(id=1,
+                                        image=ImageBrief(id="f97791b4-baf4-4b18-8f7d-3084818e6549",
                                                          name="mariadb",
                                                          version="11.1.3",
                                                          jdbc_method="mariadb")),
-               tables=[Table(id=1,
-                             database_id=1,
+               tables=[Table(id="f94a6164-cad4-4873-a9fd-3fe5313b2e95",
+                             database_id="209acf92-5c9b-4633-ad99-113c86f6e948",
                              name="Data",
                              internal_name="data",
                              owner=UserBrief(id="c6b71ef5-2d2f-48b2-9d79-b8f23a3a0502", username="foo"),
@@ -35,9 +34,9 @@ req = Database(id=1,
                              routing_key="dbrepo.1.1",
                              is_public=True,
                              is_schema_public=True,
-                             columns=[Column(id=1,
-                                             database_id=1,
-                                             table_id=1,
+                             columns=[Column(id="7bef7e68-88f1-438e-9b94-0a77afd21471",
+                                             database_id="209acf92-5c9b-4633-ad99-113c86f6e948",
+                                             table_id="f94a6164-cad4-4873-a9fd-3fe5313b2e95",
                                              name="ID",
                                              ord=0,
                                              internal_name="id",
@@ -45,8 +44,9 @@ req = Database(id=1,
                                              is_null_allowed=False,
                                              size=20,
                                              d=0,
-                                             concept=ConceptBrief(id=1, uri="http://www.wikidata.org/entity/Q2221906"),
-                                             unit=UnitBrief(id=1,
+                                             concept=ConceptBrief(id="fb32ecf6-1f68-49b4-85ee-04e76263cbef",
+                                                                  uri="http://www.wikidata.org/entity/Q2221906"),
+                                             unit=UnitBrief(id="a67d735e-32ef-4917-b412-fe099c6757a1",
                                                             uri="http://www.ontology-of-units-of-measure.org/resource/om-2/degreeCelsius"),
                                              val_min=0,
                                              val_max=10)]
@@ -56,7 +56,7 @@ req = Database(id=1,
 class OpenSearchClientTest(unittest.TestCase):
 
     def test_update_database_succeeds(self):
-        req.tables = [Table(id=1,
+        req.tables = [Table(id="f94a6164-cad4-4873-a9fd-3fe5313b2e95",
                             name="Test Table",
                             internal_name="test_table",
                             queue_name="dbrepo",
@@ -64,27 +64,31 @@ class OpenSearchClientTest(unittest.TestCase):
                             is_public=True,
                             is_schema_public=True,
                             database_id=req.id,
-                            constraints=Constraints(uniques=[], foreign_keys=[], checks=[],
-                                                    primary_key=[PrimaryKey(id=1,
-                                                                            table=TableBrief(id=1,
-                                                                                             database_id=req.id,
-                                                                                             name="Test Table",
-                                                                                             internal_name="test_table",
-                                                                                             is_public=True,
-                                                                                             is_schema_public=True,
-                                                                                             is_versioned=True,
-                                                                                             owned_by="c6b71ef5-2d2f-48b2-9d79-b8f23a3a0502"),
-                                                                            column=ColumnBrief(id=1,
-                                                                                               name="ID",
-                                                                                               database_id=req.id,
-                                                                                               table_id=1,
-                                                                                               internal_name="id",
-                                                                                               type=ColumnType.BIGINT))]),
+                            constraints=Constraints(uniques=[],
+                                                    foreign_keys=[],
+                                                    checks=[],
+                                                    primary_key=[PrimaryKey(id="f0d4dfdf-d987-4c73-aa40-1038db79bb31",
+                                                                            table=TableBrief(
+                                                                                id="f94a6164-cad4-4873-a9fd-3fe5313b2e95",
+                                                                                database_id=req.id,
+                                                                                name="Test Table",
+                                                                                internal_name="test_table",
+                                                                                is_public=True,
+                                                                                is_schema_public=True,
+                                                                                is_versioned=True,
+                                                                                owned_by="c6b71ef5-2d2f-48b2-9d79-b8f23a3a0502"),
+                                                                            column=ColumnBrief(
+                                                                                id="90d81c6a-e69a-4413-97b8-fd2266a6e641",
+                                                                                name="ID",
+                                                                                database_id=req.id,
+                                                                                table_id="90d81c6a-e69a-4413-97b8-fd2266a6e641",
+                                                                                internal_name="id",
+                                                                                type=ColumnType.BIGINT))]),
                             is_versioned=True,
                             owner=UserBrief(id="c6b71ef5-2d2f-48b2-9d79-b8f23a3a0502", username="foo"),
-                            columns=[Column(id=1,
+                            columns=[Column(id="c63bde4a-61e4-42f1-ab64-350579c0691f",
                                             database_id=req.id,
-                                            table_id=1,
+                                            table_id="f94a6164-cad4-4873-a9fd-3fe5313b2e95",
                                             ord=0,
                                             name="ID",
                                             internal_name="id",
@@ -95,7 +99,7 @@ class OpenSearchClientTest(unittest.TestCase):
 
         # test
         database = OpenSearchClient().update_database(database_id=req.id, data=req)
-        self.assertEqual(1, database.id)
+        self.assertEqual("209acf92-5c9b-4633-ad99-113c86f6e948", database.id)
         self.assertEqual("Test", database.name)
         self.assertEqual("test_tuw1", database.internal_name)
         self.assertEqual("c6b71ef5-2d2f-48b2-9d79-b8f23a3a0502", database.owner.id)
@@ -104,34 +108,34 @@ class OpenSearchClientTest(unittest.TestCase):
         self.assertEqual("foo", database.contact.username)
         self.assertEqual("dbrepo", database.exchange_name)
         self.assertEqual(True, database.is_public)
-        self.assertEqual(1, database.container.id)
+        self.assertEqual("7efe8b27-6cdc-4387-80e3-92ee28f4a7c5", database.container.id)
         # ...
-        self.assertEqual(1, database.container.image.id)
+        self.assertEqual("f97791b4-baf4-4b18-8f7d-3084818e6549", database.container.image.id)
         # ...
         self.assertEqual(1, len(database.tables))
-        self.assertEqual(1, database.tables[0].id)
+        self.assertEqual("f94a6164-cad4-4873-a9fd-3fe5313b2e95", database.tables[0].id)
         self.assertEqual("Test Table", database.tables[0].name)
         self.assertEqual("test_table", database.tables[0].internal_name)
         self.assertEqual("dbrepo", database.tables[0].queue_name)
         self.assertEqual("dbrepo.test_tuw1.test_table", database.tables[0].routing_key)
         self.assertEqual(True, database.tables[0].is_public)
-        self.assertEqual(1, database.tables[0].database_id)
+        self.assertEqual("209acf92-5c9b-4633-ad99-113c86f6e948", database.tables[0].database_id)
         self.assertEqual(True, database.tables[0].is_versioned)
         self.assertEqual("c6b71ef5-2d2f-48b2-9d79-b8f23a3a0502", database.tables[0].owner.id)
         self.assertEqual("foo", database.tables[0].owner.username)
         self.assertEqual(1, len(database.tables[0].columns))
-        self.assertEqual(1, database.tables[0].columns[0].id)
+        self.assertEqual("c63bde4a-61e4-42f1-ab64-350579c0691f", database.tables[0].columns[0].id)
         self.assertEqual("ID", database.tables[0].columns[0].name)
         self.assertEqual("id", database.tables[0].columns[0].internal_name)
         self.assertEqual(ColumnType.BIGINT, database.tables[0].columns[0].type)
-        self.assertEqual(1, database.tables[0].columns[0].database_id)
-        self.assertEqual(1, database.tables[0].columns[0].table_id)
+        self.assertEqual("209acf92-5c9b-4633-ad99-113c86f6e948", database.tables[0].columns[0].database_id)
+        self.assertEqual("f94a6164-cad4-4873-a9fd-3fe5313b2e95", database.tables[0].columns[0].table_id)
         self.assertEqual(False, database.tables[0].columns[0].is_null_allowed)
 
     def test_update_database_create_succeeds(self):
         # test
         database = OpenSearchClient().update_database(database_id=req.id, data=req)
-        self.assertEqual(1, database.id)
+        self.assertEqual("209acf92-5c9b-4633-ad99-113c86f6e948", database.id)
         self.assertEqual("Test", database.name)
         self.assertEqual("test_tuw1", database.internal_name)
         self.assertEqual("c6b71ef5-2d2f-48b2-9d79-b8f23a3a0502", database.owner.id)
@@ -140,9 +144,9 @@ class OpenSearchClientTest(unittest.TestCase):
         self.assertEqual("foo", database.contact.username)
         self.assertEqual("dbrepo", database.exchange_name)
         self.assertEqual(True, database.is_public)
-        self.assertEqual(1, database.container.id)
+        self.assertEqual("7efe8b27-6cdc-4387-80e3-92ee28f4a7c5", database.container.id)
         # ...
-        self.assertEqual(1, database.container.image.id)
+        self.assertEqual("f97791b4-baf4-4b18-8f7d-3084818e6549", database.container.image.id)
         # ...
         self.assertEqual(1, len(database.tables))
 
diff --git a/dbrepo-search-service/tests/test_app.py b/dbrepo-search-service/tests/test_app.py
index 2b765b77544239bc0f6f3352ced6b07625ab291b..f05171299ef5fe202ee71ce5b5b347364a4eeed8 100644
--- a/dbrepo-search-service/tests/test_app.py
+++ b/dbrepo-search-service/tests/test_app.py
@@ -8,7 +8,7 @@ from dbrepo.api.dto import Database, Table, Constraints, Column, ColumnType, Con
 
 from app import app
 
-req = Database(id=1,
+req = Database(id="209acf92-5c9b-4633-ad99-113c86f6e948",
                name="Test",
                internal_name="test_tuw1",
                owner=UserBrief(id="c6b71ef5-2d2f-48b2-9d79-b8f23a3a0502", username="foo"),
@@ -16,15 +16,17 @@ req = Database(id=1,
                exchange_name="dbrepo",
                is_public=True,
                is_schema_public=True,
-               container=ContainerBrief(id=1,
+               container=ContainerBrief(id="7efe8b27-6cdc-4387-80e3-92ee28f4a7c5",
                                         name="MariaDB",
                                         internal_name="mariadb",
-                                        host="data-db",
-                                        image=ImageBrief(id=1,
+                                        image=ImageBrief(id="f97791b4-baf4-4b18-8f7d-3084818e6549",
                                                          name="mariadb",
                                                          version="11.1.3",
                                                          jdbc_method="mariadb")),
-               tables=[Table(id=1, database_id=1, name="Data", internal_name="data",
+               tables=[Table(id="f94a6164-cad4-4873-a9fd-3fe5313b2e95",
+                             database_id="209acf92-5c9b-4633-ad99-113c86f6e948",
+                             name="Data",
+                             internal_name="data",
                              owner=UserBrief(id="c6b71ef5-2d2f-48b2-9d79-b8f23a3a0502", username="foo"),
                              constraints=Constraints(uniques=[], foreign_keys=[], checks=[], primary_key=[]),
                              is_versioned=False,
@@ -32,20 +34,19 @@ req = Database(id=1,
                              routing_key="dbrepo.1.1",
                              is_public=True,
                              is_schema_public=True,
-                             columns=[Column(id=1,
-                                             database_id=1,
-                                             table_id=1,
-                                             ord=0,
+                             columns=[Column(id="7bef7e68-88f1-438e-9b94-0a77afd21471",
+                                             database_id="209acf92-5c9b-4633-ad99-113c86f6e948",
+                                             table_id="f94a6164-cad4-4873-a9fd-3fe5313b2e95",
                                              name="ID",
+                                             ord=0,
                                              internal_name="id",
                                              type=ColumnType.BIGINT,
-                                             is_public=True,
                                              is_null_allowed=False,
                                              size=20,
                                              d=0,
-                                             concept=ConceptBrief(id=1,
+                                             concept=ConceptBrief(id="fb32ecf6-1f68-49b4-85ee-04e76263cbef",
                                                                   uri="http://www.wikidata.org/entity/Q2221906"),
-                                             unit=UnitBrief(id=1,
+                                             unit=UnitBrief(id="a67d735e-32ef-4917-b412-fe099c6757a1",
                                                             uri="http://www.ontology-of-units-of-measure.org/resource/om-2/degreeCelsius"),
                                              val_min=0,
                                              val_max=10)]
diff --git a/lib/python/.coveragerc b/lib/python/.coveragerc
new file mode 100644
index 0000000000000000000000000000000000000000..fe5a089d2ee3bf7b1a47b57c17936c9df551ec53
--- /dev/null
+++ b/lib/python/.coveragerc
@@ -0,0 +1,10 @@
+[report]
+format = html
+omit =
+    # omit tests
+    ./tests/*
+    # omit ext lib
+    ./omlib/*
+
+[html]
+directory = htmlcov
\ No newline at end of file
diff --git a/lib/python/dbrepo/RestClient.py b/lib/python/dbrepo/RestClient.py
index 11e171b056819b768a008909d2de453227af741d..9e609a70921634ee22377407e398507db46693db 100644
--- a/lib/python/dbrepo/RestClient.py
+++ b/lib/python/dbrepo/RestClient.py
@@ -195,7 +195,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to find containers: response code: {response.status_code} is not '
                                 f'200 (OK): {response.text}')
 
-    def get_container(self, container_id: int) -> Container:
+    def get_container(self, container_id: str) -> Container:
         """
         Get a container with given id.
 
@@ -244,7 +244,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to find databases: response code: {response.status_code} is not '
                                 f'200 (OK): {response.text}')
 
-    def get_database(self, database_id: int) -> Database:
+    def get_database(self, database_id: str) -> Database:
         """
         Get a databases with given id.
 
@@ -267,7 +267,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to find database: response code: {response.status_code} is not '
                                 f'200 (OK): {response.text}')
 
-    def create_database(self, name: str, container_id: int, is_public: bool = True,
+    def create_database(self, name: str, container_id: str, is_public: bool = True,
                         is_schema_public: bool = True) -> Database:
         """
         Create a databases in a container with given container id.
@@ -309,7 +309,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to create database: response code: {response.status_code} is not '
                                 f'201 (CREATED): {response.text}')
 
-    def create_container(self, name: str, host: str, image_id: int, privileged_username: str, privileged_password: str,
+    def create_container(self, name: str, host: str, image_id: str, privileged_username: str, privileged_password: str,
                          port: int = None, ui_host: str = None, ui_port: int = None) -> Container:
         """
         Register a container instance executing a given container image. Note that this does not create a container,
@@ -353,7 +353,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to create container: response code: {response.status_code} is not '
                                 f'201 (CREATED): {response.text}')
 
-    def update_database_visibility(self, database_id: int, is_public: bool, is_schema_public: bool) -> Database:
+    def update_database_visibility(self, database_id: str, is_public: bool, is_schema_public: bool) -> Database:
         """
         Updates the database visibility of a database with given database id.
 
@@ -390,7 +390,7 @@ class RestClient:
         raise ResponseCodeError(
             f'Failed to update database visibility: response code: {response.status_code} is not 202 (ACCEPTED)')
 
-    def update_database_owner(self, database_id: int, user_id: str) -> Database:
+    def update_database_owner(self, database_id: str, user_id: str) -> Database:
         """
         Updates the database owner of a database with given database id.
 
@@ -426,7 +426,7 @@ class RestClient:
         raise ResponseCodeError(
             f'Failed to update database visibility: response code: {response.status_code} is not 202 (ACCEPTED)')
 
-    def update_database_schema(self, database_id: int) -> DatabaseBrief:
+    def update_database_schema(self, database_id: str) -> DatabaseBrief:
         """
         Updates the database table and view metadata of a database with given database id.
 
@@ -464,7 +464,7 @@ class RestClient:
         raise ResponseCodeError(
             f'Failed to update database schema: response code: {response.status_code} is not 200 (OK)')
 
-    def create_table(self, database_id: int, name: str, is_public: bool, is_schema_public: bool,
+    def create_table(self, database_id: str, name: str, is_public: bool, is_schema_public: bool,
                      columns: List[CreateTableColumn], constraints: CreateTableConstraints,
                      description: str = None) -> TableBrief:
         """
@@ -510,7 +510,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to create table: response code: {response.status_code} is not '
                                 f'201 (CREATED): {response.text}')
 
-    def get_tables(self, database_id: int) -> List[TableBrief]:
+    def get_tables(self, database_id: str) -> List[TableBrief]:
         """
         Get all tables.
 
@@ -534,7 +534,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to get tables: response code: {response.status_code} is not '
                                 f'200 (OK): {response.text}')
 
-    def get_table(self, database_id: int, table_id: int) -> Table:
+    def get_table(self, database_id: str, table_id: str) -> Table:
         """
         Get a table with given database id and table id.
 
@@ -559,7 +559,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to find table: response code: {response.status_code} is not '
                                 f'200 (OK): {response.text}')
 
-    def delete_table(self, database_id: int, table_id: int) -> None:
+    def delete_table(self, database_id: str, table_id: str) -> None:
         """
         Delete a table with given database id and table id.
 
@@ -590,7 +590,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to delete table: response code: {response.status_code} is not '
                                 f'202 (ACCEPTED): {response.text}')
 
-    def delete_container(self, container_id: int) -> None:
+    def delete_container(self, container_id: str) -> None:
         """
         Deletes a container with given id. Note that this does not delete the container, but deletes the entry in the
         metadata database. The container still needs to be removed, e.g. `docker container stop hash` and then
@@ -616,7 +616,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to delete container: response code: {response.status_code} is not '
                                 f'202 (ACCEPTED): {response.text}')
 
-    def get_table_history(self, database_id: int, table_id: int, size: int = 100) -> [History]:
+    def get_table_history(self, database_id: str, table_id: str, size: int = 100) -> [History]:
         """
         Get the table history of insert/delete operations.
 
@@ -646,7 +646,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to get table history: response code: {response.status_code} is not '
                                 f'200 (OK): {response.text}')
 
-    def get_views(self, database_id: int) -> List[ViewBrief]:
+    def get_views(self, database_id: str) -> List[ViewBrief]:
         """
         Gets views of a database with given database id.
 
@@ -667,7 +667,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to find views: response code: {response.status_code} is not '
                                 f'200 (OK): {response.text}')
 
-    def get_view(self, database_id: int, view_id: int) -> View:
+    def get_view(self, database_id: str, view_id: str) -> View:
         """
         Get a view of a database with given database id and view id.
 
@@ -692,7 +692,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to find view: response code: {response.status_code} is not '
                                 f'200 (OK): {response.text}')
 
-    def update_view(self, database_id: int, view_id: int, is_public: bool, is_schema_public: bool) -> ViewBrief:
+    def update_view(self, database_id: str, view_id: str, is_public: bool, is_schema_public: bool) -> ViewBrief:
         """
         Get a view of a database with given database id and view id.
 
@@ -720,7 +720,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to update view: response code: {response.status_code} is not '
                                 f'202 (ACCEPTED): {response.text}')
 
-    def create_view(self, database_id: int, name: str, query: str, is_public: bool, is_schema_public: bool) -> View:
+    def create_view(self, database_id: str, name: str, query: str, is_public: bool, is_schema_public: bool) -> View:
         """
         Create a view in a database with given database id.
 
@@ -762,7 +762,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to create view: response code: {response.status_code} is not '
                                 f'201 (CREATED): {response.text}')
 
-    def delete_view(self, database_id: int, view_id: int) -> None:
+    def delete_view(self, database_id: str, view_id: str) -> None:
         """
         Deletes a view in a database with given database id and view id.
 
@@ -796,7 +796,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to delete view: response code: {response.status_code} is not '
                                 f'202 (ACCEPTED): {response.text}')
 
-    def get_view_data(self, database_id: int, view_id: int, page: int = 0, size: int = 10) -> DataFrame:
+    def get_view_data(self, database_id: str, view_id: str, page: int = 0, size: int = 10) -> DataFrame:
         """
         Get data of a view in a database with given database id and view id.
 
@@ -836,7 +836,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to get view data: response code: {response.status_code} is not '
                                 f'200 (OK):{response.text}')
 
-    def get_table_data(self, database_id: int, table_id: int, page: int = 0, size: int = 10,
+    def get_table_data(self, database_id: str, table_id: str, page: int = 0, size: int = 10,
                        timestamp: datetime.datetime = None) -> DataFrame:
         """
         Get data of a table in a database with given database id and table id.
@@ -877,7 +877,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to get table data: response code: {response.status_code} is not '
                                 f'200 (OK): {response.text}')
 
-    def create_table_data(self, database_id: int, table_id: int, data: dict) -> None:
+    def create_table_data(self, database_id: str, table_id: str, data: dict) -> None:
         """
         Insert data into a table in a database with given database id and table id.
 
@@ -907,7 +907,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to insert table data: response code: {response.status_code} is not '
                                 f'201 (CREATED): {response.text}')
 
-    def import_table_data(self, database_id: int, table_id: int, dataframe: DataFrame) -> None:
+    def import_table_data(self, database_id: str, table_id: str, dataframe: DataFrame) -> None:
         """
         Import a csv dataset from a file into a table in a database with given database id and table id. ATTENTION:
         the import is column-ordering sensitive! The csv dataset must have the same columns in the same order as the
@@ -1007,7 +1007,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to analyse data types: response code: {response.status_code} is not '
                                 f'202 (ACCEPTED): {response.text}')
 
-    def analyse_table_statistics(self, database_id: int, table_id: int) -> TableStatistics:
+    def analyse_table_statistics(self, database_id: str, table_id: str) -> TableStatistics:
         """
         Analyses the numerical contents of a table in a database with given database id and table id.
 
@@ -1039,7 +1039,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to analyse table statistics: response code: {response.status_code} is not '
                                 f'202 (ACCEPTED): {response.text}')
 
-    def update_table_data(self, database_id: int, table_id: int, data: dict, keys: dict) -> None:
+    def update_table_data(self, database_id: str, table_id: str, data: dict, keys: dict) -> None:
         """
         Update data in a table in a database with given database id and table id.
 
@@ -1070,7 +1070,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to update table data: response code: {response.status_code} is not '
                                 f'202 (ACCEPTED): {response.text}')
 
-    def delete_table_data(self, database_id: int, table_id: int, keys: dict) -> None:
+    def delete_table_data(self, database_id: str, table_id: str, keys: dict) -> None:
         """
         Delete data in a table in a database with given database id and table id.
 
@@ -1100,7 +1100,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to delete table data: response code: {response.status_code} is not '
                                 f'202 (ACCEPTED): {response.text}')
 
-    def get_table_data_count(self, database_id: int, table_id: int, timestamp: datetime.datetime = None) -> int:
+    def get_table_data_count(self, database_id: str, table_id: str, timestamp: datetime.datetime = None) -> int:
         """
         Get data count of a table in a database with given database id and table id.
 
@@ -1138,7 +1138,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to count table data: response code: {response.status_code} is not '
                                 f'200 (OK): {response.text}')
 
-    def get_view_data_count(self, database_id: int, view_id: int) -> int:
+    def get_view_data_count(self, database_id: str, view_id: str) -> int:
         """
         Get data count of a view in a database with given database id and view id.
 
@@ -1172,7 +1172,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to count view data: response code: {response.status_code} is not '
                                 f'200 (OK): {response.text}')
 
-    def get_database_access(self, database_id: int) -> AccessType:
+    def get_database_access(self, database_id: str) -> AccessType:
         """
         Get access of a view in a database with given database id and view id.
 
@@ -1196,7 +1196,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to get database access: response code: {response.status_code} is not '
                                 f'200 (OK): {response.text}')
 
-    def create_database_access(self, database_id: int, user_id: str, type: AccessType) -> AccessType:
+    def create_database_access(self, database_id: str, user_id: str, type: AccessType) -> AccessType:
         """
         Create access to a database with given database id and user id.
 
@@ -1232,7 +1232,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to create database access: response code: {response.status_code} is not '
                                 f'202 (ACCEPTED): {response.text}')
 
-    def update_database_access(self, database_id: int, user_id: str, type: AccessType) -> AccessType:
+    def update_database_access(self, database_id: str, user_id: str, type: AccessType) -> AccessType:
         """
         Updates the access for a user to a database with given database id and user id.
 
@@ -1268,7 +1268,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to update database access: response code: {response.status_code} is not '
                                 f'202 (ACCEPTED): {response.text}')
 
-    def delete_database_access(self, database_id: int, user_id: str) -> None:
+    def delete_database_access(self, database_id: str, user_id: str) -> None:
         """
         Deletes the access for a user to a database with given database id and user id.
 
@@ -1300,7 +1300,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to delete database access: response code: {response.status_code} is not '
                                 f'201 (CREATED): {response.text}')
 
-    def create_subset(self, database_id: int, query: str, page: int = 0, size: int = 10,
+    def create_subset(self, database_id: str, query: str, page: int = 0, size: int = 10,
                       timestamp: datetime.datetime = None) -> DataFrame:
         """
         Executes a SQL query in a database where the current user has at least read access with given database id. The
@@ -1350,7 +1350,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to create subset: response code: {response.status_code} is not '
                                 f'201 (CREATED): {response.text}')
 
-    def get_subset_data(self, database_id: int, subset_id: int, page: int = 0, size: int = 10) -> DataFrame:
+    def get_subset_data(self, database_id: str, subset_id: str, page: int = 0, size: int = 10) -> DataFrame:
         """
         Re-executes a query in a database with given database id and query id.
 
@@ -1386,7 +1386,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to get query data: response code: {response.status_code} is not '
                                 f'200 (OK): {response.text}')
 
-    def get_subset_data_count(self, database_id: int, subset_id: int) -> int:
+    def get_subset_data_count(self, database_id: str, subset_id: str) -> int:
         """
         Re-executes a query in a database with given database id and query id and only counts the results.
 
@@ -1416,7 +1416,7 @@ class RestClient:
         raise ResponseCodeError(
             f'Failed to get query count: response code: {response.status_code} is not 200 (OK)')
 
-    def get_subset(self, database_id: int, subset_id: int) -> Query:
+    def get_subset(self, database_id: str, subset_id: str) -> Query:
         """
         Get query from a database with given database id and query id.
 
@@ -1447,7 +1447,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to find subset: response code: {response.status_code} is not '
                                 f'200 (OK): {response.text}')
 
-    def get_queries(self, database_id: int) -> List[Query]:
+    def get_queries(self, database_id: str) -> List[Query]:
         """
         Get queries from a database with given database id.
 
@@ -1474,7 +1474,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to find query: response code: {response.status_code} is not '
                                 f'200 (OK): {response.text}')
 
-    def update_subset(self, database_id: int, subset_id: int, persist: bool) -> Query:
+    def update_subset(self, database_id: str, subset_id: str, persist: bool) -> Query:
         """
         Save query or mark it for deletion (at a later time) in a database with given database id and query id.
 
@@ -1510,11 +1510,11 @@ class RestClient:
         raise ResponseCodeError(f'Failed to update query: response code: {response.status_code} is not '
                                 f'202 (ACCEPTED): {response.text}')
 
-    def create_identifier(self, database_id: int, type: IdentifierType, titles: List[CreateIdentifierTitle],
+    def create_identifier(self, database_id: str, type: IdentifierType, titles: List[CreateIdentifierTitle],
                           publisher: str, creators: List[CreateIdentifierCreator], publication_year: int,
                           descriptions: List[CreateIdentifierDescription] = None,
                           funders: List[CreateIdentifierFunder] = None, licenses: List[License] = None,
-                          language: Language = None, subset_id: int = None, view_id: int = None, table_id: int = None,
+                          language: Language = None, subset_id: str = None, view_id: str = None, table_id: str = None,
                           publication_day: int = None, publication_month: int = None,
                           related_identifiers: List[CreateRelatedIdentifier] = None) -> Identifier:
         """
@@ -1570,11 +1570,11 @@ class RestClient:
         raise ResponseCodeError(f'Failed to create identifier: response code: {response.status_code} is not '
                                 f'201 (CREATED): {response.text}')
 
-    def update_identifier(self, identifier_id: int, database_id: int, type: IdentifierType,
+    def update_identifier(self, identifier_id: str, database_id: str, type: IdentifierType,
                           titles: List[SaveIdentifierTitle], publisher: str, creators: List[SaveIdentifierCreator],
                           publication_year: int, descriptions: List[SaveIdentifierDescription] = None,
                           funders: List[SaveIdentifierFunder] = None, licenses: List[License] = None,
-                          language: Language = None, subset_id: int = None, view_id: int = None, table_id: int = None,
+                          language: Language = None, subset_id: str = None, view_id: str = None, table_id: str = None,
                           publication_day: int = None, publication_month: int = None,
                           related_identifiers: List[SaveRelatedIdentifier] = None) -> Identifier:
         """
@@ -1632,7 +1632,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to save identifier: response code: {response.status_code} is not '
                                 f'202 (ACCEPTED): {response.text}')
 
-    def publish_identifier(self, identifier_id: int) -> Identifier:
+    def publish_identifier(self, identifier_id: str) -> Identifier:
         """
         Publish an identifier with given id.
 
@@ -1694,8 +1694,8 @@ class RestClient:
         raise ResponseCodeError(f'Failed to get concepts: response code: {response.status_code} is not '
                                 f'200 (OK): {response.text}')
 
-    def get_identifiers(self, database_id: int = None, subset_id: int = None, view_id: int = None,
-                        table_id: int = None, type: IdentifierType = None, status: IdentifierStatusType = None) -> List[
+    def get_identifiers(self, database_id: str = None, subset_id: str = None, view_id: str = None,
+                        table_id: str = None, type: IdentifierType = None, status: IdentifierStatusType = None) -> List[
                                                                                                                        Identifier] | str:
         """
         Get list of identifiers, filter by the remaining optional arguments.
@@ -1745,7 +1745,7 @@ class RestClient:
         raise ResponseCodeError(f'Failed to get identifiers: response code: {response.status_code} is not '
                                 f'200 (OK): {response.text}')
 
-    def update_table_column(self, database_id: int, table_id: int, column_id: int, concept_uri: str = None,
+    def update_table_column(self, database_id: str, table_id: str, column_id: str, concept_uri: str = None,
                             unit_uri: str = None) -> Column:
         """
         Update semantic information of a table column by given database id and table id and column id.
diff --git a/lib/python/tests/test_unit_concept.py b/lib/python/tests/test_unit_concept.py
index 54104dada8b1a69eb4ca61d8aede1ecd9a6a3956..75f8aa52387ee2de10d673fdd298135d8a0880b1 100644
--- a/lib/python/tests/test_unit_concept.py
+++ b/lib/python/tests/test_unit_concept.py
@@ -11,7 +11,7 @@ class ContainerUnitTest(unittest.TestCase):
 
     def test_get_concepts_succeeds(self):
         with requests_mock.Mocker() as mock:
-            exp = [ConceptBrief(id=1,
+            exp = [ConceptBrief(id="65586aef-f5b0-446f-b2e1-9dc2a3c0c359",
                                 uri="http://dbpedia.org/page/Category:Precipitation",
                                 name="Precipitation")]
             # mock
diff --git a/lib/python/tests/test_unit_container.py b/lib/python/tests/test_unit_container.py
index 2edc65bf1983aa836eae6475918a990ae19611a6..1faf4ec738ff689d56ec6fcf84932767ad68379c 100644
--- a/lib/python/tests/test_unit_container.py
+++ b/lib/python/tests/test_unit_container.py
@@ -12,12 +12,12 @@ class ContainerUnitTest(unittest.TestCase):
 
     def test_create_container_succeeds(self):
         with requests_mock.Mocker() as mock:
-            exp = Container(id=1,
+            exp = Container(id="44d811a8-4019-46ba-bd57-ea10a2eb0c74",
                             name="MariaDB 10.11.3",
                             internal_name="mariadb_10_11_3",
                             host="data-db",
                             port=12345,
-                            image=Image(id=1,
+                            image=Image(id="b104648b-54d2-4d72-9834-8e0e6d428b39",
                                         registry="docker.io",
                                         name="mariadb",
                                         version="10.11.3",
@@ -33,7 +33,8 @@ class ContainerUnitTest(unittest.TestCase):
             mock.post('/api/container', json=exp.model_dump(), status_code=201)
             # test
             response = RestClient(username="foo", password="bar").create_container(name='MariaDB 10.11.3',
-                                                                                   host='data-db2', image_id=1,
+                                                                                   host='data-db2',
+                                                                                   image_id="b104648b-54d2-4d72-9834-8e0e6d428b39",
                                                                                    privileged_username='root',
                                                                                    privileged_password='dbrepo',
                                                                                    port=3306)
@@ -42,7 +43,8 @@ class ContainerUnitTest(unittest.TestCase):
     def test_create_container_anonymous_fails(self):
         # test
         try:
-            response = RestClient().create_container(name='MariaDB 10.11.3', host='data-db2', image_id=1,
+            response = RestClient().create_container(name='MariaDB 10.11.3', host='data-db2',
+                                                     image_id="b104648b-54d2-4d72-9834-8e0e6d428b39",
                                                      privileged_username='root', privileged_password='dbrepo',
                                                      port=3306)
         except AuthenticationError:
@@ -55,7 +57,8 @@ class ContainerUnitTest(unittest.TestCase):
             # test
             try:
                 response = RestClient(username="foo", password="bar").create_container(name='MariaDB 10.11.3',
-                                                                                       host='data-db2', image_id=1,
+                                                                                       host='data-db2',
+                                                                                       image_id="b104648b-54d2-4d72-9834-8e0e6d428b39",
                                                                                        privileged_username='root',
                                                                                        privileged_password='dbrepo',
                                                                                        port=3306)
@@ -69,7 +72,8 @@ class ContainerUnitTest(unittest.TestCase):
             # test
             try:
                 response = RestClient(username="foo", password="bar").create_container(name='MariaDB 10.11.3',
-                                                                                       host='data-db2', image_id=1,
+                                                                                       host='data-db2',
+                                                                                       image_id="b104648b-54d2-4d72-9834-8e0e6d428b39",
                                                                                        privileged_username='root',
                                                                                        privileged_password='dbrepo',
                                                                                        port=3306)
@@ -83,7 +87,8 @@ class ContainerUnitTest(unittest.TestCase):
             # test
             try:
                 response = RestClient(username="foo", password="bar").create_container(name='MariaDB 10.11.3',
-                                                                                       host='data-db2', image_id=1,
+                                                                                       host='data-db2',
+                                                                                       image_id="b104648b-54d2-4d72-9834-8e0e6d428b39",
                                                                                        privileged_username='root',
                                                                                        privileged_password='dbrepo',
                                                                                        port=3306)
@@ -97,7 +102,8 @@ class ContainerUnitTest(unittest.TestCase):
             # test
             try:
                 response = RestClient(username="foo", password="bar").create_container(name='MariaDB 10.11.3',
-                                                                                       host='data-db2', image_id=1,
+                                                                                       host='data-db2',
+                                                                                       image_id="b104648b-54d2-4d72-9834-8e0e6d428b39",
                                                                                        privileged_username='root',
                                                                                        privileged_password='dbrepo',
                                                                                        port=3306)
@@ -111,7 +117,8 @@ class ContainerUnitTest(unittest.TestCase):
             # test
             try:
                 response = RestClient(username="foo", password="bar").create_container(name='MariaDB 10.11.3',
-                                                                                       host='data-db2', image_id=1,
+                                                                                       host='data-db2',
+                                                                                       image_id="b104648b-54d2-4d72-9834-8e0e6d428b39",
                                                                                        privileged_username='root',
                                                                                        privileged_password='dbrepo',
                                                                                        port=3306)
@@ -129,14 +136,13 @@ class ContainerUnitTest(unittest.TestCase):
     def test_get_containers_succeeds(self):
         with requests_mock.Mocker() as mock:
             exp = [
-                ContainerBrief(id=1,
+                ContainerBrief(id="44d811a8-4019-46ba-bd57-ea10a2eb0c74",
                                name="MariaDB 10.11.3",
                                internal_name="mariadb_10_11_3",
                                running=True,
-                               image=ImageBrief(id=1,
+                               image=ImageBrief(id="b104648b-54d2-4d72-9834-8e0e6d428b39",
                                                 name="mariadb",
-                                                version="10.11.3",
-                                                jdbc_method="mariadb"),
+                                                version="10.11.3"),
                                hash="f829dd8a884182d0da846f365dee1221fd16610a14c81b8f9f295ff162749e50")
             ]
             # mock
@@ -157,12 +163,12 @@ class ContainerUnitTest(unittest.TestCase):
 
     def test_get_container_succeeds(self):
         with requests_mock.Mocker() as mock:
-            exp = Container(id=1,
+            exp = Container(id="",
                             name="MariaDB 10.11.3",
                             internal_name="mariadb_10_11_3",
                             host="data-db",
                             port=12345,
-                            image=Image(id=1,
+                            image=Image(id="b104648b-54d2-4d72-9834-8e0e6d428b39",
                                         registry="docker.io",
                                         name="mariadb",
                                         version="10.11.3",
@@ -175,82 +181,87 @@ class ContainerUnitTest(unittest.TestCase):
                                                      documentation="https://mariadb.com/kb/en/bigint/",
                                                      is_quoted=False, is_buildable=True)]))
             # mock
-            mock.get('/api/container/1', json=exp.model_dump())
+            mock.get('/api/container/44d811a8-4019-46ba-bd57-ea10a2eb0c74', json=exp.model_dump())
             # test
-            response = RestClient().get_container(container_id=1)
+            response = RestClient().get_container(container_id="44d811a8-4019-46ba-bd57-ea10a2eb0c74")
             self.assertEqual(exp, response)
 
     def test_get_container_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/container/1', status_code=404)
+            mock.get('/api/container/44d811a8-4019-46ba-bd57-ea10a2eb0c74', status_code=404)
             # test
             try:
-                response = RestClient().get_container(container_id=1)
+                response = RestClient().get_container(container_id="44d811a8-4019-46ba-bd57-ea10a2eb0c74")
             except NotExistsError:
                 pass
 
     def test_get_container_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/container/1', status_code=401)
+            mock.get('/api/container/44d811a8-4019-46ba-bd57-ea10a2eb0c74', status_code=401)
             # test
             try:
-                response = RestClient().get_container(container_id=1)
+                response = RestClient().get_container(container_id="44d811a8-4019-46ba-bd57-ea10a2eb0c74")
             except ResponseCodeError:
                 pass
 
     def test_delete_container_succeeds(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/container/1', status_code=202)
+            mock.delete('/api/container/44d811a8-4019-46ba-bd57-ea10a2eb0c74', status_code=202)
             # test
-            RestClient(username='foo', password='bar').delete_container(container_id=1)
+            RestClient(username='foo', password='bar').delete_container(
+                container_id="44d811a8-4019-46ba-bd57-ea10a2eb0c74")
 
     def test_delete_container_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/container/1', status_code=400)
+            mock.delete('/api/container/44d811a8-4019-46ba-bd57-ea10a2eb0c74', status_code=400)
             # test
             try:
-                RestClient(username='foo', password='bar').delete_container(container_id=1)
+                RestClient(username='foo', password='bar').delete_container(
+                    container_id="44d811a8-4019-46ba-bd57-ea10a2eb0c74")
             except MalformedError:
                 pass
 
     def test_delete_container_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/container/1', status_code=403)
+            mock.delete('/api/container/44d811a8-4019-46ba-bd57-ea10a2eb0c74', status_code=403)
             # test
             try:
-                RestClient(username='foo', password='bar').delete_container(container_id=1)
+                RestClient(username='foo', password='bar').delete_container(
+                    container_id="44d811a8-4019-46ba-bd57-ea10a2eb0c74")
             except ForbiddenError:
                 pass
 
     def test_delete_container_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/container/1', status_code=404)
+            mock.delete('/api/container/44d811a8-4019-46ba-bd57-ea10a2eb0c74', status_code=404)
             # test
             try:
-                RestClient(username='foo', password='bar').delete_container(container_id=1)
+                RestClient(username='foo', password='bar').delete_container(
+                    container_id="44d811a8-4019-46ba-bd57-ea10a2eb0c74")
             except NotExistsError:
                 pass
 
     def test_delete_container_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/container/1', status_code=200)
+            mock.delete('/api/container/44d811a8-4019-46ba-bd57-ea10a2eb0c74', status_code=200)
             # test
             try:
-                RestClient(username='foo', password='bar').delete_container(container_id=1)
+                RestClient(username='foo', password='bar').delete_container(
+                    container_id="44d811a8-4019-46ba-bd57-ea10a2eb0c74")
             except ResponseCodeError:
                 pass
 
     def test_delete_container_anonymous_fails(self):
         # test
         try:
-            RestClient().delete_container(container_id=1)
+            RestClient().delete_container(container_id="44d811a8-4019-46ba-bd57-ea10a2eb0c74")
         except AuthenticationError:
             pass
 
diff --git a/lib/python/tests/test_unit_database.py b/lib/python/tests/test_unit_database.py
index 952b27c61f844e52df9249d386fe900c5099fbc1..3fd7ddcd60a7c78db0bfdacdef471db19361d53e 100644
--- a/lib/python/tests/test_unit_database.py
+++ b/lib/python/tests/test_unit_database.py
@@ -22,7 +22,7 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_get_databases_succeeds(self):
         exp = [
             DatabaseBrief(
-                id=1,
+                id="6bd39359-b154-456d-b9c2-caa516a45732",
                 name='test',
                 owner_id='8638c043-5145-4be8-a3e4-4b79991b0a16',
                 contact=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'),
@@ -68,7 +68,7 @@ class DatabaseUnitTest(unittest.TestCase):
 
     def test_get_database_succeeds(self):
         exp = Database(
-            id=1,
+            id="6bd39359-b154-456d-b9c2-caa516a45732",
             name='test',
             owner=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'),
             contact=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'),
@@ -77,57 +77,56 @@ class DatabaseUnitTest(unittest.TestCase):
             is_public=True,
             is_schema_public=True,
             container=ContainerBrief(
-                id=1,
+                id="44d811a8-4019-46ba-bd57-ea10a2eb0c74",
                 name='MariaDB Galera 11.1.3',
                 internal_name='mariadb',
                 image=ImageBrief(
-                    id=1,
+                    id="b104648b-54d2-4d72-9834-8e0e6d428b39",
                     name='mariadb',
-                    version='11.2.2',
-                    jdbc_method='mariadb'
+                    version='11.2.2'
                 )
             )
         )
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1', json=exp.model_dump())
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732', json=exp.model_dump())
             # test
-            response = RestClient().get_database(1)
+            response = RestClient().get_database(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             self.assertEqual(exp, response)
 
     def test_get_database_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1', status_code=403)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732', status_code=403)
             # test
             try:
-                response = RestClient().get_database(1)
+                response = RestClient().get_database(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except ForbiddenError as e:
                 pass
 
     def test_get_database_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1', status_code=404)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732', status_code=404)
             # test
             try:
-                response = RestClient().get_database(1)
+                response = RestClient().get_database(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except NotExistsError as e:
                 pass
 
     def test_get_database_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1', status_code=202)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732', status_code=202)
             # test
             try:
-                response = RestClient().get_database(1)
+                response = RestClient().get_database(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except ResponseCodeError as e:
                 pass
 
     def test_create_database_succeeds(self):
         exp = Database(
-            id=1,
+            id="6bd39359-b154-456d-b9c2-caa516a45732",
             name='test',
             owner=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'),
             contact=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'),
@@ -136,14 +135,13 @@ class DatabaseUnitTest(unittest.TestCase):
             is_public=True,
             is_schema_public=True,
             container=ContainerBrief(
-                id=1,
+                id="44d811a8-4019-46ba-bd57-ea10a2eb0c74",
                 name='MariaDB Galera 11.1.3',
                 internal_name='mariadb',
                 image=ImageBrief(
-                    id=1,
+                    id="b104648b-54d2-4d72-9834-8e0e6d428b39",
                     name='mariadb',
-                    version='11.2.2',
-                    jdbc_method='mariadb'
+                    version='11.2.2'
                 )
             )
         )
@@ -152,7 +150,8 @@ class DatabaseUnitTest(unittest.TestCase):
             mock.post('/api/database', json=exp.model_dump(), status_code=201)
             # test
             client = RestClient(username="a", password="b")
-            response = RestClient(username="a", password="b").create_database(name='test', container_id=1,
+            response = RestClient(username="a", password="b").create_database(name='test',
+                                                                              container_id="44d811a8-4019-46ba-bd57-ea10a2eb0c74",
                                                                               is_public=True)
             self.assertEqual(response.name, 'test')
 
@@ -162,7 +161,8 @@ class DatabaseUnitTest(unittest.TestCase):
             mock.post('/api/database', status_code=400)
             # test
             try:
-                response = RestClient(username="a", password="b").create_database(name='test', container_id=1,
+                response = RestClient(username="a", password="b").create_database(name='test',
+                                                                                  container_id="44d811a8-4019-46ba-bd57-ea10a2eb0c74",
                                                                                   is_public=True)
             except MalformedError as e:
                 pass
@@ -173,7 +173,8 @@ class DatabaseUnitTest(unittest.TestCase):
             mock.post('/api/database', status_code=403)
             # test
             try:
-                response = RestClient(username="a", password="b").create_database(name='test', container_id=1,
+                response = RestClient(username="a", password="b").create_database(name='test',
+                                                                                  container_id="44d811a8-4019-46ba-bd57-ea10a2eb0c74",
                                                                                   is_public=True)
             except ForbiddenError as e:
                 pass
@@ -184,7 +185,8 @@ class DatabaseUnitTest(unittest.TestCase):
             mock.post('/api/database', status_code=404)
             # test
             try:
-                response = RestClient(username="a", password="b").create_database(name='test', container_id=1,
+                response = RestClient(username="a", password="b").create_database(name='test',
+                                                                                  container_id="44d811a8-4019-46ba-bd57-ea10a2eb0c74",
                                                                                   is_public=True)
             except NotExistsError as e:
                 pass
@@ -195,7 +197,8 @@ class DatabaseUnitTest(unittest.TestCase):
             mock.post('/api/database', status_code=409)
             # test
             try:
-                response = RestClient(username="a", password="b").create_database(name='test', container_id=1,
+                response = RestClient(username="a", password="b").create_database(name='test',
+                                                                                  container_id="44d811a8-4019-46ba-bd57-ea10a2eb0c74",
                                                                                   is_public=True)
             except QueryStoreError as e:
                 pass
@@ -206,7 +209,8 @@ class DatabaseUnitTest(unittest.TestCase):
             mock.post('/api/database', status_code=502)
             # test
             try:
-                response = RestClient(username="a", password="b").create_database(name='test', container_id=1,
+                response = RestClient(username="a", password="b").create_database(name='test',
+                                                                                  container_id="44d811a8-4019-46ba-bd57-ea10a2eb0c74",
                                                                                   is_public=True)
             except ServiceConnectionError as e:
                 pass
@@ -217,7 +221,8 @@ class DatabaseUnitTest(unittest.TestCase):
             mock.post('/api/database', status_code=503)
             # test
             try:
-                response = RestClient(username="a", password="b").create_database(name='test', container_id=1,
+                response = RestClient(username="a", password="b").create_database(name='test',
+                                                                                  container_id="44d811a8-4019-46ba-bd57-ea10a2eb0c74",
                                                                                   is_public=True)
             except ServiceError as e:
                 pass
@@ -228,7 +233,8 @@ class DatabaseUnitTest(unittest.TestCase):
             mock.post('/api/database', status_code=202)
             # test
             try:
-                response = RestClient(username="a", password="b").create_database(name='test', container_id=1,
+                response = RestClient(username="a", password="b").create_database(name='test',
+                                                                                  container_id="44d811a8-4019-46ba-bd57-ea10a2eb0c74",
                                                                                   is_public=True)
             except ResponseCodeError as e:
                 pass
@@ -239,13 +245,15 @@ class DatabaseUnitTest(unittest.TestCase):
             mock.post('/api/database', status_code=404)
             # test
             try:
-                response = RestClient().create_database(name='test', container_id=1, is_public=True)
+                response = RestClient().create_database(name='test',
+                                                        container_id="44d811a8-4019-46ba-bd57-ea10a2eb0c74",
+                                                        is_public=True)
             except AuthenticationError as e:
                 pass
 
     def test_update_database_visibility_succeeds(self):
         exp = Database(
-            id=1,
+            id="6bd39359-b154-456d-b9c2-caa516a45732",
             name='test',
             owner=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'),
             contact=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'),
@@ -254,33 +262,34 @@ class DatabaseUnitTest(unittest.TestCase):
             is_public=True,
             is_schema_public=True,
             container=ContainerBrief(
-                id=1,
+                id="44d811a8-4019-46ba-bd57-ea10a2eb0c74",
                 name='MariaDB Galera 11.1.3',
                 internal_name='mariadb',
                 image=ImageBrief(
-                    id=1,
+                    id="b104648b-54d2-4d72-9834-8e0e6d428b39",
                     name='mariadb',
-                    version='11.2.2',
-                    jdbc_method='mariadb'
+                    version='11.2.2'
                 )
             )
         )
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/visibility', json=exp.model_dump(), status_code=202)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/visibility', json=exp.model_dump(),
+                     status_code=202)
             # test
             client = RestClient(username="a", password="b")
-            response = RestClient(username="a", password="b").update_database_visibility(database_id=1, is_public=True,
+            response = RestClient(username="a", password="b").update_database_visibility(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                                                         is_public=True,
                                                                                          is_schema_public=True)
             self.assertEqual(response.is_public, True)
 
     def test_update_database_visibility_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/visibility', status_code=400)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/visibility', status_code=400)
             # test
             try:
-                response = RestClient(username="a", password="b").update_database_visibility(database_id=1,
+                response = RestClient(username="a", password="b").update_database_visibility(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                              is_public=True,
                                                                                              is_schema_public=True)
             except MalformedError:
@@ -289,10 +298,10 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_update_database_visibility_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/visibility', status_code=403)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/visibility', status_code=403)
             # test
             try:
-                response = RestClient(username="a", password="b").update_database_visibility(database_id=1,
+                response = RestClient(username="a", password="b").update_database_visibility(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                              is_public=True,
                                                                                              is_schema_public=True)
             except ForbiddenError:
@@ -301,10 +310,10 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_update_database_visibility_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/visibility', status_code=404)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/visibility', status_code=404)
             # test
             try:
-                response = RestClient(username="a", password="b").update_database_visibility(database_id=1,
+                response = RestClient(username="a", password="b").update_database_visibility(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                              is_public=True,
                                                                                              is_schema_public=True)
             except NotExistsError:
@@ -313,10 +322,10 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_update_database_visibility_502_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/visibility', status_code=502)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/visibility', status_code=502)
             # test
             try:
-                response = RestClient(username="a", password="b").update_database_visibility(database_id=1,
+                response = RestClient(username="a", password="b").update_database_visibility(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                              is_public=True,
                                                                                              is_schema_public=True)
             except ServiceConnectionError:
@@ -325,10 +334,10 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_update_database_visibility_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/visibility', status_code=503)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/visibility', status_code=503)
             # test
             try:
-                response = RestClient(username="a", password="b").update_database_visibility(database_id=1,
+                response = RestClient(username="a", password="b").update_database_visibility(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                              is_public=True,
                                                                                              is_schema_public=True)
             except ServiceError:
@@ -337,10 +346,10 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_update_database_visibility_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/visibility', status_code=200)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/visibility', status_code=200)
             # test
             try:
-                response = RestClient(username="a", password="b").update_database_visibility(database_id=1,
+                response = RestClient(username="a", password="b").update_database_visibility(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                              is_public=True,
                                                                                              is_schema_public=True)
             except ResponseCodeError:
@@ -349,13 +358,13 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_update_database_visibility_anonymous_fails(self):
         # test
         try:
-            response = RestClient().update_database_visibility(database_id=1, is_public=True, is_schema_public=True)
+            response = RestClient().update_database_visibility(database_id="6bd39359-b154-456d-b9c2-caa516a45732", is_public=True, is_schema_public=True)
         except AuthenticationError:
             pass
 
     def test_update_database_owner_succeeds(self):
         exp = Database(
-            id=1,
+            id="6bd39359-b154-456d-b9c2-caa516a45732",
             name='test',
             owner=UserBrief(id='abdbf897-e599-4e5a-a3f0-7529884ea011', username='mweise'),
             contact=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'),
@@ -364,33 +373,32 @@ class DatabaseUnitTest(unittest.TestCase):
             is_public=True,
             is_schema_public=True,
             container=ContainerBrief(
-                id=1,
+                id="44d811a8-4019-46ba-bd57-ea10a2eb0c74",
                 name='MariaDB Galera 11.1.3',
                 internal_name='mariadb',
                 image=ImageBrief(
-                    id=1,
+                    id="b104648b-54d2-4d72-9834-8e0e6d428b39",
                     name='mariadb',
-                    version='11.2.2',
-                    jdbc_method='mariadb'
+                    version='11.2.2'
                 )
             )
         )
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/owner', json=exp.model_dump(), status_code=202)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/owner', json=exp.model_dump(), status_code=202)
             # test
             client = RestClient(username="a", password="b")
-            response = RestClient(username="a", password="b").update_database_owner(database_id=1,
+            response = RestClient(username="a", password="b").update_database_owner(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                     user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             self.assertEqual(response.owner.id, 'abdbf897-e599-4e5a-a3f0-7529884ea011')
 
     def test_update_database_owner_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/owner', status_code=400)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/owner', status_code=400)
             # test
             try:
-                response = RestClient(username="a", password="b").update_database_owner(database_id=1,
+                response = RestClient(username="a", password="b").update_database_owner(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                         user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except MalformedError:
                 pass
@@ -398,10 +406,10 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_update_database_owner_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/owner', status_code=403)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/owner', status_code=403)
             # test
             try:
-                response = RestClient(username="a", password="b").update_database_owner(database_id=1,
+                response = RestClient(username="a", password="b").update_database_owner(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                         user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except ForbiddenError:
                 pass
@@ -409,10 +417,10 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_update_database_owner_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/owner', status_code=404)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/owner', status_code=404)
             # test
             try:
-                response = RestClient(username="a", password="b").update_database_owner(database_id=1,
+                response = RestClient(username="a", password="b").update_database_owner(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                         user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except NotExistsError:
                 pass
@@ -420,10 +428,10 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_update_database_owner_502_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/owner', status_code=502)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/owner', status_code=502)
             # test
             try:
-                response = RestClient(username="a", password="b").update_database_owner(database_id=1,
+                response = RestClient(username="a", password="b").update_database_owner(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                         user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except ServiceConnectionError:
                 pass
@@ -431,10 +439,10 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_update_database_owner_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/owner', status_code=503)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/owner', status_code=503)
             # test
             try:
-                response = RestClient(username="a", password="b").update_database_owner(database_id=1,
+                response = RestClient(username="a", password="b").update_database_owner(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                         user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except ServiceError:
                 pass
@@ -442,10 +450,10 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_update_database_owner_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/owner', status_code=200)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/owner', status_code=200)
             # test
             try:
-                response = RestClient(username="a", password="b").update_database_owner(database_id=1,
+                response = RestClient(username="a", password="b").update_database_owner(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                         user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except ResponseCodeError:
                 pass
@@ -453,17 +461,17 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_update_database_owner_anonymous_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/owner', status_code=404)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/owner', status_code=404)
             # test
             try:
-                response = RestClient().update_database_owner(database_id=1,
+                response = RestClient().update_database_owner(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                               user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except AuthenticationError:
                 pass
 
     def test_update_database_schema_succeeds(self):
         exp = DatabaseBrief(
-            id=1,
+            id="6bd39359-b154-456d-b9c2-caa516a45732",
             name='test',
             owner_id='8638c043-5145-4be8-a3e4-4b79991b0a16',
             contact=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'),
@@ -473,142 +481,142 @@ class DatabaseUnitTest(unittest.TestCase):
         )
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/metadata/table', json=exp.model_dump())
-            mock.put('/api/database/1/metadata/view', json=exp.model_dump())
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/metadata/table', json=exp.model_dump())
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/metadata/view', json=exp.model_dump())
             # test
-            response = RestClient(username='foo', password='bar').update_database_schema(database_id=1)
+            response = RestClient(username='foo', password='bar').update_database_schema(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             self.assertEqual(exp, response)
 
     def test_update_database_schema_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/metadata/table', status_code=400)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/metadata/table', status_code=400)
             # test
             try:
-                RestClient(username='foo', password='bar').update_database_schema(database_id=1)
+                RestClient(username='foo', password='bar').update_database_schema(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except MalformedError:
                 pass
 
     def test_update_database_schema_view_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/metadata/table', json={}, status_code=200)
-            mock.put('/api/database/1/metadata/view', status_code=400)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/metadata/table', json={}, status_code=200)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/metadata/view', status_code=400)
             # test
             try:
-                RestClient(username='foo', password='bar').update_database_schema(database_id=1)
+                RestClient(username='foo', password='bar').update_database_schema(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except MalformedError:
                 pass
 
     def test_update_database_schema_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/metadata/table', status_code=403)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/metadata/table', status_code=403)
             # test
             try:
-                RestClient(username='foo', password='bar').update_database_schema(database_id=1)
+                RestClient(username='foo', password='bar').update_database_schema(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except ForbiddenError:
                 pass
 
     def test_update_database_schema_view_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/metadata/table', json={}, status_code=200)
-            mock.put('/api/database/1/metadata/view', status_code=403)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/metadata/table', json={}, status_code=200)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/metadata/view', status_code=403)
             # test
             try:
-                RestClient(username='foo', password='bar').update_database_schema(database_id=1)
+                RestClient(username='foo', password='bar').update_database_schema(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except ForbiddenError:
                 pass
 
     def test_update_database_schema_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/metadata/table', status_code=404)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/metadata/table', status_code=404)
             # test
             try:
-                RestClient(username='foo', password='bar').update_database_schema(database_id=1)
+                RestClient(username='foo', password='bar').update_database_schema(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except NotExistsError:
                 pass
 
     def test_update_database_schema_view_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/metadata/table', json={}, status_code=200)
-            mock.put('/api/database/1/metadata/view', status_code=404)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/metadata/table', json={}, status_code=200)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/metadata/view', status_code=404)
             # test
             try:
-                RestClient(username='foo', password='bar').update_database_schema(database_id=1)
+                RestClient(username='foo', password='bar').update_database_schema(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except NotExistsError:
                 pass
 
     def test_update_database_schema_502_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/metadata/table', status_code=502)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/metadata/table', status_code=502)
             # test
             try:
-                RestClient(username='foo', password='bar').update_database_schema(database_id=1)
+                RestClient(username='foo', password='bar').update_database_schema(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except ServiceConnectionError:
                 pass
 
     def test_update_database_schema_view_502_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/metadata/table', json={}, status_code=200)
-            mock.put('/api/database/1/metadata/view', status_code=502)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/metadata/table', json={}, status_code=200)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/metadata/view', status_code=502)
             # test
             try:
-                RestClient(username='foo', password='bar').update_database_schema(database_id=1)
+                RestClient(username='foo', password='bar').update_database_schema(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except ServiceConnectionError:
                 pass
 
     def test_update_database_schema_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/metadata/table', status_code=503)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/metadata/table', status_code=503)
             # test
             try:
-                RestClient(username='foo', password='bar').update_database_schema(database_id=1)
+                RestClient(username='foo', password='bar').update_database_schema(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except ServiceError:
                 pass
 
     def test_update_database_schema_view_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/metadata/table', json={}, status_code=200)
-            mock.put('/api/database/1/metadata/view', status_code=503)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/metadata/table', json={}, status_code=200)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/metadata/view', status_code=503)
             # test
             try:
-                RestClient(username='foo', password='bar').update_database_schema(database_id=1)
+                RestClient(username='foo', password='bar').update_database_schema(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except ServiceError:
                 pass
 
     def test_update_database_schema_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/metadata/table', status_code=202)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/metadata/table', status_code=202)
             # test
             try:
-                RestClient(username='foo', password='bar').update_database_schema(database_id=1)
+                RestClient(username='foo', password='bar').update_database_schema(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except ResponseCodeError:
                 pass
 
     def test_update_database_schema_view_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/metadata/table', json={}, status_code=200)
-            mock.put('/api/database/1/metadata/view', status_code=202)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/metadata/table', json={}, status_code=200)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/metadata/view', status_code=202)
             # test
             try:
-                RestClient(username='foo', password='bar').update_database_schema(database_id=1)
+                RestClient(username='foo', password='bar').update_database_schema(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except ResponseCodeError:
                 pass
 
     def test_update_database_schema_anonymous_fails(self):
         # test
         try:
-            RestClient().update_database_schema(database_id=1)
+            RestClient().update_database_schema(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
         except AuthenticationError:
             pass
 
@@ -617,38 +625,38 @@ class DatabaseUnitTest(unittest.TestCase):
                              user=UserBrief(id='abdbf897-e599-4e5a-a3f0-7529884ea011', username='other'))
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/access', json=exp.model_dump())
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access', json=exp.model_dump())
             # test
-            response = RestClient().get_database_access(database_id=1)
+            response = RestClient().get_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             self.assertEqual(response, AccessType.READ)
 
     def test_get_database_access_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/access', status_code=403)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access', status_code=403)
             # test
             try:
-                response = RestClient().get_database_access(database_id=1)
+                response = RestClient().get_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except ForbiddenError:
                 pass
 
     def test_get_database_access_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/access', status_code=404)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access', status_code=404)
             # test
             try:
-                response = RestClient().get_database_access(database_id=1)
+                response = RestClient().get_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except NotExistsError:
                 pass
 
     def test_get_database_access_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/access', status_code=202)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access', status_code=202)
             # test
             try:
-                response = RestClient().get_database_access(database_id=1)
+                response = RestClient().get_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except ResponseCodeError:
                 pass
 
@@ -657,10 +665,11 @@ class DatabaseUnitTest(unittest.TestCase):
                              user=UserBrief(id='abdbf897-e599-4e5a-a3f0-7529884ea011', username='other'))
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/access/abdbf897-e599-4e5a-a3f0-7529884ea011', json=exp.model_dump(),
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access/abdbf897-e599-4e5a-a3f0-7529884ea011',
+                      json=exp.model_dump(),
                       status_code=202)
             # test
-            response = RestClient(username="a", password="b").create_database_access(database_id=1,
+            response = RestClient(username="a", password="b").create_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                      type=AccessType.READ,
                                                                                      user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             self.assertEqual(response, exp.type)
@@ -668,10 +677,11 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_create_database_access_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/access/abdbf897-e599-4e5a-a3f0-7529884ea011', status_code=400)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access/abdbf897-e599-4e5a-a3f0-7529884ea011',
+                      status_code=400)
             # test
             try:
-                response = RestClient(username="a", password="b").create_database_access(database_id=1,
+                response = RestClient(username="a", password="b").create_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                          type=AccessType.READ,
                                                                                          user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except MalformedError:
@@ -680,10 +690,11 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_create_database_access_anonymous_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/access/abdbf897-e599-4e5a-a3f0-7529884ea011', status_code=400)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access/abdbf897-e599-4e5a-a3f0-7529884ea011',
+                      status_code=400)
             # test
             try:
-                response = RestClient().create_database_access(database_id=1, type=AccessType.READ,
+                response = RestClient().create_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732", type=AccessType.READ,
                                                                user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except AuthenticationError:
                 pass
@@ -691,10 +702,11 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_create_database_access_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/access/abdbf897-e599-4e5a-a3f0-7529884ea011', status_code=403)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access/abdbf897-e599-4e5a-a3f0-7529884ea011',
+                      status_code=403)
             # test
             try:
-                response = RestClient(username="a", password="b").create_database_access(database_id=1,
+                response = RestClient(username="a", password="b").create_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                          type=AccessType.READ,
                                                                                          user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except ForbiddenError:
@@ -703,10 +715,11 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_create_database_access_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/access/abdbf897-e599-4e5a-a3f0-7529884ea011', status_code=404)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access/abdbf897-e599-4e5a-a3f0-7529884ea011',
+                      status_code=404)
             # test
             try:
-                response = RestClient(username="a", password="b").create_database_access(database_id=1,
+                response = RestClient(username="a", password="b").create_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                          type=AccessType.READ,
                                                                                          user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except NotExistsError:
@@ -715,10 +728,11 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_create_database_access_502_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/access/abdbf897-e599-4e5a-a3f0-7529884ea011', status_code=502)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access/abdbf897-e599-4e5a-a3f0-7529884ea011',
+                      status_code=502)
             # test
             try:
-                response = RestClient(username="a", password="b").create_database_access(database_id=1,
+                response = RestClient(username="a", password="b").create_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                          type=AccessType.READ,
                                                                                          user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except ServiceConnectionError:
@@ -727,10 +741,11 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_create_database_access_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/access/abdbf897-e599-4e5a-a3f0-7529884ea011', status_code=503)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access/abdbf897-e599-4e5a-a3f0-7529884ea011',
+                      status_code=503)
             # test
             try:
-                response = RestClient(username="a", password="b").create_database_access(database_id=1,
+                response = RestClient(username="a", password="b").create_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                          type=AccessType.READ,
                                                                                          user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except ServiceError:
@@ -739,10 +754,11 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_create_database_access_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/access/abdbf897-e599-4e5a-a3f0-7529884ea011', status_code=200)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access/abdbf897-e599-4e5a-a3f0-7529884ea011',
+                      status_code=200)
             # test
             try:
-                response = RestClient(username="a", password="b").create_database_access(database_id=1,
+                response = RestClient(username="a", password="b").create_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                          type=AccessType.READ,
                                                                                          user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except ResponseCodeError:
@@ -753,10 +769,11 @@ class DatabaseUnitTest(unittest.TestCase):
                              user=UserBrief(id='abdbf897-e599-4e5a-a3f0-7529884ea011', username='other'))
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/access/abdbf897-e599-4e5a-a3f0-7529884ea011', json=exp.model_dump(),
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access/abdbf897-e599-4e5a-a3f0-7529884ea011',
+                     json=exp.model_dump(),
                      status_code=202)
             # test
-            response = RestClient(username="a", password="b").update_database_access(database_id=1,
+            response = RestClient(username="a", password="b").update_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                      type=AccessType.READ,
                                                                                      user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             self.assertEqual(response, exp.type)
@@ -764,10 +781,11 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_update_database_access_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/access/abdbf897-e599-4e5a-a3f0-7529884ea011', status_code=400)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access/abdbf897-e599-4e5a-a3f0-7529884ea011',
+                     status_code=400)
             # test
             try:
-                response = RestClient(username="a", password="b").update_database_access(database_id=1,
+                response = RestClient(username="a", password="b").update_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                          type=AccessType.READ,
                                                                                          user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except MalformedError:
@@ -776,10 +794,11 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_update_database_access_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/access/abdbf897-e599-4e5a-a3f0-7529884ea011', status_code=403)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access/abdbf897-e599-4e5a-a3f0-7529884ea011',
+                     status_code=403)
             # test
             try:
-                response = RestClient(username="a", password="b").update_database_access(database_id=1,
+                response = RestClient(username="a", password="b").update_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                          type=AccessType.READ,
                                                                                          user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except ForbiddenError:
@@ -788,10 +807,11 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_update_database_access_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/access/abdbf897-e599-4e5a-a3f0-7529884ea011', status_code=404)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access/abdbf897-e599-4e5a-a3f0-7529884ea011',
+                     status_code=404)
             # test
             try:
-                response = RestClient(username="a", password="b").update_database_access(database_id=1,
+                response = RestClient(username="a", password="b").update_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                          type=AccessType.READ,
                                                                                          user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except NotExistsError:
@@ -800,10 +820,11 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_update_database_access_502_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/access/abdbf897-e599-4e5a-a3f0-7529884ea011', status_code=502)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access/abdbf897-e599-4e5a-a3f0-7529884ea011',
+                     status_code=502)
             # test
             try:
-                response = RestClient(username="a", password="b").update_database_access(database_id=1,
+                response = RestClient(username="a", password="b").update_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                          type=AccessType.READ,
                                                                                          user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except ServiceConnectionError:
@@ -812,10 +833,11 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_update_database_access_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/access/abdbf897-e599-4e5a-a3f0-7529884ea011', status_code=503)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access/abdbf897-e599-4e5a-a3f0-7529884ea011',
+                     status_code=503)
             # test
             try:
-                response = RestClient(username="a", password="b").update_database_access(database_id=1,
+                response = RestClient(username="a", password="b").update_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                          type=AccessType.READ,
                                                                                          user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except ServiceError:
@@ -824,10 +846,11 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_update_database_access_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/access/abdbf897-e599-4e5a-a3f0-7529884ea011', status_code=200)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access/abdbf897-e599-4e5a-a3f0-7529884ea011',
+                     status_code=200)
             # test
             try:
-                response = RestClient(username="a", password="b").update_database_access(database_id=1,
+                response = RestClient(username="a", password="b").update_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                                          type=AccessType.READ,
                                                                                          user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except ResponseCodeError:
@@ -836,10 +859,11 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_update_database_access_anonymous_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/access/abdbf897-e599-4e5a-a3f0-7529884ea011', status_code=404)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access/abdbf897-e599-4e5a-a3f0-7529884ea011',
+                     status_code=404)
             # test
             try:
-                response = RestClient().update_database_access(database_id=1, type=AccessType.READ,
+                response = RestClient().update_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732", type=AccessType.READ,
                                                                user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except AuthenticationError:
                 pass
@@ -847,19 +871,23 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_delete_database_access_succeeds(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/access/abdbf897-e599-4e5a-a3f0-7529884ea011', status_code=202)
+            mock.delete(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access/abdbf897-e599-4e5a-a3f0-7529884ea011',
+                status_code=202)
             # test
             client = RestClient(username="a", password="b")
-            RestClient(username="a", password="b").delete_database_access(database_id=1,
+            RestClient(username="a", password="b").delete_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                           user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
 
     def test_delete_database_access_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/access/abdbf897-e599-4e5a-a3f0-7529884ea011', status_code=400)
+            mock.delete(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access/abdbf897-e599-4e5a-a3f0-7529884ea011',
+                status_code=400)
             # test
             try:
-                RestClient(username="a", password="b").delete_database_access(database_id=1,
+                RestClient(username="a", password="b").delete_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                               user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except MalformedError:
                 pass
@@ -867,10 +895,12 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_delete_database_access_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/access/abdbf897-e599-4e5a-a3f0-7529884ea011', status_code=403)
+            mock.delete(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access/abdbf897-e599-4e5a-a3f0-7529884ea011',
+                status_code=403)
             # test
             try:
-                RestClient(username="a", password="b").delete_database_access(database_id=1,
+                RestClient(username="a", password="b").delete_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                               user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except ForbiddenError:
                 pass
@@ -878,10 +908,12 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_delete_database_access_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/access/abdbf897-e599-4e5a-a3f0-7529884ea011', status_code=404)
+            mock.delete(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access/abdbf897-e599-4e5a-a3f0-7529884ea011',
+                status_code=404)
             # test
             try:
-                RestClient(username="a", password="b").delete_database_access(database_id=1,
+                RestClient(username="a", password="b").delete_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                               user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except NotExistsError:
                 pass
@@ -889,10 +921,12 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_delete_database_access_502_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/access/abdbf897-e599-4e5a-a3f0-7529884ea011', status_code=502)
+            mock.delete(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access/abdbf897-e599-4e5a-a3f0-7529884ea011',
+                status_code=502)
             # test
             try:
-                RestClient(username="a", password="b").delete_database_access(database_id=1,
+                RestClient(username="a", password="b").delete_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                               user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except ServiceConnectionError:
                 pass
@@ -900,10 +934,12 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_delete_database_access_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/access/abdbf897-e599-4e5a-a3f0-7529884ea011', status_code=503)
+            mock.delete(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access/abdbf897-e599-4e5a-a3f0-7529884ea011',
+                status_code=503)
             # test
             try:
-                RestClient(username="a", password="b").delete_database_access(database_id=1,
+                RestClient(username="a", password="b").delete_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                               user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except ServiceError:
                 pass
@@ -911,10 +947,12 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_delete_database_access_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/access/abdbf897-e599-4e5a-a3f0-7529884ea011', status_code=200)
+            mock.delete(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access/abdbf897-e599-4e5a-a3f0-7529884ea011',
+                status_code=200)
             # test
             try:
-                RestClient(username="a", password="b").delete_database_access(database_id=1,
+                RestClient(username="a", password="b").delete_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                                                               user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except ResponseCodeError:
                 pass
@@ -922,10 +960,12 @@ class DatabaseUnitTest(unittest.TestCase):
     def test_delete_database_access_anonymous_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/access/abdbf897-e599-4e5a-a3f0-7529884ea011', status_code=404)
+            mock.delete(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/access/abdbf897-e599-4e5a-a3f0-7529884ea011',
+                status_code=404)
             # test
             try:
-                RestClient().delete_database_access(database_id=1, user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
+                RestClient().delete_database_access(database_id="6bd39359-b154-456d-b9c2-caa516a45732", user_id='abdbf897-e599-4e5a-a3f0-7529884ea011')
             except AuthenticationError:
                 pass
 
diff --git a/lib/python/tests/test_unit_identifier.py b/lib/python/tests/test_unit_identifier.py
index 36630e3df00559aea6a5ac43bd0c18fe10e6b648..6509bcac5a3e9e20a13bf25f67c86b2196712517 100644
--- a/lib/python/tests/test_unit_identifier.py
+++ b/lib/python/tests/test_unit_identifier.py
@@ -16,20 +16,26 @@ class IdentifierUnitTest(unittest.TestCase):
 
     def test_create_identifier_succeeds(self):
         with requests_mock.Mocker() as mock:
-            exp = Identifier(id=10,
-                             database_id=1,
-                             view_id=32,
+            exp = Identifier(id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                             database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                             view_id="e5229d24-584a-43e8-b9f6-d349c3053f9c",
                              publication_year=2024,
                              publisher='TU Wien',
                              type=IdentifierType.VIEW,
                              language=Language.EN,
-                             descriptions=[IdentifierDescription(id=2, description='Test Description')],
-                             titles=[IdentifierTitle(id=3, title='Test Title')],
-                             funders=[IdentifierFunder(id=4, funder_name='FWF')],
+                             descriptions=[IdentifierDescription(id="d8bdc933-655c-46bd-9903-ede3928a304b",
+                                                                 description='Test Description')],
+                             titles=[IdentifierTitle(id="ffaf9e0c-c37d-4655-bd68-80cd991cf24c",
+                                                     title='Test Title')],
+                             funders=[IdentifierFunder(id="d0dc801d-cfb7-4b07-9b20-2d7af39c913c",
+                                                       funder_name='FWF')],
                              related_identifiers=[
-                                 RelatedIdentifier(id=7, value='10.12345/abc', relation=RelatedIdentifierRelation.CITES,
+                                 RelatedIdentifier(id="6655eba7-b0ac-4bc4-9f09-6355fec8d815",
+                                                   value='10.12345/abc',
+                                                   relation=RelatedIdentifierRelation.CITES,
                                                    type=RelatedIdentifierType.DOI)],
-                             creators=[Creator(id=5, creator_name='Carberry, Josiah')],
+                             creators=[Creator(id="70539dff-c549-4c95-8257-9c750decf232",
+                                               creator_name='Carberry, Josiah')],
                              status=IdentifierStatusType.PUBLISHED,
                              owner=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'))
             # mock
@@ -37,7 +43,7 @@ class IdentifierUnitTest(unittest.TestCase):
             # test
             client = RestClient(username="a", password="b")
             response = client.create_identifier(
-                database_id=1, type=IdentifierType.VIEW,
+                database_id="6bd39359-b154-456d-b9c2-caa516a45732", type=IdentifierType.VIEW,
                 titles=[CreateIdentifierTitle(title='Test Title')],
                 publisher='TU Wien', publication_year=2024,
                 language=Language.EN,
@@ -57,7 +63,7 @@ class IdentifierUnitTest(unittest.TestCase):
             try:
                 client = RestClient(username="a", password="b")
                 client.create_identifier(
-                    database_id=1, type=IdentifierType.VIEW,
+                    database_id="6bd39359-b154-456d-b9c2-caa516a45732", type=IdentifierType.VIEW,
                     titles=[CreateIdentifierTitle(title='Test Title')],
                     descriptions=[CreateIdentifierDescription(description='Test')],
                     publisher='TU Wien', publication_year=2024,
@@ -73,7 +79,7 @@ class IdentifierUnitTest(unittest.TestCase):
             try:
                 client = RestClient(username="a", password="b")
                 client.create_identifier(
-                    database_id=1, type=IdentifierType.VIEW,
+                    database_id="6bd39359-b154-456d-b9c2-caa516a45732", type=IdentifierType.VIEW,
                     titles=[CreateIdentifierTitle(title='Test Title')],
                     descriptions=[CreateIdentifierDescription(description='Test')],
                     publisher='TU Wien', publication_year=2024,
@@ -89,7 +95,7 @@ class IdentifierUnitTest(unittest.TestCase):
             try:
                 client = RestClient(username="a", password="b")
                 client.create_identifier(
-                    database_id=1, type=IdentifierType.VIEW,
+                    database_id="6bd39359-b154-456d-b9c2-caa516a45732", type=IdentifierType.VIEW,
                     titles=[CreateIdentifierTitle(title='Test Title')],
                     descriptions=[CreateIdentifierDescription(description='Test')],
                     publisher='TU Wien', publication_year=2024,
@@ -105,7 +111,7 @@ class IdentifierUnitTest(unittest.TestCase):
             try:
                 client = RestClient(username="a", password="b")
                 client.create_identifier(
-                    database_id=1, type=IdentifierType.VIEW,
+                    database_id="6bd39359-b154-456d-b9c2-caa516a45732", type=IdentifierType.VIEW,
                     titles=[CreateIdentifierTitle(title='Test Title')],
                     descriptions=[CreateIdentifierDescription(description='Test')],
                     publisher='TU Wien', publication_year=2024,
@@ -121,7 +127,7 @@ class IdentifierUnitTest(unittest.TestCase):
             try:
                 client = RestClient(username="a", password="b")
                 client.create_identifier(
-                    database_id=1, type=IdentifierType.VIEW,
+                    database_id="6bd39359-b154-456d-b9c2-caa516a45732", type=IdentifierType.VIEW,
                     titles=[CreateIdentifierTitle(title='Test Title')],
                     descriptions=[CreateIdentifierDescription(description='Test')],
                     publisher='TU Wien', publication_year=2024,
@@ -137,7 +143,7 @@ class IdentifierUnitTest(unittest.TestCase):
             try:
                 client = RestClient(username="a", password="b")
                 client.create_identifier(
-                    database_id=1, type=IdentifierType.VIEW,
+                    database_id="6bd39359-b154-456d-b9c2-caa516a45732", type=IdentifierType.VIEW,
                     titles=[CreateIdentifierTitle(title='Test Title')],
                     descriptions=[CreateIdentifierDescription(description='Test')],
                     publisher='TU Wien', publication_year=2024,
@@ -149,7 +155,7 @@ class IdentifierUnitTest(unittest.TestCase):
         # test
         try:
             RestClient().create_identifier(
-                database_id=1, type=IdentifierType.VIEW,
+                database_id="6bd39359-b154-456d-b9c2-caa516a45732", type=IdentifierType.VIEW,
                 titles=[CreateIdentifierTitle(title='Test Title')],
                 descriptions=[CreateIdentifierDescription(description='Test')],
                 publisher='TU Wien', publication_year=2024,
@@ -159,26 +165,33 @@ class IdentifierUnitTest(unittest.TestCase):
 
     def test_get_identifiers_view_succeeds(self):
         with requests_mock.Mocker() as mock:
-            exp = [Identifier(id=10,
-                              database_id=1,
-                              view_id=32,
+            exp = [Identifier(id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                              database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                              view_id="e5229d24-584a-43e8-b9f6-d349c3053f9c",
                               publication_year=2024,
                               publisher='TU Wien',
                               type=IdentifierType.VIEW,
                               language=Language.EN,
-                              descriptions=[IdentifierDescription(id=2, description='Test Description')],
-                              titles=[IdentifierTitle(id=3, title='Test Title')],
-                              funders=[IdentifierFunder(id=4, funder_name='FWF')],
-                              related_identifiers=[RelatedIdentifier(id=7, value='10.12345/abc',
-                                                                     relation=RelatedIdentifierRelation.CITES,
-                                                                     type=RelatedIdentifierType.DOI)],
-                              creators=[Creator(id=5, creator_name='Carberry, Josiah')],
+                              descriptions=[IdentifierDescription(id="d8bdc933-655c-46bd-9903-ede3928a304b",
+                                                                  description='Test Description')],
+                              titles=[IdentifierTitle(id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                                                      title='Test Title')],
+                              funders=[IdentifierFunder(id="d0dc801d-cfb7-4b07-9b20-2d7af39c913c",
+                                                        funder_name='FWF')],
+                              related_identifiers=[
+                                  RelatedIdentifier(id="6655eba7-b0ac-4bc4-9f09-6355fec8d815", value='10.12345/abc',
+                                                    relation=RelatedIdentifierRelation.CITES,
+                                                    type=RelatedIdentifierType.DOI)],
+                              creators=[Creator(id="70539dff-c549-4c95-8257-9c750decf232",
+                                                creator_name='Carberry, Josiah')],
                               status=IdentifierStatusType.PUBLISHED,
                               owner=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'))]
             # mock
             mock.get('/api/identifiers', json=[exp[0].model_dump()], headers={"Accept": "application/json"})
             # test
-            response = RestClient().get_identifiers(database_id=1, view_id=32, type=IdentifierType.VIEW,
+            response = RestClient().get_identifiers(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                    view_id="e5229d24-584a-43e8-b9f6-d349c3053f9c",
+                                                    type=IdentifierType.VIEW,
                                                     status=IdentifierStatusType.PUBLISHED)
             self.assertEqual(exp, response)
 
@@ -188,7 +201,8 @@ class IdentifierUnitTest(unittest.TestCase):
             # mock
             mock.get('/api/identifiers', json=[], headers={"Accept": "application/json"})
             # test
-            response = RestClient().get_identifiers(database_id=1, subset_id=2)
+            response = RestClient().get_identifiers(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                    subset_id="0831bf54-9dd9-46fe-8c2c-c539332ea177")
             self.assertEqual(exp, response)
 
     def test_get_identifiers_table_succeeds(self):
@@ -197,27 +211,28 @@ class IdentifierUnitTest(unittest.TestCase):
             # mock
             mock.get('/api/identifiers', json=[], headers={"Accept": "application/json"})
             # test
-            response = RestClient().get_identifiers(database_id=1, table_id=3)
+            response = RestClient().get_identifiers(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                    table_id="b3230b86-4743-498d-9015-3fad58049692")
             self.assertEqual(exp, response)
 
     def test_get_identifiers_view_param_database_fails(self):
         # test
         try:
-            RestClient().get_identifiers(view_id=1)
+            RestClient().get_identifiers(view_id="e5229d24-584a-43e8-b9f6-d349c3053f9c")
         except RequestError:
             pass
 
     def test_get_identifiers_subset_param_database_fails(self):
         # test
         try:
-            RestClient().get_identifiers(subset_id=1)
+            RestClient().get_identifiers(subset_id="0831bf54-9dd9-46fe-8c2c-c539332ea177")
         except RequestError:
             pass
 
     def test_get_identifiers_table_param_database_fails(self):
         # test
         try:
-            RestClient().get_identifiers(table_id=1)
+            RestClient().get_identifiers(table_id="b3230b86-4743-498d-9015-3fad58049692")
         except RequestError:
             pass
 
@@ -253,62 +268,78 @@ class IdentifierUnitTest(unittest.TestCase):
 
     def test_update_identifier_succeeds(self):
         with requests_mock.Mocker() as mock:
-            exp = Identifier(id=10,
-                             database_id=1,
-                             view_id=32,
+            exp = Identifier(id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                             database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                             view_id="e5229d24-584a-43e8-b9f6-d349c3053f9c",
                              publication_year=2024,
                              publisher='TU Wien',
                              type=IdentifierType.VIEW,
                              language=Language.EN,
-                             descriptions=[IdentifierDescription(id=2, description='Test Description')],
-                             titles=[IdentifierTitle(id=3, title='Test Title')],
-                             funders=[IdentifierFunder(id=4, funder_name='FWF')],
+                             descriptions=[IdentifierDescription(id="d8bdc933-655c-46bd-9903-ede3928a304b",
+                                                                 description='Test Description')],
+                             titles=[IdentifierTitle(id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                                                     title='Test Title')],
+                             funders=[IdentifierFunder(id="d0dc801d-cfb7-4b07-9b20-2d7af39c913c",
+                                                       funder_name='FWF')],
                              related_identifiers=[
-                                 RelatedIdentifier(id=7, value='10.12345/abc', relation=RelatedIdentifierRelation.CITES,
+                                 RelatedIdentifier(id="6655eba7-b0ac-4bc4-9f09-6355fec8d815",
+                                                   value='10.12345/abc',
+                                                   relation=RelatedIdentifierRelation.CITES,
                                                    type=RelatedIdentifierType.DOI)],
-                             creators=[Creator(id=5, creator_name='Carberry, Josiah')],
+                             creators=[Creator(id="70539dff-c549-4c95-8257-9c750decf232",
+                                               creator_name='Carberry, Josiah')],
                              status=IdentifierStatusType.PUBLISHED,
                              owner=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'))
             # mock
-            mock.put('/api/identifier/10', json=exp.model_dump(), status_code=202)
+            mock.put('/api/identifier/f6171539-a479-4829-9b9b-a6b474e1c7d3', json=exp.model_dump(), status_code=202)
             # test
             client = RestClient(username="a", password="b")
-            response = client.update_identifier(identifier_id=10,
-                                                database_id=1, type=IdentifierType.VIEW,
-                                                titles=[SaveIdentifierTitle(id=10, title='Test Title')],
+            response = client.update_identifier(identifier_id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                                                database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                type=IdentifierType.VIEW,
+                                                titles=[SaveIdentifierTitle(id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                                                                            title='Test Title')],
                                                 publisher='TU Wien', publication_year=2024,
                                                 language=Language.EN,
-                                                funders=[SaveIdentifierFunder(id=2, funder_name='FWF')],
-                                                related_identifiers=[SaveRelatedIdentifier(id=2,
-                                                                                           value='10.12345/abc',
-                                                                                           relation=RelatedIdentifierRelation.CITES,
-                                                                                           type=RelatedIdentifierType.DOI)],
-                                                descriptions=[SaveIdentifierDescription(id=2,
-                                                                                        description='Test Description')],
-                                                creators=[SaveIdentifierCreator(id=30,
-                                                                                creator_name='Carberry, Josiah')])
+                                                funders=[SaveIdentifierFunder(id="d0dc801d-cfb7-4b07-9b20-2d7af39c913c",
+                                                                              funder_name='FWF')],
+                                                related_identifiers=[
+                                                    SaveRelatedIdentifier(id="6655eba7-b0ac-4bc4-9f09-6355fec8d815",
+                                                                          value='10.12345/abc',
+                                                                          relation=RelatedIdentifierRelation.CITES,
+                                                                          type=RelatedIdentifierType.DOI)],
+                                                descriptions=[
+                                                    SaveIdentifierDescription(id="d8bdc933-655c-46bd-9903-ede3928a304b",
+                                                                              description='Test Description')],
+                                                creators=[
+                                                    SaveIdentifierCreator(id="6bf894bc-8f55-4b5d-83cf-198b29253260",
+                                                                          creator_name='Carberry, Josiah')])
             self.assertEqual(exp, response)
 
     def test_update_identifier_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/identifier/10', status_code=400)
+            mock.put('/api/identifier/f6171539-a479-4829-9b9b-a6b474e1c7d3', status_code=400)
             # test
             client = RestClient(username="a", password="b")
             try:
-                client.update_identifier(identifier_id=10,
-                                         database_id=1, type=IdentifierType.VIEW,
-                                         titles=[SaveIdentifierTitle(id=10, title='Test Title')],
+                client.update_identifier(identifier_id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                                         database_id="6bd39359-b154-456d-b9c2-caa516a45732", type=IdentifierType.VIEW,
+                                         titles=[SaveIdentifierTitle(id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                                                                     title='Test Title')],
                                          publisher='TU Wien', publication_year=2024,
                                          language=Language.EN,
-                                         funders=[SaveIdentifierFunder(id=2, funder_name='FWF')],
-                                         related_identifiers=[SaveRelatedIdentifier(id=2,
-                                                                                    value='10.12345/abc',
-                                                                                    relation=RelatedIdentifierRelation.CITES,
-                                                                                    type=RelatedIdentifierType.DOI)],
-                                         descriptions=[SaveIdentifierDescription(id=2,
-                                                                                 description='Test Description')],
-                                         creators=[SaveIdentifierCreator(id=30,
+                                         funders=[SaveIdentifierFunder(id="d0dc801d-cfb7-4b07-9b20-2d7af39c913c",
+                                                                       funder_name='FWF')],
+                                         related_identifiers=[
+                                             SaveRelatedIdentifier(id="6655eba7-b0ac-4bc4-9f09-6355fec8d815",
+                                                                   value='10.12345/abc',
+                                                                   relation=RelatedIdentifierRelation.CITES,
+                                                                   type=RelatedIdentifierType.DOI)],
+                                         descriptions=[
+                                             SaveIdentifierDescription(id="d8bdc933-655c-46bd-9903-ede3928a304b",
+                                                                       description='Test Description')],
+                                         creators=[SaveIdentifierCreator(id="6bf894bc-8f55-4b5d-83cf-198b29253260",
                                                                          creator_name='Carberry, Josiah')])
             except MalformedError:
                 pass
@@ -316,23 +347,27 @@ class IdentifierUnitTest(unittest.TestCase):
     def test_update_identifier_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/identifier/10', status_code=403)
+            mock.put('/api/identifier/f6171539-a479-4829-9b9b-a6b474e1c7d3', status_code=403)
             # test
             client = RestClient(username="a", password="b")
             try:
-                client.update_identifier(identifier_id=10,
-                                         database_id=1, type=IdentifierType.VIEW,
-                                         titles=[SaveIdentifierTitle(id=10, title='Test Title')],
+                client.update_identifier(identifier_id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                                         database_id="6bd39359-b154-456d-b9c2-caa516a45732", type=IdentifierType.VIEW,
+                                         titles=[SaveIdentifierTitle(id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                                                                     title='Test Title')],
                                          publisher='TU Wien', publication_year=2024,
                                          language=Language.EN,
-                                         funders=[SaveIdentifierFunder(id=2, funder_name='FWF')],
-                                         related_identifiers=[SaveRelatedIdentifier(id=2,
-                                                                                    value='10.12345/abc',
-                                                                                    relation=RelatedIdentifierRelation.CITES,
-                                                                                    type=RelatedIdentifierType.DOI)],
-                                         descriptions=[SaveIdentifierDescription(id=2,
-                                                                                 description='Test Description')],
-                                         creators=[SaveIdentifierCreator(id=30,
+                                         funders=[SaveIdentifierFunder(id="d0dc801d-cfb7-4b07-9b20-2d7af39c913c",
+                                                                       funder_name='FWF')],
+                                         related_identifiers=[
+                                             SaveRelatedIdentifier(id="6655eba7-b0ac-4bc4-9f09-6355fec8d815",
+                                                                   value='10.12345/abc',
+                                                                   relation=RelatedIdentifierRelation.CITES,
+                                                                   type=RelatedIdentifierType.DOI)],
+                                         descriptions=[
+                                             SaveIdentifierDescription(id="d8bdc933-655c-46bd-9903-ede3928a304b",
+                                                                       description='Test Description')],
+                                         creators=[SaveIdentifierCreator(id="6bf894bc-8f55-4b5d-83cf-198b29253260",
                                                                          creator_name='Carberry, Josiah')])
             except ForbiddenError:
                 pass
@@ -340,23 +375,27 @@ class IdentifierUnitTest(unittest.TestCase):
     def test_update_identifier_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/identifier/10', status_code=404)
+            mock.put('/api/identifier/f6171539-a479-4829-9b9b-a6b474e1c7d3', status_code=404)
             # test
             client = RestClient(username="a", password="b")
             try:
-                client.update_identifier(identifier_id=10,
-                                         database_id=1, type=IdentifierType.VIEW,
-                                         titles=[SaveIdentifierTitle(id=10, title='Test Title')],
+                client.update_identifier(identifier_id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                                         database_id="6bd39359-b154-456d-b9c2-caa516a45732", type=IdentifierType.VIEW,
+                                         titles=[SaveIdentifierTitle(id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                                                                     title='Test Title')],
                                          publisher='TU Wien', publication_year=2024,
                                          language=Language.EN,
-                                         funders=[SaveIdentifierFunder(id=2, funder_name='FWF')],
-                                         related_identifiers=[SaveRelatedIdentifier(id=2,
-                                                                                    value='10.12345/abc',
-                                                                                    relation=RelatedIdentifierRelation.CITES,
-                                                                                    type=RelatedIdentifierType.DOI)],
-                                         descriptions=[SaveIdentifierDescription(id=2,
-                                                                                 description='Test Description')],
-                                         creators=[SaveIdentifierCreator(id=30,
+                                         funders=[SaveIdentifierFunder(id="d0dc801d-cfb7-4b07-9b20-2d7af39c913c",
+                                                                       funder_name='FWF')],
+                                         related_identifiers=[
+                                             SaveRelatedIdentifier(id="6655eba7-b0ac-4bc4-9f09-6355fec8d815",
+                                                                   value='10.12345/abc',
+                                                                   relation=RelatedIdentifierRelation.CITES,
+                                                                   type=RelatedIdentifierType.DOI)],
+                                         descriptions=[
+                                             SaveIdentifierDescription(id="d8bdc933-655c-46bd-9903-ede3928a304b",
+                                                                       description='Test Description')],
+                                         creators=[SaveIdentifierCreator(id="6bf894bc-8f55-4b5d-83cf-198b29253260",
                                                                          creator_name='Carberry, Josiah')])
             except NotExistsError:
                 pass
@@ -364,23 +403,27 @@ class IdentifierUnitTest(unittest.TestCase):
     def test_update_identifier_502_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/identifier/10', status_code=502)
+            mock.put('/api/identifier/f6171539-a479-4829-9b9b-a6b474e1c7d3', status_code=502)
             # test
             client = RestClient(username="a", password="b")
             try:
-                client.update_identifier(identifier_id=10,
-                                         database_id=1, type=IdentifierType.VIEW,
-                                         titles=[SaveIdentifierTitle(id=10, title='Test Title')],
+                client.update_identifier(identifier_id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                                         database_id="6bd39359-b154-456d-b9c2-caa516a45732", type=IdentifierType.VIEW,
+                                         titles=[SaveIdentifierTitle(id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                                                                     title='Test Title')],
                                          publisher='TU Wien', publication_year=2024,
                                          language=Language.EN,
-                                         funders=[SaveIdentifierFunder(id=2, funder_name='FWF')],
-                                         related_identifiers=[SaveRelatedIdentifier(id=2,
-                                                                                    value='10.12345/abc',
-                                                                                    relation=RelatedIdentifierRelation.CITES,
-                                                                                    type=RelatedIdentifierType.DOI)],
-                                         descriptions=[SaveIdentifierDescription(id=2,
-                                                                                 description='Test Description')],
-                                         creators=[SaveIdentifierCreator(id=30,
+                                         funders=[SaveIdentifierFunder(id="d0dc801d-cfb7-4b07-9b20-2d7af39c913c",
+                                                                       funder_name='FWF')],
+                                         related_identifiers=[
+                                             SaveRelatedIdentifier(id="6655eba7-b0ac-4bc4-9f09-6355fec8d815",
+                                                                   value='10.12345/abc',
+                                                                   relation=RelatedIdentifierRelation.CITES,
+                                                                   type=RelatedIdentifierType.DOI)],
+                                         descriptions=[
+                                             SaveIdentifierDescription(id="d8bdc933-655c-46bd-9903-ede3928a304b",
+                                                                       description='Test Description')],
+                                         creators=[SaveIdentifierCreator(id="6bf894bc-8f55-4b5d-83cf-198b29253260",
                                                                          creator_name='Carberry, Josiah')])
             except ServiceConnectionError:
                 pass
@@ -388,23 +431,27 @@ class IdentifierUnitTest(unittest.TestCase):
     def test_update_identifier_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/identifier/10', status_code=503)
+            mock.put('/api/identifier/f6171539-a479-4829-9b9b-a6b474e1c7d3', status_code=503)
             # test
             client = RestClient(username="a", password="b")
             try:
-                client.update_identifier(identifier_id=10,
-                                         database_id=1, type=IdentifierType.VIEW,
-                                         titles=[SaveIdentifierTitle(id=10, title='Test Title')],
+                client.update_identifier(identifier_id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                                         database_id="6bd39359-b154-456d-b9c2-caa516a45732", type=IdentifierType.VIEW,
+                                         titles=[SaveIdentifierTitle(id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                                                                     title='Test Title')],
                                          publisher='TU Wien', publication_year=2024,
                                          language=Language.EN,
-                                         funders=[SaveIdentifierFunder(id=2, funder_name='FWF')],
-                                         related_identifiers=[SaveRelatedIdentifier(id=2,
-                                                                                    value='10.12345/abc',
-                                                                                    relation=RelatedIdentifierRelation.CITES,
-                                                                                    type=RelatedIdentifierType.DOI)],
-                                         descriptions=[SaveIdentifierDescription(id=2,
-                                                                                 description='Test Description')],
-                                         creators=[SaveIdentifierCreator(id=30,
+                                         funders=[SaveIdentifierFunder(id="d0dc801d-cfb7-4b07-9b20-2d7af39c913c",
+                                                                       funder_name='FWF')],
+                                         related_identifiers=[
+                                             SaveRelatedIdentifier(id="6655eba7-b0ac-4bc4-9f09-6355fec8d815",
+                                                                   value='10.12345/abc',
+                                                                   relation=RelatedIdentifierRelation.CITES,
+                                                                   type=RelatedIdentifierType.DOI)],
+                                         descriptions=[
+                                             SaveIdentifierDescription(id="d8bdc933-655c-46bd-9903-ede3928a304b",
+                                                                       description='Test Description')],
+                                         creators=[SaveIdentifierCreator(id="6bf894bc-8f55-4b5d-83cf-198b29253260",
                                                                          creator_name='Carberry, Josiah')])
             except ServiceError:
                 pass
@@ -412,23 +459,27 @@ class IdentifierUnitTest(unittest.TestCase):
     def test_update_identifier_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/identifier/10', status_code=200)
+            mock.put('/api/identifier/f6171539-a479-4829-9b9b-a6b474e1c7d3', status_code=200)
             # test
             client = RestClient(username="a", password="b")
             try:
-                client.update_identifier(identifier_id=10,
-                                         database_id=1, type=IdentifierType.VIEW,
-                                         titles=[SaveIdentifierTitle(id=10, title='Test Title')],
+                client.update_identifier(identifier_id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                                         database_id="6bd39359-b154-456d-b9c2-caa516a45732", type=IdentifierType.VIEW,
+                                         titles=[SaveIdentifierTitle(id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                                                                     title='Test Title')],
                                          publisher='TU Wien', publication_year=2024,
                                          language=Language.EN,
-                                         funders=[SaveIdentifierFunder(id=2, funder_name='FWF')],
-                                         related_identifiers=[SaveRelatedIdentifier(id=2,
-                                                                                    value='10.12345/abc',
-                                                                                    relation=RelatedIdentifierRelation.CITES,
-                                                                                    type=RelatedIdentifierType.DOI)],
-                                         descriptions=[SaveIdentifierDescription(id=2,
-                                                                                 description='Test Description')],
-                                         creators=[SaveIdentifierCreator(id=30,
+                                         funders=[SaveIdentifierFunder(id="d0dc801d-cfb7-4b07-9b20-2d7af39c913c",
+                                                                       funder_name='FWF')],
+                                         related_identifiers=[
+                                             SaveRelatedIdentifier(id="6655eba7-b0ac-4bc4-9f09-6355fec8d815",
+                                                                   value='10.12345/abc',
+                                                                   relation=RelatedIdentifierRelation.CITES,
+                                                                   type=RelatedIdentifierType.DOI)],
+                                         descriptions=[
+                                             SaveIdentifierDescription(id="d8bdc933-655c-46bd-9903-ede3928a304b",
+                                                                       description='Test Description')],
+                                         creators=[SaveIdentifierCreator(id="6bf894bc-8f55-4b5d-83cf-198b29253260",
                                                                          creator_name='Carberry, Josiah')])
             except ResponseCodeError:
                 pass
@@ -436,208 +487,239 @@ class IdentifierUnitTest(unittest.TestCase):
     def test_update_identifier_anonymous_fails(self):
         # test
         try:
-            RestClient().update_identifier(identifier_id=10,
-                                           database_id=1, type=IdentifierType.VIEW,
-                                           titles=[SaveIdentifierTitle(id=10, title='Test Title')],
+            RestClient().update_identifier(identifier_id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                                           database_id="6bd39359-b154-456d-b9c2-caa516a45732", type=IdentifierType.VIEW,
+                                           titles=[SaveIdentifierTitle(id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                                                                       title='Test Title')],
                                            publisher='TU Wien', publication_year=2024,
                                            language=Language.EN,
-                                           funders=[SaveIdentifierFunder(id=2, funder_name='FWF')],
-                                           related_identifiers=[SaveRelatedIdentifier(id=2,
-                                                                                      value='10.12345/abc',
-                                                                                      relation=RelatedIdentifierRelation.CITES,
-                                                                                      type=RelatedIdentifierType.DOI)],
-                                           descriptions=[SaveIdentifierDescription(id=2,
-                                                                                   description='Test Description')],
-                                           creators=[SaveIdentifierCreator(id=30,
+                                           funders=[SaveIdentifierFunder(id="d0dc801d-cfb7-4b07-9b20-2d7af39c913c",
+                                                                         funder_name='FWF')],
+                                           related_identifiers=[
+                                               SaveRelatedIdentifier(id="6655eba7-b0ac-4bc4-9f09-6355fec8d815",
+                                                                     value='10.12345/abc',
+                                                                     relation=RelatedIdentifierRelation.CITES,
+                                                                     type=RelatedIdentifierType.DOI)],
+                                           descriptions=[
+                                               SaveIdentifierDescription(id="d8bdc933-655c-46bd-9903-ede3928a304b",
+                                                                         description='Test Description')],
+                                           creators=[SaveIdentifierCreator(id="6bf894bc-8f55-4b5d-83cf-198b29253260",
                                                                            creator_name='Carberry, Josiah')])
         except AuthenticationError:
             pass
 
     def test_publish_identifier_succeeds(self):
         with requests_mock.Mocker() as mock:
-            exp = Identifier(id=10,
-                             database_id=1,
-                             view_id=32,
+            exp = Identifier(id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                             database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                             view_id="e5229d24-584a-43e8-b9f6-d349c3053f9c",
                              publication_year=2024,
                              publisher='TU Wien',
                              type=IdentifierType.VIEW,
                              language=Language.EN,
-                             descriptions=[IdentifierDescription(id=2, description='Test Description')],
-                             titles=[IdentifierTitle(id=3, title='Test Title')],
-                             funders=[IdentifierFunder(id=4, funder_name='FWF')],
+                             descriptions=[IdentifierDescription(id="d8bdc933-655c-46bd-9903-ede3928a304b",
+                                                                 description='Test Description')],
+                             titles=[IdentifierTitle(id="f6171539-a479-4829-9b9b-a6b474e1c7d3", title='Test Title')],
+                             funders=[IdentifierFunder(id="d0dc801d-cfb7-4b07-9b20-2d7af39c913c", funder_name='FWF')],
                              related_identifiers=[
-                                 RelatedIdentifier(id=7, value='10.12345/abc', relation=RelatedIdentifierRelation.CITES,
+                                 RelatedIdentifier(id="6655eba7-b0ac-4bc4-9f09-6355fec8d815", value='10.12345/abc',
+                                                   relation=RelatedIdentifierRelation.CITES,
                                                    type=RelatedIdentifierType.DOI)],
-                             creators=[Creator(id=5, creator_name='Carberry, Josiah')],
+                             creators=[
+                                 Creator(id="70539dff-c549-4c95-8257-9c750decf232", creator_name='Carberry, Josiah')],
                              status=IdentifierStatusType.PUBLISHED,
                              owner=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'))
             # mock
-            mock.put('/api/identifier/10/publish', json=exp.model_dump(), status_code=202)
+            mock.put('/api/identifier/f6171539-a479-4829-9b9b-a6b474e1c7d3/publish', json=exp.model_dump(), status_code=202)
             # test
             client = RestClient(username="a", password="b")
-            response = client.publish_identifier(identifier_id=10)
+            response = client.publish_identifier(identifier_id="f6171539-a479-4829-9b9b-a6b474e1c7d3")
             self.assertEqual(exp, response)
 
     def test_publish_identifier_400_fails(self):
         with requests_mock.Mocker() as mock:
-            exp = Identifier(id=10,
-                             database_id=1,
-                             view_id=32,
+            exp = Identifier(id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                             database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                             view_id="e5229d24-584a-43e8-b9f6-d349c3053f9c",
                              publication_year=2024,
                              publisher='TU Wien',
                              type=IdentifierType.VIEW,
                              language=Language.EN,
-                             descriptions=[IdentifierDescription(id=2, description='Test Description')],
-                             titles=[IdentifierTitle(id=3, title='Test Title')],
-                             funders=[IdentifierFunder(id=4, funder_name='FWF')],
+                             descriptions=[IdentifierDescription(id="d8bdc933-655c-46bd-9903-ede3928a304b",
+                                                                 description='Test Description')],
+                             titles=[IdentifierTitle(id="f6171539-a479-4829-9b9b-a6b474e1c7d3", title='Test Title')],
+                             funders=[IdentifierFunder(id="d0dc801d-cfb7-4b07-9b20-2d7af39c913c", funder_name='FWF')],
                              related_identifiers=[
-                                 RelatedIdentifier(id=7, value='10.12345/abc', relation=RelatedIdentifierRelation.CITES,
+                                 RelatedIdentifier(id="6655eba7-b0ac-4bc4-9f09-6355fec8d815", value='10.12345/abc',
+                                                   relation=RelatedIdentifierRelation.CITES,
                                                    type=RelatedIdentifierType.DOI)],
-                             creators=[Creator(id=5, creator_name='Carberry, Josiah')],
+                             creators=[
+                                 Creator(id="70539dff-c549-4c95-8257-9c750decf232", creator_name='Carberry, Josiah')],
                              status=IdentifierStatusType.PUBLISHED,
                              owner=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'))
             # mock
-            mock.put('/api/identifier/10/publish', json=exp.model_dump(), status_code=400)
+            mock.put('/api/identifier/f6171539-a479-4829-9b9b-a6b474e1c7d3/publish', json=exp.model_dump(), status_code=400)
             # test
             try:
-                RestClient(username="a", password="b").publish_identifier(identifier_id=10)
+                RestClient(username="a", password="b").publish_identifier(
+                    identifier_id="f6171539-a479-4829-9b9b-a6b474e1c7d3")
             except MalformedError:
                 pass
 
     def test_publish_identifier_403_fails(self):
         with requests_mock.Mocker() as mock:
-            exp = Identifier(id=10,
-                             database_id=1,
-                             view_id=32,
+            exp = Identifier(id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                             database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                             view_id="e5229d24-584a-43e8-b9f6-d349c3053f9c",
                              publication_year=2024,
                              publisher='TU Wien',
                              type=IdentifierType.VIEW,
                              language=Language.EN,
-                             descriptions=[IdentifierDescription(id=2, description='Test Description')],
-                             titles=[IdentifierTitle(id=3, title='Test Title')],
-                             funders=[IdentifierFunder(id=4, funder_name='FWF')],
+                             descriptions=[IdentifierDescription(id="d8bdc933-655c-46bd-9903-ede3928a304b",
+                                                                 description='Test Description')],
+                             titles=[IdentifierTitle(id="f6171539-a479-4829-9b9b-a6b474e1c7d3", title='Test Title')],
+                             funders=[IdentifierFunder(id="d0dc801d-cfb7-4b07-9b20-2d7af39c913c", funder_name='FWF')],
                              related_identifiers=[
-                                 RelatedIdentifier(id=7, value='10.12345/abc', relation=RelatedIdentifierRelation.CITES,
+                                 RelatedIdentifier(id="6655eba7-b0ac-4bc4-9f09-6355fec8d815", value='10.12345/abc',
+                                                   relation=RelatedIdentifierRelation.CITES,
                                                    type=RelatedIdentifierType.DOI)],
-                             creators=[Creator(id=5, creator_name='Carberry, Josiah')],
+                             creators=[
+                                 Creator(id="70539dff-c549-4c95-8257-9c750decf232", creator_name='Carberry, Josiah')],
                              status=IdentifierStatusType.PUBLISHED,
                              owner=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'))
             # mock
-            mock.put('/api/identifier/10/publish', json=exp.model_dump(), status_code=403)
+            mock.put('/api/identifier/f6171539-a479-4829-9b9b-a6b474e1c7d3/publish', json=exp.model_dump(), status_code=403)
             # test
             try:
-                RestClient(username="a", password="b").publish_identifier(identifier_id=10)
+                RestClient(username="a", password="b").publish_identifier(
+                    identifier_id="f6171539-a479-4829-9b9b-a6b474e1c7d3")
             except ForbiddenError:
                 pass
 
     def test_publish_identifier_404_fails(self):
         with requests_mock.Mocker() as mock:
-            exp = Identifier(id=10,
-                             database_id=1,
-                             view_id=32,
+            exp = Identifier(id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                             database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                             view_id="e5229d24-584a-43e8-b9f6-d349c3053f9c",
                              publication_year=2024,
                              publisher='TU Wien',
                              type=IdentifierType.VIEW,
                              language=Language.EN,
-                             descriptions=[IdentifierDescription(id=2, description='Test Description')],
-                             titles=[IdentifierTitle(id=3, title='Test Title')],
-                             funders=[IdentifierFunder(id=4, funder_name='FWF')],
+                             descriptions=[IdentifierDescription(id="d8bdc933-655c-46bd-9903-ede3928a304b",
+                                                                 description='Test Description')],
+                             titles=[IdentifierTitle(id="f6171539-a479-4829-9b9b-a6b474e1c7d3", title='Test Title')],
+                             funders=[IdentifierFunder(id="d0dc801d-cfb7-4b07-9b20-2d7af39c913c", funder_name='FWF')],
                              related_identifiers=[
-                                 RelatedIdentifier(id=7, value='10.12345/abc', relation=RelatedIdentifierRelation.CITES,
+                                 RelatedIdentifier(id="6655eba7-b0ac-4bc4-9f09-6355fec8d815", value='10.12345/abc',
+                                                   relation=RelatedIdentifierRelation.CITES,
                                                    type=RelatedIdentifierType.DOI)],
-                             creators=[Creator(id=5, creator_name='Carberry, Josiah')],
+                             creators=[
+                                 Creator(id="70539dff-c549-4c95-8257-9c750decf232", creator_name='Carberry, Josiah')],
                              status=IdentifierStatusType.PUBLISHED,
                              owner=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'))
             # mock
-            mock.put('/api/identifier/10/publish', json=exp.model_dump(), status_code=404)
+            mock.put('/api/identifier/f6171539-a479-4829-9b9b-a6b474e1c7d3/publish', json=exp.model_dump(), status_code=404)
             # test
             try:
-                RestClient(username="a", password="b").publish_identifier(identifier_id=10)
+                RestClient(username="a", password="b").publish_identifier(
+                    identifier_id="f6171539-a479-4829-9b9b-a6b474e1c7d3")
             except NotExistsError:
                 pass
 
     def test_publish_identifier_502_fails(self):
         with requests_mock.Mocker() as mock:
-            exp = Identifier(id=10,
-                             database_id=1,
-                             view_id=32,
+            exp = Identifier(id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                             database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                             view_id="e5229d24-584a-43e8-b9f6-d349c3053f9c",
                              publication_year=2024,
                              publisher='TU Wien',
                              type=IdentifierType.VIEW,
                              language=Language.EN,
-                             descriptions=[IdentifierDescription(id=2, description='Test Description')],
-                             titles=[IdentifierTitle(id=3, title='Test Title')],
-                             funders=[IdentifierFunder(id=4, funder_name='FWF')],
+                             descriptions=[IdentifierDescription(id="d8bdc933-655c-46bd-9903-ede3928a304b",
+                                                                 description='Test Description')],
+                             titles=[IdentifierTitle(id="f6171539-a479-4829-9b9b-a6b474e1c7d3", title='Test Title')],
+                             funders=[IdentifierFunder(id="d0dc801d-cfb7-4b07-9b20-2d7af39c913c", funder_name='FWF')],
                              related_identifiers=[
-                                 RelatedIdentifier(id=7, value='10.12345/abc', relation=RelatedIdentifierRelation.CITES,
+                                 RelatedIdentifier(id="6655eba7-b0ac-4bc4-9f09-6355fec8d815", value='10.12345/abc',
+                                                   relation=RelatedIdentifierRelation.CITES,
                                                    type=RelatedIdentifierType.DOI)],
-                             creators=[Creator(id=5, creator_name='Carberry, Josiah')],
+                             creators=[
+                                 Creator(id="70539dff-c549-4c95-8257-9c750decf232", creator_name='Carberry, Josiah')],
                              status=IdentifierStatusType.PUBLISHED,
                              owner=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'))
             # mock
-            mock.put('/api/identifier/10/publish', json=exp.model_dump(), status_code=502)
+            mock.put('/api/identifier/f6171539-a479-4829-9b9b-a6b474e1c7d3/publish', json=exp.model_dump(), status_code=502)
             # test
             try:
-                RestClient(username="a", password="b").publish_identifier(identifier_id=10)
+                RestClient(username="a", password="b").publish_identifier(
+                    identifier_id="f6171539-a479-4829-9b9b-a6b474e1c7d3")
             except ServiceConnectionError:
                 pass
 
     def test_publish_identifier_503_fails(self):
         with requests_mock.Mocker() as mock:
-            exp = Identifier(id=10,
-                             database_id=1,
-                             view_id=32,
+            exp = Identifier(id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                             database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                             view_id="e5229d24-584a-43e8-b9f6-d349c3053f9c",
                              publication_year=2024,
                              publisher='TU Wien',
                              type=IdentifierType.VIEW,
                              language=Language.EN,
-                             descriptions=[IdentifierDescription(id=2, description='Test Description')],
-                             titles=[IdentifierTitle(id=3, title='Test Title')],
-                             funders=[IdentifierFunder(id=4, funder_name='FWF')],
+                             descriptions=[IdentifierDescription(id="d8bdc933-655c-46bd-9903-ede3928a304b",
+                                                                 description='Test Description')],
+                             titles=[IdentifierTitle(id="f6171539-a479-4829-9b9b-a6b474e1c7d3", title='Test Title')],
+                             funders=[IdentifierFunder(id="d0dc801d-cfb7-4b07-9b20-2d7af39c913c", funder_name='FWF')],
                              related_identifiers=[
-                                 RelatedIdentifier(id=7, value='10.12345/abc', relation=RelatedIdentifierRelation.CITES,
+                                 RelatedIdentifier(id="6655eba7-b0ac-4bc4-9f09-6355fec8d815", value='10.12345/abc',
+                                                   relation=RelatedIdentifierRelation.CITES,
                                                    type=RelatedIdentifierType.DOI)],
-                             creators=[Creator(id=5, creator_name='Carberry, Josiah')],
+                             creators=[
+                                 Creator(id="70539dff-c549-4c95-8257-9c750decf232", creator_name='Carberry, Josiah')],
                              status=IdentifierStatusType.PUBLISHED,
                              owner=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'))
             # mock
-            mock.put('/api/identifier/10/publish', json=exp.model_dump(), status_code=503)
+            mock.put('/api/identifier/f6171539-a479-4829-9b9b-a6b474e1c7d3/publish', json=exp.model_dump(), status_code=503)
             # test
             try:
-                RestClient(username="a", password="b").publish_identifier(identifier_id=10)
+                RestClient(username="a", password="b").publish_identifier(
+                    identifier_id="f6171539-a479-4829-9b9b-a6b474e1c7d3")
             except ServiceError:
                 pass
 
     def test_publish_identifier_unknown_fails(self):
         with requests_mock.Mocker() as mock:
-            exp = Identifier(id=10,
-                             database_id=1,
-                             view_id=32,
+            exp = Identifier(id="f6171539-a479-4829-9b9b-a6b474e1c7d3",
+                             database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                             view_id="e5229d24-584a-43e8-b9f6-d349c3053f9c",
                              publication_year=2024,
                              publisher='TU Wien',
                              type=IdentifierType.VIEW,
                              language=Language.EN,
-                             descriptions=[IdentifierDescription(id=2, description='Test Description')],
-                             titles=[IdentifierTitle(id=3, title='Test Title')],
-                             funders=[IdentifierFunder(id=4, funder_name='FWF')],
+                             descriptions=[IdentifierDescription(id="d8bdc933-655c-46bd-9903-ede3928a304b",
+                                                                 description='Test Description')],
+                             titles=[IdentifierTitle(id="f6171539-a479-4829-9b9b-a6b474e1c7d3", title='Test Title')],
+                             funders=[IdentifierFunder(id="d0dc801d-cfb7-4b07-9b20-2d7af39c913c", funder_name='FWF')],
                              related_identifiers=[
-                                 RelatedIdentifier(id=7, value='10.12345/abc', relation=RelatedIdentifierRelation.CITES,
+                                 RelatedIdentifier(id="6655eba7-b0ac-4bc4-9f09-6355fec8d815", value='10.12345/abc',
+                                                   relation=RelatedIdentifierRelation.CITES,
                                                    type=RelatedIdentifierType.DOI)],
-                             creators=[Creator(id=5, creator_name='Carberry, Josiah')],
+                             creators=[
+                                 Creator(id="70539dff-c549-4c95-8257-9c750decf232", creator_name='Carberry, Josiah')],
                              status=IdentifierStatusType.PUBLISHED,
                              owner=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'))
             # mock
-            mock.put('/api/identifier/10/publish', json=exp.model_dump(), status_code=200)
+            mock.put('/api/identifier/f6171539-a479-4829-9b9b-a6b474e1c7d3/publish', json=exp.model_dump(), status_code=200)
             # test
             try:
-                RestClient(username="a", password="b").publish_identifier(identifier_id=10)
+                RestClient(username="a", password="b").publish_identifier(
+                    identifier_id="f6171539-a479-4829-9b9b-a6b474e1c7d3")
             except ResponseCodeError:
                 pass
 
     def test_publish_identifier_anonymous_fails(self):
         # test
         try:
-            RestClient().publish_identifier(identifier_id=10)
+            RestClient().publish_identifier(identifier_id="f6171539-a479-4829-9b9b-a6b474e1c7d3")
         except AuthenticationError:
             pass
 
diff --git a/lib/python/tests/test_unit_query.py b/lib/python/tests/test_unit_query.py
index 415a35b86ce3f2e44d517506cf0fe70644ad5659..fb23a3c9491305e6be650c81c1566a985d6c9f04 100644
--- a/lib/python/tests/test_unit_query.py
+++ b/lib/python/tests/test_unit_query.py
@@ -18,10 +18,11 @@ class QueryUnitTest(unittest.TestCase):
             exp = [{'id': 1, 'username': 'foo'}, {'id': 2, 'username': 'bar'}]
             df = DataFrame.from_records(json.dumps(exp))
             # mock
-            mock.post('/api/database/1/subset', json=json.dumps(exp), headers={'X-Id': '1'}, status_code=201)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset', json=json.dumps(exp),
+                      headers={'X-Id': '1'}, status_code=201)
             # test
             client = RestClient(username="a", password="b")
-            response = client.create_subset(database_id=1, page=0, size=10,
+            response = client.create_subset(database_id="6bd39359-b154-456d-b9c2-caa516a45732", page=0, size=10,
                                             timestamp=datetime.datetime(2024, 1, 1, 0, 0, 0, 0, datetime.timezone.utc),
                                             query="SELECT id, username FROM some_table WHERE id IN (1,2)")
             self.assertTrue(DataFrame.equals(df, response))
@@ -29,11 +30,11 @@ class QueryUnitTest(unittest.TestCase):
     def test_create_subset_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/subset', status_code=400)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset', status_code=400)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.create_subset(database_id=1,
+                client.create_subset(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                      query="SELECT id, username FROM some_table WHERE id IN (1,2)")
             except MalformedError:
                 pass
@@ -41,11 +42,11 @@ class QueryUnitTest(unittest.TestCase):
     def test_create_subset_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/subset', status_code=403)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset', status_code=403)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.create_subset(database_id=1,
+                client.create_subset(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                      query="SELECT id, username FROM some_table WHERE id IN (1,2)")
             except ForbiddenError:
                 pass
@@ -53,11 +54,11 @@ class QueryUnitTest(unittest.TestCase):
     def test_create_subset_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/subset', status_code=404)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset', status_code=404)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.create_subset(database_id=1,
+                client.create_subset(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                      query="SELECT id, username FROM some_table WHERE id IN (1,2)")
             except NotExistsError:
                 pass
@@ -65,11 +66,11 @@ class QueryUnitTest(unittest.TestCase):
     def test_create_subset_417_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/subset', status_code=417)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset', status_code=417)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.create_subset(database_id=1,
+                client.create_subset(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                      query="SELECT id, username FROM some_table WHERE id IN (1,2)")
             except QueryStoreError:
                 pass
@@ -77,11 +78,11 @@ class QueryUnitTest(unittest.TestCase):
     def test_create_subset_501_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/subset', status_code=501)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset', status_code=501)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.create_subset(database_id=1,
+                client.create_subset(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                      query="SELECT id, username FROM some_table WHERE id IN (1,2)")
             except FormatNotAvailable:
                 pass
@@ -89,11 +90,11 @@ class QueryUnitTest(unittest.TestCase):
     def test_create_subset_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/subset', status_code=503)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset', status_code=503)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.create_subset(database_id=1,
+                client.create_subset(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                      query="SELECT id, username FROM some_table WHERE id IN (1,2)")
             except ServiceError:
                 pass
@@ -101,11 +102,11 @@ class QueryUnitTest(unittest.TestCase):
     def test_create_subset_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/subset', status_code=200)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset', status_code=200)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.create_subset(database_id=1,
+                client.create_subset(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                      query="SELECT id, username FROM some_table WHERE id IN (1,2)")
             except ResponseCodeError:
                 pass
@@ -115,81 +116,94 @@ class QueryUnitTest(unittest.TestCase):
             exp = [{'id': 1, 'username': 'foo'}, {'id': 2, 'username': 'bar'}]
             df = DataFrame.from_records(json.dumps(exp))
             # mock
-            mock.post('/api/database/1/subset', json=json.dumps(exp), headers={'X-Id': '1'}, status_code=201)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset', json=json.dumps(exp),
+                      headers={'X-Id': '1'}, status_code=201)
             # test
 
             client = RestClient()
-            response = client.create_subset(database_id=1, page=0, size=10,
+            response = client.create_subset(database_id="6bd39359-b154-456d-b9c2-caa516a45732", page=0, size=10,
                                             query="SELECT id, username FROM some_table WHERE id IN (1,2)")
             self.assertTrue(DataFrame.equals(df, response))
 
     def test_get_subset_succeeds(self):
         with requests_mock.Mocker() as mock:
-            exp = Query(id=6,
+            exp = Query(id="e1df2bb8-1f12-494a-ade5-2c4aecdab939",
                         owner=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'),
                         execution=datetime.datetime(2024, 1, 1, 0, 0, 0, 0, datetime.timezone.utc),
                         query='SELECT id, username FROM some_table WHERE id IN (1,2)',
                         query_normalized='SELECT id, username FROM some_table WHERE id IN (1,2)',
                         type=QueryType.QUERY,
-                        database_id=1,
+                        database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                         query_hash='da5ff66c4a57683171e2ffcec25298ee684680d1e03633cd286f9067d6924ad8',
                         result_hash='464740ba612225913bb15b26f13377707949b55e65288e89c3f8b4c6469aecb4',
                         is_persisted=False,
                         result_number=None,
                         identifiers=[])
             # mock
-            mock.get('/api/database/1/subset/6', json=exp.model_dump())
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939',
+                     json=exp.model_dump())
             # test
-            response = RestClient().get_subset(database_id=1, subset_id=6)
+            response = RestClient().get_subset(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                               subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939")
             self.assertEqual(exp, response)
 
     def test_get_subset_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/subset/6', status_code=403)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939',
+                     status_code=403)
             # test
             try:
-                RestClient().get_subset(database_id=1, subset_id=6)
+                RestClient().get_subset(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                        subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939")
             except ForbiddenError:
                 pass
 
     def test_get_subset_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/subset/6', status_code=404)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939',
+                     status_code=404)
             # test
             try:
-                RestClient().get_subset(database_id=1, subset_id=6)
+                RestClient().get_subset(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                        subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939")
             except NotExistsError:
                 pass
 
     def test_get_subset_406_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/subset/6', status_code=406)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939',
+                     status_code=406)
             # test
             try:
-                RestClient().get_subset(database_id=1, subset_id=6)
+                RestClient().get_subset(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                        subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939")
             except FormatNotAvailable:
                 pass
 
     def test_get_subset_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/subset/6', status_code=503)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939',
+                     status_code=503)
             # test
             try:
-                RestClient().get_subset(database_id=1, subset_id=6)
+                RestClient().get_subset(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                        subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939")
             except ServiceError:
                 pass
 
     def test_get_subset_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/subset/6', status_code=202)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939',
+                     status_code=202)
             # test
             try:
-                RestClient().get_subset(database_id=1, subset_id=6)
+                RestClient().get_subset(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                        subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939")
             except ResponseCodeError:
                 pass
 
@@ -197,156 +211,180 @@ class QueryUnitTest(unittest.TestCase):
         with requests_mock.Mocker() as mock:
             exp = []
             # mock
-            mock.get('/api/database/1/subset', json=[])
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset', json=[])
             # test
-            response = RestClient().get_queries(database_id=1)
+            response = RestClient().get_queries(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             self.assertEqual(exp, response)
 
     def test_update_subset_succeeds(self):
         with requests_mock.Mocker() as mock:
-            exp = Query(id=6,
+            exp = Query(id="e1df2bb8-1f12-494a-ade5-2c4aecdab939",
                         owner=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'),
                         execution=datetime.datetime(2024, 1, 1, 0, 0, 0, 0, datetime.timezone.utc),
                         query='SELECT id, username FROM some_table WHERE id IN (1,2)',
                         query_normalized='SELECT id, username FROM some_table WHERE id IN (1,2)',
                         type=QueryType.QUERY,
-                        database_id=1,
+                        database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                         query_hash='da5ff66c4a57683171e2ffcec25298ee684680d1e03633cd286f9067d6924ad8',
                         result_hash='464740ba612225913bb15b26f13377707949b55e65288e89c3f8b4c6469aecb4',
                         is_persisted=True,
                         result_number=None,
                         identifiers=[])
             # mock
-            mock.put('/api/database/1/subset/6', json=exp.model_dump(), status_code=202)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939',
+                     json=exp.model_dump(),
+                     status_code=202)
             # test
-            response = RestClient(username='foo', password='bar').update_subset(database_id=1, subset_id=6,
-                                                                                persist=True)
+            response = RestClient(username='foo', password='bar').update_subset(
+                database_id="6bd39359-b154-456d-b9c2-caa516a45732", subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939",
+                persist=True)
             self.assertEqual(exp, response)
 
     def test_update_subset_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/subset/6', status_code=400)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939',
+                     status_code=400)
             # test
             try:
-                RestClient(username='foo', password='bar').update_subset(database_id=1, subset_id=6, persist=True)
+                RestClient(username='foo', password='bar').update_subset(
+                    database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                    subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939", persist=True)
             except MalformedError:
                 pass
 
     def test_update_subset_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/subset/6', status_code=403)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939',
+                     status_code=403)
             # test
             try:
-                RestClient(username='foo', password='bar').update_subset(database_id=1, subset_id=6, persist=True)
+                RestClient(username='foo', password='bar').update_subset(
+                    database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                    subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939", persist=True)
             except ForbiddenError:
                 pass
 
     def test_update_subset_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/subset/6', status_code=404)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939',
+                     status_code=404)
             # test
             try:
-                RestClient(username='foo', password='bar').update_subset(database_id=1, subset_id=6, persist=True)
+                RestClient(username='foo', password='bar').update_subset(
+                    database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                    subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939", persist=True)
             except NotExistsError:
                 pass
 
     def test_update_subset_417_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/subset/6', status_code=417)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939',
+                     status_code=417)
             # test
             try:
-                RestClient(username='foo', password='bar').update_subset(database_id=1, subset_id=6, persist=True)
+                RestClient(username='foo', password='bar').update_subset(
+                    database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                    subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939", persist=True)
             except QueryStoreError:
                 pass
 
     def test_update_subset_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/subset/6', status_code=503)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939',
+                     status_code=503)
             # test
             try:
-                RestClient(username='foo', password='bar').update_subset(database_id=1, subset_id=6, persist=True)
+                RestClient(username='foo', password='bar').update_subset(
+                    database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                    subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939", persist=True)
             except ServiceError:
                 pass
 
     def test_update_subset_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/subset/6', status_code=200)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939',
+                     status_code=200)
             # test
             try:
-                RestClient(username='foo', password='bar').update_subset(database_id=1, subset_id=6, persist=True)
+                RestClient(username='foo', password='bar').update_subset(
+                    database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                    subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939",
+                    persist=True)
             except ResponseCodeError:
                 pass
 
     def test_update_subset_anonymous_fails(self):
         # test
         try:
-            RestClient().update_subset(database_id=1, subset_id=6, persist=True)
+            RestClient().update_subset(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                       subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939",
+                                       persist=True)
         except AuthenticationError:
             pass
 
     def test_get_queries_succeeds(self):
         with requests_mock.Mocker() as mock:
-            exp = [Query(id=6,
+            exp = [Query(id="e1df2bb8-1f12-494a-ade5-2c4aecdab939",
                          owner=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'),
                          execution=datetime.datetime(2024, 1, 1, 0, 0, 0, 0, datetime.timezone.utc),
                          query='SELECT id, username FROM some_table WHERE id IN (1,2)',
                          query_normalized='SELECT id, username FROM some_table WHERE id IN (1,2)',
                          type=QueryType.QUERY,
-                         database_id=1,
+                         database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                          query_hash='da5ff66c4a57683171e2ffcec25298ee684680d1e03633cd286f9067d6924ad8',
                          result_hash='464740ba612225913bb15b26f13377707949b55e65288e89c3f8b4c6469aecb4',
                          is_persisted=False,
                          result_number=None,
                          identifiers=[])]
             # mock
-            mock.get('/api/database/1/subset', json=[exp[0].model_dump()])
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset', json=[exp[0].model_dump()])
             # test
-            response = RestClient().get_queries(database_id=1)
+            response = RestClient().get_queries(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             self.assertEqual(exp, response)
 
     def test_get_queries_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/subset', status_code=403)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset', status_code=403)
             # test
             try:
-                RestClient().get_queries(database_id=1)
+                RestClient().get_queries(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except ForbiddenError:
                 pass
 
     def test_get_queries_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/subset', status_code=404)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset', status_code=404)
             # test
             try:
-                RestClient().get_queries(database_id=1)
+                RestClient().get_queries(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except NotExistsError:
                 pass
 
     def test_get_queries_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/subset', status_code=503)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset', status_code=503)
             # test
             try:
-                RestClient().get_queries(database_id=1)
+                RestClient().get_queries(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except ServiceError:
                 pass
 
     def test_get_queries_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/subset', status_code=202)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset', status_code=202)
             # test
             try:
-                RestClient().get_queries(database_id=1)
+                RestClient().get_queries(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except ResponseCodeError:
                 pass
 
@@ -355,9 +393,12 @@ class QueryUnitTest(unittest.TestCase):
             exp = [{'id': 1, 'username': 'foo'}, {'id': 2, 'username': 'bar'}]
             df = DataFrame.from_records(json.dumps(exp))
             # mock
-            mock.get('/api/database/1/subset/6/data', json=json.dumps(exp))
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939/data',
+                json=json.dumps(exp))
             # test
-            response = RestClient().get_subset_data(database_id=1, subset_id=6)
+            response = RestClient().get_subset_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                    subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939")
             self.assertTrue(DataFrame.equals(df, response))
 
     def test_get_subset_data_dataframe_succeeds(self):
@@ -365,59 +406,77 @@ class QueryUnitTest(unittest.TestCase):
             exp = [{'id': 1, 'username': 'foo'}, {'id': 2, 'username': 'bar'}]
             df = DataFrame.from_records(json.dumps(exp))
             # mock
-            mock.get('/api/database/1/subset/6/data', json=json.dumps(exp))
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939/data',
+                json=json.dumps(exp))
             # test
-            response = RestClient().get_subset_data(database_id=1, subset_id=6)
+            response = RestClient().get_subset_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                    subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939")
             self.assertEqual(df.shape, response.shape)
             self.assertTrue(DataFrame.equals(df, response))
 
     def test_get_subset_data_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/subset/6/data', status_code=400)
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939/data',
+                status_code=400)
             # test
             try:
-                RestClient().get_subset_data(database_id=1, subset_id=6)
+                RestClient().get_subset_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                             subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939")
             except MalformedError:
                 pass
 
     def test_get_subset_data_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/subset/6/data', status_code=403)
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939/data',
+                status_code=403)
             # test
             try:
-                RestClient().get_subset_data(database_id=1, subset_id=6)
+                RestClient().get_subset_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                             subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939")
             except ForbiddenError:
                 pass
 
     def test_get_subset_data_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/subset/6/data', status_code=404)
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939/data',
+                status_code=404)
             # test
             try:
-                RestClient().get_subset_data(database_id=1, subset_id=6)
+                RestClient().get_subset_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                             subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939")
             except NotExistsError:
                 pass
 
     def test_get_subset_data_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/subset/6/data', status_code=503)
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939/data',
+                status_code=503)
             # test
             try:
-                RestClient().get_subset_data(database_id=1, subset_id=6)
+                RestClient().get_subset_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                             subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939")
             except ServiceError:
                 pass
 
     def test_get_subset_data_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/subset/6/data', status_code=202)
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939/data',
+                status_code=202)
             # test
             try:
-                RestClient().get_subset_data(database_id=1, subset_id=6)
+                RestClient().get_subset_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                             subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939")
             except ResponseCodeError:
                 pass
 
@@ -425,58 +484,76 @@ class QueryUnitTest(unittest.TestCase):
         with requests_mock.Mocker() as mock:
             exp = 2
             # mock
-            mock.head('/api/database/1/subset/6/data', headers={'X-Count': str(exp)})
+            mock.head(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939/data',
+                headers={'X-Count': str(exp)})
             # test
-            response = RestClient().get_subset_data_count(database_id=1, subset_id=6)
+            response = RestClient().get_subset_data_count(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                          subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939")
             self.assertEqual(exp, response)
 
     def test_get_subset_data_count_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.head('/api/database/1/subset/6/data', status_code=400)
+            mock.head(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939/data',
+                status_code=400)
             # test
             try:
-                RestClient().get_subset_data_count(database_id=1, subset_id=6)
+                RestClient().get_subset_data_count(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                   subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939")
             except MalformedError:
                 pass
 
     def test_get_subset_data_count_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.head('/api/database/1/subset/6/data', status_code=403)
+            mock.head(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939/data',
+                status_code=403)
             # test
             try:
-                RestClient().get_subset_data_count(database_id=1, subset_id=6)
+                RestClient().get_subset_data_count(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                   subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939")
             except ForbiddenError:
                 pass
 
     def test_get_subset_data_count_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.head('/api/database/1/subset/6/data', status_code=404)
+            mock.head(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939/data',
+                status_code=404)
             # test
             try:
-                RestClient().get_subset_data_count(database_id=1, subset_id=6)
+                RestClient().get_subset_data_count(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                   subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939")
             except NotExistsError:
                 pass
 
     def test_get_subset_data_count_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.head('/api/database/1/subset/6/data', status_code=503)
+            mock.head(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939/data',
+                status_code=503)
             # test
             try:
-                RestClient().get_subset_data_count(database_id=1, subset_id=6)
+                RestClient().get_subset_data_count(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                   subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939")
             except ServiceError:
                 pass
 
     def test_get_subset_data_count_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.head('/api/database/1/subset/6/data', status_code=202)
+            mock.head(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/subset/e1df2bb8-1f12-494a-ade5-2c4aecdab939/data',
+                status_code=202)
             # test
             try:
-                RestClient().get_subset_data_count(database_id=1, subset_id=6)
+                RestClient().get_subset_data_count(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                   subset_id="e1df2bb8-1f12-494a-ade5-2c4aecdab939")
             except ResponseCodeError:
                 pass
 
diff --git a/lib/python/tests/test_unit_table.py b/lib/python/tests/test_unit_table.py
index 3518439b8c4166d9fe2b891b095ca7086ddef7c2..a5632f4237f2ab9a34b111e5168cebe7fc084ef6 100644
--- a/lib/python/tests/test_unit_table.py
+++ b/lib/python/tests/test_unit_table.py
@@ -15,8 +15,8 @@ from dbrepo.api.exceptions import MalformedError, ForbiddenError, NotExistsError
 class TableUnitTest(unittest.TestCase):
 
     def test_create_table_succeeds(self):
-        exp = TableBrief(id=2,
-                         database_id=1,
+        exp = TableBrief(id="029d773f-f98b-40c0-ab22-b8b1635d4fbc",
+                         database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                          name="Test",
                          description="Test Table",
                          internal_name="test",
@@ -26,10 +26,12 @@ class TableUnitTest(unittest.TestCase):
                          is_schema_public=True)
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/table', json=exp.model_dump(), status_code=201)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table', json=exp.model_dump(),
+                      status_code=201)
             # test
             client = RestClient(username="a", password="b")
-            response = client.create_table(database_id=1, name="Test", description="Test Table", columns=[],
+            response = client.create_table(database_id="6bd39359-b154-456d-b9c2-caa516a45732", name="Test",
+                                           description="Test Table", columns=[],
                                            is_public=True, is_schema_public=True,
                                            constraints=CreateTableConstraints())
             self.assertEqual(exp, response)
@@ -37,11 +39,12 @@ class TableUnitTest(unittest.TestCase):
     def test_create_table_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/table', status_code=400)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table', status_code=400)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                response = client.create_table(database_id=1, name="Test", description="Test Table", columns=[],
+                response = client.create_table(database_id="6bd39359-b154-456d-b9c2-caa516a45732", name="Test",
+                                               description="Test Table", columns=[],
                                                is_public=True, is_schema_public=True,
                                                constraints=CreateTableConstraints())
             except MalformedError:
@@ -50,10 +53,11 @@ class TableUnitTest(unittest.TestCase):
     def test_create_table_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/table', status_code=403)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table', status_code=403)
             # test
             try:
-                RestClient(username="a", password="b").create_table(database_id=1, name="Test",
+                RestClient(username="a", password="b").create_table(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                                    name="Test",
                                                                     description="Test Table", columns=[],
                                                                     is_public=True, is_schema_public=True,
                                                                     constraints=CreateTableConstraints())
@@ -63,11 +67,12 @@ class TableUnitTest(unittest.TestCase):
     def test_create_table_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/table', status_code=404)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table', status_code=404)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                response = client.create_table(database_id=1, name="Test", description="Test Table", columns=[],
+                response = client.create_table(database_id="6bd39359-b154-456d-b9c2-caa516a45732", name="Test",
+                                               description="Test Table", columns=[],
                                                is_public=True, is_schema_public=True,
                                                constraints=CreateTableConstraints())
             except NotExistsError:
@@ -76,11 +81,12 @@ class TableUnitTest(unittest.TestCase):
     def test_create_table_409_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/table', status_code=409)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table', status_code=409)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                response = client.create_table(database_id=1, name="Test", description="Test Table", columns=[],
+                response = client.create_table(database_id="6bd39359-b154-456d-b9c2-caa516a45732", name="Test",
+                                               description="Test Table", columns=[],
                                                is_public=True, is_schema_public=True,
                                                constraints=CreateTableConstraints())
             except NameExistsError:
@@ -89,11 +95,12 @@ class TableUnitTest(unittest.TestCase):
     def test_create_table_502_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/table', status_code=502)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table', status_code=502)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                response = client.create_table(database_id=1, name="Test", description="Test Table", columns=[],
+                response = client.create_table(database_id="6bd39359-b154-456d-b9c2-caa516a45732", name="Test",
+                                               description="Test Table", columns=[],
                                                is_public=True, is_schema_public=True,
                                                constraints=CreateTableConstraints())
             except ServiceConnectionError:
@@ -102,11 +109,12 @@ class TableUnitTest(unittest.TestCase):
     def test_create_table_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/table', status_code=503)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table', status_code=503)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                response = client.create_table(database_id=1, name="Test", description="Test Table", columns=[],
+                response = client.create_table(database_id="6bd39359-b154-456d-b9c2-caa516a45732", name="Test",
+                                               description="Test Table", columns=[],
                                                is_public=True, is_schema_public=True,
                                                constraints=CreateTableConstraints())
             except ServiceError:
@@ -115,11 +123,12 @@ class TableUnitTest(unittest.TestCase):
     def test_create_table_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/table', status_code=200)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table', status_code=200)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                response = client.create_table(database_id=1, name="Test", description="Test Table", columns=[],
+                response = client.create_table(database_id="6bd39359-b154-456d-b9c2-caa516a45732", name="Test",
+                                               description="Test Table", columns=[],
                                                is_public=True, is_schema_public=True,
                                                constraints=CreateTableConstraints())
             except ResponseCodeError:
@@ -128,10 +137,11 @@ class TableUnitTest(unittest.TestCase):
     def test_create_table_anonymous_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/table', status_code=409)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table', status_code=409)
             # test
             try:
-                response = RestClient().create_table(database_id=1, name="Test", description="Test Table", columns=[],
+                response = RestClient().create_table(database_id="6bd39359-b154-456d-b9c2-caa516a45732", name="Test",
+                                                     description="Test Table", columns=[],
                                                      is_public=True, is_schema_public=True,
                                                      constraints=CreateTableConstraints())
             except AuthenticationError:
@@ -140,64 +150,64 @@ class TableUnitTest(unittest.TestCase):
     def test_get_tables_empty_succeeds(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/table', json=[])
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table', json=[])
             # test
-            response = RestClient().get_tables(database_id=1)
+            response = RestClient().get_tables(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             self.assertEqual([], response)
 
     def test_get_tables_succeeds(self):
         with requests_mock.Mocker() as mock:
-            exp = [TableBrief(id=2,
+            exp = [TableBrief(id="029d773f-f98b-40c0-ab22-b8b1635d4fbc",
                               name="Test",
                               description="Test Table",
-                              database_id=1,
+                              database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                               internal_name="test",
                               is_public=True,
                               is_schema_public=True,
                               owned_by='8638c043-5145-4be8-a3e4-4b79991b0a16',
                               is_versioned=True)]
             # mock
-            mock.get('/api/database/1/table', json=[exp[0].model_dump()])
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table', json=[exp[0].model_dump()])
             # test
-            response = RestClient().get_tables(database_id=1)
+            response = RestClient().get_tables(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             self.assertEqual(exp, response)
 
     def test_get_tables_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/table', status_code=403)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table', status_code=403)
             # test
             try:
-                RestClient().get_tables(database_id=1)
+                RestClient().get_tables(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except ForbiddenError:
                 pass
 
     def test_get_tables_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/table', status_code=404)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table', status_code=404)
             # test
             try:
-                RestClient().get_tables(database_id=1)
+                RestClient().get_tables(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except NotExistsError:
                 pass
 
     def test_get_tables_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/table', status_code=202)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table', status_code=202)
             # test
             try:
-                RestClient().get_tables(database_id=1)
+                RestClient().get_tables(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except ResponseCodeError:
                 pass
 
     def test_get_table_succeeds(self):
         with requests_mock.Mocker() as mock:
-            exp = Table(id=2,
+            exp = Table(id="029d773f-f98b-40c0-ab22-b8b1635d4fbc",
                         name="Test",
                         description="Test Table",
-                        database_id=1,
+                        database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                         internal_name="test",
                         owner=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'),
                         is_versioned=True,
@@ -208,146 +218,174 @@ class TableUnitTest(unittest.TestCase):
                         constraints=Constraints(uniques=[],
                                                 foreign_keys=[],
                                                 checks=[],
-                                                primary_key=[PrimaryKey(id=1,
-                                                                        table=TableBrief(id=2, database_id=1,
-                                                                                         name='Other',
-                                                                                         internal_name='other',
-                                                                                         description=None,
-                                                                                         is_versioned=True,
-                                                                                         is_public=True,
-                                                                                         is_schema_public=True,
-                                                                                         owned_by='8638c043-5145-4be8-a3e4-4b79991b0a16'),
-                                                                        column=ColumnBrief(id=1, table_id=2,
-                                                                                           database_id=1,
-                                                                                           name='id',
-                                                                                           alias=None,
-                                                                                           internal_name='id',
-                                                                                           type=ColumnType.BIGINT))]),
-                        columns=[Column(id=1,
+                                                primary_key=[PrimaryKey(id="1516310f-ecb5-4614-abe2-3b96114e1484",
+                                                                        table=TableBrief(
+                                                                            id="029d773f-f98b-40c0-ab22-b8b1635d4fbc",
+                                                                            database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                                            name='Other',
+                                                                            internal_name='other',
+                                                                            description=None,
+                                                                            is_versioned=True,
+                                                                            is_public=True,
+                                                                            is_schema_public=True,
+                                                                            owned_by='8638c043-5145-4be8-a3e4-4b79991b0a16'),
+                                                                        column=ColumnBrief(
+                                                                            id="31a533b6-8ddf-43d6-ac6a-b9da597cb976",
+                                                                            table_id="",
+                                                                            database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                                            name='id',
+                                                                            alias=None,
+                                                                            internal_name='id',
+                                                                            type=ColumnType.BIGINT))]),
+                        columns=[Column(id="31a533b6-8ddf-43d6-ac6a-b9da597cb976",
                                         name="ID",
                                         ord=0,
-                                        database_id=1,
-                                        table_id=2,
+                                        database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                        table_id="029d773f-f98b-40c0-ab22-b8b1635d4fbc",
                                         internal_name="id",
                                         type=ColumnType.BIGINT,
                                         is_null_allowed=False)])
             # mock
-            mock.get('/api/database/1/table/2', json=exp.model_dump())
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692',
+                     json=exp.model_dump())
             # test
-            response = RestClient().get_table(database_id=1, table_id=2)
+            response = RestClient().get_table(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                              table_id="b3230b86-4743-498d-9015-3fad58049692")
             self.assertEqual(exp, response)
 
     def test_get_table_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/table/2', status_code=403)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692',
+                     status_code=403)
             # test
             try:
-                response = RestClient().get_table(database_id=1, table_id=2)
+                response = RestClient().get_table(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                  table_id="b3230b86-4743-498d-9015-3fad58049692")
             except ForbiddenError:
                 pass
 
     def test_get_table_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/table/2', status_code=404)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692',
+                     status_code=404)
             # test
             try:
-                response = RestClient().get_table(database_id=1, table_id=2)
+                response = RestClient().get_table(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                  table_id="b3230b86-4743-498d-9015-3fad58049692")
             except NotExistsError:
                 pass
 
     def test_get_table_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/table/2', status_code=202)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692',
+                     status_code=202)
             # test
             try:
-                response = RestClient().get_table(database_id=1, table_id=2)
+                response = RestClient().get_table(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                  table_id="b3230b86-4743-498d-9015-3fad58049692")
             except ResponseCodeError:
                 pass
 
     def test_delete_table_succeeds(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/table/2', status_code=202)
+            mock.delete('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692',
+                        status_code=202)
             # test
             client = RestClient(username="a", password="b")
-            client.delete_table(database_id=1, table_id=2)
+            client.delete_table(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                table_id="b3230b86-4743-498d-9015-3fad58049692")
 
     def test_delete_table_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/table/2', status_code=400)
+            mock.delete('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692',
+                        status_code=400)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.delete_table(database_id=1, table_id=2)
+                client.delete_table(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                    table_id="b3230b86-4743-498d-9015-3fad58049692")
             except MalformedError:
                 pass
 
     def test_delete_table_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/table/2', status_code=403)
+            mock.delete('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692',
+                        status_code=403)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.delete_table(database_id=1, table_id=2)
+                client.delete_table(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                    table_id="b3230b86-4743-498d-9015-3fad58049692")
             except ForbiddenError:
                 pass
 
     def test_delete_table_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/table/2', status_code=404)
+            mock.delete('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692',
+                        status_code=404)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.delete_table(database_id=1, table_id=2)
+                client.delete_table(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                    table_id="b3230b86-4743-498d-9015-3fad58049692")
             except NotExistsError:
                 pass
 
     def test_delete_table_502_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/table/2', status_code=502)
+            mock.delete('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692',
+                        status_code=502)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.delete_table(database_id=1, table_id=2)
+                client.delete_table(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                    table_id="b3230b86-4743-498d-9015-3fad58049692")
             except ServiceConnectionError:
                 pass
 
     def test_delete_table_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/table/2', status_code=503)
+            mock.delete('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692',
+                        status_code=503)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.delete_table(database_id=1, table_id=2)
+                client.delete_table(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                    table_id="b3230b86-4743-498d-9015-3fad58049692")
             except ServiceError:
                 pass
 
     def test_delete_table_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/table/2', status_code=200)
+            mock.delete('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692',
+                        status_code=200)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.delete_table(database_id=1, table_id=2)
+                client.delete_table(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                    table_id="b3230b86-4743-498d-9015-3fad58049692")
             except ResponseCodeError:
                 pass
 
     def test_delete_table_anonymous_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/table/2', status_code=404)
+            mock.delete('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692',
+                        status_code=404)
             # test
             try:
-                RestClient().delete_table(database_id=1, table_id=2)
+                RestClient().delete_table(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                          table_id="b3230b86-4743-498d-9015-3fad58049692")
             except AuthenticationError:
                 pass
 
@@ -357,58 +395,76 @@ class TableUnitTest(unittest.TestCase):
                            total=2,
                            timestamp=datetime.datetime(2024, 1, 1, 0, 0, 0, 0, datetime.timezone.utc))]
             # mock
-            mock.get('/api/database/1/table/9/history?size=100', json=[exp[0].model_dump()])
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/history?size=100',
+                json=[exp[0].model_dump()])
             # test
-            response = RestClient().get_table_history(database_id=1, table_id=9)
+            response = RestClient().get_table_history(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                      table_id="b3230b86-4743-498d-9015-3fad58049692")
             self.assertEqual(exp, response)
 
     def test_get_table_history_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/table/9/history?size=100', status_code=400)
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/history?size=100',
+                status_code=400)
             # test
             try:
-                RestClient().get_table_history(database_id=1, table_id=9)
+                RestClient().get_table_history(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                               table_id="b3230b86-4743-498d-9015-3fad58049692")
             except MalformedError:
                 pass
 
     def test_get_table_history_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/table/9/history?size=100', status_code=403)
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/history?size=100',
+                status_code=403)
             # test
             try:
-                RestClient().get_table_history(database_id=1, table_id=9)
+                RestClient().get_table_history(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                               table_id="b3230b86-4743-498d-9015-3fad58049692")
             except ForbiddenError:
                 pass
 
     def test_get_table_history_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/table/9/history?size=100', status_code=404)
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/history?size=100',
+                status_code=404)
             # test
             try:
-                RestClient().get_table_history(database_id=1, table_id=9)
+                RestClient().get_table_history(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                               table_id="b3230b86-4743-498d-9015-3fad58049692")
             except NotExistsError:
                 pass
 
     def test_get_table_history_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/table/9/history?size=100', status_code=503)
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/history?size=100',
+                status_code=503)
             # test
             try:
-                RestClient().get_table_history(database_id=1, table_id=9)
+                RestClient().get_table_history(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                               table_id="b3230b86-4743-498d-9015-3fad58049692")
             except ServiceError:
                 pass
 
     def test_get_table_history_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/table/9/history?size=100', status_code=202)
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/history?size=100',
+                status_code=202)
             # test
             try:
-                RestClient().get_table_history(database_id=1, table_id=9)
+                RestClient().get_table_history(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                               table_id="b3230b86-4743-498d-9015-3fad58049692")
             except ResponseCodeError:
                 pass
 
@@ -417,9 +473,12 @@ class TableUnitTest(unittest.TestCase):
             exp = [{'id': 1, 'username': 'foo'}, {'id': 2, 'username': 'bar'}]
             df = DataFrame.from_records(json.dumps(exp))
             # mock
-            mock.get('/api/database/1/table/9/data', json=json.dumps(exp))
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                json=json.dumps(exp))
             # test
-            response = RestClient().get_table_data(database_id=1, table_id=9,
+            response = RestClient().get_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                   table_id="b3230b86-4743-498d-9015-3fad58049692",
                                                    timestamp=datetime.datetime(2024, 1, 1, 0, 0, 0, 0,
                                                                                datetime.timezone.utc))
             self.assertTrue(DataFrame.equals(df, response))
@@ -429,59 +488,77 @@ class TableUnitTest(unittest.TestCase):
             exp = [{'id': 1, 'username': 'foo'}, {'id': 2, 'username': 'bar'}]
             df = DataFrame.from_records(json.dumps(exp))
             # mock
-            mock.get('/api/database/1/table/9/data', json=json.dumps(exp))
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                json=json.dumps(exp))
             # test
-            response = RestClient().get_table_data(database_id=1, table_id=9)
+            response = RestClient().get_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                   table_id="b3230b86-4743-498d-9015-3fad58049692")
             self.assertEqual(df.shape, response.shape)
             self.assertTrue(DataFrame.equals(df, response))
 
     def test_get_table_data_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/table/9/data', status_code=400)
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=400)
             # test
             try:
-                response = RestClient().get_table_data(database_id=1, table_id=9)
+                response = RestClient().get_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                       table_id="b3230b86-4743-498d-9015-3fad58049692")
             except MalformedError:
                 pass
 
     def test_get_table_data_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/table/9/data', status_code=403)
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=403)
             # test
             try:
-                response = RestClient().get_table_data(database_id=1, table_id=9)
+                response = RestClient().get_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                       table_id="b3230b86-4743-498d-9015-3fad58049692")
             except ForbiddenError:
                 pass
 
     def test_get_table_data_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/table/9/data', status_code=404)
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=404)
             # test
             try:
-                response = RestClient().get_table_data(database_id=1, table_id=9)
+                response = RestClient().get_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                       table_id="b3230b86-4743-498d-9015-3fad58049692")
             except NotExistsError:
                 pass
 
     def test_get_table_data_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/table/9/data', status_code=503)
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=503)
             # test
             try:
-                response = RestClient().get_table_data(database_id=1, table_id=9)
+                response = RestClient().get_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                       table_id="b3230b86-4743-498d-9015-3fad58049692")
             except ServiceError:
                 pass
 
     def test_get_table_data_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/table/9/data', status_code=202)
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=202)
             # test
             try:
-                response = RestClient().get_table_data(database_id=1, table_id=9)
+                response = RestClient().get_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                       table_id="b3230b86-4743-498d-9015-3fad58049692")
             except ResponseCodeError:
                 pass
 
@@ -489,89 +566,116 @@ class TableUnitTest(unittest.TestCase):
         with requests_mock.Mocker() as mock:
             exp = 2
             # mock
-            mock.head('/api/database/1/table/9/data', headers={'X-Count': str(exp)})
+            mock.head(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                headers={'X-Count': str(exp)})
             # test
-            response = RestClient().get_table_data_count(database_id=1, table_id=9,
+            response = RestClient().get_table_data_count(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                         table_id="b3230b86-4743-498d-9015-3fad58049692",
                                                          timestamp=datetime.datetime(2024, 1, 1, 0, 0, 0, 0))
             self.assertEqual(exp, response)
 
     def test_get_table_data_count_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.head('/api/database/1/table/9/data', status_code=400)
+            mock.head(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=400)
             # test
             try:
-                response = RestClient().get_table_data_count(database_id=1, table_id=9)
+                response = RestClient().get_table_data_count(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                             table_id="b3230b86-4743-498d-9015-3fad58049692")
             except MalformedError:
                 pass
 
     def test_get_table_data_count_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.head('/api/database/1/table/9/data', status_code=403)
+            mock.head(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=403)
             # test
             try:
-                response = RestClient().get_table_data_count(database_id=1, table_id=9)
+                response = RestClient().get_table_data_count(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                             table_id="b3230b86-4743-498d-9015-3fad58049692")
             except ForbiddenError:
                 pass
 
     def test_get_table_data_count_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.head('/api/database/1/table/9/data', status_code=404)
+            mock.head(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=404)
             # test
             try:
-                response = RestClient().get_table_data_count(database_id=1, table_id=9)
+                response = RestClient().get_table_data_count(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                             table_id="b3230b86-4743-498d-9015-3fad58049692")
             except NotExistsError:
                 pass
 
     def test_get_table_data_count_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.head('/api/database/1/table/9/data', status_code=503)
+            mock.head(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=503)
             # test
             try:
-                response = RestClient().get_table_data_count(database_id=1, table_id=9)
+                response = RestClient().get_table_data_count(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                             table_id="b3230b86-4743-498d-9015-3fad58049692")
             except ServiceError:
                 pass
 
     def test_get_table_data_count_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.head('/api/database/1/table/9/data', status_code=202)
+            mock.head(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=202)
             # test
             try:
-                response = RestClient().get_table_data_count(database_id=1, table_id=9)
+                response = RestClient().get_table_data_count(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                             table_id="b3230b86-4743-498d-9015-3fad58049692")
             except ResponseCodeError:
                 pass
 
     def test_get_table_data_count_not_countable_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.head('/api/database/1/table/9/data', status_code=409)
+            mock.head(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=409)
             # test
             try:
-                response = RestClient().get_table_data_count(database_id=1, table_id=9)
+                response = RestClient().get_table_data_count(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                             table_id="b3230b86-4743-498d-9015-3fad58049692")
             except ExternalSystemError:
                 pass
 
     def test_create_table_data_succeeds(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/table/9/data', status_code=201)
+            mock.post(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=201)
             # test
             client = RestClient(username="a", password="b")
-            client.create_table_data(database_id=1, table_id=9,
+            client.create_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                     table_id="b3230b86-4743-498d-9015-3fad58049692",
                                      data={'name': 'Josiah', 'age': 45, 'gender': 'male'})
 
     def test_create_table_data_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/table/9/data', status_code=400)
+            mock.post(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=400)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.create_table_data(database_id=1, table_id=9,
+                client.create_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                         table_id="b3230b86-4743-498d-9015-3fad58049692",
                                          data={'name': 'Josiah', 'age': 45, 'gender': 'male'})
             except MalformedError:
                 pass
@@ -579,11 +683,14 @@ class TableUnitTest(unittest.TestCase):
     def test_create_table_data_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/table/9/data', status_code=403)
+            mock.post(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=403)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.create_table_data(database_id=1, table_id=9,
+                client.create_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                         table_id="b3230b86-4743-498d-9015-3fad58049692",
                                          data={'name': 'Josiah', 'age': 45, 'gender': 'male'})
             except ForbiddenError:
                 pass
@@ -591,11 +698,14 @@ class TableUnitTest(unittest.TestCase):
     def test_create_table_data_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/table/9/data', status_code=404)
+            mock.post(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=404)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.create_table_data(database_id=1, table_id=9,
+                client.create_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                         table_id="b3230b86-4743-498d-9015-3fad58049692",
                                          data={'name': 'Josiah', 'age': 45, 'gender': 'male'})
             except NotExistsError:
                 pass
@@ -603,11 +713,14 @@ class TableUnitTest(unittest.TestCase):
     def test_create_table_data_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/table/9/data', status_code=503)
+            mock.post(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=503)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.create_table_data(database_id=1, table_id=9,
+                client.create_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                         table_id="b3230b86-4743-498d-9015-3fad58049692",
                                          data={'name': 'Josiah', 'age': 45, 'gender': 'male'})
             except ServiceError:
                 pass
@@ -615,11 +728,14 @@ class TableUnitTest(unittest.TestCase):
     def test_create_table_data_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/table/9/data', status_code=200)
+            mock.post(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=200)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.create_table_data(database_id=1, table_id=9,
+                client.create_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                         table_id="b3230b86-4743-498d-9015-3fad58049692",
                                          data={'name': 'Josiah', 'age': 45, 'gender': 'male'})
             except ResponseCodeError:
                 pass
@@ -627,10 +743,13 @@ class TableUnitTest(unittest.TestCase):
     def test_create_table_data_anonymous_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/table/9/data', status_code=503)
+            mock.post(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=503)
             # test
             try:
-                RestClient().create_table_data(database_id=1, table_id=9,
+                RestClient().create_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                               table_id="b3230b86-4743-498d-9015-3fad58049692",
                                                data={'name': 'Josiah', 'age': 45, 'gender': 'male'})
             except AuthenticationError:
                 pass
@@ -638,21 +757,27 @@ class TableUnitTest(unittest.TestCase):
     def test_update_table_data_succeeds(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/table/9/data', status_code=202)
+            mock.put(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=202)
             # test
             client = RestClient(username="a", password="b")
-            client.update_table_data(database_id=1, table_id=9,
+            client.update_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                     table_id="b3230b86-4743-498d-9015-3fad58049692",
                                      data={'name': 'Josiah', 'age': 45, 'gender': 'male'},
                                      keys={'id': 1})
 
     def test_update_table_data_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/table/9/data', status_code=400)
+            mock.put(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=400)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.update_table_data(database_id=1, table_id=9,
+                client.update_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                         table_id="b3230b86-4743-498d-9015-3fad58049692",
                                          data={'name': 'Josiah', 'age': 45, 'gender': 'male'},
                                          keys={'id': 1})
             except MalformedError:
@@ -661,11 +786,14 @@ class TableUnitTest(unittest.TestCase):
     def test_update_table_data_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/table/9/data', status_code=403)
+            mock.put(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=403)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.update_table_data(database_id=1, table_id=9,
+                client.update_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                         table_id="b3230b86-4743-498d-9015-3fad58049692",
                                          data={'name': 'Josiah', 'age': 45, 'gender': 'male'},
                                          keys={'id': 1})
             except ForbiddenError:
@@ -674,11 +802,14 @@ class TableUnitTest(unittest.TestCase):
     def test_update_table_data_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/table/9/data', status_code=404)
+            mock.put(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=404)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.update_table_data(database_id=1, table_id=9,
+                client.update_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                         table_id="b3230b86-4743-498d-9015-3fad58049692",
                                          data={'name': 'Josiah', 'age': 45, 'gender': 'male'},
                                          keys={'id': 1})
             except NotExistsError:
@@ -687,11 +818,14 @@ class TableUnitTest(unittest.TestCase):
     def test_update_table_data_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/table/9/data', status_code=503)
+            mock.put(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=503)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.update_table_data(database_id=1, table_id=9,
+                client.update_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                         table_id="b3230b86-4743-498d-9015-3fad58049692",
                                          data={'name': 'Josiah', 'age': 45, 'gender': 'male'},
                                          keys={'id': 1})
             except ServiceError:
@@ -700,11 +834,14 @@ class TableUnitTest(unittest.TestCase):
     def test_update_table_data_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/table/9/data', status_code=200)
+            mock.put(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=200)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.update_table_data(database_id=1, table_id=9,
+                client.update_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                         table_id="b3230b86-4743-498d-9015-3fad58049692",
                                          data={'name': 'Josiah', 'age': 45, 'gender': 'male'},
                                          keys={'id': 1})
             except ResponseCodeError:
@@ -713,97 +850,124 @@ class TableUnitTest(unittest.TestCase):
     def test_delete_table_data_succeeds(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/table/9/data', status_code=202)
+            mock.delete(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=202)
             # test
             client = RestClient(username="a", password="b")
-            client.delete_table_data(database_id=1, table_id=9, keys={'id': 1})
+            client.delete_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                     table_id="b3230b86-4743-498d-9015-3fad58049692", keys={'id': 1})
 
     def test_delete_table_data_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/table/9/data', status_code=400)
+            mock.delete(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=400)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.delete_table_data(database_id=1, table_id=9, keys={'id': 1})
+                client.delete_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                         table_id="b3230b86-4743-498d-9015-3fad58049692", keys={'id': 1})
             except MalformedError:
                 pass
 
     def test_delete_table_data_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/table/9/data', status_code=403)
+            mock.delete(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=403)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.delete_table_data(database_id=1, table_id=9, keys={'id': 1})
+                client.delete_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                         table_id="b3230b86-4743-498d-9015-3fad58049692", keys={'id': 1})
             except ForbiddenError:
                 pass
 
     def test_delete_table_data_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/table/9/data', status_code=404)
+            mock.delete(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=404)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.delete_table_data(database_id=1, table_id=9, keys={'id': 1})
+                client.delete_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                         table_id="b3230b86-4743-498d-9015-3fad58049692", keys={'id': 1})
             except NotExistsError:
                 pass
 
     def test_delete_table_data_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/table/9/data', status_code=503)
+            mock.delete(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=503)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.delete_table_data(database_id=1, table_id=9, keys={'id': 1})
+                client.delete_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                         table_id="b3230b86-4743-498d-9015-3fad58049692", keys={'id': 1})
             except ServiceError:
                 pass
 
     def test_delete_table_data_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/table/9/data', status_code=200)
+            mock.delete(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=200)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.delete_table_data(database_id=1, table_id=9, keys={'id': 1})
+                client.delete_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                         table_id="b3230b86-4743-498d-9015-3fad58049692", keys={'id': 1})
             except ResponseCodeError:
                 pass
 
     def test_delete_table_data_anonymous_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/table/9/data', status_code=404)
+            mock.delete(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/data',
+                status_code=404)
             # test
             try:
-                RestClient().delete_table_data(database_id=1, table_id=9, keys={'id': 1})
+                RestClient().delete_table_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                               table_id="b3230b86-4743-498d-9015-3fad58049692",
+                                               keys={'id': 1})
             except AuthenticationError:
                 pass
 
     def test_update_table_column_succeeds(self):
         with requests_mock.Mocker() as mock:
-            exp = Column(id=1,
+            exp = Column(id="2f30858d-b47b-4068-9028-fb0524ddf6cb",
                          ord=0,
                          name="ID",
-                         database_id=1,
-                         table_id=2,
+                         database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                         table_id="b3230b86-4743-498d-9015-3fad58049692",
                          internal_name="id",
                          type=ColumnType.BIGINT,
-                         concept=ConceptBrief(id=2,
+                         concept=ConceptBrief(id="029d773f-f98b-40c0-ab22-b8b1635d4fbc",
                                               uri="http://dbpedia.org/page/Category:Precipitation",
                                               name="Precipitation"),
-                         unit=UnitBrief(id=2,
+                         unit=UnitBrief(id="029d773f-f98b-40c0-ab22-b8b1635d4fbc",
                                         uri="http://www.wikidata.org/entity/Q119856947",
                                         name="liters per square meter"),
                          is_null_allowed=False)
             # mock
-            mock.put('/api/database/1/table/2/column/1', json=exp.model_dump(), status_code=202)
+            mock.put(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/column/758da021-f809-4d87-a866-9d4664a039dc',
+                json=exp.model_dump(),
+                status_code=202)
             # test
             client = RestClient(username="a", password="b")
-            response = client.update_table_column(database_id=1, table_id=2, column_id=1,
+            response = client.update_table_column(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                  table_id="b3230b86-4743-498d-9015-3fad58049692",
+                                                  column_id="758da021-f809-4d87-a866-9d4664a039dc",
                                                   unit_uri="http://www.wikidata.org/entity/Q119856947",
                                                   concept_uri="http://dbpedia.org/page/Category:Precipitation")
             self.assertEqual(exp, response)
@@ -811,11 +975,15 @@ class TableUnitTest(unittest.TestCase):
     def test_update_table_column_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/table/2/column/1', status_code=400)
+            mock.put(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/column/758da021-f809-4d87-a866-9d4664a039dc',
+                status_code=400)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.update_table_column(database_id=1, table_id=2, column_id=1,
+                client.update_table_column(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                           table_id="b3230b86-4743-498d-9015-3fad58049692",
+                                           column_id="758da021-f809-4d87-a866-9d4664a039dc",
                                            unit_uri="http://www.wikidata.org/entity/Q119856947",
                                            concept_uri="http://dbpedia.org/page/Category:Precipitation")
             except MalformedError:
@@ -824,11 +992,15 @@ class TableUnitTest(unittest.TestCase):
     def test_update_table_column_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/table/2/column/1', status_code=403)
+            mock.put(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/column/758da021-f809-4d87-a866-9d4664a039dc',
+                status_code=403)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.update_table_column(database_id=1, table_id=2, column_id=1,
+                client.update_table_column(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                           table_id="b3230b86-4743-498d-9015-3fad58049692",
+                                           column_id="758da021-f809-4d87-a866-9d4664a039dc",
                                            unit_uri="http://www.wikidata.org/entity/Q119856947",
                                            concept_uri="http://dbpedia.org/page/Category:Precipitation")
             except ForbiddenError:
@@ -837,11 +1009,15 @@ class TableUnitTest(unittest.TestCase):
     def test_update_table_column_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/table/2/column/1', status_code=404)
+            mock.put(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/column/758da021-f809-4d87-a866-9d4664a039dc',
+                status_code=404)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.update_table_column(database_id=1, table_id=2, column_id=1,
+                client.update_table_column(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                           table_id="b3230b86-4743-498d-9015-3fad58049692",
+                                           column_id="758da021-f809-4d87-a866-9d4664a039dc",
                                            unit_uri="http://www.wikidata.org/entity/Q119856947",
                                            concept_uri="http://dbpedia.org/page/Category:Precipitation")
             except NotExistsError:
@@ -850,11 +1026,15 @@ class TableUnitTest(unittest.TestCase):
     def test_update_table_column_502_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/table/2/column/1', status_code=502)
+            mock.put(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/column/758da021-f809-4d87-a866-9d4664a039dc',
+                status_code=502)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.update_table_column(database_id=1, table_id=2, column_id=1,
+                client.update_table_column(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                           table_id="b3230b86-4743-498d-9015-3fad58049692",
+                                           column_id="758da021-f809-4d87-a866-9d4664a039dc",
                                            unit_uri="http://www.wikidata.org/entity/Q119856947",
                                            concept_uri="http://dbpedia.org/page/Category:Precipitation")
             except ServiceConnectionError:
@@ -863,11 +1043,15 @@ class TableUnitTest(unittest.TestCase):
     def test_update_table_column_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/table/2/column/1', status_code=503)
+            mock.put(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/column/758da021-f809-4d87-a866-9d4664a039dc',
+                status_code=503)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.update_table_column(database_id=1, table_id=2, column_id=1,
+                client.update_table_column(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                           table_id="b3230b86-4743-498d-9015-3fad58049692",
+                                           column_id="758da021-f809-4d87-a866-9d4664a039dc",
                                            unit_uri="http://www.wikidata.org/entity/Q119856947",
                                            concept_uri="http://dbpedia.org/page/Category:Precipitation")
             except ServiceError:
@@ -876,11 +1060,15 @@ class TableUnitTest(unittest.TestCase):
     def test_update_table_column_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/table/2/column/1', status_code=200)
+            mock.put(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/column/758da021-f809-4d87-a866-9d4664a039dc',
+                status_code=200)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.update_table_column(database_id=1, table_id=2, column_id=1,
+                client.update_table_column(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                           table_id="b3230b86-4743-498d-9015-3fad58049692",
+                                           column_id="758da021-f809-4d87-a866-9d4664a039dc",
                                            unit_uri="http://www.wikidata.org/entity/Q119856947",
                                            concept_uri="http://dbpedia.org/page/Category:Precipitation")
             except ResponseCodeError:
@@ -889,10 +1077,14 @@ class TableUnitTest(unittest.TestCase):
     def test_update_table_column_anonymous_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/table/2/column/1', status_code=404)
+            mock.put(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/column/758da021-f809-4d87-a866-9d4664a039dc',
+                status_code=404)
             # test
             try:
-                RestClient().update_table_column(database_id=1, table_id=2, column_id=1,
+                RestClient().update_table_column(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                 table_id="b3230b86-4743-498d-9015-3fad58049692",
+                                                 column_id="758da021-f809-4d87-a866-9d4664a039dc",
                                                  unit_uri="http://www.wikidata.org/entity/Q119856947",
                                                  concept_uri="http://dbpedia.org/page/Category:Precipitation")
             except AuthenticationError:
@@ -903,58 +1095,76 @@ class TableUnitTest(unittest.TestCase):
             exp = TableStatistics(
                 columns={"id": ColumnStatistic(val_min=1.0, val_max=9.0, mean=5.0, median=5.0, std_dev=2.73)})
             # mock
-            mock.get('/api/analyse/database/1/table/2/statistics', json=exp.model_dump(), status_code=202)
+            mock.get(
+                '/api/analyse/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/statistics',
+                json=exp.model_dump(), status_code=202)
             # test
-            response = RestClient().analyse_table_statistics(database_id=1, table_id=2)
+            response = RestClient().analyse_table_statistics(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                             table_id="b3230b86-4743-498d-9015-3fad58049692")
             self.assertEqual(exp, response)
 
     def test_analyse_table_statistics_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/analyse/database/1/table/2/statistics', status_code=400)
+            mock.get(
+                '/api/analyse/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/statistics',
+                status_code=400)
             # test
             try:
-                RestClient().analyse_table_statistics(database_id=1, table_id=2)
+                RestClient().analyse_table_statistics(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                      table_id="b3230b86-4743-498d-9015-3fad58049692")
             except MalformedError:
                 pass
 
     def test_analyse_table_statistics_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/analyse/database/1/table/2/statistics', status_code=404)
+            mock.get(
+                '/api/analyse/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/statistics',
+                status_code=404)
             # test
             try:
-                RestClient().analyse_table_statistics(database_id=1, table_id=2)
+                RestClient().analyse_table_statistics(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                      table_id="b3230b86-4743-498d-9015-3fad58049692")
             except NotExistsError:
                 pass
 
     def test_analyse_table_statistics_502_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/analyse/database/1/table/2/statistics', status_code=502)
+            mock.get(
+                '/api/analyse/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/statistics',
+                status_code=502)
             # test
             try:
-                RestClient().analyse_table_statistics(database_id=1, table_id=2)
+                RestClient().analyse_table_statistics(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                      table_id="b3230b86-4743-498d-9015-3fad58049692")
             except ServiceConnectionError:
                 pass
 
     def test_analyse_table_statistics_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/analyse/database/1/table/2/statistics', status_code=503)
+            mock.get(
+                '/api/analyse/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/statistics',
+                status_code=503)
             # test
             try:
-                RestClient().analyse_table_statistics(database_id=1, table_id=2)
+                RestClient().analyse_table_statistics(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                      table_id="b3230b86-4743-498d-9015-3fad58049692")
             except ServiceError:
                 pass
 
     def test_analyse_table_statistics_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/analyse/database/1/table/2/statistics', status_code=200)
+            mock.get(
+                '/api/analyse/database/6bd39359-b154-456d-b9c2-caa516a45732/table/b3230b86-4743-498d-9015-3fad58049692/statistics',
+                status_code=200)
             # test
             try:
-                RestClient().analyse_table_statistics(database_id=1, table_id=2)
+                RestClient().analyse_table_statistics(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                      table_id="b3230b86-4743-498d-9015-3fad58049692")
             except ResponseCodeError:
                 pass
 
diff --git a/lib/python/tests/test_unit_unit.py b/lib/python/tests/test_unit_unit.py
index efea8b69bb335cf4618216e7822dd5a7d2a1e467..3af429b74ebcb84767105d3b4da23540fd3fdf31 100644
--- a/lib/python/tests/test_unit_unit.py
+++ b/lib/python/tests/test_unit_unit.py
@@ -11,7 +11,7 @@ class UserUnitTest(unittest.TestCase):
 
     def test_get_units_succeeds(self):
         with requests_mock.Mocker() as mock:
-            exp = [UnitBrief(id=1,
+            exp = [UnitBrief(id="d8eec1ab-7b37-4eb3-bdf7-b44a8b384c0b",
                              uri='http://www.ontology-of-units-of-measure.org/resource/om-2/CelsiusTemperature',
                              name='Celsius Temperature')]
             # mock
diff --git a/lib/python/tests/test_unit_view.py b/lib/python/tests/test_unit_view.py
index 7a8bebe4e01fc538a004d87b30493c6bfbe913aa..5792d028b37726d1c3e1f29a941387c12306cfc2 100644
--- a/lib/python/tests/test_unit_view.py
+++ b/lib/python/tests/test_unit_view.py
@@ -15,17 +15,17 @@ class ViewUnitTest(unittest.TestCase):
     def test_get_views_empty_succeeds(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/view', json=[])
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view', json=[])
             # test
-            response = RestClient().get_views(database_id=1)
+            response = RestClient().get_views(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             self.assertEqual([], response)
 
     def test_get_views_succeeds(self):
         with requests_mock.Mocker() as mock:
-            exp = [ViewBrief(id=1,
+            exp = [ViewBrief(id="1b3449d2-780e-4683-9af0-8733e608a4aa",
                              name="Data",
                              internal_name="data",
-                             database_id=1,
+                             database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                              initial_view=False,
                              query="SELECT id FROM mytable WHERE deg > 0",
                              query_hash="94c74728b11a690e51d64719868824735f0817b7",
@@ -33,93 +33,101 @@ class ViewUnitTest(unittest.TestCase):
                              is_public=True,
                              is_schema_public=True)]
             # mock
-            mock.get('/api/database/1/view', json=[exp[0].model_dump()])
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view', json=[exp[0].model_dump()])
             # test
-            response = RestClient().get_views(database_id=1)
+            response = RestClient().get_views(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             self.assertEqual(exp, response)
 
     def test_get_views_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/view', status_code=404)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view', status_code=404)
             # test
             try:
-                response = RestClient().get_views(database_id=1)
+                response = RestClient().get_views(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except NotExistsError:
                 pass
 
     def test_get_views_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/view', status_code=202)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view', status_code=202)
             # test
             try:
-                response = RestClient().get_views(database_id=1)
+                response = RestClient().get_views(database_id="6bd39359-b154-456d-b9c2-caa516a45732")
             except ResponseCodeError:
                 pass
 
     def test_get_view_succeeds(self):
         with requests_mock.Mocker() as mock:
-            exp = View(id=3,
+            exp = View(id="1b3449d2-780e-4683-9af0-8733e608a4aa",
                        name="Data",
                        internal_name="data",
-                       database_id=1,
+                       database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                        initial_view=False,
                        query="SELECT id FROM mytable WHERE deg > 0",
                        query_hash="94c74728b11a690e51d64719868824735f0817b7",
                        owner=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'),
                        is_public=True,
                        is_schema_public=True,
-                       columns=[ViewColumn(id=1,
+                       columns=[ViewColumn(id="1b3449d2-780e-4683-9af0-8733e608a4aa",
                                            ord=0,
                                            name="id",
                                            internal_name="id",
-                                           database_id=1,
+                                           database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                            type=ColumnType.BIGINT,
                                            is_null_allowed=False)],
                        identifiers=[])
             # mock
-            mock.get('/api/database/1/view/3', json=exp.model_dump())
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa',
+                     json=exp.model_dump())
             # test
-            response = RestClient().get_view(database_id=1, view_id=3)
+            response = RestClient().get_view(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                             view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             self.assertEqual(exp, response)
 
     def test_get_view_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/view/3', status_code=403)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa',
+                     status_code=403)
             # test
             try:
-                response = RestClient().get_view(database_id=1, view_id=3)
+                response = RestClient().get_view(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                 view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             except ForbiddenError:
                 pass
 
     def test_get_view_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/view/3', status_code=404)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa',
+                     status_code=404)
             # test
             try:
-                response = RestClient().get_view(database_id=1, view_id=3)
+                response = RestClient().get_view(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                 view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             except NotExistsError:
                 pass
 
     def test_get_view_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/view/3', status_code=202)
+            mock.get('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa',
+                     status_code=202)
             # test
             try:
-                response = RestClient().get_view(database_id=1, view_id=3)
+                response = RestClient().get_view(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                 view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             except ResponseCodeError:
                 pass
 
     def test_update_view_succeeds(self):
         with requests_mock.Mocker() as mock:
-            exp = ViewBrief(id=1,
+            exp = ViewBrief(id="1b3449d2-780e-4683-9af0-8733e608a4aa",
                             name="Data",
                             internal_name="data",
-                            database_id=1,
+                            database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                             initial_view=False,
                             query="SELECT id FROM mytable WHERE deg > 0",
                             query_hash="94c74728b11a690e51d64719868824735f0817b7",
@@ -127,91 +135,99 @@ class ViewUnitTest(unittest.TestCase):
                             is_public=False,
                             is_schema_public=False)
             # mock
-            mock.put('/api/database/1/view/1', json=exp.model_dump(), status_code=202)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1', json=exp.model_dump(),
+                     status_code=202)
             # test
-            response = RestClient(username='foo', password='bar').update_view(database_id=1, view_id=1,
-                                                                              is_public=False, is_schema_public=False)
+            response = RestClient(username='foo', password='bar').update_view(
+                database_id="6bd39359-b154-456d-b9c2-caa516a45732", view_id=1,
+                is_public=False, is_schema_public=False)
             self.assertEqual(exp, response)
 
     def test_update_view_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/view/1', status_code=403)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1', status_code=403)
             # test
             try:
-                RestClient(username='foo', password='bar').update_view(database_id=1, view_id=1, is_public=False,
-                                                                       is_schema_public=False)
+                RestClient(username='foo', password='bar').update_view(
+                    database_id="6bd39359-b154-456d-b9c2-caa516a45732", view_id=1, is_public=False,
+                    is_schema_public=False)
             except ForbiddenError:
                 pass
 
     def test_update_view_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/view/1', status_code=404)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1', status_code=404)
             # test
             try:
-                RestClient(username='foo', password='bar').update_view(database_id=1, view_id=1, is_public=False,
-                                                                       is_schema_public=False)
+                RestClient(username='foo', password='bar').update_view(
+                    database_id="6bd39359-b154-456d-b9c2-caa516a45732", view_id=1, is_public=False,
+                    is_schema_public=False)
             except NotExistsError:
                 pass
 
     def test_update_view_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/view/1', status_code=200)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1', status_code=200)
             # test
             try:
-                RestClient(username='foo', password='bar').update_view(database_id=1, view_id=1, is_public=False,
-                                                                       is_schema_public=False)
+                RestClient(username='foo', password='bar').update_view(
+                    database_id="6bd39359-b154-456d-b9c2-caa516a45732", view_id=1, is_public=False,
+                    is_schema_public=False)
             except ResponseCodeError:
                 pass
 
     def test_update_view_anonymous_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.put('/api/database/1/view/1', status_code=403)
+            mock.put('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1', status_code=403)
             # test
             try:
-                RestClient().update_view(database_id=1, view_id=1, is_public=False, is_schema_public=False)
+                RestClient().update_view(database_id="6bd39359-b154-456d-b9c2-caa516a45732", view_id=1, is_public=False,
+                                         is_schema_public=False)
             except AuthenticationError:
                 pass
 
     def test_create_view_succeeds(self):
         with requests_mock.Mocker() as mock:
-            exp = View(id=3,
+            exp = View(id="1b3449d2-780e-4683-9af0-8733e608a4aa",
                        name="Data",
                        internal_name="data",
-                       database_id=1,
+                       database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                        initial_view=False,
                        query="SELECT id FROM mytable WHERE deg > 0",
                        query_hash="94c74728b11a690e51d64719868824735f0817b7",
                        owner=UserBrief(id='8638c043-5145-4be8-a3e4-4b79991b0a16', username='mweise'),
                        is_public=True,
                        is_schema_public=True,
-                       columns=[ViewColumn(id=1,
+                       columns=[ViewColumn(id="1b3449d2-780e-4683-9af0-8733e608a4aa",
                                            ord=0,
                                            name="id",
                                            internal_name="id",
-                                           database_id=1,
+                                           database_id="6bd39359-b154-456d-b9c2-caa516a45732",
                                            type=ColumnType.BIGINT,
                                            is_null_allowed=False)],
                        identifiers=[])
             # mock
-            mock.post('/api/database/1/view', json=exp.model_dump(), status_code=201)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view', json=exp.model_dump(), status_code=201)
             # test
             client = RestClient(username="a", password="b")
-            response = client.create_view(database_id=1, name="Data", is_public=True, is_schema_public=True,
+            response = client.create_view(database_id="6bd39359-b154-456d-b9c2-caa516a45732", name="Data",
+                                          is_public=True, is_schema_public=True,
                                           query="SELECT id FROM mytable WHERE deg > 0")
             self.assertEqual(exp, response)
 
     def test_create_view_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/view', status_code=400)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view', status_code=400)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                response = client.create_view(database_id=1, name="Data", is_public=True, is_schema_public=True,
+                response = client.create_view(database_id="6bd39359-b154-456d-b9c2-caa516a45732", name="Data",
+                                              is_public=True, is_schema_public=True,
                                               query="SELECT id FROM mytable WHERE deg > 0")
             except MalformedError:
                 pass
@@ -219,11 +235,12 @@ class ViewUnitTest(unittest.TestCase):
     def test_create_view_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/view', status_code=403)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view', status_code=403)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                response = client.create_view(database_id=1, name="Data", is_public=True, is_schema_public=True,
+                response = client.create_view(database_id="6bd39359-b154-456d-b9c2-caa516a45732", name="Data",
+                                              is_public=True, is_schema_public=True,
                                               query="SELECT id FROM mytable WHERE deg > 0")
             except ForbiddenError:
                 pass
@@ -231,11 +248,12 @@ class ViewUnitTest(unittest.TestCase):
     def test_create_view_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/view', status_code=404)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view', status_code=404)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                response = client.create_view(database_id=1, name="Data", is_public=True, is_schema_public=True,
+                response = client.create_view(database_id="6bd39359-b154-456d-b9c2-caa516a45732", name="Data",
+                                              is_public=True, is_schema_public=True,
                                               query="SELECT id FROM mytable WHERE deg > 0")
             except NotExistsError:
                 pass
@@ -243,11 +261,12 @@ class ViewUnitTest(unittest.TestCase):
     def test_create_view_423_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/view', status_code=423)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view', status_code=423)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                response = client.create_view(database_id=1, name="Data", is_public=True, is_schema_public=True,
+                response = client.create_view(database_id="6bd39359-b154-456d-b9c2-caa516a45732", name="Data",
+                                              is_public=True, is_schema_public=True,
                                               query="SELECT id FROM mytable WHERE deg > 0")
             except ExternalSystemError:
                 pass
@@ -255,11 +274,12 @@ class ViewUnitTest(unittest.TestCase):
     def test_create_view_502_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/view', status_code=502)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view', status_code=502)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                response = client.create_view(database_id=1, name="Data", is_public=True, is_schema_public=True,
+                response = client.create_view(database_id="6bd39359-b154-456d-b9c2-caa516a45732", name="Data",
+                                              is_public=True, is_schema_public=True,
                                               query="SELECT id FROM mytable WHERE deg > 0")
             except ServiceConnectionError:
                 pass
@@ -267,11 +287,12 @@ class ViewUnitTest(unittest.TestCase):
     def test_create_view_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/view', status_code=503)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view', status_code=503)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                response = client.create_view(database_id=1, name="Data", is_public=True, is_schema_public=True,
+                response = client.create_view(database_id="6bd39359-b154-456d-b9c2-caa516a45732", name="Data",
+                                              is_public=True, is_schema_public=True,
                                               query="SELECT id FROM mytable WHERE deg > 0")
             except ServiceError:
                 pass
@@ -279,11 +300,12 @@ class ViewUnitTest(unittest.TestCase):
     def test_create_view_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/view', status_code=200)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view', status_code=200)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                response = client.create_view(database_id=1, name="Data", is_public=True, is_schema_public=True,
+                response = client.create_view(database_id="6bd39359-b154-456d-b9c2-caa516a45732", name="Data",
+                                              is_public=True, is_schema_public=True,
                                               query="SELECT id FROM mytable WHERE deg > 0")
             except ResponseCodeError:
                 pass
@@ -291,10 +313,11 @@ class ViewUnitTest(unittest.TestCase):
     def test_create_view_anonymous_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.post('/api/database/1/view', status_code=404)
+            mock.post('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view', status_code=404)
             # test
             try:
-                response = RestClient().create_view(database_id=1, name="Data", is_public=True, is_schema_public=True,
+                response = RestClient().create_view(database_id="6bd39359-b154-456d-b9c2-caa516a45732", name="Data",
+                                                    is_public=True, is_schema_public=True,
                                                     query="SELECT id FROM mytable WHERE deg > 0")
             except AuthenticationError:
                 pass
@@ -302,95 +325,113 @@ class ViewUnitTest(unittest.TestCase):
     def test_delete_view_succeeds(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/view/3', status_code=202)
+            mock.delete('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa',
+                        status_code=202)
             # test
             client = RestClient(username="a", password="b")
-            client.delete_view(database_id=1, view_id=3)
+            client.delete_view(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                               view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
 
     def test_delete_view_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/view/3', status_code=400)
+            mock.delete('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa',
+                        status_code=400)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.delete_view(database_id=1, view_id=3)
+                client.delete_view(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                   view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             except MalformedError:
                 pass
 
     def test_delete_view_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/view/3', status_code=403)
+            mock.delete('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa',
+                        status_code=403)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.delete_view(database_id=1, view_id=3)
+                client.delete_view(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                   view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             except ForbiddenError:
                 pass
 
     def test_delete_view_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/view/3', status_code=404)
+            mock.delete('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa',
+                        status_code=404)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.delete_view(database_id=1, view_id=3)
+                client.delete_view(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                   view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             except NotExistsError:
                 pass
 
     def test_delete_view_423_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/view/3', status_code=423)
+            mock.delete('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa',
+                        status_code=423)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.delete_view(database_id=1, view_id=3)
+                client.delete_view(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                   view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             except ExternalSystemError:
                 pass
 
     def test_delete_view_502_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/view/3', status_code=502)
+            mock.delete('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa',
+                        status_code=502)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.delete_view(database_id=1, view_id=3)
+                client.delete_view(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                   view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             except ServiceConnectionError:
                 pass
 
     def test_delete_view_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/view/3', status_code=503)
+            mock.delete('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa',
+                        status_code=503)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.delete_view(database_id=1, view_id=3)
+                client.delete_view(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                   view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             except ServiceError:
                 pass
 
     def test_delete_view_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/view/3', status_code=200)
+            mock.delete('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa',
+                        status_code=200)
             # test
             try:
                 client = RestClient(username="a", password="b")
-                client.delete_view(database_id=1, view_id=3)
+                client.delete_view(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                   view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             except ResponseCodeError:
                 pass
 
     def test_delete_view_anonymous_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.delete('/api/database/1/view/3', status_code=403)
+            mock.delete('/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa',
+                        status_code=403)
             # test
             try:
-                RestClient().delete_view(database_id=1, view_id=3)
+                RestClient().delete_view(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                         view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             except AuthenticationError:
                 pass
 
@@ -399,9 +440,12 @@ class ViewUnitTest(unittest.TestCase):
             exp = [{'id': 1, 'username': 'foo'}, {'id': 2, 'username': 'bar'}]
             df = DataFrame.from_records(json.dumps(exp))
             # mock
-            mock.get('/api/database/1/view/3/data', json=json.dumps(exp))
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa/data',
+                json=json.dumps(exp))
             # test
-            response = RestClient().get_view_data(database_id=1, view_id=3)
+            response = RestClient().get_view_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                  view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             self.assertTrue(DataFrame.equals(df, response))
 
     def test_get_view_data_dataframe_succeeds(self):
@@ -409,69 +453,90 @@ class ViewUnitTest(unittest.TestCase):
             exp = [{'id': 1, 'username': 'foo'}, {'id': 2, 'username': 'bar'}]
             df = DataFrame.from_records(json.dumps(exp))
             # mock
-            mock.get('/api/database/1/view/3/data', json=json.dumps(exp))
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa/data',
+                json=json.dumps(exp))
             # test
-            response: DataFrame = RestClient().get_view_data(database_id=1, view_id=3)
+            response: DataFrame = RestClient().get_view_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                             view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             self.assertEqual(df.shape, response.shape)
             self.assertTrue(DataFrame.equals(df, response))
 
     def test_get_view_data_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/view/3/data', status_code=400)
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa/data',
+                status_code=400)
             # test
             try:
-                response = RestClient().get_view_data(database_id=1, view_id=3)
+                response = RestClient().get_view_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                      view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             except MalformedError:
                 pass
 
     def test_get_view_data_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/view/3/data', status_code=403)
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa/data',
+                status_code=403)
             # test
             try:
-                response = RestClient().get_view_data(database_id=1, view_id=3)
+                response = RestClient().get_view_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                      view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             except ForbiddenError:
                 pass
 
     def test_get_view_data_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/view/3/data', status_code=404)
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa/data',
+                status_code=404)
             # test
             try:
-                response = RestClient().get_view_data(database_id=1, view_id=3)
+                response = RestClient().get_view_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                      view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             except NotExistsError:
                 pass
 
     def test_get_view_data_409_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/view/3/data', status_code=409)
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa/data',
+                status_code=409)
             # test
             try:
-                response = RestClient().get_view_data(database_id=1, view_id=3)
+                response = RestClient().get_view_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                      view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             except ExternalSystemError:
                 pass
 
     def test_get_view_data_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/view/3/data', status_code=503)
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa/data',
+                status_code=503)
             # test
             try:
-                response = RestClient().get_view_data(database_id=1, view_id=3)
+                response = RestClient().get_view_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                      view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             except ServiceError:
                 pass
 
     def test_get_view_data_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.get('/api/database/1/view/3/data', status_code=202)
+            mock.get(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa/data',
+                status_code=202)
             # test
             try:
-                response = RestClient().get_view_data(database_id=1, view_id=3)
+                response = RestClient().get_view_data(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                      view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             except ResponseCodeError:
                 pass
 
@@ -479,68 +544,89 @@ class ViewUnitTest(unittest.TestCase):
         with requests_mock.Mocker() as mock:
             exp = 844737
             # mock
-            mock.head('/api/database/1/view/3/data', headers={'X-Count': str(exp)})
+            mock.head(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa/data',
+                headers={'X-Count': str(exp)})
             # test
-            response = RestClient().get_view_data_count(database_id=1, view_id=3)
+            response = RestClient().get_view_data_count(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                        view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             self.assertEqual(exp, response)
 
     def test_get_view_data_count_400_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.head('/api/database/1/view/3/data', status_code=400)
+            mock.head(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa/data',
+                status_code=400)
             # test
             try:
-                response = RestClient().get_view_data_count(database_id=1, view_id=3)
+                response = RestClient().get_view_data_count(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                            view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             except MalformedError:
                 pass
 
     def test_get_view_data_count_403_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.head('/api/database/1/view/3/data', status_code=403)
+            mock.head(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa/data',
+                status_code=403)
             # test
             try:
-                response = RestClient().get_view_data_count(database_id=1, view_id=3)
+                response = RestClient().get_view_data_count(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                            view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             except ForbiddenError:
                 pass
 
     def test_get_view_data_count_404_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.head('/api/database/1/view/3/data', status_code=404)
+            mock.head(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa/data',
+                status_code=404)
             # test
             try:
-                response = RestClient().get_view_data_count(database_id=1, view_id=3)
+                response = RestClient().get_view_data_count(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                            view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             except NotExistsError:
                 pass
 
     def test_get_view_data_count_409_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.head('/api/database/1/view/3/data', status_code=409)
+            mock.head(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa/data',
+                status_code=409)
             # test
             try:
-                response = RestClient().get_view_data_count(database_id=1, view_id=3)
+                response = RestClient().get_view_data_count(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                            view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             except ExternalSystemError:
                 pass
 
     def test_get_view_data_count_503_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.head('/api/database/1/view/3/data', status_code=503)
+            mock.head(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa/data',
+                status_code=503)
             # test
             try:
-                response = RestClient().get_view_data_count(database_id=1, view_id=3)
+                response = RestClient().get_view_data_count(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                            view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             except ServiceError:
                 pass
 
     def test_get_view_data_count_unknown_fails(self):
         with requests_mock.Mocker() as mock:
             # mock
-            mock.head('/api/database/1/view/3/data', status_code=202)
+            mock.head(
+                '/api/database/6bd39359-b154-456d-b9c2-caa516a45732/view/1b3449d2-780e-4683-9af0-8733e608a4aa/data',
+                status_code=202)
             # test
             try:
-                response = RestClient().get_view_data_count(database_id=1, view_id=3)
+                response = RestClient().get_view_data_count(database_id="6bd39359-b154-456d-b9c2-caa516a45732",
+                                                            view_id="1b3449d2-780e-4683-9af0-8733e608a4aa")
             except ResponseCodeError:
                 pass