diff --git a/services/TS29222_CAPIF_Discover_Service_API/.openapi-generator/FILES b/services/TS29222_CAPIF_Discover_Service_API/.openapi-generator/FILES
index a2f706ddcae717fe58062908b3ab43a83c38e0e1..58bf048706ca533004614150810a464658968860 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/.openapi-generator/FILES
+++ b/services/TS29222_CAPIF_Discover_Service_API/.openapi-generator/FILES
@@ -1,5 +1,6 @@
 .dockerignore
 .gitignore
+.openapi-generator-ignore
 .travis.yml
 Dockerfile
 README.md
@@ -34,6 +35,7 @@ service_apis/models/ipv6_address_range.py
 service_apis/models/local2d_point_uncertainty_ellipse.py
 service_apis/models/local3d_point_uncertainty_ellipsoid.py
 service_apis/models/local_origin.py
+service_apis/models/o_auth_grant_type.py
 service_apis/models/operation.py
 service_apis/models/point.py
 service_apis/models/point_altitude.py
@@ -56,6 +58,7 @@ service_apis/models/uncertainty_ellipsoid.py
 service_apis/models/version.py
 service_apis/openapi/openapi.yaml
 service_apis/test/__init__.py
+service_apis/test/test_default_controller.py
 service_apis/typing_utils.py
 service_apis/util.py
 requirements.txt
diff --git a/services/TS29222_CAPIF_Discover_Service_API/.openapi-generator/VERSION b/services/TS29222_CAPIF_Discover_Service_API/.openapi-generator/VERSION
index 18bb4182dd01428f1d4c3c2145501ee5d40455a3..b23eb27529e2bacf6c8c06f725c323d9fb87f042 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/.openapi-generator/VERSION
+++ b/services/TS29222_CAPIF_Discover_Service_API/.openapi-generator/VERSION
@@ -1 +1 @@
-7.5.0
+7.11.0
diff --git a/services/TS29222_CAPIF_Discover_Service_API/README.md b/services/TS29222_CAPIF_Discover_Service_API/README.md
index d27fa9b368278b43c5782f7e38988d4c78927499..f522a7de8792c85b4b772ac934da91bc1be45fb1 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/README.md
+++ b/services/TS29222_CAPIF_Discover_Service_API/README.md
@@ -15,7 +15,7 @@ To run the server, please execute the following from the root directory:
 
 ```
 pip3 install -r requirements.txt
-python3 -m openapi_server
+python3 -m service_apis
 ```
 
 and open your browser to here:
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/controllers/default_controller.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/controllers/default_controller.py
index fbe0640a6d630abea3aeb00fa65658223fadaa43..694d6f4a046a71720fc2f7506660f7498746e2b7 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/controllers/default_controller.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/controllers/default_controller.py
@@ -1,5 +1,3 @@
-from service_apis.models.discovered_apis import DiscoveredAPIs  # noqa: E501
-
 import json
 
 from flask import request, current_app
@@ -10,7 +8,7 @@ from ..core.discoveredapis import DiscoverApisOperations, return_negotiated_supp
 discover_apis = DiscoverApisOperations()
 
 
-def all_service_apis_get(api_invoker_id, api_name=None, api_version=None, comm_type=None, protocol=None, aef_id=None, data_format=None, api_cat=None, preferred_aef_loc=None, req_api_prov_name=None, supported_features=None, api_supported_features=None, ue_ip_addr=None, service_kpis=None):  # noqa: E501
+def all_service_apis_get(api_invoker_id, api_name=None, api_version=None, comm_type=None, protocol=None, aef_id=None, data_format=None, api_cat=None, preferred_aef_loc=None, req_api_prov_name=None, supported_features=None, api_supported_features=None, ue_ip_addr=None, service_kpis=None, grant_types=None):  # noqa: E501
     """all_service_apis_get
 
     Discover published service APIs and retrieve a collection of APIs according to certain filter criteria.  # noqa: E501
@@ -43,10 +41,11 @@ def all_service_apis_get(api_invoker_id, api_name=None, api_version=None, comm_t
     :type ue_ip_addr: dict | bytes
     :param service_kpis: Contains iInformation about service characteristics provided by the targeted  service API(s). 
     :type service_kpis: dict | bytes
+    :param grant_types: Contains the OAuth grant types that need to be supported.
+    :type grant_types: list | bytes
 
     :rtype: Union[DiscoveredAPIs, Tuple[DiscoveredAPIs, int], Tuple[DiscoveredAPIs, int, Dict[str, str]]
     """
-
     current_app.logger.info("Discovering service apis")
 
     query_params = {"api_name": api_name, "api_version": api_version, "comm_type": comm_type,
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/__init__.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/__init__.py
index d036df693ea41dfaa3debffffad0462c1fcd8e4a..8451433a745766de2b9b0ba217bc5fe34db75ca6 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/__init__.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/__init__.py
@@ -1,2 +1,45 @@
 # flake8: noqa
 # import models into model package
+from service_apis.models.aef_location import AefLocation
+from service_apis.models.aef_profile import AefProfile
+from service_apis.models.api_status import ApiStatus
+from service_apis.models.civic_address import CivicAddress
+from service_apis.models.communication_type import CommunicationType
+from service_apis.models.custom_operation import CustomOperation
+from service_apis.models.data_format import DataFormat
+from service_apis.models.discovered_apis import DiscoveredAPIs
+from service_apis.models.ellipsoid_arc import EllipsoidArc
+from service_apis.models.gad_shape import GADShape
+from service_apis.models.geographic_area import GeographicArea
+from service_apis.models.geographical_coordinates import GeographicalCoordinates
+from service_apis.models.interface_description import InterfaceDescription
+from service_apis.models.invalid_param import InvalidParam
+from service_apis.models.ip_addr_info import IpAddrInfo
+from service_apis.models.ip_addr_range import IpAddrRange
+from service_apis.models.ipv4_address_range import Ipv4AddressRange
+from service_apis.models.ipv6_addr1 import Ipv6Addr1
+from service_apis.models.ipv6_address_range import Ipv6AddressRange
+from service_apis.models.local2d_point_uncertainty_ellipse import Local2dPointUncertaintyEllipse
+from service_apis.models.local3d_point_uncertainty_ellipsoid import Local3dPointUncertaintyEllipsoid
+from service_apis.models.local_origin import LocalOrigin
+from service_apis.models.o_auth_grant_type import OAuthGrantType
+from service_apis.models.operation import Operation
+from service_apis.models.point import Point
+from service_apis.models.point_altitude import PointAltitude
+from service_apis.models.point_altitude_uncertainty import PointAltitudeUncertainty
+from service_apis.models.point_uncertainty_circle import PointUncertaintyCircle
+from service_apis.models.point_uncertainty_ellipse import PointUncertaintyEllipse
+from service_apis.models.polygon import Polygon
+from service_apis.models.problem_details import ProblemDetails
+from service_apis.models.protocol import Protocol
+from service_apis.models.published_api_path import PublishedApiPath
+from service_apis.models.relative_cartesian_location import RelativeCartesianLocation
+from service_apis.models.resource import Resource
+from service_apis.models.security_method import SecurityMethod
+from service_apis.models.service_api_description import ServiceAPIDescription
+from service_apis.models.service_kpis import ServiceKpis
+from service_apis.models.shareable_information import ShareableInformation
+from service_apis.models.supported_gad_shapes import SupportedGADShapes
+from service_apis.models.uncertainty_ellipse import UncertaintyEllipse
+from service_apis.models.uncertainty_ellipsoid import UncertaintyEllipsoid
+from service_apis.models.version import Version
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/aef_location.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/aef_location.py
index 1174800e0fe1f17bfa0276948c4d9890a3c88084..25fe56a3fad4e8459d8804e21905e4b3bb9c18ad 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/aef_location.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/aef_location.py
@@ -1,12 +1,15 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis.models.civic_address import CivicAddress
+from service_apis.models.geographic_area import GeographicArea
+from service_apis import util
+
 from service_apis.models.civic_address import CivicAddress  # noqa: E501
 from service_apis.models.geographic_area import GeographicArea  # noqa: E501
 
-
 class AefLocation(Model):
     """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/aef_profile.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/aef_profile.py
index 4c1ce31df166ccdf798ad532997afa0400ce00fd..78ff868a1b7fa28c9a73c8612baa261a7e79838a 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/aef_profile.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/aef_profile.py
@@ -1,25 +1,36 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
+from service_apis.models.base_model import Model
+from service_apis.models.aef_location import AefLocation
+from service_apis.models.data_format import DataFormat
+from service_apis.models.interface_description import InterfaceDescription
+from service_apis.models.ip_addr_range import IpAddrRange
+from service_apis.models.o_auth_grant_type import OAuthGrantType
+from service_apis.models.protocol import Protocol
+from service_apis.models.security_method import SecurityMethod
+from service_apis.models.service_kpis import ServiceKpis
+from service_apis.models.version import Version
 from service_apis import util
+
 from service_apis.models.aef_location import AefLocation  # noqa: E501
-from service_apis.models.base_model import Model
 from service_apis.models.data_format import DataFormat  # noqa: E501
 from service_apis.models.interface_description import InterfaceDescription  # noqa: E501
 from service_apis.models.ip_addr_range import IpAddrRange  # noqa: E501
+from service_apis.models.o_auth_grant_type import OAuthGrantType  # noqa: E501
 from service_apis.models.protocol import Protocol  # noqa: E501
 from service_apis.models.security_method import SecurityMethod  # noqa: E501
 from service_apis.models.service_kpis import ServiceKpis  # noqa: E501
 from service_apis.models.version import Version  # noqa: E501
 
-
 class AefProfile(Model):
     """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 
     Do not edit the class manually.
     """
 
-    def __init__(self, aef_id=None, versions=None, protocol=None, data_format=None, security_methods=None, domain_name=None, interface_descriptions=None, aef_location=None, service_kpis=None, ue_ip_range=None):  # noqa: E501
+    def __init__(self, aef_id=None, versions=None, protocol=None, data_format=None, security_methods=None, grant_types=None, domain_name=None, interface_descriptions=None, aef_location=None, service_kpis=None, ue_ip_range=None):  # noqa: E501
         """AefProfile - a model defined in OpenAPI
 
         :param aef_id: The aef_id of this AefProfile.  # noqa: E501
@@ -32,6 +43,8 @@ class AefProfile(Model):
         :type data_format: DataFormat
         :param security_methods: The security_methods of this AefProfile.  # noqa: E501
         :type security_methods: List[SecurityMethod]
+        :param grant_types: The grant_types of this AefProfile.  # noqa: E501
+        :type grant_types: List[OAuthGrantType]
         :param domain_name: The domain_name of this AefProfile.  # noqa: E501
         :type domain_name: str
         :param interface_descriptions: The interface_descriptions of this AefProfile.  # noqa: E501
@@ -49,6 +62,7 @@ class AefProfile(Model):
             'protocol': Protocol,
             'data_format': DataFormat,
             'security_methods': List[SecurityMethod],
+            'grant_types': List[OAuthGrantType],
             'domain_name': str,
             'interface_descriptions': List[InterfaceDescription],
             'aef_location': AefLocation,
@@ -62,6 +76,7 @@ class AefProfile(Model):
             'protocol': 'protocol',
             'data_format': 'dataFormat',
             'security_methods': 'securityMethods',
+            'grant_types': 'grantTypes',
             'domain_name': 'domainName',
             'interface_descriptions': 'interfaceDescriptions',
             'aef_location': 'aefLocation',
@@ -74,6 +89,7 @@ class AefProfile(Model):
         self._protocol = protocol
         self._data_format = data_format
         self._security_methods = security_methods
+        self._grant_types = grant_types
         self._domain_name = domain_name
         self._interface_descriptions = interface_descriptions
         self._aef_location = aef_location
@@ -210,6 +226,29 @@ class AefProfile(Model):
 
         self._security_methods = security_methods
 
+    @property
+    def grant_types(self) -> List[OAuthGrantType]:
+        """Gets the grant_types of this AefProfile.
+
+
+        :return: The grant_types of this AefProfile.
+        :rtype: List[OAuthGrantType]
+        """
+        return self._grant_types
+
+    @grant_types.setter
+    def grant_types(self, grant_types: List[OAuthGrantType]):
+        """Sets the grant_types of this AefProfile.
+
+
+        :param grant_types: The grant_types of this AefProfile.
+        :type grant_types: List[OAuthGrantType]
+        """
+        if grant_types is not None and len(grant_types) < 1:
+            raise ValueError("Invalid value for `grant_types`, number of items must be greater than or equal to `1`")  # noqa: E501
+
+        self._grant_types = grant_types
+
     @property
     def domain_name(self) -> str:
         """Gets the domain_name of this AefProfile.
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/api_status.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/api_status.py
index 2cb1a216ee786c7f0eaa6a45f042337cb357f963..81815062b82665fdb6beef607480538ae5cd9b61 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/api_status.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/api_status.py
@@ -1,8 +1,9 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis import util
 
 
 class ApiStatus(Model):
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/base_model.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/base_model.py
index a083ea9489c03a70869dbd2e2cfe026c016472e6..7951efc4e59ab29f80728fa66996a0e24f5c8501 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/base_model.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/base_model.py
@@ -1,4 +1,5 @@
 import pprint
+
 import typing
 
 from service_apis import util
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/civic_address.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/civic_address.py
index 5e8fb961815bd0a4250a42f78d5514f17caef189..67c1a70f5363b0456df711a94daac35e2a6b3e7d 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/civic_address.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/civic_address.py
@@ -1,8 +1,9 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis import util
 
 
 class CivicAddress(Model):
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/communication_type.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/communication_type.py
index e6b697a16299e357bfd4f9796fc95c392dfa855d..04b99a7005e6482a49e0ecdff6ec079e1163c264 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/communication_type.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/communication_type.py
@@ -1,8 +1,9 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis import util
 
 
 class CommunicationType(Model):
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/custom_operation.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/custom_operation.py
index 7c93f551fd7dc53cd6eaf4c077a27504ec3feea9..b98c3dc93e4592ce6548ff3cd132b1f97d9e0838 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/custom_operation.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/custom_operation.py
@@ -1,12 +1,15 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis.models.communication_type import CommunicationType
+from service_apis.models.operation import Operation
+from service_apis import util
+
 from service_apis.models.communication_type import CommunicationType  # noqa: E501
 from service_apis.models.operation import Operation  # noqa: E501
 
-
 class CustomOperation(Model):
     """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/data_format.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/data_format.py
index 9cbf6ff5b314fd81f7ffb6670eebaf043d0f867d..875a9539a991c3ec4d5f15bca03153c9a5aa89d3 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/data_format.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/data_format.py
@@ -1,8 +1,9 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis import util
 
 
 class DataFormat(Model):
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/discovered_apis.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/discovered_apis.py
index 1d9439049c62e65a20a1e92c1ae79a0f7c3e6ef6..36a7889a3340b35e3395f762aa5dd64952752554 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/discovered_apis.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/discovered_apis.py
@@ -1,10 +1,14 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
-from service_apis.models.service_api_description import ServiceAPIDescription  # noqa: E501
+from service_apis.models.service_api_description import ServiceAPIDescription
+import re
+from service_apis import util
 
+from service_apis.models.service_api_description import ServiceAPIDescription  # noqa: E501
+import re  # noqa: E501
 
 class DiscoveredAPIs(Model):
     """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -12,21 +16,26 @@ class DiscoveredAPIs(Model):
     Do not edit the class manually.
     """
 
-    def __init__(self, service_api_descriptions=None):  # noqa: E501
+    def __init__(self, service_api_descriptions=None, supp_feat=None):  # noqa: E501
         """DiscoveredAPIs - a model defined in OpenAPI
 
         :param service_api_descriptions: The service_api_descriptions of this DiscoveredAPIs.  # noqa: E501
         :type service_api_descriptions: List[ServiceAPIDescription]
+        :param supp_feat: The supp_feat of this DiscoveredAPIs.  # noqa: E501
+        :type supp_feat: str
         """
         self.openapi_types = {
-            'service_api_descriptions': List[ServiceAPIDescription]
+            'service_api_descriptions': List[ServiceAPIDescription],
+            'supp_feat': str
         }
 
         self.attribute_map = {
-            'service_api_descriptions': 'serviceAPIDescriptions'
+            'service_api_descriptions': 'serviceAPIDescriptions',
+            'supp_feat': 'suppFeat'
         }
 
         self._service_api_descriptions = service_api_descriptions
+        self._supp_feat = supp_feat
 
     @classmethod
     def from_dict(cls, dikt) -> 'DiscoveredAPIs':
@@ -43,7 +52,7 @@ class DiscoveredAPIs(Model):
     def service_api_descriptions(self) -> List[ServiceAPIDescription]:
         """Gets the service_api_descriptions of this DiscoveredAPIs.
 
-        Description of the service API as published by the service. Each service API description shall include AEF profiles matching the filter criteria.   # noqa: E501
+        Description of the service API as published by the service. Each service API information shall include AEF profiles matching the filter criteria.   # noqa: E501
 
         :return: The service_api_descriptions of this DiscoveredAPIs.
         :rtype: List[ServiceAPIDescription]
@@ -54,7 +63,7 @@ class DiscoveredAPIs(Model):
     def service_api_descriptions(self, service_api_descriptions: List[ServiceAPIDescription]):
         """Sets the service_api_descriptions of this DiscoveredAPIs.
 
-        Description of the service API as published by the service. Each service API description shall include AEF profiles matching the filter criteria.   # noqa: E501
+        Description of the service API as published by the service. Each service API information shall include AEF profiles matching the filter criteria.   # noqa: E501
 
         :param service_api_descriptions: The service_api_descriptions of this DiscoveredAPIs.
         :type service_api_descriptions: List[ServiceAPIDescription]
@@ -63,3 +72,28 @@ class DiscoveredAPIs(Model):
             raise ValueError("Invalid value for `service_api_descriptions`, number of items must be greater than or equal to `1`")  # noqa: E501
 
         self._service_api_descriptions = service_api_descriptions
+
+    @property
+    def supp_feat(self) -> str:
+        """Gets the supp_feat of this DiscoveredAPIs.
+
+        A string used to indicate the features supported by an API that is used as defined in clause  6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in  hexadecimal representation Each character in the string shall take a value of \"0\" to \"9\",  \"a\" to \"f\" or \"A\" to \"F\" and shall represent the support of 4 features as described in  table 5.2.2-3. The most significant character representing the highest-numbered features shall  appear first in the string, and the character representing features 1 to 4 shall appear last  in the string. The list of features and their numbering (starting with 1) are defined  separately for each API. If the string contains a lower number of characters than there are  defined features for an API, all features that would be represented by characters that are not  present in the string are not supported.   # noqa: E501
+
+        :return: The supp_feat of this DiscoveredAPIs.
+        :rtype: str
+        """
+        return self._supp_feat
+
+    @supp_feat.setter
+    def supp_feat(self, supp_feat: str):
+        """Sets the supp_feat of this DiscoveredAPIs.
+
+        A string used to indicate the features supported by an API that is used as defined in clause  6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in  hexadecimal representation Each character in the string shall take a value of \"0\" to \"9\",  \"a\" to \"f\" or \"A\" to \"F\" and shall represent the support of 4 features as described in  table 5.2.2-3. The most significant character representing the highest-numbered features shall  appear first in the string, and the character representing features 1 to 4 shall appear last  in the string. The list of features and their numbering (starting with 1) are defined  separately for each API. If the string contains a lower number of characters than there are  defined features for an API, all features that would be represented by characters that are not  present in the string are not supported.   # noqa: E501
+
+        :param supp_feat: The supp_feat of this DiscoveredAPIs.
+        :type supp_feat: str
+        """
+        if supp_feat is not None and not re.search(r'^[A-Fa-f0-9]*$', supp_feat):  # noqa: E501
+            raise ValueError(r"Invalid value for `supp_feat`, must be a follow pattern or equal to `/^[A-Fa-f0-9]*$/`")  # noqa: E501
+
+        self._supp_feat = supp_feat
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/ellipsoid_arc.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/ellipsoid_arc.py
index 98745d95e1024eebc8021380b4951503333facbf..9f6206bcd5c7f4695174a8d64408f794bcb0836c 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/ellipsoid_arc.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/ellipsoid_arc.py
@@ -1,12 +1,17 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis.models.gad_shape import GADShape
+from service_apis.models.geographical_coordinates import GeographicalCoordinates
+from service_apis.models.supported_gad_shapes import SupportedGADShapes
+from service_apis import util
+
+from service_apis.models.gad_shape import GADShape  # noqa: E501
 from service_apis.models.geographical_coordinates import GeographicalCoordinates  # noqa: E501
 from service_apis.models.supported_gad_shapes import SupportedGADShapes  # noqa: E501
 
-
 class EllipsoidArc(Model):
     """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/gad_shape.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/gad_shape.py
index 7e4f7c4a4859991c1104d7b7234cd9803c8198f1..21e0ee1924b54788f78d47968c49913060dc9b4d 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/gad_shape.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/gad_shape.py
@@ -1,10 +1,12 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
-from service_apis.models.supported_gad_shapes import SupportedGADShapes  # noqa: E501
+from service_apis.models.supported_gad_shapes import SupportedGADShapes
+from service_apis import util
 
+from service_apis.models.supported_gad_shapes import SupportedGADShapes  # noqa: E501
 
 class GADShape(Model):
     """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/geographic_area.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/geographic_area.py
index bc7034d3b3334c6c673daf8879e6746e6f8e6f1c..dafc996022a9fcef5272670b62c83308496e3250 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/geographic_area.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/geographic_area.py
@@ -1,13 +1,31 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis.models.ellipsoid_arc import EllipsoidArc
+from service_apis.models.geographical_coordinates import GeographicalCoordinates
+from service_apis.models.point import Point
+from service_apis.models.point_altitude import PointAltitude
+from service_apis.models.point_altitude_uncertainty import PointAltitudeUncertainty
+from service_apis.models.point_uncertainty_circle import PointUncertaintyCircle
+from service_apis.models.point_uncertainty_ellipse import PointUncertaintyEllipse
+from service_apis.models.polygon import Polygon
+from service_apis.models.supported_gad_shapes import SupportedGADShapes
+from service_apis.models.uncertainty_ellipse import UncertaintyEllipse
+from service_apis import util
+
+from service_apis.models.ellipsoid_arc import EllipsoidArc  # noqa: E501
 from service_apis.models.geographical_coordinates import GeographicalCoordinates  # noqa: E501
+from service_apis.models.point import Point  # noqa: E501
+from service_apis.models.point_altitude import PointAltitude  # noqa: E501
+from service_apis.models.point_altitude_uncertainty import PointAltitudeUncertainty  # noqa: E501
+from service_apis.models.point_uncertainty_circle import PointUncertaintyCircle  # noqa: E501
+from service_apis.models.point_uncertainty_ellipse import PointUncertaintyEllipse  # noqa: E501
+from service_apis.models.polygon import Polygon  # noqa: E501
 from service_apis.models.supported_gad_shapes import SupportedGADShapes  # noqa: E501
 from service_apis.models.uncertainty_ellipse import UncertaintyEllipse  # noqa: E501
 
-
 class GeographicArea(Model):
     """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/geographical_coordinates.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/geographical_coordinates.py
index c07d138fb41e81a3fa7d8040f1d63472877da0c9..4eae80d39265590e31ebc7b9adca753c1e1b9b70 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/geographical_coordinates.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/geographical_coordinates.py
@@ -1,8 +1,9 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis import util
 
 
 class GeographicalCoordinates(Model):
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/interface_description.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/interface_description.py
index 74bf6544fd466c37e56e3928a20690fc4a120a16..da6cd574c6d1bb02abb19a1da2ff44b03688043f 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/interface_description.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/interface_description.py
@@ -1,11 +1,16 @@
-import re  # noqa: E501
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
-from service_apis.models.security_method import SecurityMethod  # noqa: E501
+from service_apis.models.o_auth_grant_type import OAuthGrantType
+from service_apis.models.security_method import SecurityMethod
+import re
+from service_apis import util
 
+from service_apis.models.o_auth_grant_type import OAuthGrantType  # noqa: E501
+from service_apis.models.security_method import SecurityMethod  # noqa: E501
+import re  # noqa: E501
 
 class InterfaceDescription(Model):
     """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -13,7 +18,7 @@ class InterfaceDescription(Model):
     Do not edit the class manually.
     """
 
-    def __init__(self, ipv4_addr=None, ipv6_addr=None, fqdn=None, port=None, api_prefix=None, security_methods=None):  # noqa: E501
+    def __init__(self, ipv4_addr=None, ipv6_addr=None, fqdn=None, port=None, api_prefix=None, security_methods=None, grant_types=None):  # noqa: E501
         """InterfaceDescription - a model defined in OpenAPI
 
         :param ipv4_addr: The ipv4_addr of this InterfaceDescription.  # noqa: E501
@@ -28,6 +33,8 @@ class InterfaceDescription(Model):
         :type api_prefix: str
         :param security_methods: The security_methods of this InterfaceDescription.  # noqa: E501
         :type security_methods: List[SecurityMethod]
+        :param grant_types: The grant_types of this InterfaceDescription.  # noqa: E501
+        :type grant_types: List[OAuthGrantType]
         """
         self.openapi_types = {
             'ipv4_addr': str,
@@ -35,7 +42,8 @@ class InterfaceDescription(Model):
             'fqdn': str,
             'port': int,
             'api_prefix': str,
-            'security_methods': List[SecurityMethod]
+            'security_methods': List[SecurityMethod],
+            'grant_types': List[OAuthGrantType]
         }
 
         self.attribute_map = {
@@ -44,7 +52,8 @@ class InterfaceDescription(Model):
             'fqdn': 'fqdn',
             'port': 'port',
             'api_prefix': 'apiPrefix',
-            'security_methods': 'securityMethods'
+            'security_methods': 'securityMethods',
+            'grant_types': 'grantTypes'
         }
 
         self._ipv4_addr = ipv4_addr
@@ -53,6 +62,7 @@ class InterfaceDescription(Model):
         self._port = port
         self._api_prefix = api_prefix
         self._security_methods = security_methods
+        self._grant_types = grant_types
 
     @classmethod
     def from_dict(cls, dikt) -> 'InterfaceDescription':
@@ -136,7 +146,7 @@ class InterfaceDescription(Model):
         if fqdn is not None and len(fqdn) < 4:
             raise ValueError("Invalid value for `fqdn`, length must be greater than or equal to `4`")  # noqa: E501
         if fqdn is not None and not re.search(r'^([0-9A-Za-z]([-0-9A-Za-z]{0,61}[0-9A-Za-z])?\.)+[A-Za-z]{2,63}\.?$', fqdn):  # noqa: E501
-            raise ValueError("Invalid value for `fqdn`, must be a follow pattern or equal to `/^([0-9A-Za-z]([-0-9A-Za-z]{0,61}[0-9A-Za-z])?\.)+[A-Za-z]{2,63}\.?$/`")  # noqa: E501
+            raise ValueError(r"Invalid value for `fqdn`, must be a follow pattern or equal to `/^([0-9A-Za-z]([-0-9A-Za-z]{0,61}[0-9A-Za-z])?\.)+[A-Za-z]{2,63}\.?$/`")  # noqa: E501
 
         self._fqdn = fqdn
 
@@ -214,3 +224,26 @@ class InterfaceDescription(Model):
             raise ValueError("Invalid value for `security_methods`, number of items must be greater than or equal to `1`")  # noqa: E501
 
         self._security_methods = security_methods
+
+    @property
+    def grant_types(self) -> List[OAuthGrantType]:
+        """Gets the grant_types of this InterfaceDescription.
+
+
+        :return: The grant_types of this InterfaceDescription.
+        :rtype: List[OAuthGrantType]
+        """
+        return self._grant_types
+
+    @grant_types.setter
+    def grant_types(self, grant_types: List[OAuthGrantType]):
+        """Sets the grant_types of this InterfaceDescription.
+
+
+        :param grant_types: The grant_types of this InterfaceDescription.
+        :type grant_types: List[OAuthGrantType]
+        """
+        if grant_types is not None and len(grant_types) < 1:
+            raise ValueError("Invalid value for `grant_types`, number of items must be greater than or equal to `1`")  # noqa: E501
+
+        self._grant_types = grant_types
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/invalid_param.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/invalid_param.py
index 75965c054a9c0c8d1105ec8b2c4f24bc97171a98..67c79e30ad07e31258efcf5b0a08d97f7e9e7dda 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/invalid_param.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/invalid_param.py
@@ -1,8 +1,9 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis import util
 
 
 class InvalidParam(Model):
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/ip_addr_info.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/ip_addr_info.py
index 3f40627b5357d5d830be9aba4fe902833b467d47..3cb739c62e704d23f91a66073abc042d25e18423 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/ip_addr_info.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/ip_addr_info.py
@@ -1,8 +1,9 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis import util
 
 
 class IpAddrInfo(Model):
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/ip_addr_range.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/ip_addr_range.py
index 7d19e3393ff119578dfabda9e913a8cd631051cb..4b86f968cbfab20db046ca76e0141200c2ce635d 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/ip_addr_range.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/ip_addr_range.py
@@ -1,12 +1,15 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis.models.ipv4_address_range import Ipv4AddressRange
+from service_apis.models.ipv6_address_range import Ipv6AddressRange
+from service_apis import util
+
 from service_apis.models.ipv4_address_range import Ipv4AddressRange  # noqa: E501
 from service_apis.models.ipv6_address_range import Ipv6AddressRange  # noqa: E501
 
-
 class IpAddrRange(Model):
     """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/ipv4_address_range.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/ipv4_address_range.py
index a7e40ff61897e85c65dc94952d2cc8b102be222f..9d500949df802a09a9ae6e11d5b39d18dad6a3be 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/ipv4_address_range.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/ipv4_address_range.py
@@ -1,10 +1,12 @@
-import re  # noqa: E501
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+import re
+from service_apis import util
 
+import re  # noqa: E501
 
 class Ipv4AddressRange(Model):
     """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -67,7 +69,7 @@ class Ipv4AddressRange(Model):
         if start is None:
             raise ValueError("Invalid value for `start`, must not be `None`")  # noqa: E501
         if start is not None and not re.search(r'^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$', start):  # noqa: E501
-            raise ValueError("Invalid value for `start`, must be a follow pattern or equal to `/^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$/`")  # noqa: E501
+            raise ValueError(r"Invalid value for `start`, must be a follow pattern or equal to `/^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$/`")  # noqa: E501
 
         self._start = start
 
@@ -94,6 +96,6 @@ class Ipv4AddressRange(Model):
         if end is None:
             raise ValueError("Invalid value for `end`, must not be `None`")  # noqa: E501
         if end is not None and not re.search(r'^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$', end):  # noqa: E501
-            raise ValueError("Invalid value for `end`, must be a follow pattern or equal to `/^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$/`")  # noqa: E501
+            raise ValueError(r"Invalid value for `end`, must be a follow pattern or equal to `/^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$/`")  # noqa: E501
 
         self._end = end
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/ipv6_addr1.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/ipv6_addr1.py
index b7af560a0407e1f381e2d515d1fc72db35ac10bc..d8164b5fac75c39477440978536712ce2def54cb 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/ipv6_addr1.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/ipv6_addr1.py
@@ -1,8 +1,9 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis import util
 
 
 class Ipv6Addr1(Model):
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/ipv6_address_range.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/ipv6_address_range.py
index 841f7dad5d14bbaa2c82e3d8b40b83d396350333..e9fc81ec3ec241d3d5a2a6aec76c784565bac4e7 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/ipv6_address_range.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/ipv6_address_range.py
@@ -1,10 +1,12 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
-from service_apis.models.ipv6_addr1 import Ipv6Addr1  # noqa: E501
+from service_apis.models.ipv6_addr1 import Ipv6Addr1
+from service_apis import util
 
+from service_apis.models.ipv6_addr1 import Ipv6Addr1  # noqa: E501
 
 class Ipv6AddressRange(Model):
     """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/local2d_point_uncertainty_ellipse.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/local2d_point_uncertainty_ellipse.py
index 1d99c36b21761bea841c92cd4a3101e281d38758..234643996e1681f5c234f492438d47dfb8b27b6f 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/local2d_point_uncertainty_ellipse.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/local2d_point_uncertainty_ellipse.py
@@ -1,14 +1,21 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis.models.gad_shape import GADShape
+from service_apis.models.local_origin import LocalOrigin
+from service_apis.models.relative_cartesian_location import RelativeCartesianLocation
+from service_apis.models.supported_gad_shapes import SupportedGADShapes
+from service_apis.models.uncertainty_ellipse import UncertaintyEllipse
+from service_apis import util
+
+from service_apis.models.gad_shape import GADShape  # noqa: E501
 from service_apis.models.local_origin import LocalOrigin  # noqa: E501
 from service_apis.models.relative_cartesian_location import RelativeCartesianLocation  # noqa: E501
 from service_apis.models.supported_gad_shapes import SupportedGADShapes  # noqa: E501
 from service_apis.models.uncertainty_ellipse import UncertaintyEllipse  # noqa: E501
 
-
 class Local2dPointUncertaintyEllipse(Model):
     """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/local3d_point_uncertainty_ellipsoid.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/local3d_point_uncertainty_ellipsoid.py
index 4ab20c6b308caf952b54eda94ef862c141c3288a..4d9cb7bb123adebf7bfeb81d5674e04e75adea50 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/local3d_point_uncertainty_ellipsoid.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/local3d_point_uncertainty_ellipsoid.py
@@ -1,21 +1,28 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis.models.gad_shape import GADShape
+from service_apis.models.local_origin import LocalOrigin
+from service_apis.models.relative_cartesian_location import RelativeCartesianLocation
+from service_apis.models.supported_gad_shapes import SupportedGADShapes
+from service_apis.models.uncertainty_ellipsoid import UncertaintyEllipsoid
+from service_apis import util
+
+from service_apis.models.gad_shape import GADShape  # noqa: E501
 from service_apis.models.local_origin import LocalOrigin  # noqa: E501
 from service_apis.models.relative_cartesian_location import RelativeCartesianLocation  # noqa: E501
 from service_apis.models.supported_gad_shapes import SupportedGADShapes  # noqa: E501
 from service_apis.models.uncertainty_ellipsoid import UncertaintyEllipsoid  # noqa: E501
 
-
 class Local3dPointUncertaintyEllipsoid(Model):
     """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 
     Do not edit the class manually.
     """
 
-    def __init__(self, shape=None, local_origin=None, point=None, uncertainty_ellipsoid=None, confidence=None):  # noqa: E501
+    def __init__(self, shape=None, local_origin=None, point=None, uncertainty_ellipsoid=None, confidence=None, v_confidence=None):  # noqa: E501
         """Local3dPointUncertaintyEllipsoid - a model defined in OpenAPI
 
         :param shape: The shape of this Local3dPointUncertaintyEllipsoid.  # noqa: E501
@@ -28,13 +35,16 @@ class Local3dPointUncertaintyEllipsoid(Model):
         :type uncertainty_ellipsoid: UncertaintyEllipsoid
         :param confidence: The confidence of this Local3dPointUncertaintyEllipsoid.  # noqa: E501
         :type confidence: int
+        :param v_confidence: The v_confidence of this Local3dPointUncertaintyEllipsoid.  # noqa: E501
+        :type v_confidence: int
         """
         self.openapi_types = {
             'shape': SupportedGADShapes,
             'local_origin': LocalOrigin,
             'point': RelativeCartesianLocation,
             'uncertainty_ellipsoid': UncertaintyEllipsoid,
-            'confidence': int
+            'confidence': int,
+            'v_confidence': int
         }
 
         self.attribute_map = {
@@ -42,7 +52,8 @@ class Local3dPointUncertaintyEllipsoid(Model):
             'local_origin': 'localOrigin',
             'point': 'point',
             'uncertainty_ellipsoid': 'uncertaintyEllipsoid',
-            'confidence': 'confidence'
+            'confidence': 'confidence',
+            'v_confidence': 'vConfidence'
         }
 
         self._shape = shape
@@ -50,6 +61,7 @@ class Local3dPointUncertaintyEllipsoid(Model):
         self._point = point
         self._uncertainty_ellipsoid = uncertainty_ellipsoid
         self._confidence = confidence
+        self._v_confidence = v_confidence
 
     @classmethod
     def from_dict(cls, dikt) -> 'Local3dPointUncertaintyEllipsoid':
@@ -182,3 +194,30 @@ class Local3dPointUncertaintyEllipsoid(Model):
             raise ValueError("Invalid value for `confidence`, must be a value greater than or equal to `0`")  # noqa: E501
 
         self._confidence = confidence
+
+    @property
+    def v_confidence(self) -> int:
+        """Gets the v_confidence of this Local3dPointUncertaintyEllipsoid.
+
+        Indicates value of confidence.  # noqa: E501
+
+        :return: The v_confidence of this Local3dPointUncertaintyEllipsoid.
+        :rtype: int
+        """
+        return self._v_confidence
+
+    @v_confidence.setter
+    def v_confidence(self, v_confidence: int):
+        """Sets the v_confidence of this Local3dPointUncertaintyEllipsoid.
+
+        Indicates value of confidence.  # noqa: E501
+
+        :param v_confidence: The v_confidence of this Local3dPointUncertaintyEllipsoid.
+        :type v_confidence: int
+        """
+        if v_confidence is not None and v_confidence > 100:  # noqa: E501
+            raise ValueError("Invalid value for `v_confidence`, must be a value less than or equal to `100`")  # noqa: E501
+        if v_confidence is not None and v_confidence < 0:  # noqa: E501
+            raise ValueError("Invalid value for `v_confidence`, must be a value greater than or equal to `0`")  # noqa: E501
+
+        self._v_confidence = v_confidence
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/local_origin.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/local_origin.py
index f7e3fc5808ae288022ff8858a834bd7ab6f6637a..bf20a6d3eb06e6bb2d7830aad88897d769ba0f3c 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/local_origin.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/local_origin.py
@@ -1,10 +1,14 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
-from service_apis.models.geographical_coordinates import GeographicalCoordinates  # noqa: E501
+from service_apis.models.geographic_area import GeographicArea
+from service_apis.models.geographical_coordinates import GeographicalCoordinates
+from service_apis import util
 
+from service_apis.models.geographic_area import GeographicArea  # noqa: E501
+from service_apis.models.geographical_coordinates import GeographicalCoordinates  # noqa: E501
 
 class LocalOrigin(Model):
     """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -12,26 +16,36 @@ class LocalOrigin(Model):
     Do not edit the class manually.
     """
 
-    def __init__(self, coordinate_id=None, point=None):  # noqa: E501
+    def __init__(self, coordinate_id=None, point=None, area=None, horiz_axes_orientation=None):  # noqa: E501
         """LocalOrigin - a model defined in OpenAPI
 
         :param coordinate_id: The coordinate_id of this LocalOrigin.  # noqa: E501
         :type coordinate_id: str
         :param point: The point of this LocalOrigin.  # noqa: E501
         :type point: GeographicalCoordinates
+        :param area: The area of this LocalOrigin.  # noqa: E501
+        :type area: GeographicArea
+        :param horiz_axes_orientation: The horiz_axes_orientation of this LocalOrigin.  # noqa: E501
+        :type horiz_axes_orientation: int
         """
         self.openapi_types = {
             'coordinate_id': str,
-            'point': GeographicalCoordinates
+            'point': GeographicalCoordinates,
+            'area': GeographicArea,
+            'horiz_axes_orientation': int
         }
 
         self.attribute_map = {
             'coordinate_id': 'coordinateId',
-            'point': 'point'
+            'point': 'point',
+            'area': 'area',
+            'horiz_axes_orientation': 'horizAxesOrientation'
         }
 
         self._coordinate_id = coordinate_id
         self._point = point
+        self._area = area
+        self._horiz_axes_orientation = horiz_axes_orientation
 
     @classmethod
     def from_dict(cls, dikt) -> 'LocalOrigin':
@@ -62,6 +76,8 @@ class LocalOrigin(Model):
         :param coordinate_id: The coordinate_id of this LocalOrigin.
         :type coordinate_id: str
         """
+        if coordinate_id is None:
+            raise ValueError("Invalid value for `coordinate_id`, must not be `None`")  # noqa: E501
 
         self._coordinate_id = coordinate_id
 
@@ -85,3 +101,51 @@ class LocalOrigin(Model):
         """
 
         self._point = point
+
+    @property
+    def area(self) -> GeographicArea:
+        """Gets the area of this LocalOrigin.
+
+
+        :return: The area of this LocalOrigin.
+        :rtype: GeographicArea
+        """
+        return self._area
+
+    @area.setter
+    def area(self, area: GeographicArea):
+        """Sets the area of this LocalOrigin.
+
+
+        :param area: The area of this LocalOrigin.
+        :type area: GeographicArea
+        """
+
+        self._area = area
+
+    @property
+    def horiz_axes_orientation(self) -> int:
+        """Gets the horiz_axes_orientation of this LocalOrigin.
+
+        Horizontal axes orientation angle clockwise from northing in 0.1 degrees.  # noqa: E501
+
+        :return: The horiz_axes_orientation of this LocalOrigin.
+        :rtype: int
+        """
+        return self._horiz_axes_orientation
+
+    @horiz_axes_orientation.setter
+    def horiz_axes_orientation(self, horiz_axes_orientation: int):
+        """Sets the horiz_axes_orientation of this LocalOrigin.
+
+        Horizontal axes orientation angle clockwise from northing in 0.1 degrees.  # noqa: E501
+
+        :param horiz_axes_orientation: The horiz_axes_orientation of this LocalOrigin.
+        :type horiz_axes_orientation: int
+        """
+        if horiz_axes_orientation is not None and horiz_axes_orientation > 3600:  # noqa: E501
+            raise ValueError("Invalid value for `horiz_axes_orientation`, must be a value less than or equal to `3600`")  # noqa: E501
+        if horiz_axes_orientation is not None and horiz_axes_orientation < 0:  # noqa: E501
+            raise ValueError("Invalid value for `horiz_axes_orientation`, must be a value greater than or equal to `0`")  # noqa: E501
+
+        self._horiz_axes_orientation = horiz_axes_orientation
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/o_auth_grant_type.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/o_auth_grant_type.py
new file mode 100644
index 0000000000000000000000000000000000000000..fc93ba2e385174ea4ca72c0153ffff5e89f3d00a
--- /dev/null
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/o_auth_grant_type.py
@@ -0,0 +1,34 @@
+from datetime import date, datetime  # noqa: F401
+
+from typing import List, Dict  # noqa: F401
+
+from service_apis.models.base_model import Model
+from service_apis import util
+
+
+class OAuthGrantType(Model):
+    """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
+
+    Do not edit the class manually.
+    """
+
+    def __init__(self):  # noqa: E501
+        """OAuthGrantType - a model defined in OpenAPI
+
+        """
+        self.openapi_types = {
+        }
+
+        self.attribute_map = {
+        }
+
+    @classmethod
+    def from_dict(cls, dikt) -> 'OAuthGrantType':
+        """Returns the dict as a model
+
+        :param dikt: A dict.
+        :type: dict
+        :return: The OAuthGrantType of this OAuthGrantType.  # noqa: E501
+        :rtype: OAuthGrantType
+        """
+        return util.deserialize_model(dikt, cls)
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/operation.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/operation.py
index db7461ed893b86a2de0ce0434f803574605ea7b3..6e0b387e7e62b93fd21d96c5c9d1806e15efe8b7 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/operation.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/operation.py
@@ -1,8 +1,9 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis import util
 
 
 class Operation(Model):
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/point.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/point.py
index 4dd203f43833394159db68ddcafa2de8869f0f27..a258d3397f6555f8c9e51e4b00294066b2f49c22 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/point.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/point.py
@@ -1,12 +1,17 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis.models.gad_shape import GADShape
+from service_apis.models.geographical_coordinates import GeographicalCoordinates
+from service_apis.models.supported_gad_shapes import SupportedGADShapes
+from service_apis import util
+
+from service_apis.models.gad_shape import GADShape  # noqa: E501
 from service_apis.models.geographical_coordinates import GeographicalCoordinates  # noqa: E501
 from service_apis.models.supported_gad_shapes import SupportedGADShapes  # noqa: E501
 
-
 class Point(Model):
     """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/point_altitude.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/point_altitude.py
index c692296e84767fff568c5f15b29cb359e9e82301..3245960ef4b756b5de186c44354661e080e65500 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/point_altitude.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/point_altitude.py
@@ -1,12 +1,17 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis.models.gad_shape import GADShape
+from service_apis.models.geographical_coordinates import GeographicalCoordinates
+from service_apis.models.supported_gad_shapes import SupportedGADShapes
+from service_apis import util
+
+from service_apis.models.gad_shape import GADShape  # noqa: E501
 from service_apis.models.geographical_coordinates import GeographicalCoordinates  # noqa: E501
 from service_apis.models.supported_gad_shapes import SupportedGADShapes  # noqa: E501
 
-
 class PointAltitude(Model):
     """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/point_altitude_uncertainty.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/point_altitude_uncertainty.py
index 8cb287ae555465cc844bb26bd00156ec1007a150..aadbd5106a6e375c101b473714f8031344d9aab5 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/point_altitude_uncertainty.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/point_altitude_uncertainty.py
@@ -1,13 +1,19 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis.models.gad_shape import GADShape
+from service_apis.models.geographical_coordinates import GeographicalCoordinates
+from service_apis.models.supported_gad_shapes import SupportedGADShapes
+from service_apis.models.uncertainty_ellipse import UncertaintyEllipse
+from service_apis import util
+
+from service_apis.models.gad_shape import GADShape  # noqa: E501
 from service_apis.models.geographical_coordinates import GeographicalCoordinates  # noqa: E501
 from service_apis.models.supported_gad_shapes import SupportedGADShapes  # noqa: E501
 from service_apis.models.uncertainty_ellipse import UncertaintyEllipse  # noqa: E501
 
-
 class PointAltitudeUncertainty(Model):
     """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/point_uncertainty_circle.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/point_uncertainty_circle.py
index aa0d9101133ac4effd0b3d13ad5a0d1a23917c4a..271b19bfcf91d90b688e62e2e35cd0348344f189 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/point_uncertainty_circle.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/point_uncertainty_circle.py
@@ -1,12 +1,17 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis.models.gad_shape import GADShape
+from service_apis.models.geographical_coordinates import GeographicalCoordinates
+from service_apis.models.supported_gad_shapes import SupportedGADShapes
+from service_apis import util
+
+from service_apis.models.gad_shape import GADShape  # noqa: E501
 from service_apis.models.geographical_coordinates import GeographicalCoordinates  # noqa: E501
 from service_apis.models.supported_gad_shapes import SupportedGADShapes  # noqa: E501
 
-
 class PointUncertaintyCircle(Model):
     """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/point_uncertainty_ellipse.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/point_uncertainty_ellipse.py
index 498296e30cce3b71236705e359aab270cad0f456..7e7499cf5919f57f912865f5272d3785338b4a1f 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/point_uncertainty_ellipse.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/point_uncertainty_ellipse.py
@@ -1,13 +1,19 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis.models.gad_shape import GADShape
+from service_apis.models.geographical_coordinates import GeographicalCoordinates
+from service_apis.models.supported_gad_shapes import SupportedGADShapes
+from service_apis.models.uncertainty_ellipse import UncertaintyEllipse
+from service_apis import util
+
+from service_apis.models.gad_shape import GADShape  # noqa: E501
 from service_apis.models.geographical_coordinates import GeographicalCoordinates  # noqa: E501
 from service_apis.models.supported_gad_shapes import SupportedGADShapes  # noqa: E501
 from service_apis.models.uncertainty_ellipse import UncertaintyEllipse  # noqa: E501
 
-
 class PointUncertaintyEllipse(Model):
     """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/polygon.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/polygon.py
index e8c152b2e9f89117b1479b8159075e50e520ba7e..421b7c368899729ad2a81192cbb58dc5c9e17d4e 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/polygon.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/polygon.py
@@ -1,12 +1,17 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis.models.gad_shape import GADShape
+from service_apis.models.geographical_coordinates import GeographicalCoordinates
+from service_apis.models.supported_gad_shapes import SupportedGADShapes
+from service_apis import util
+
+from service_apis.models.gad_shape import GADShape  # noqa: E501
 from service_apis.models.geographical_coordinates import GeographicalCoordinates  # noqa: E501
 from service_apis.models.supported_gad_shapes import SupportedGADShapes  # noqa: E501
 
-
 class Polygon(Model):
     """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/problem_details.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/problem_details.py
index 371d6452270de67424a20bc33418b92f10889455..f1e1241dee1ca421ea5e549ee2b7eabe4f70124b 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/problem_details.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/problem_details.py
@@ -1,11 +1,14 @@
-import re  # noqa: E501
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
-from service_apis.models.invalid_param import InvalidParam  # noqa: E501
+from service_apis.models.invalid_param import InvalidParam
+import re
+from service_apis import util
 
+from service_apis.models.invalid_param import InvalidParam  # noqa: E501
+import re  # noqa: E501
 
 class ProblemDetails(Model):
     """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -259,6 +262,6 @@ class ProblemDetails(Model):
         :type supported_features: str
         """
         if supported_features is not None and not re.search(r'^[A-Fa-f0-9]*$', supported_features):  # noqa: E501
-            raise ValueError("Invalid value for `supported_features`, must be a follow pattern or equal to `/^[A-Fa-f0-9]*$/`")  # noqa: E501
+            raise ValueError(r"Invalid value for `supported_features`, must be a follow pattern or equal to `/^[A-Fa-f0-9]*$/`")  # noqa: E501
 
         self._supported_features = supported_features
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/protocol.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/protocol.py
index bd8783f2b51286cbe93199465b0c05f38c3da89e..6cc058a0f40893f6454827292bb68a8ed2ef3f9a 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/protocol.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/protocol.py
@@ -1,8 +1,9 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis import util
 
 
 class Protocol(Model):
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/published_api_path.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/published_api_path.py
index 5135c5a7e4aff1e2fb979606665fd6a56cf9ff8b..a82106480d2b41fc7d87d5bbd35379457b7e9c0d 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/published_api_path.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/published_api_path.py
@@ -1,8 +1,9 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis import util
 
 
 class PublishedApiPath(Model):
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/relative_cartesian_location.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/relative_cartesian_location.py
index b40cde6be43a3cf40843f00500e5a1bfb162a374..ee5b860a40b017dfde80888dca0ccddac8a0dbec 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/relative_cartesian_location.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/relative_cartesian_location.py
@@ -1,8 +1,9 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis import util
 
 
 class RelativeCartesianLocation(Model):
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/resource.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/resource.py
index 6e0a6c356c95406644737e12df8018f253f8e514..f530875d754e3032a2e791367b6a49f4f66b6abf 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/resource.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/resource.py
@@ -1,13 +1,17 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis.models.communication_type import CommunicationType
+from service_apis.models.custom_operation import CustomOperation
+from service_apis.models.operation import Operation
+from service_apis import util
+
 from service_apis.models.communication_type import CommunicationType  # noqa: E501
 from service_apis.models.custom_operation import CustomOperation  # noqa: E501
 from service_apis.models.operation import Operation  # noqa: E501
 
-
 class Resource(Model):
     """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/security_method.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/security_method.py
index 62ebc962cd9c1cb4162d2e83969626e9fb83d238..3215ddaaffaf47be94d63a3fcf2b88d7f70f191e 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/security_method.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/security_method.py
@@ -1,8 +1,9 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis import util
 
 
 class SecurityMethod(Model):
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/service_api_description.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/service_api_description.py
index 339b35c67ce6e89fc2fc8519caccbfe529849527..743c1081884b811e7424d5855c6a7909d0e77e13 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/service_api_description.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/service_api_description.py
@@ -1,14 +1,20 @@
-import re  # noqa: E501
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
+from service_apis.models.base_model import Model
+from service_apis.models.aef_profile import AefProfile
+from service_apis.models.api_status import ApiStatus
+from service_apis.models.published_api_path import PublishedApiPath
+from service_apis.models.shareable_information import ShareableInformation
+import re
 from service_apis import util
+
 from service_apis.models.aef_profile import AefProfile  # noqa: E501
 from service_apis.models.api_status import ApiStatus  # noqa: E501
-from service_apis.models.base_model import Model
 from service_apis.models.published_api_path import PublishedApiPath  # noqa: E501
 from service_apis.models.shareable_information import ShareableInformation  # noqa: E501
-
+import re  # noqa: E501
 
 class ServiceAPIDescription(Model):
     """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -236,7 +242,7 @@ class ServiceAPIDescription(Model):
         :type supported_features: str
         """
         if supported_features is not None and not re.search(r'^[A-Fa-f0-9]*$', supported_features):  # noqa: E501
-            raise ValueError("Invalid value for `supported_features`, must be a follow pattern or equal to `/^[A-Fa-f0-9]*$/`")  # noqa: E501
+            raise ValueError(r"Invalid value for `supported_features`, must be a follow pattern or equal to `/^[A-Fa-f0-9]*$/`")  # noqa: E501
 
         self._supported_features = supported_features
 
@@ -305,7 +311,7 @@ class ServiceAPIDescription(Model):
         :type api_supp_feats: str
         """
         if api_supp_feats is not None and not re.search(r'^[A-Fa-f0-9]*$', api_supp_feats):  # noqa: E501
-            raise ValueError("Invalid value for `api_supp_feats`, must be a follow pattern or equal to `/^[A-Fa-f0-9]*$/`")  # noqa: E501
+            raise ValueError(r"Invalid value for `api_supp_feats`, must be a follow pattern or equal to `/^[A-Fa-f0-9]*$/`")  # noqa: E501
 
         self._api_supp_feats = api_supp_feats
 
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/service_kpis.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/service_kpis.py
index b8024ec96416d6e066744acc7828945bc46c65e7..de72ad5b0f8b55b6d7476381a3c3481559468135 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/service_kpis.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/service_kpis.py
@@ -1,10 +1,12 @@
-import re  # noqa: E501
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+import re
+from service_apis import util
 
+import re  # noqa: E501
 
 class ServiceKpis(Model):
     """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
@@ -170,7 +172,7 @@ class ServiceKpis(Model):
         :type aval_comp: str
         """
         if aval_comp is not None and not re.search(r'^\d+(\.\d+)? (kFLOPS|MFLOPS|GFLOPS|TFLOPS|PFLOPS|EFLOPS|ZFLOPS)$', aval_comp):  # noqa: E501
-            raise ValueError("Invalid value for `aval_comp`, must be a follow pattern or equal to `/^\d+(\.\d+)? (kFLOPS|MFLOPS|GFLOPS|TFLOPS|PFLOPS|EFLOPS|ZFLOPS)$/`")  # noqa: E501
+            raise ValueError(r"Invalid value for `aval_comp`, must be a follow pattern or equal to `/^\d+(\.\d+)? (kFLOPS|MFLOPS|GFLOPS|TFLOPS|PFLOPS|EFLOPS|ZFLOPS)$/`")  # noqa: E501
 
         self._aval_comp = aval_comp
 
@@ -195,7 +197,7 @@ class ServiceKpis(Model):
         :type aval_gra_comp: str
         """
         if aval_gra_comp is not None and not re.search(r'^\d+(\.\d+)? (kFLOPS|MFLOPS|GFLOPS|TFLOPS|PFLOPS|EFLOPS|ZFLOPS)$', aval_gra_comp):  # noqa: E501
-            raise ValueError("Invalid value for `aval_gra_comp`, must be a follow pattern or equal to `/^\d+(\.\d+)? (kFLOPS|MFLOPS|GFLOPS|TFLOPS|PFLOPS|EFLOPS|ZFLOPS)$/`")  # noqa: E501
+            raise ValueError(r"Invalid value for `aval_gra_comp`, must be a follow pattern or equal to `/^\d+(\.\d+)? (kFLOPS|MFLOPS|GFLOPS|TFLOPS|PFLOPS|EFLOPS|ZFLOPS)$/`")  # noqa: E501
 
         self._aval_gra_comp = aval_gra_comp
 
@@ -220,7 +222,7 @@ class ServiceKpis(Model):
         :type aval_mem: str
         """
         if aval_mem is not None and not re.search(r'^\d+(\.\d+)? (KB|MB|GB|TB|PB|EB|ZB|YB)$', aval_mem):  # noqa: E501
-            raise ValueError("Invalid value for `aval_mem`, must be a follow pattern or equal to `/^\d+(\.\d+)? (KB|MB|GB|TB|PB|EB|ZB|YB)$/`")  # noqa: E501
+            raise ValueError(r"Invalid value for `aval_mem`, must be a follow pattern or equal to `/^\d+(\.\d+)? (KB|MB|GB|TB|PB|EB|ZB|YB)$/`")  # noqa: E501
 
         self._aval_mem = aval_mem
 
@@ -245,7 +247,7 @@ class ServiceKpis(Model):
         :type aval_stor: str
         """
         if aval_stor is not None and not re.search(r'^\d+(\.\d+)? (KB|MB|GB|TB|PB|EB|ZB|YB)$', aval_stor):  # noqa: E501
-            raise ValueError("Invalid value for `aval_stor`, must be a follow pattern or equal to `/^\d+(\.\d+)? (KB|MB|GB|TB|PB|EB|ZB|YB)$/`")  # noqa: E501
+            raise ValueError(r"Invalid value for `aval_stor`, must be a follow pattern or equal to `/^\d+(\.\d+)? (KB|MB|GB|TB|PB|EB|ZB|YB)$/`")  # noqa: E501
 
         self._aval_stor = aval_stor
 
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/shareable_information.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/shareable_information.py
index 6970e3dae428e3d4a557117bea7b654cd1937ab1..8d21330b86797a9fc7f9e1ead176377866c9b121 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/shareable_information.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/shareable_information.py
@@ -1,8 +1,9 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis import util
 
 
 class ShareableInformation(Model):
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/supported_gad_shapes.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/supported_gad_shapes.py
index 2f2a6aea3070500e6387121c48c2aac2d69aaed6..0f035470fc25ebe538f0f414d5f3f71ffaf7bf78 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/supported_gad_shapes.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/supported_gad_shapes.py
@@ -1,8 +1,9 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis import util
 
 
 class SupportedGADShapes(Model):
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/uncertainty_ellipse.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/uncertainty_ellipse.py
index 0250ace198fbcf2726f0ed3b660051f458d7d824..03672693b604e7cbd316b1a6c1d4088c556ffde4 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/uncertainty_ellipse.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/uncertainty_ellipse.py
@@ -1,8 +1,9 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis import util
 
 
 class UncertaintyEllipse(Model):
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/uncertainty_ellipsoid.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/uncertainty_ellipsoid.py
index 0779259693afc8ce63822d337f008972f8ce787c..6e598a1a404779583c3a5f7281c41a92c760deaf 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/uncertainty_ellipsoid.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/uncertainty_ellipsoid.py
@@ -1,8 +1,9 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis import util
 
 
 class UncertaintyEllipsoid(Model):
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/version.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/version.py
index 3e4f6efa3593cc2a326a957b89af81437e458d5f..e0a21cc06489ca05c3e55c16ac31a67fde4666da 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/version.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/version.py
@@ -1,12 +1,15 @@
 from datetime import date, datetime  # noqa: F401
+
 from typing import List, Dict  # noqa: F401
 
-from service_apis import util
 from service_apis.models.base_model import Model
+from service_apis.models.custom_operation import CustomOperation
+from service_apis.models.resource import Resource
+from service_apis import util
+
 from service_apis.models.custom_operation import CustomOperation  # noqa: E501
 from service_apis.models.resource import Resource  # noqa: E501
 
-
 class Version(Model):
     """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/openapi/openapi.yaml b/services/TS29222_CAPIF_Discover_Service_API/service_apis/openapi/openapi.yaml
index c0c2608827529438b279e370570467dbc75aa6c3..68dd3e4e493a45470ae7928298df4e28927932d7 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/openapi/openapi.yaml
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/openapi/openapi.yaml
@@ -1,11 +1,11 @@
 openapi: 3.0.0
 info:
-  description: "API for discovering service APIs.  \n© 2023, 3GPP Organizational Partners\
+  description: "API for discovering service APIs.  \n© 2024, 3GPP Organizational Partners\
     \ (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).  \nAll rights reserved.\n"
   title: CAPIF_Discover_Service_API
-  version: 1.3.0-alpha.2
+  version: 1.3.1
 externalDocs:
-  description: 3GPP TS 29.222 V18.4.0 Common API Framework for 3GPP Northbound APIs
+  description: 3GPP TS 29.222 V18.7.0 Common API Framework for 3GPP Northbound APIs
   url: https://www.3gpp.org/ftp/Specs/archive/29_series/29.222/
 servers:
 - url: "{apiRoot}/service-apis/v1"
@@ -138,6 +138,17 @@ paths:
         schema:
           $ref: '#/components/schemas/ServiceKpis'
         style: form
+      - content:
+          application/json:
+            schema:
+              items:
+                $ref: '#/components/schemas/OAuthGrantType'
+              minItems: 1
+              type: array
+        description: Contains the OAuth grant types that need to be supported.
+        in: query
+        name: grant-types
+        required: false
       responses:
         "200":
           content:
@@ -318,6 +329,9 @@ components:
             - aefIds
           aefProfiles:
           - protocol: HTTP_1_1
+            grantTypes:
+            - CLIENT_CREDENTIALS
+            - CLIENT_CREDENTIALS
             ueIpRange:
               ueIpv4AddrRanges:
               - start: 198.51.100.1
@@ -496,6 +510,9 @@ components:
             aefId: aefId
             interfaceDescriptions:
             - ipv6Addr: ipv6Addr
+              grantTypes:
+              - null
+              - null
               securityMethods:
               - null
               - null
@@ -504,6 +521,9 @@ components:
               apiPrefix: apiPrefix
               ipv4Addr: ipv4Addr
             - ipv6Addr: ipv6Addr
+              grantTypes:
+              - null
+              - null
               securityMethods:
               - null
               - null
@@ -521,6 +541,9 @@ components:
               maxReqRate: 0
               avalGraComp: avalGraComp
           - protocol: HTTP_1_1
+            grantTypes:
+            - CLIENT_CREDENTIALS
+            - CLIENT_CREDENTIALS
             ueIpRange:
               ueIpv4AddrRanges:
               - start: 198.51.100.1
@@ -699,6 +722,9 @@ components:
             aefId: aefId
             interfaceDescriptions:
             - ipv6Addr: ipv6Addr
+              grantTypes:
+              - null
+              - null
               securityMethods:
               - null
               - null
@@ -707,6 +733,9 @@ components:
               apiPrefix: apiPrefix
               ipv4Addr: ipv4Addr
             - ipv6Addr: ipv6Addr
+              grantTypes:
+              - null
+              - null
               securityMethods:
               - null
               - null
@@ -746,6 +775,9 @@ components:
             - aefIds
           aefProfiles:
           - protocol: HTTP_1_1
+            grantTypes:
+            - CLIENT_CREDENTIALS
+            - CLIENT_CREDENTIALS
             ueIpRange:
               ueIpv4AddrRanges:
               - start: 198.51.100.1
@@ -924,6 +956,9 @@ components:
             aefId: aefId
             interfaceDescriptions:
             - ipv6Addr: ipv6Addr
+              grantTypes:
+              - null
+              - null
               securityMethods:
               - null
               - null
@@ -932,6 +967,9 @@ components:
               apiPrefix: apiPrefix
               ipv4Addr: ipv4Addr
             - ipv6Addr: ipv6Addr
+              grantTypes:
+              - null
+              - null
               securityMethods:
               - null
               - null
@@ -949,6 +987,9 @@ components:
               maxReqRate: 0
               avalGraComp: avalGraComp
           - protocol: HTTP_1_1
+            grantTypes:
+            - CLIENT_CREDENTIALS
+            - CLIENT_CREDENTIALS
             ueIpRange:
               ueIpv4AddrRanges:
               - start: 198.51.100.1
@@ -1127,6 +1168,9 @@ components:
             aefId: aefId
             interfaceDescriptions:
             - ipv6Addr: ipv6Addr
+              grantTypes:
+              - null
+              - null
               securityMethods:
               - null
               - null
@@ -1135,6 +1179,9 @@ components:
               apiPrefix: apiPrefix
               ipv4Addr: ipv4Addr
             - ipv6Addr: ipv6Addr
+              grantTypes:
+              - null
+              - null
               securityMethods:
               - null
               - null
@@ -1155,21 +1202,30 @@ components:
             ccfIds:
             - ccfIds
             - ccfIds
+        suppFeat: suppFeat
       properties:
         serviceAPIDescriptions:
           description: |
-            Description of the service API as published by the service. Each service API description shall include AEF profiles matching the filter criteria.
+            Description of the service API as published by the service. Each service API information shall include AEF profiles matching the filter criteria.
           items:
             $ref: '#/components/schemas/ServiceAPIDescription'
           minItems: 1
           title: serviceAPIDescriptions
           type: array
+        suppFeat:
+          description: |
+            A string used to indicate the features supported by an API that is used as defined in clause  6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in  hexadecimal representation Each character in the string shall take a value of "0" to "9",  "a" to "f" or "A" to "F" and shall represent the support of 4 features as described in  table 5.2.2-3. The most significant character representing the highest-numbered features shall  appear first in the string, and the character representing features 1 to 4 shall appear last  in the string. The list of features and their numbering (starting with 1) are defined  separately for each API. If the string contains a lower number of characters than there are  defined features for an API, all features that would be represented by characters that are not  present in the string are not supported.
+          pattern: "^[A-Fa-f0-9]*$"
+          title: SupportedFeatures
+          type: string
       title: DiscoveredAPIs
       type: object
     IpAddrInfo:
       description: Represents the UE IP address information.
       nullable: true
-      oneOf: []
+      oneOf:
+        - required: ["ipv4Addr"]
+        - required: ["ipv6Addr"]
       properties:
         ipv4Addr:
           description: |
@@ -1356,6 +1412,23 @@ components:
           type: integer
       title: ServiceKpis
       type: object
+    OAuthGrantType:
+      anyOf:
+      - enum:
+        - CLIENT_CREDENTIALS
+        - AUTHORIZATION_CODE
+        - AUTHORIZATION_CODE_WITH_PKCE
+        type: string
+      - description: |
+          This string provides forward-compatibility with future extensions to the enumeration and is not used to encode content defined in the present version of this API.
+        type: string
+      description: "Indicates the supported authorization flow (e.g. client credentials\
+        \ flow, authorization code         flow, etc.) to the API invoker.  \nPossible\
+        \ values are:\n- CLIENT_CREDENTIALS: Indicate that the grant type is is client\
+        \ credentials flow.\n- AUTHORIZATION_CODE: Indicate that the grant type is\
+        \ authorization code.\n- AUTHORIZATION_CODE_WITH_PKCE: Indicate that the grant\
+        \ type is authorization code with PKCE.\n"
+      title: OAuthGrantType
     ProblemDetails:
       description: Represents additional information and details on an error response.
       properties:
@@ -1446,6 +1519,9 @@ components:
           - aefIds
         aefProfiles:
         - protocol: HTTP_1_1
+          grantTypes:
+          - CLIENT_CREDENTIALS
+          - CLIENT_CREDENTIALS
           ueIpRange:
             ueIpv4AddrRanges:
             - start: 198.51.100.1
@@ -1624,6 +1700,9 @@ components:
           aefId: aefId
           interfaceDescriptions:
           - ipv6Addr: ipv6Addr
+            grantTypes:
+            - null
+            - null
             securityMethods:
             - null
             - null
@@ -1632,6 +1711,9 @@ components:
             apiPrefix: apiPrefix
             ipv4Addr: ipv4Addr
           - ipv6Addr: ipv6Addr
+            grantTypes:
+            - null
+            - null
             securityMethods:
             - null
             - null
@@ -1649,6 +1731,9 @@ components:
             maxReqRate: 0
             avalGraComp: avalGraComp
         - protocol: HTTP_1_1
+          grantTypes:
+          - CLIENT_CREDENTIALS
+          - CLIENT_CREDENTIALS
           ueIpRange:
             ueIpv4AddrRanges:
             - start: 198.51.100.1
@@ -1827,6 +1912,9 @@ components:
           aefId: aefId
           interfaceDescriptions:
           - ipv6Addr: ipv6Addr
+            grantTypes:
+            - null
+            - null
             securityMethods:
             - null
             - null
@@ -1835,6 +1923,9 @@ components:
             apiPrefix: apiPrefix
             ipv4Addr: ipv4Addr
           - ipv6Addr: ipv6Addr
+            grantTypes:
+            - null
+            - null
             securityMethods:
             - null
             - null
@@ -1935,6 +2026,9 @@ components:
       description: Represents the AEF profile data.
       example:
         protocol: HTTP_1_1
+        grantTypes:
+        - CLIENT_CREDENTIALS
+        - CLIENT_CREDENTIALS
         ueIpRange:
           ueIpv4AddrRanges:
           - start: 198.51.100.1
@@ -2113,6 +2207,9 @@ components:
         aefId: aefId
         interfaceDescriptions:
         - ipv6Addr: ipv6Addr
+          grantTypes:
+          - null
+          - null
           securityMethods:
           - null
           - null
@@ -2121,6 +2218,9 @@ components:
           apiPrefix: apiPrefix
           ipv4Addr: ipv4Addr
         - ipv6Addr: ipv6Addr
+          grantTypes:
+          - null
+          - null
           securityMethods:
           - null
           - null
@@ -2138,7 +2238,10 @@ components:
           maxReqRate: 0
           avalGraComp: avalGraComp
       nullable: true
-      oneOf: []
+      oneOf:
+        - required: ["domainName"]
+        - required: ["interfaceDescriptions"]
+        - {} 
       properties:
         aefId:
           description: Identifier of the API exposing function
@@ -2162,6 +2265,12 @@ components:
           minItems: 1
           title: securityMethods
           type: array
+        grantTypes:
+          items:
+            $ref: '#/components/schemas/OAuthGrantType'
+          minItems: 1
+          title: grantTypes
+          type: array
         domainName:
           description: Domain to which API belongs to
           title: domainName
@@ -2409,6 +2518,9 @@ components:
       description: Represents the description of an API's interface.
       example:
         ipv6Addr: ipv6Addr
+        grantTypes:
+        - null
+        - null
         securityMethods:
         - null
         - null
@@ -2417,7 +2529,10 @@ components:
         apiPrefix: apiPrefix
         ipv4Addr: ipv4Addr
       nullable: true
-      oneOf: []
+      oneOf:
+        - required: ["fqdn"]
+        - required: ["ipv4Addr"]
+        - required: ["ipv6Addr"]
       properties:
         ipv4Addr:
           description: |
@@ -2456,10 +2571,18 @@ components:
           minItems: 1
           title: securityMethods
           type: array
+        grantTypes:
+          items:
+            $ref: '#/components/schemas/OAuthGrantType'
+          minItems: 1
+          title: grantTypes
+          type: array
       title: InterfaceDescription
       type: object
     IpAddrRange:
-      anyOf: []
+      anyOf:
+        - required: ["ueIpv4AddrRanges"]
+        - required: ["ueIpv6AddrRanges"]
       description: Represents the list of public IP ranges
       example:
         ueIpv4AddrRanges:
@@ -2978,8 +3101,26 @@ components:
           type: string
         point:
           $ref: '#/components/schemas/GeographicalCoordinates'
+        area:
+          $ref: '#/components/schemas/GeographicArea'
+        horizAxesOrientation:
+          description: Horizontal axes orientation angle clockwise from northing in
+            0.1 degrees.
+          maximum: 3600
+          minimum: 0
+          title: HorizAxesOrientation
+          type: integer
+      required:
+      - coordinateId
       title: LocalOrigin
       type: object
+    HorizAxesOrientation:
+      description: Horizontal axes orientation angle clockwise from northing in 0.1
+        degrees.
+      maximum: 3600
+      minimum: 0
+      title: HorizAxesOrientation
+      type: integer
     RelativeCartesianLocation:
       description: Relative Cartesian Location
       properties:
@@ -3015,6 +3156,8 @@ components:
             $ref: '#/components/schemas/UncertaintyEllipsoid'
           confidence:
             $ref: '#/components/schemas/Confidence'
+          vConfidence:
+            $ref: '#/components/schemas/Confidence'
         required:
         - confidence
         - localOrigin
@@ -3133,9 +3276,6 @@ components:
       title: Ipv6AddressRange
       type: object
     Ipv6Addr_1:
-      allOf:
-      - pattern: "^((:|(0?|([1-9a-f][0-9a-f]{0,3}))):)((0?|([1-9a-f][0-9a-f]{0,3})):){0,6}(:|(0?|([1-9a-f][0-9a-f]{0,3})))$"
-      - pattern: "^((([^:]+:){7}([^:]+))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?))$"
       description: |
         String identifying an IPv6 address formatted according to clause 4 of RFC5952. The mixed IPv4 IPv6 notation according to clause 5 of RFC5952 shall not be used.
       example: 2001:db8:85a3::8a2e:370:7334
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/test/__init__.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/test/__init__.py
index 8b9b70a839674a77e3bc56a313be554c897da204..b0510f7ca3fbc2782268db5a4e9f58765a7fa2ea 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/test/__init__.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/test/__init__.py
@@ -2,6 +2,7 @@ import logging
 
 import connexion
 from flask_testing import TestCase
+
 from service_apis.encoder import JSONEncoder
 
 
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/test/test_default_controller.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/test/test_default_controller.py
index 3d4afdbc502e49678a51a31478d1c0c451d6c32c..399592386158b12db9d492039ad1045640e5ad4f 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/test/test_default_controller.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/test/test_default_controller.py
@@ -1,5 +1,16 @@
 import unittest
 
+from flask import json
+
+from service_apis.models.aef_location import AefLocation  # noqa: E501
+from service_apis.models.communication_type import CommunicationType  # noqa: E501
+from service_apis.models.data_format import DataFormat  # noqa: E501
+from service_apis.models.discovered_apis import DiscoveredAPIs  # noqa: E501
+from service_apis.models.ip_addr_info import IpAddrInfo  # noqa: E501
+from service_apis.models.o_auth_grant_type import OAuthGrantType  # noqa: E501
+from service_apis.models.problem_details import ProblemDetails  # noqa: E501
+from service_apis.models.protocol import Protocol  # noqa: E501
+from service_apis.models.service_kpis import ServiceKpis  # noqa: E501
 from service_apis.test import BaseTestCase
 
 
@@ -24,7 +35,8 @@ class TestDefaultController(BaseTestCase):
                         ('supported-features', 'supported_features_example'),
                         ('api-supported-features', 'api_supported_features_example'),
                         ('ue-ip-addr', openapi_server.IpAddrInfo()),
-                        ('service-kpis', openapi_server.ServiceKpis())]
+                        ('service-kpis', openapi_server.ServiceKpis()),
+                        ('grant-types', [openapi_server.OAuthGrantType()])]
         headers = { 
             'Accept': 'application/json',
         }
diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/typing_utils.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/typing_utils.py
index d21c4f633653a0eae75d04b2f6eff684ff9d200d..74e3c913a7db6246bc765f147ca872996112c6bb 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/typing_utils.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/typing_utils.py
@@ -1,6 +1,7 @@
 import sys
 
 if sys.version_info < (3, 7):
+    import typing
 
     def is_generic(klass):
         """ Determine whether klass is a generic class """
diff --git a/services/TS29222_CAPIF_Discover_Service_API/setup.py b/services/TS29222_CAPIF_Discover_Service_API/setup.py
index 3594e776f541076eb5210fecb462a24592e927a8..824ebbaafa46e097a58b2e64c1f78461b5641d4e 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/setup.py
+++ b/services/TS29222_CAPIF_Discover_Service_API/setup.py
@@ -1,3 +1,4 @@
+import sys
 from setuptools import setup, find_packages
 
 NAME = "service_apis"
@@ -30,7 +31,7 @@ setup(
     entry_points={
         'console_scripts': ['service_apis=service_apis.__main__:main']},
     long_description="""\
-    API for discovering service APIs.   © 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).   All rights reserved. 
+    API for discovering service APIs.   © 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).   All rights reserved. 
     """
 )
 
diff --git a/services/TS29222_CAPIF_Discover_Service_API/test-requirements.txt b/services/TS29222_CAPIF_Discover_Service_API/test-requirements.txt
index 6952c4e268f8f76a7769106b9101387565e144ba..58f51d6a00272d7515a20e3618f345b73c68afa0 100644
--- a/services/TS29222_CAPIF_Discover_Service_API/test-requirements.txt
+++ b/services/TS29222_CAPIF_Discover_Service_API/test-requirements.txt
@@ -1,4 +1,4 @@
 pytest~=7.1.0
 pytest-cov>=2.8.1
-pytest-randomly==1.2.3
+pytest-randomly>=1.2.3
 Flask-Testing==0.8.1