From da25c2bf2afbadab28a8e17dcd79d29ac97ea92a Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Thu, 9 Jan 2025 17:38:49 +0100 Subject: [PATCH 01/12] [#513] update CHANGELOG --- CHANGELOG.rst | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 9ec19cc..17abda5 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,47 @@ Change history ============== +2.3.0 (2025-01-10) +------------------ + +**Breaking changes** + +* upgraded ``django-setup-configuration`` to ``0.5.0`` + +.. warning:: + + Previous configuration files used for ``setup_configuration`` do not work. + See the `documentation `_ + for the available settings that can now be configured through ``setup_configuration``. + Note that not all previous configurable options are available in this release. + +* added support for configuring token authorizations through ``django-setup-configuration`` + version ``0.4.0`` [#481] +* added support for configuring ``mozilla-django-oidc-db`` through ``django-setup-configuration`` + version ``0.4.0`` [#480] + +**New features** + +* updated OAF version to 0.9.1. This upgrade allows admin users managing their sessions through the admin. + +**Bugfixes and QOL** + +* fixed ``latest`` docker image tag not being pushed [open-api-framework/#92] +* updated zgw-consumers to 0.35.1 [open-api-framework/#66] + +.. warning:: + + Configuring external services is now done through the ``Service`` model. This + replaces the ``APICredential`` model in the admin interface. A data migration + was added to move to the `Service` model. It is advised to verify the ``Service`` + instances in the admin to check that the data migration was ran as expected. + +**Project maintenance** + +* security updates [open-api-framework/#93] +* switched from ``pip-compile`` to ``uv`` [open-api-framework/#81] +* implementend open-api-workflows [open-api-framework/#13] + 2.2.2 (2024-10-01) ------------------ From d5ff489bfc7a3fb0289a9c8403f8009f23a139d5 Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Thu, 9 Jan 2025 17:39:53 +0100 Subject: [PATCH 02/12] [#513] update bumpversion configuration --- .bumpversion.cfg | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index bdccf04..a808de9 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -4,8 +4,12 @@ tag = False current_version = 2.2.2 [bumpversion:file:README.rst] +search = :Version: {current_version} +replace = :Version: {new_version} [bumpversion:file:README.NL.rst] +search = :Version: {current_version} +replace = :Version: {new_version} [bumpversion:file:package.json] search = "version": "{current_version}", From bea6097fc98caf9690ec6d9bfb25269f81ef8f0a Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Fri, 10 Jan 2025 12:27:55 +0100 Subject: [PATCH 03/12] [#513] update warning message in CHANGELOG --- CHANGELOG.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 17abda5..6dcbaf4 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -14,7 +14,6 @@ Change history Previous configuration files used for ``setup_configuration`` do not work. See the `documentation `_ for the available settings that can now be configured through ``setup_configuration``. - Note that not all previous configurable options are available in this release. * added support for configuring token authorizations through ``django-setup-configuration`` version ``0.4.0`` [#481] From a9b5b9acbcdebf7a91ab5982f59b9e961587780f Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Fri, 10 Jan 2025 12:40:14 +0100 Subject: [PATCH 04/12] [#513] update changelog --- CHANGELOG.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 6dcbaf4..9471131 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,6 +2,13 @@ Change history ============== +3.0.0 (2025-01-10) +------------------ + +**Breaking changes** + +* removed v1 endpoints [objects-api/issues/#453] + 2.3.0 (2025-01-10) ------------------ From 70fd9e3e0ee275aca25c1398e546865d2eadcc82 Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Fri, 10 Jan 2025 14:28:39 +0100 Subject: [PATCH 05/12] [#513] bump version in various files --- .bumpversion.cfg | 2 +- README.NL.rst | 2 +- README.rst | 2 +- package.json | 2 +- publiccode.yaml | 2 +- src/objecttypes/conf/api.py | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index a808de9..cea8ccf 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,7 +1,7 @@ [bumpversion] commit = False tag = False -current_version = 2.2.2 +current_version = 3.0.0 [bumpversion:file:README.rst] search = :Version: {current_version} diff --git a/README.NL.rst b/README.NL.rst index 64d70bf..b3d6e9e 100644 --- a/README.NL.rst +++ b/README.NL.rst @@ -2,7 +2,7 @@ Objecttypen API =============== -:Version: 2.2.2 +:Version: 3.0.0 :Source: https://github.com/maykinmedia/objecttypes-api :Keywords: objecten, assets, zaakobjecten diff --git a/README.rst b/README.rst index 79ef3ba..0caef1b 100644 --- a/README.rst +++ b/README.rst @@ -2,7 +2,7 @@ Objecttypes API =============== -:Version: 2.2.2 +:Version: 3.0.0 :Source: https://github.com/maykinmedia/objecttypes-api :Keywords: objects, assets, zaakobjecten diff --git a/package.json b/package.json index 3872a90..2e9f734 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "objecttypes", - "version": "2.2.2", + "version": "3.0.0", "description": "objecttypes project", "main": "src/objecttypes/static/bundles/objecttypes-js.js", "directories": { diff --git a/publiccode.yaml b/publiccode.yaml index 0877083..f7d3d93 100644 --- a/publiccode.yaml +++ b/publiccode.yaml @@ -7,7 +7,7 @@ publiccodeYmlVersion: '0.2' name: Objecttypes API url: 'http://github.com/maykinmedia/objecttypes-api.git' softwareType: standalone/backend -softwareVersion: 2.2.2 +softwareVersion: 3.0.0 releaseDate: '2021-01-13' logo: 'https://github.com/maykinmedia/objects-api/blob/master/docs/logo.png' platforms: diff --git a/src/objecttypes/conf/api.py b/src/objecttypes/conf/api.py index b60726a..b60ccfc 100644 --- a/src/objecttypes/conf/api.py +++ b/src/objecttypes/conf/api.py @@ -1,6 +1,6 @@ from vng_api_common.conf.api import * # noqa - imports white-listed -API_VERSION = "2.2.2" +API_VERSION = "3.0.0" # api settings From 26b30379433f6a65009c74a0690bf47230907bec Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Fri, 10 Jan 2025 14:30:49 +0100 Subject: [PATCH 06/12] [#513] update openapi spec --- src/objecttypes/api/v2/openapi.yaml | 116 +++++++++++++++++++++++++++- 1 file changed, 115 insertions(+), 1 deletion(-) diff --git a/src/objecttypes/api/v2/openapi.yaml b/src/objecttypes/api/v2/openapi.yaml index 226ac23..3b71369 100644 --- a/src/objecttypes/api/v2/openapi.yaml +++ b/src/objecttypes/api/v2/openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.0.3 info: title: Objecttypes API - version: 2.2.2 + version: 3.0.0 description: |+ An API to manage Object types. @@ -111,6 +111,25 @@ paths: /objecttypes/{objecttype_uuid}/versions: get: operationId: objectversion_list + description: |- + Abstract base class for generic types. + + A generic type is typically declared by inheriting from + this class parameterized with one or more type variables. + For example, a generic mapping type might be defined as:: + + class Mapping(Generic[KT, VT]): + def __getitem__(self, key: KT) -> VT: + ... + # Etc. + + This class can then be used as follows:: + + def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT: + try: + return mapping[key] + except KeyError: + return default parameters: - in: path name: objecttype_uuid @@ -144,6 +163,25 @@ paths: description: OK post: operationId: objectversion_create + description: |- + Abstract base class for generic types. + + A generic type is typically declared by inheriting from + this class parameterized with one or more type variables. + For example, a generic mapping type might be defined as:: + + class Mapping(Generic[KT, VT]): + def __getitem__(self, key: KT) -> VT: + ... + # Etc. + + This class can then be used as follows:: + + def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT: + try: + return mapping[key] + except KeyError: + return default parameters: - in: header name: Content-Type @@ -179,6 +217,25 @@ paths: /objecttypes/{objecttype_uuid}/versions/{version}: get: operationId: objectversion_read + description: |- + Abstract base class for generic types. + + A generic type is typically declared by inheriting from + this class parameterized with one or more type variables. + For example, a generic mapping type might be defined as:: + + class Mapping(Generic[KT, VT]): + def __getitem__(self, key: KT) -> VT: + ... + # Etc. + + This class can then be used as follows:: + + def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT: + try: + return mapping[key] + except KeyError: + return default parameters: - in: path name: objecttype_uuid @@ -208,6 +265,25 @@ paths: description: OK put: operationId: objectversion_update + description: |- + Abstract base class for generic types. + + A generic type is typically declared by inheriting from + this class parameterized with one or more type variables. + For example, a generic mapping type might be defined as:: + + class Mapping(Generic[KT, VT]): + def __getitem__(self, key: KT) -> VT: + ... + # Etc. + + This class can then be used as follows:: + + def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT: + try: + return mapping[key] + except KeyError: + return default parameters: - in: header name: Content-Type @@ -250,6 +326,25 @@ paths: description: OK patch: operationId: objectversion_partial_update + description: |- + Abstract base class for generic types. + + A generic type is typically declared by inheriting from + this class parameterized with one or more type variables. + For example, a generic mapping type might be defined as:: + + class Mapping(Generic[KT, VT]): + def __getitem__(self, key: KT) -> VT: + ... + # Etc. + + This class can then be used as follows:: + + def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT: + try: + return mapping[key] + except KeyError: + return default parameters: - in: header name: Content-Type @@ -292,6 +387,25 @@ paths: description: OK delete: operationId: objectversion_delete + description: |- + Abstract base class for generic types. + + A generic type is typically declared by inheriting from + this class parameterized with one or more type variables. + For example, a generic mapping type might be defined as:: + + class Mapping(Generic[KT, VT]): + def __getitem__(self, key: KT) -> VT: + ... + # Etc. + + This class can then be used as follows:: + + def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT: + try: + return mapping[key] + except KeyError: + return default parameters: - in: path name: objecttype_uuid From c289ce78aa618d80d3c74a97a6a7028c79b1d9d3 Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Fri, 10 Jan 2025 14:36:18 +0100 Subject: [PATCH 07/12] [#513] update package-lock --- package-lock.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index e45bc2a..e7c6f9f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "objecttypes", - "version": "2.2.2", + "version": "3.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "objecttypes", - "version": "2.2.2", + "version": "3.0.0", "license": "EUPL", "dependencies": { "microscope-sass": "latest", From 865073c00a73a345421cf454f7858e6bfbdeaa34 Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Fri, 10 Jan 2025 14:36:27 +0100 Subject: [PATCH 08/12] [#513] update README's --- README.NL.rst | 8 +++++++- README.rst | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/README.NL.rst b/README.NL.rst index b3d6e9e..23a4633 100644 --- a/README.NL.rst +++ b/README.NL.rst @@ -36,7 +36,13 @@ Versie Release datum API specificatie ============== ============== ============================= latest n/a `ReDoc `_, `Swagger `_, - (`verschillen `_) + (`verschillen `_) +3.0.0 2025-01-10 `ReDoc `_, + `Swagger `_ + (`diff `_) +2.3.0 2025-01-10 `ReDoc `_, + `Swagger `_ + (`diff `_) 2.2.2 2022-08-23 `ReDoc `_, `Swagger `_ (`verschillen `_) diff --git a/README.rst b/README.rst index 0caef1b..48c0f23 100644 --- a/README.rst +++ b/README.rst @@ -35,7 +35,13 @@ Version Release date API specification ============== ============== ============================= latest n/a `ReDoc `_, `Swagger `_, - (`diff `_) + (`diff `_) +3.0.0 2025-01-10 `ReDoc `_, + `Swagger `_ + (`diff `_) +2.3.0 2025-01-10 `ReDoc `_, + `Swagger `_ + (`diff `_) 2.2.2 2022-08-23 `ReDoc `_, `Swagger `_ (`diff `_) From 2f69c84fa89adb876fa26b23a10c6ddfd5bcffde Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Mon, 13 Jan 2025 16:41:55 +0100 Subject: [PATCH 09/12] [#513] revert changes to API version --- src/objecttypes/api/v2/openapi.yaml | 2 +- src/objecttypes/conf/api.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/objecttypes/api/v2/openapi.yaml b/src/objecttypes/api/v2/openapi.yaml index 3b71369..e98846e 100644 --- a/src/objecttypes/api/v2/openapi.yaml +++ b/src/objecttypes/api/v2/openapi.yaml @@ -1,7 +1,7 @@ openapi: 3.0.3 info: title: Objecttypes API - version: 3.0.0 + version: 2.2.2 description: |+ An API to manage Object types. diff --git a/src/objecttypes/conf/api.py b/src/objecttypes/conf/api.py index b60ccfc..b60726a 100644 --- a/src/objecttypes/conf/api.py +++ b/src/objecttypes/conf/api.py @@ -1,6 +1,6 @@ from vng_api_common.conf.api import * # noqa - imports white-listed -API_VERSION = "3.0.0" +API_VERSION = "2.2.2" # api settings From 76dfd3e179f28fef65e63e9efdac665407a5addf Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Mon, 13 Jan 2025 16:44:53 +0100 Subject: [PATCH 10/12] [#513] update changelog & update release date --- CHANGELOG.rst | 2 +- README.NL.rst | 6 +++--- README.rst | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 9471131..9de6e87 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -2,7 +2,7 @@ Change history ============== -3.0.0 (2025-01-10) +3.0.0 (2025-01-14) ------------------ **Breaking changes** diff --git a/README.NL.rst b/README.NL.rst index 23a4633..2a0cd37 100644 --- a/README.NL.rst +++ b/README.NL.rst @@ -37,12 +37,12 @@ Versie Release datum API specificatie latest n/a `ReDoc `_, `Swagger `_, (`verschillen `_) -3.0.0 2025-01-10 `ReDoc `_, +3.0.0 2025-01-14 `ReDoc `_, `Swagger `_ - (`diff `_) + (`verschillen `_) 2.3.0 2025-01-10 `ReDoc `_, `Swagger `_ - (`diff `_) + (`verschillen `_) 2.2.2 2022-08-23 `ReDoc `_, `Swagger `_ (`verschillen `_) diff --git a/README.rst b/README.rst index 48c0f23..e34a393 100644 --- a/README.rst +++ b/README.rst @@ -36,7 +36,7 @@ Version Release date API specification latest n/a `ReDoc `_, `Swagger `_, (`diff `_) -3.0.0 2025-01-10 `ReDoc `_, +3.0.0 2025-01-14 `ReDoc `_, `Swagger `_ (`diff `_) 2.3.0 2025-01-10 `ReDoc `_, From 2caaf508793063cd8b7bcbf0c60210342f55a355 Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Wed, 15 Jan 2025 15:34:44 +0100 Subject: [PATCH 11/12] [#513] add descriptions for nested endpoint Seems related to a update of drf-nested-routers>=0.93.4 --- src/objecttypes/api/v2/openapi.yaml | 120 ++-------------------------- src/objecttypes/api/v2/views.py | 26 +++++- 2 files changed, 30 insertions(+), 116 deletions(-) diff --git a/src/objecttypes/api/v2/openapi.yaml b/src/objecttypes/api/v2/openapi.yaml index e98846e..3dff2a0 100644 --- a/src/objecttypes/api/v2/openapi.yaml +++ b/src/objecttypes/api/v2/openapi.yaml @@ -111,25 +111,7 @@ paths: /objecttypes/{objecttype_uuid}/versions: get: operationId: objectversion_list - description: |- - Abstract base class for generic types. - - A generic type is typically declared by inheriting from - this class parameterized with one or more type variables. - For example, a generic mapping type might be defined as:: - - class Mapping(Generic[KT, VT]): - def __getitem__(self, key: KT) -> VT: - ... - # Etc. - - This class can then be used as follows:: - - def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT: - try: - return mapping[key] - except KeyError: - return default + description: Retrieve all versions of an OBJECTTYPE parameters: - in: path name: objecttype_uuid @@ -163,25 +145,7 @@ paths: description: OK post: operationId: objectversion_create - description: |- - Abstract base class for generic types. - - A generic type is typically declared by inheriting from - this class parameterized with one or more type variables. - For example, a generic mapping type might be defined as:: - - class Mapping(Generic[KT, VT]): - def __getitem__(self, key: KT) -> VT: - ... - # Etc. - - This class can then be used as follows:: - - def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT: - try: - return mapping[key] - except KeyError: - return default + description: Create an OBJECTTYPE with the given version. parameters: - in: header name: Content-Type @@ -217,25 +181,7 @@ paths: /objecttypes/{objecttype_uuid}/versions/{version}: get: operationId: objectversion_read - description: |- - Abstract base class for generic types. - - A generic type is typically declared by inheriting from - this class parameterized with one or more type variables. - For example, a generic mapping type might be defined as:: - - class Mapping(Generic[KT, VT]): - def __getitem__(self, key: KT) -> VT: - ... - # Etc. - - This class can then be used as follows:: - - def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT: - try: - return mapping[key] - except KeyError: - return default + description: Retrieve an OBJECTTYPE with the given version. parameters: - in: path name: objecttype_uuid @@ -265,25 +211,7 @@ paths: description: OK put: operationId: objectversion_update - description: |- - Abstract base class for generic types. - - A generic type is typically declared by inheriting from - this class parameterized with one or more type variables. - For example, a generic mapping type might be defined as:: - - class Mapping(Generic[KT, VT]): - def __getitem__(self, key: KT) -> VT: - ... - # Etc. - - This class can then be used as follows:: - - def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT: - try: - return mapping[key] - except KeyError: - return default + description: Update an OBJECTTYPE with the given version. parameters: - in: header name: Content-Type @@ -326,25 +254,7 @@ paths: description: OK patch: operationId: objectversion_partial_update - description: |- - Abstract base class for generic types. - - A generic type is typically declared by inheriting from - this class parameterized with one or more type variables. - For example, a generic mapping type might be defined as:: - - class Mapping(Generic[KT, VT]): - def __getitem__(self, key: KT) -> VT: - ... - # Etc. - - This class can then be used as follows:: - - def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT: - try: - return mapping[key] - except KeyError: - return default + description: Partially update an OBJECTTYPE with the given version. parameters: - in: header name: Content-Type @@ -387,25 +297,7 @@ paths: description: OK delete: operationId: objectversion_delete - description: |- - Abstract base class for generic types. - - A generic type is typically declared by inheriting from - this class parameterized with one or more type variables. - For example, a generic mapping type might be defined as:: - - class Mapping(Generic[KT, VT]): - def __getitem__(self, key: KT) -> VT: - ... - # Etc. - - This class can then be used as follows:: - - def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT: - try: - return mapping[key] - except KeyError: - return default + description: Destroy the given OBJECTTYPE. parameters: - in: path name: objecttype_uuid diff --git a/src/objecttypes/api/v2/views.py b/src/objecttypes/api/v2/views.py index 1284951..57e3803 100644 --- a/src/objecttypes/api/v2/views.py +++ b/src/objecttypes/api/v2/views.py @@ -42,8 +42,30 @@ def perform_destroy(self, instance): @extend_schema_view( - retrieve=extend_schema(operation_id="objectversion_read"), - destroy=extend_schema(operation_id="objectversion_delete"), + retrieve=extend_schema( + operation_id="objectversion_read", + description=_("Retrieve an OBJECTTYPE with the given version.") + ), + list=extend_schema( + operation_id="objectversion_list", + description=_("Retrieve all versions of an OBJECTTYPE") + ), + create=extend_schema( + operation_id="objectversion_create", + description=_("Create an OBJECTTYPE with the given version.") + ), + destroy=extend_schema( + operation_id="objectversion_delete", + description=_("Destroy the given OBJECTTYPE.") + ), + update=extend_schema( + operation_id="objectversion_update", + description=_("Update an OBJECTTYPE with the given version.") + ), + partial_update=extend_schema( + operation_id="objectversion_partial_update", + description=_("Partially update an OBJECTTYPE with the given version.") + ), ) class ObjectVersionViewSet(NestedViewSetMixin, viewsets.ModelViewSet): queryset = ObjectVersion.objects.order_by("object_type", "-version") From d7a67b9ef7059632268c00f998ebc7e700f12bcc Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Wed, 15 Jan 2025 15:38:52 +0100 Subject: [PATCH 12/12] [#513] format changed files --- src/objecttypes/api/v2/views.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/objecttypes/api/v2/views.py b/src/objecttypes/api/v2/views.py index 57e3803..ad35a10 100644 --- a/src/objecttypes/api/v2/views.py +++ b/src/objecttypes/api/v2/views.py @@ -44,27 +44,27 @@ def perform_destroy(self, instance): @extend_schema_view( retrieve=extend_schema( operation_id="objectversion_read", - description=_("Retrieve an OBJECTTYPE with the given version.") + description=_("Retrieve an OBJECTTYPE with the given version."), ), list=extend_schema( operation_id="objectversion_list", - description=_("Retrieve all versions of an OBJECTTYPE") + description=_("Retrieve all versions of an OBJECTTYPE"), ), create=extend_schema( operation_id="objectversion_create", - description=_("Create an OBJECTTYPE with the given version.") + description=_("Create an OBJECTTYPE with the given version."), ), destroy=extend_schema( operation_id="objectversion_delete", - description=_("Destroy the given OBJECTTYPE.") + description=_("Destroy the given OBJECTTYPE."), ), update=extend_schema( operation_id="objectversion_update", - description=_("Update an OBJECTTYPE with the given version.") + description=_("Update an OBJECTTYPE with the given version."), ), partial_update=extend_schema( operation_id="objectversion_partial_update", - description=_("Partially update an OBJECTTYPE with the given version.") + description=_("Partially update an OBJECTTYPE with the given version."), ), ) class ObjectVersionViewSet(NestedViewSetMixin, viewsets.ModelViewSet):