diff --git a/api/tests/routes/object_modifications.py b/api/tests/routes/object_modifications.py
index 1df90b62b1d8473a1fbd699a220af8b379cd458f..5f5047db64d8475f8af7441a2fb2cf85dceafa7c 100644
--- a/api/tests/routes/object_modifications.py
+++ b/api/tests/routes/object_modifications.py
@@ -1624,32 +1624,26 @@ class ObjectModificationsTest(ApiTest):
             assert_empty_response=True,
             use_moderator_login=True,
         )
-        self.do_json_request(
-            "DELETE",
-            f"/object_management/publish_medium/204",
-            assert_empty_response=True,
-            use_moderator_login=True,
-        )
         self.do_json_request(
             "POST",
-            f"/object_management/publish_medium/204/resurrect",
-            expected_response_status=HTTP_401_UNAUTHORIZED
+            f"/object_management/lecture/290000/resurrect",
+            expected_response_status=HTTP_404_NOT_FOUND,
+            use_moderator_login=True
         )
         self.do_json_request(
             "POST",
-            f"/object_management/publish_medium/12000/resurrect",
-            expected_response_status=HTTP_404_NOT_FOUND,
-            use_moderator_login=True
+            f"/object_management/lecture/29/resurrect",
+            expected_response_status=HTTP_401_UNAUTHORIZED
         )
         self.do_json_request(
             "POST",
-            f"/object_management/publish_medium/204/resurrect",
+            f"/object_management/lecture/29/resurrect",
             assert_empty_response=True,
-            use_moderator_login=True,
+            use_moderator_login=True
         )
         self.do_json_request(
             "POST",
-            f"/object_management/publish_medium/204/resurrect",
+            f"/object_management/lecture/29/resurrect",
             expected_response_status=HTTP_400_BAD_REQUEST,
             use_moderator_login=True
         )
diff --git a/common_py/src/videoag_common/api_object/object_class.py b/common_py/src/videoag_common/api_object/object_class.py
index ab0b3627cfdd2370e73d6ffa05086baf89d3a981..ed5040b87fe0b58fe6acd0415bc3af74ba633ebe 100644
--- a/common_py/src/videoag_common/api_object/object_class.py
+++ b/common_py/src/videoag_common/api_object/object_class.py
@@ -31,11 +31,13 @@ class ApiObjectClass:
                  parent_relationship_config_ids: list[str] or None = None,
                  enable_config: bool or None = None,
                  config_allow_creation: bool = True,
+                 config_allow_deletion: bool = True,
                  enable_data: bool or None = None,
                  ):
         self._parent_relationship_config_ids = parent_relationship_config_ids
         self.enable_config = enable_config
         self.config_allow_creation = config_allow_creation
+        self.config_allow_deletion = config_allow_deletion
         self.enable_data = enable_data
         
         self.orm_class = None
@@ -356,7 +358,7 @@ class ApiObjectClass:
         return self._creation_config_json
     
     def is_deletion_allowed(self) -> bool:
-        return issubclass(self.orm_class, DeletableApiObject)
+        return issubclass(self.orm_class, DeletableApiObject) and self.config_allow_deletion
     
     def get_current_config(self, session: SessionDb, object_id: int):
         if not self.enable_config:
diff --git a/common_py/src/videoag_common/objects/medium.py b/common_py/src/videoag_common/objects/medium.py
index 3de3f29026f209f689fcda64a53c03c4dcb002e6..1e81565deccaeb01ac784fce6cae2081186a3002 100644
--- a/common_py/src/videoag_common/objects/medium.py
+++ b/common_py/src/videoag_common/objects/medium.py
@@ -360,7 +360,8 @@ class MediumMetadata(ApiObject, Base):
 class PublishMedium(VisibilityApiObject, DeletableApiObject, Base):
     __api_class__ = ApiObjectClass(
         parent_relationship_config_ids=["lecture"],
-        config_allow_creation=False
+        config_allow_creation=False,
+        config_allow_deletion=False,
     )
     
     # Yes, this is a bit redundant since medium_metadata.file.lecture_id already has it. However, after struggling with