diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/.openapi-generator/FILES b/services/TS29222_CAPIF_API_Invoker_Management_API/.openapi-generator/FILES index dd0e2a9e7892c7379f62964a2f181f7327bd1220..716733b50c4a3eb61f5bd5dfa747bccff799aec9 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/.openapi-generator/FILES +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/.openapi-generator/FILES @@ -37,6 +37,7 @@ api_invoker_management/models/ipv6_address_range.py api_invoker_management/models/local2d_point_uncertainty_ellipse.py api_invoker_management/models/local3d_point_uncertainty_ellipsoid.py api_invoker_management/models/local_origin.py +api_invoker_management/models/o_auth_grant_type.py api_invoker_management/models/onboarding_information.py api_invoker_management/models/onboarding_notification.py api_invoker_management/models/operation.py diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/.openapi-generator/VERSION b/services/TS29222_CAPIF_API_Invoker_Management_API/.openapi-generator/VERSION index 18bb4182dd01428f1d4c3c2145501ee5d40455a3..b23eb27529e2bacf6c8c06f725c323d9fb87f042 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/.openapi-generator/VERSION +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/.openapi-generator/VERSION @@ -1 +1 @@ -7.5.0 +7.11.0 diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/app.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/app.py index e44c08e4776684adbfc29617e7cb261c7a2434fb..abe585969bd76909574b9e9ee5596314f7eadd10 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/app.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/app.py @@ -6,6 +6,9 @@ from datetime import datetime from logging.handlers import RotatingFileHandler import connexion +import encoder +from config import Config +from core.consumer_messager import Subscriber from flask_apscheduler import APScheduler from flask_executor import Executor from flask_jwt_extended import JWTManager @@ -19,10 +22,6 @@ from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import BatchSpanProcessor from opentelemetry.trace.propagation.tracecontext import TraceContextTextMapPropagator -import encoder -from config import Config -from core.consumer_messager import Subscriber - NAME = "Invoker-Service" # Setting log level @@ -36,7 +35,7 @@ def configure_monitoring(app, config): fluent_bit_host = config['monitoring']['fluent_bit_host'] fluent_bit_port = config['monitoring']['fluent_bit_port'] fluent_bit_sender = sender.FluentSender('Invoker-Service', host=fluent_bit_host, port=fluent_bit_port) - propagator = TraceContextTextMapPropagator() + TraceContextTextMapPropagator() tracer_provider = TracerProvider(resource=resource) trace.set_tracer_provider(tracer_provider) diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/controllers/default_controller.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/controllers/default_controller.py index c080cd19675cf0f0ee67e7bbdeec4ca7c57d8a70..09ffb62420d0330c04292f3d2617c47cde0712e3 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/controllers/default_controller.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/controllers/default_controller.py @@ -2,8 +2,8 @@ from functools import wraps from cryptography import x509 from cryptography.hazmat.backends import default_backend -from flask import request, current_app -from flask_jwt_extended import jwt_required, get_jwt_identity +from flask import current_app, request +from flask_jwt_extended import get_jwt_identity, jwt_required from ..core.apiinvokerenrolmentdetails import InvokerManagementOperations from ..core.validate_user import ControlAccess @@ -12,7 +12,6 @@ from ..models.api_invoker_enrolment_details import APIInvokerEnrolmentDetails # invoker_operations = InvokerManagementOperations() valid_user = ControlAccess() - def cert_validation(): def _cert_validation(f): @wraps(f) @@ -47,9 +46,8 @@ def onboarded_invokers_onboarding_id_delete(onboarding_id): # noqa: E501 :param onboarding_id: String identifying an individual on-boarded API invoker resource :type onboarding_id: str - :rtype: None + :rtype: Union[None, Tuple[None, int], Tuple[None, int, Dict[str, str]] """ - current_app.logger.info("Removing invoker") res = invoker_operations.remove_apiinvokerenrolmentdetail(onboarding_id) @@ -66,7 +64,7 @@ def onboarded_invokers_onboarding_id_put(onboarding_id, body): # noqa: E501 :param api_invoker_enrolment_details: representation of the API invoker details to be updated in CAPIF core function :type api_invoker_enrolment_details: dict | bytes - :rtype: APIInvokerEnrolmentDetails + :rtype: Union[APIInvokerEnrolmentDetails, Tuple[APIInvokerEnrolmentDetails, int], Tuple[APIInvokerEnrolmentDetails, int, Dict[str, str]] """ current_app.logger.info("Updating invoker") if request.is_json: @@ -76,19 +74,17 @@ def onboarded_invokers_onboarding_id_put(onboarding_id, body): # noqa: E501 return res - @jwt_required() def onboarded_invokers_post(body): # noqa: E501 """onboarded_invokers_post Creates a new individual API Invoker profile. # noqa: E501 - :param api_invoker_enrolment_details: + :param api_invoker_enrolment_details: :type api_invoker_enrolment_details: dict | bytes - :rtype: APIInvokerEnrolmentDetails + :rtype: Union[APIInvokerEnrolmentDetails, Tuple[APIInvokerEnrolmentDetails, int], Tuple[APIInvokerEnrolmentDetails, int, Dict[str, str]] """ - identity = get_jwt_identity() username, uuid = identity.split() diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/controllers/individual_api_invoker_enrolment_details_controller.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/controllers/individual_api_invoker_enrolment_details_controller.py index 9cce3a04fe77786a839cab01f8389533d38c37e8..052679b400f0433e3fffaea3bce996bc2f2c238b 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/controllers/individual_api_invoker_enrolment_details_controller.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/controllers/individual_api_invoker_enrolment_details_controller.py @@ -1,7 +1,8 @@ -from api_invoker_management.models.api_invoker_enrolment_details_patch import APIInvokerEnrolmentDetailsPatch # noqa: E501 +from api_invoker_management.models.api_invoker_enrolment_details_patch import \ + APIInvokerEnrolmentDetailsPatch # noqa: E501 -def modify_ind_api_invoke_enrolment(onboarding_id, api_invoker_enrolment_details_patch): # noqa: E501 +def modify_ind_api_invoke_enrolment(onboarding_id, body): # noqa: E501 """modify_ind_api_invoke_enrolment Modify an individual API invoker details. # noqa: E501 diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/apiinvokerenrolmentdetails.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/apiinvokerenrolmentdetails.py index 08f934e378c709385c6ffca463100c2fef026451..e3164aeb8f69d3ee92d5b53935b18b7b77cb5416 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/apiinvokerenrolmentdetails.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/apiinvokerenrolmentdetails.py @@ -5,21 +5,19 @@ from datetime import datetime import requests import rfc3987 +from api_invoker_management.db.db import MongoDatabse from api_invoker_management.models.api_invoker_enrolment_details import APIInvokerEnrolmentDetails -from flask import current_app, Response +from flask import Response, current_app from pymongo import ReturnDocument +from ..config import Config +from ..util import dict_to_camel_case, serialize_clean_camel_case from .auth_manager import AuthManager from .publisher import Publisher from .redis_event import RedisEvent from .redis_internal_event import RedisInternalEvent from .resources import Resource -from .responses import bad_request_error, not_found_error, forbidden_error, internal_server_error, make_response -from ..config import Config -from ..util import dict_to_camel_case, serialize_clean_camel_case - -from api_invoker_management.db.db import MongoDatabse - +from .responses import bad_request_error, forbidden_error, internal_server_error, make_response, not_found_error publisher_ops = Publisher() diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/publisher.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/publisher.py index 34fcdf453873b4b59a894d9f6b96b7ce1a217c2e..8292de4d4330b14c17be74e7448403b56fc5b9e3 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/publisher.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/publisher.py @@ -1,5 +1,6 @@ import redis + class Publisher(): def __init__(self): diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/redis_event.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/redis_event.py index f80e6b2e666574188740a99a0da0837ea899e01d..3037ae76a7bff9e74674d6e3b686cfbb24cf0f58 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/redis_event.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/redis_event.py @@ -1,7 +1,7 @@ import json -from .publisher import Publisher from ..encoder import JSONEncoder +from .publisher import Publisher publisher_ops = Publisher() diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/redis_internal_event.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/redis_internal_event.py index 50e343424b8498d32078648978c719c923304353..c1ad0973675b69adf3a81bc9592feac33f0c2064 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/redis_internal_event.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/redis_internal_event.py @@ -1,7 +1,7 @@ import json -from .publisher import Publisher from ..encoder import JSONEncoder +from .publisher import Publisher publisher_ops = Publisher() diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/validate_user.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/validate_user.py index 1b25fd6a4cd6f01a50401fcd62dd42965631d267..917c4ccbb7458c8683f135b4463558037c222f5f 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/validate_user.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/core/validate_user.py @@ -1,12 +1,12 @@ import json -from flask import current_app, Response +from flask import Response, current_app -from .resources import Resource -from .responses import internal_server_error from ..encoder import CustomJSONEncoder from ..models.problem_details import ProblemDetails from ..util import serialize_clean_camel_case +from .resources import Resource +from .responses import internal_server_error class ControlAccess(Resource): diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/aef_location.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/aef_location.py index c5b5a7d07ea7e2ef876d97837749a627c29d2890..512c9804f4bb480bedbdab8d7c9ac0301cd49e15 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/aef_location.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/aef_location.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/aef_profile.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/aef_profile.py index 2556c6ecfde9e6f6f5e45790967acc3541a2abc7..6286622622af842e5b4b9d955c2cdb781d77186d 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/aef_profile.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/aef_profile.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.aef_location import AefLocation # noqa: E501 @@ -7,6 +7,7 @@ from api_invoker_management.models.base_model import Model from api_invoker_management.models.data_format import DataFormat # noqa: E501 from api_invoker_management.models.interface_description import InterfaceDescription # noqa: E501 from api_invoker_management.models.ip_addr_range import IpAddrRange # noqa: E501 +from api_invoker_management.models.o_auth_grant_type import OAuthGrantType # noqa: E501 from api_invoker_management.models.protocol import Protocol # noqa: E501 from api_invoker_management.models.security_method import SecurityMethod # noqa: E501 from api_invoker_management.models.service_kpis import ServiceKpis # noqa: E501 @@ -19,7 +20,7 @@ class AefProfile(Model): 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 +33,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 +52,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 +66,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 +79,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 +216,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_API_Invoker_Management_API/api_invoker_management/models/api_invoker_enrolment_details.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/api_invoker_enrolment_details.py index c29d55155cb3360795ac59ca0328b52736856503..bec061ae6b0ca7c7bd0cec0c1d5cc282f288ac27 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/api_invoker_enrolment_details.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/api_invoker_enrolment_details.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.api_list import APIList # noqa: E501 @@ -285,6 +285,6 @@ class APIInvokerEnrolmentDetails(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_API_Invoker_Management_API/api_invoker_management/models/api_invoker_enrolment_details_patch.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/api_invoker_enrolment_details_patch.py index 55e0255e489a7abe38c0392741b756539bff2a22..c827f22bdf4440dce000cc719f1c7c55c076ccbf 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/api_invoker_enrolment_details_patch.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/api_invoker_enrolment_details_patch.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.api_list import APIList # noqa: E501 diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/api_list.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/api_list.py index 43fccbbe4abaf6c3b009c8fe7e77210cc2311728..25ddd0033bb259c8360700b463c9041f8d1cc929 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/api_list.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/api_list.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/api_status.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/api_status.py index 6d199deae834f32dfd79f3c2d583e4c5bef2894f..7bf0540b228019b16750a4d073aac24364f9c21b 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/api_status.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/api_status.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/civic_address.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/civic_address.py index 5c09caf97608cb4883172629219f13b733ddeab4..640aff79326cd2ef7d3183ca00bb689c31c05859 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/civic_address.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/civic_address.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/communication_type.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/communication_type.py index 84d3489a5d98d34496e85ceab5cf74a60171d9df..0f1993616b375171d286999895e9e2141e4d4f52 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/communication_type.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/communication_type.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/custom_operation.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/custom_operation.py index f9e7771f93c563889462c31fc20a6bb4f504c8e0..0fc567820dda825bea7921332167367750f3c030 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/custom_operation.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/custom_operation.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/data_format.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/data_format.py index ecd02ac5a2ad3dc2fe15cc2059a1c81c22096341..f6ba60af2a3c1240ae35b335f005491e3b57df48 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/data_format.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/data_format.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/ellipsoid_arc.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/ellipsoid_arc.py index 7be7c612bec90fae64c9a6a97246c9ce193a8d1c..de005059d93e860ad99b7fe9f81ee5abadbc63d0 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/ellipsoid_arc.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/ellipsoid_arc.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model +from api_invoker_management.models.gad_shape import GADShape # noqa: E501 from api_invoker_management.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from api_invoker_management.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/gad_shape.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/gad_shape.py index 74c27870f702fb1a0e51b2a9b3d0fe3655d22268..496c79b9a1ddf99091928870ecb8a51866679ccb 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/gad_shape.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/gad_shape.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/geographic_area.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/geographic_area.py index 02477e5db52c7a12d1c13d9701935a091b498028..2ec1f5538d915fc30c7245261e118c618f833031 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/geographic_area.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/geographic_area.py @@ -1,9 +1,16 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model +from api_invoker_management.models.ellipsoid_arc import EllipsoidArc # noqa: E501 from api_invoker_management.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 +from api_invoker_management.models.point import Point # noqa: E501 +from api_invoker_management.models.point_altitude import PointAltitude # noqa: E501 +from api_invoker_management.models.point_altitude_uncertainty import PointAltitudeUncertainty # noqa: E501 +from api_invoker_management.models.point_uncertainty_circle import PointUncertaintyCircle # noqa: E501 +from api_invoker_management.models.point_uncertainty_ellipse import PointUncertaintyEllipse # noqa: E501 +from api_invoker_management.models.polygon import Polygon # noqa: E501 from api_invoker_management.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 from api_invoker_management.models.uncertainty_ellipse import UncertaintyEllipse # noqa: E501 diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/geographical_coordinates.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/geographical_coordinates.py index c10a7c6441b338ceabb4e7bbae541a38bf4fd587..8c6609358611bf760771ac9b4cff772c0e8eaed5 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/geographical_coordinates.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/geographical_coordinates.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/interface_description.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/interface_description.py index 1c4e7192e23728ce86aef94b5fbfcf89c88505e6..3a9d6f55387eedef0650f1531b8dc960cb5a1909 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/interface_description.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/interface_description.py @@ -1,9 +1,10 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model +from api_invoker_management.models.o_auth_grant_type import OAuthGrantType # noqa: E501 from api_invoker_management.models.security_method import SecurityMethod # noqa: E501 @@ -13,7 +14,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 +29,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 +38,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 +48,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 +58,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 +142,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 +220,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_API_Invoker_Management_API/api_invoker_management/models/invalid_param.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/invalid_param.py index 60f94e86af1594b63381e3205a1b8623dc449b85..202708425223bd9b5d9ad5a339824268b0dadcff 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/invalid_param.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/invalid_param.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/ip_addr_range.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/ip_addr_range.py index 7a8a4bf50b91905f24e04aad2b8d46fa50ce269d..70ad8a6fcd67532ccc77e3addf5804915411eb32 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/ip_addr_range.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/ip_addr_range.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/ipv4_address_range.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/ipv4_address_range.py index eb6090840f480f531cb97542dad92fcca15f3488..822aaa85edbed60174254a7c438a1014e00b392c 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/ipv4_address_range.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/ipv4_address_range.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model @@ -67,7 +67,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 +94,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_API_Invoker_Management_API/api_invoker_management/models/ipv6_addr1.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/ipv6_addr1.py index d12cb20c0c5844fd54b9f0e1df3fd51c57ec149f..0d7d43f4834b4b7fa0f48677e87564739f895e8e 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/ipv6_addr1.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/ipv6_addr1.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/ipv6_address_range.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/ipv6_address_range.py index 46203297e05f67419e259db76f29019c780fbe04..9dc04924d566bb6a2e6e6afe98adee7d378c4de2 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/ipv6_address_range.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/ipv6_address_range.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/local2d_point_uncertainty_ellipse.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/local2d_point_uncertainty_ellipse.py index 50a6d460c250ad266981299f5cbccff14319f8ba..5e05b82071b2293309be5dc06d7989653cb54c98 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/local2d_point_uncertainty_ellipse.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/local2d_point_uncertainty_ellipse.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model +from api_invoker_management.models.gad_shape import GADShape # noqa: E501 from api_invoker_management.models.local_origin import LocalOrigin # noqa: E501 from api_invoker_management.models.relative_cartesian_location import RelativeCartesianLocation # noqa: E501 from api_invoker_management.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/local3d_point_uncertainty_ellipsoid.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/local3d_point_uncertainty_ellipsoid.py index 7c8633fc79e91caa77d5a221362461c6e9ad8b5a..22c894f2bd1bc1e5f95487ca234737fb1fff8822 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/local3d_point_uncertainty_ellipsoid.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/local3d_point_uncertainty_ellipsoid.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model +from api_invoker_management.models.gad_shape import GADShape # noqa: E501 from api_invoker_management.models.local_origin import LocalOrigin # noqa: E501 from api_invoker_management.models.relative_cartesian_location import RelativeCartesianLocation # noqa: E501 from api_invoker_management.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 @@ -15,7 +16,7 @@ class Local3dPointUncertaintyEllipsoid(Model): 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 +29,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 +46,8 @@ class Local3dPointUncertaintyEllipsoid(Model): 'local_origin': 'localOrigin', 'point': 'point', 'uncertainty_ellipsoid': 'uncertaintyEllipsoid', - 'confidence': 'confidence' + 'confidence': 'confidence', + 'v_confidence': 'vConfidence' } self._shape = shape @@ -50,6 +55,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 +188,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_API_Invoker_Management_API/api_invoker_management/models/local_origin.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/local_origin.py index 1313b6837d54bed61f5bc9f81d45277c514b1ad8..489ceef80012f12b98a12ee57aa21ccffa0d4fdd 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/local_origin.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/local_origin.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model +from api_invoker_management.models.geographic_area import GeographicArea # noqa: E501 from api_invoker_management.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 @@ -12,26 +13,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 +73,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 +98,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_API_Invoker_Management_API/api_invoker_management/models/o_auth_grant_type.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/o_auth_grant_type.py new file mode 100644 index 0000000000000000000000000000000000000000..a688eb0c7ca1e39b8c5cb022a5e7f3b5f5588d8d --- /dev/null +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/o_auth_grant_type.py @@ -0,0 +1,33 @@ +from datetime import date, datetime # noqa: F401 +from typing import Dict, List # noqa: F401 + +from api_invoker_management import util +from api_invoker_management.models.base_model import Model + + +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_API_Invoker_Management_API/api_invoker_management/models/onboarding_information.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/onboarding_information.py index b4a93bb7028e29bb66594925316ae1418f67d4c0..2ab7410e2e8d925876b3ff11572f5c263d5ec77d 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/onboarding_information.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/onboarding_information.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/onboarding_notification.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/onboarding_notification.py index d7ec7e249a53432034ec4f59ec35cafd40087179..c60d37ee81c37e3ee3946bd84b558c00f4a6faba 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/onboarding_notification.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/onboarding_notification.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.api_invoker_enrolment_details import APIInvokerEnrolmentDetails # noqa: E501 diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/operation.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/operation.py index 8ebd5c61f54d93fa13688eb5aa2c4d4f5410495b..330be5f04720821969ea48b731b0b159780475ae 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/operation.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/operation.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/point.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/point.py index 95ce36c24705d0f956290227e95082da28627c63..b9f091aee8af49583cf4837a19441ba804e64afc 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/point.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/point.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model +from api_invoker_management.models.gad_shape import GADShape # noqa: E501 from api_invoker_management.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from api_invoker_management.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/point_altitude.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/point_altitude.py index 4533b0cc7ad9d90f7d184f68017ad50f87064449..f4e1481d77c15cdaf052bef8e1f4d7fa6a94de6f 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/point_altitude.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/point_altitude.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model +from api_invoker_management.models.gad_shape import GADShape # noqa: E501 from api_invoker_management.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from api_invoker_management.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/point_altitude_uncertainty.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/point_altitude_uncertainty.py index 4708b9b0e5dbed7f2245cdb14f8c970a698e6c31..5f5449dd19fbae8ed34f0520f49f3cae6db0f24e 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/point_altitude_uncertainty.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/point_altitude_uncertainty.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model +from api_invoker_management.models.gad_shape import GADShape # noqa: E501 from api_invoker_management.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from api_invoker_management.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 from api_invoker_management.models.uncertainty_ellipse import UncertaintyEllipse # noqa: E501 diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/point_uncertainty_circle.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/point_uncertainty_circle.py index 89dd1c6808325060442d7c4bc8d8fa386f86e646..deb1f0a0e0907b426382f3be5e6f896c24f8ffab 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/point_uncertainty_circle.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/point_uncertainty_circle.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model +from api_invoker_management.models.gad_shape import GADShape # noqa: E501 from api_invoker_management.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from api_invoker_management.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/point_uncertainty_ellipse.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/point_uncertainty_ellipse.py index 252f7be1d76468c57169bedcd823d96c1d450e98..ad7cc40dcab7914541b66ed460595c44223c784f 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/point_uncertainty_ellipse.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/point_uncertainty_ellipse.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model +from api_invoker_management.models.gad_shape import GADShape # noqa: E501 from api_invoker_management.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from api_invoker_management.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 from api_invoker_management.models.uncertainty_ellipse import UncertaintyEllipse # noqa: E501 diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/polygon.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/polygon.py index 9b1ea42a2389495bfd5ba441604f4d80fda77626..0999dd1bffe06365cdf45e64ef6ab6e161796f5f 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/polygon.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/polygon.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model +from api_invoker_management.models.gad_shape import GADShape # noqa: E501 from api_invoker_management.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from api_invoker_management.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/problem_details.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/problem_details.py index bf1b667727aaf047c00eecea1e76cdb5f1c5bbe5..f4405ce28408a513a5fd3922e27c0c054f0ab14b 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/problem_details.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/problem_details.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model @@ -259,6 +259,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_API_Invoker_Management_API/api_invoker_management/models/protocol.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/protocol.py index 8322eb2c2cfdaa5149fe4119d3b021ea955585a5..9fefc9c77d4092d7b0641ab6eac74ada4ca102a4 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/protocol.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/protocol.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/published_api_path.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/published_api_path.py index 76b6b93fdff8a9a5f079d864eb83baa4fc8b5eda..158dca12ad943685e448005c3dda529b6416e269 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/published_api_path.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/published_api_path.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/relative_cartesian_location.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/relative_cartesian_location.py index e5092005c9e00a51a4e25baf2b3339209213bd5a..82963b5f872c87c395a9140bc9adc1a9533194ff 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/relative_cartesian_location.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/relative_cartesian_location.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/resource.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/resource.py index 1fd97b395a38214ce47893267c9d95f7d63a2b85..e30732ae3f2a840bf11c090562b0eba5604828b9 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/resource.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/resource.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/security_method.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/security_method.py index 99a51a851b3c81c6878255555884d5558c10ae83..a5937300e078e41ed82f22632bae49eb764f297a 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/security_method.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/security_method.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/service_api_description.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/service_api_description.py index 29659b82fd7295af4d10907eb815ab4e8756ff01..1b38bd50460880ac4ce1372ab8de2448e706ee5a 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/service_api_description.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/service_api_description.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.aef_profile import AefProfile # noqa: E501 @@ -236,7 +236,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 +305,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_API_Invoker_Management_API/api_invoker_management/models/service_kpis.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/service_kpis.py index 9131233e2cbf9f32555cae6181c89b296c930648..9314fcd6f517de2cef5c7dd8501c775ec0062065 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/service_kpis.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/service_kpis.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model @@ -170,7 +170,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 +195,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 +220,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 +245,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_API_Invoker_Management_API/api_invoker_management/models/shareable_information.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/shareable_information.py index a6f198078eae31233b76dd7483be5d02c5ed1eb3..7e73226d4fdbdacdf47fb3747013640bb8c0f136 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/shareable_information.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/shareable_information.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/supported_gad_shapes.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/supported_gad_shapes.py index 4d459b98a55d4ba6e8c44bc5488d5b4fb10caa10..1242387f5a5b473d19ba07ec45a7472a4de6bbcf 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/supported_gad_shapes.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/supported_gad_shapes.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/uncertainty_ellipse.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/uncertainty_ellipse.py index b7e749492efb22ad5bfa7adb5b2ac8a6abf8274e..b5a594ebfe94924aac159ee18a51ec86efd1b3f9 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/uncertainty_ellipse.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/uncertainty_ellipse.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/uncertainty_ellipsoid.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/uncertainty_ellipsoid.py index 5d41877bf77a33bf223e5f4fdc62f86df2ae1162..496846f8d397c0a4409453c22be3d4bad404ded9 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/uncertainty_ellipsoid.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/uncertainty_ellipsoid.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/version.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/version.py index dfdc783c1a3c166608ae7d9c897ab5f7241fbed7..9570e89f6676d5dcf3e68bd5f51bf1b7883b11fb 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/version.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/version.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/websock_notif_config.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/websock_notif_config.py index 2c38535d62622fc1444efbe602c7b97be0264f73..1a300a31b23c8bb3cbc8d098f9dffe8dc249e78e 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/websock_notif_config.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/models/websock_notif_config.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invoker_management import util from api_invoker_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/openapi/openapi.yaml b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/openapi/openapi.yaml index 12715c6e2c68e290d5182c0d8a2e3123ef40013c..799074641c3dc13e81c534dbf1d30b604ac119fa 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/openapi/openapi.yaml +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/openapi/openapi.yaml @@ -3,9 +3,9 @@ info: description: "API for API invoker management. \n© 2024, 3GPP Organizational Partners\ \ (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). \nAll rights reserved.\n" title: CAPIF_API_Invoker_Management_API - version: 1.3.0-alpha.2 + version: 1.3.0 externalDocs: - description: 3GPP TS 29.222 V18.5.0 Common API Framework for 3GPP Northbound APIs + description: 3GPP TS 29.222 V18.6.0 Common API Framework for 3GPP Northbound APIs url: https://www.3gpp.org/ftp/Specs/archive/29_series/29.222/ servers: - url: "{apiRoot}/api-invoker-management/v1" @@ -18,10 +18,10 @@ paths: post: callbacks: notificationDestination: - '{request.body#/notificationDestination}': + '{$request.body#/notificationDestination}': post: description: Notify the API Invoker about the onboarding completion - operationId: notificationDestination_request_bodyNotificationDestinationPost + operationId: notification_destination_post requestBody: content: application/json: @@ -390,10 +390,10 @@ paths: put: callbacks: notificationDestination: - '{request.body#/notificationDestination}': + '{$request.body#/notificationDestination}': post: description: Notify the API Invoker about the API invoker update completion - operationId: notificationDestination_request_bodyNotificationDestinationPost + operationId: notification_destination_post requestBody: content: application/json: @@ -722,6 +722,9 @@ components: - aefIds aefProfiles: - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -900,6 +903,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -908,6 +914,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -925,6 +934,9 @@ components: maxReqRate: 0 avalGraComp: avalGraComp - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -1103,6 +1115,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1111,6 +1126,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1150,6 +1168,9 @@ components: - aefIds aefProfiles: - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -1328,6 +1349,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1336,6 +1360,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1353,6 +1380,9 @@ components: maxReqRate: 0 avalGraComp: avalGraComp - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -1531,6 +1561,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1539,6 +1572,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1608,6 +1644,9 @@ components: - aefIds aefProfiles: - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -1786,6 +1825,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1794,6 +1836,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1811,6 +1856,9 @@ components: maxReqRate: 0 avalGraComp: avalGraComp - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -1989,6 +2037,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1997,6 +2048,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2036,6 +2090,9 @@ components: - aefIds aefProfiles: - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -2214,6 +2271,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2222,6 +2282,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2239,6 +2302,9 @@ components: maxReqRate: 0 avalGraComp: avalGraComp - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -2417,6 +2483,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2425,6 +2494,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2527,6 +2599,9 @@ components: - aefIds aefProfiles: - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -2705,6 +2780,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2713,6 +2791,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2730,6 +2811,9 @@ components: maxReqRate: 0 avalGraComp: avalGraComp - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -2908,6 +2992,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2916,6 +3003,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2955,6 +3045,9 @@ components: - aefIds aefProfiles: - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -3133,6 +3226,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -3141,6 +3237,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -3158,6 +3257,9 @@ components: maxReqRate: 0 avalGraComp: avalGraComp - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -3336,6 +3438,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -3344,6 +3449,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -3386,6 +3494,9 @@ components: - aefIds aefProfiles: - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -3564,6 +3675,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -3572,6 +3686,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -3589,6 +3706,9 @@ components: maxReqRate: 0 avalGraComp: avalGraComp - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -3767,6 +3887,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -3775,6 +3898,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -3814,6 +3940,9 @@ components: - aefIds aefProfiles: - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -3992,6 +4121,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -4000,6 +4132,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -4017,6 +4152,9 @@ components: maxReqRate: 0 avalGraComp: avalGraComp - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -4195,6 +4333,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -4203,6 +4344,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -4356,6 +4500,9 @@ components: - aefIds aefProfiles: - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -4534,6 +4681,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -4542,6 +4692,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -4559,6 +4712,9 @@ components: maxReqRate: 0 avalGraComp: avalGraComp - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -4737,6 +4893,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -4745,6 +4904,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -4845,6 +5007,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 @@ -5023,6 +5188,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -5031,6 +5199,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -5048,7 +5219,10 @@ components: maxReqRate: 0 avalGraComp: avalGraComp nullable: true - oneOf: [] + oneOf: + - required: ["domainName"] + - required: ["interfaceDescriptions"] + - {} properties: aefId: description: Identifier of the API exposing function @@ -5072,6 +5246,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 @@ -5251,14 +5431,10 @@ components: title: Resource type: object CommunicationType: - anyOf: - - enum: + enum: - REQUEST_RESPONSE - SUBSCRIBE_NOTIFY - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates a communication type of the resource or the custom operation.\ \ \nPossible values are:\n- REQUEST_RESPONSE: The communication is of the\ \ type request-response.\n- SUBSCRIBE_NOTIFY: The communication is of the\ @@ -5299,32 +5475,24 @@ components: title: CustomOperation type: object Operation: - anyOf: - - enum: + enum: - GET - POST - PUT - PATCH - DELETE - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates an HTTP method. \nPossible values are:\n- GET: HTTP\ \ GET method.\n- POST: HTTP POST method.\n- PUT: HTTP PUT method.\n- PATCH:\ \ HTTP PATCH method.\n- DELETE: HTTP DELETE method.\n" title: Operation Protocol: - anyOf: - - enum: + enum: - HTTP_1_1 - HTTP_2 - MQTT - WEBSOCKET - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates a protocol and protocol version used by the API. \n\ Possible values are:\n- HTTP_1_1: Indicates that the protocol is HTTP version\ \ 1.1.\n- HTTP_2: Indicates that the protocol is HTTP version 2.\n- MQTT:\ @@ -5332,30 +5500,22 @@ components: \ Indicates that the protocol is Websocket.\n" title: Protocol DataFormat: - anyOf: - - enum: + enum: - JSON - XML - PROTOBUF3 - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates a data format. \nPossible values are:\n- JSON: Indicates\ \ that the data format is JSON.\n- XML: Indicates that the data format is\ \ Extensible Markup Language.\n- PROTOBUF3: Indicates that the data format\ \ is Protocol buffers version 3.\n" title: DataFormat SecurityMethod: - anyOf: - - enum: + enum: - PSK - PKI - OAUTH - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates the security method. \nPossible values are:\n- PSK:\ \ Security method 1 (Using TLS-PSK) as described in 3GPP TS 33.122.\n- PKI:\ \ Security method 2 (Using PKI) as described in 3GPP TS 33.122.\n- OAUTH:\ @@ -5365,6 +5525,9 @@ components: description: Represents the description of an API's interface. example: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -5373,7 +5536,10 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr nullable: true - oneOf: [] + oneOf: + - required: ["fqdn"] + - required: ["ipv4Addr"] + - required: ["ipv6Addr"] properties: ipv4Addr: description: | @@ -5412,6 +5578,12 @@ components: minItems: 1 title: securityMethods type: array + grantTypes: + items: + $ref: '#/components/schemas/OAuthGrantType' + minItems: 1 + title: grantTypes + type: array title: InterfaceDescription type: object AefLocation: @@ -5534,7 +5706,9 @@ components: title: ServiceKpis type: object IpAddrRange: - anyOf: [] + anyOf: + - required: ["ueIpv4AddrRanges"] + - required: ["ueIpv6AddrRanges"] description: Represents the list of public IP ranges example: ueIpv4AddrRanges: @@ -5651,6 +5825,19 @@ components: nullable: true title: expTime type: string + OAuthGrantType: + enum: + - CLIENT_CREDENTIALS + - AUTHORIZATION_CODE + - AUTHORIZATION_CODE_WITH_PKCE + 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 Ipv4Addr: description: | string identifying a Ipv4 address formatted in the "dotted decimal" notation as defined in IETF RFC 1166. @@ -5866,8 +6053,7 @@ components: title: GADShape type: object SupportedGADShapes: - anyOf: - - enum: + enum: - POINT - POINT_UNCERTAINTY_CIRCLE - POINT_UNCERTAINTY_ELLIPSE @@ -5880,8 +6066,7 @@ components: - DISTANCE_DIRECTION - RELATIVE_2D_LOCATION_UNCERTAINTY_ELLIPSE - RELATIVE_3D_LOCATION_UNCERTAINTY_ELLIPSOID - type: string - - type: string + type: string description: Indicates supported GAD shapes. title: SupportedGADShapes PointUncertaintyCircle: @@ -6109,8 +6294,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: @@ -6146,6 +6349,8 @@ components: $ref: '#/components/schemas/UncertaintyEllipsoid' confidence: $ref: '#/components/schemas/Confidence' + vConfidence: + $ref: '#/components/schemas/Confidence' required: - confidence - localOrigin @@ -6245,9 +6450,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_API_Invoker_Management_API/api_invoker_management/test/test_default_controller.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/test/test_default_controller.py index 5724e7dfa47e2fc97c2652b8851236fe0293f5be..0c5bab82ac203067c4f011c9b5d38672ef9d7329 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/test/test_default_controller.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/test/test_default_controller.py @@ -1,5 +1,7 @@ import unittest +from api_invoker_management.models.api_invoker_enrolment_details import APIInvokerEnrolmentDetails # noqa: E501 +from api_invoker_management.models.problem_details import ProblemDetails # noqa: E501 from api_invoker_management.test import BaseTestCase from flask import json @@ -27,7 +29,7 @@ class TestDefaultController(BaseTestCase): """ - api_invoker_enrolment_details = {"notificationDestination":"notificationDestination","supportedFeatures":"supportedFeatures","apiInvokerId":"apiInvokerId","expTime":"2000-01-23T04:56:07.000+00:00","apiInvokerInformation":"apiInvokerInformation","websockNotifConfig":{"requestWebsocketUri":True,"websocketUri":"websocketUri"},"onboardingInformation":{"apiInvokerPublicKey":"apiInvokerPublicKey","onboardingSecret":"onboardingSecret","apiInvokerCertificate":"apiInvokerCertificate"},"requestTestNotification":True,"apiList":{"serviceAPIDescriptions":[{"serviceAPICategory":"serviceAPICategory","ccfId":"ccfId","apiName":"apiName","shareableInfo":{"capifProvDoms":["capifProvDoms","capifProvDoms"],"isShareable":True},"apiProvName":"apiProvName","supportedFeatures":"supportedFeatures","description":"description","apiSuppFeats":"apiSuppFeats","apiId":"apiId","apiStatus":{"aefIds":["aefIds","aefIds"]},"aefProfiles":[{"protocol":"HTTP_1_1","ueIpRange":{"ueIpv4AddrRanges":[{"start":"198.51.100.1","end":"198.51.100.1"},{"start":"198.51.100.1","end":"198.51.100.1"}],"ueIpv6AddrRanges":[{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"},{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"}]},"securityMethods":["PSK","PSK"],"versions":[{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"},{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"}],"dataFormat":"JSON","domainName":"domainName","aefLocation":{"dcId":"dcId","geoArea":{"shape":"POINT","point":{"lon":36.988422590534526,"lat":-63.615366350946985}},"civicAddr":{"POBOX":"POBOX","usageRules":"usageRules","country":"country","PRD":"PRD","PLC":"PLC","HNO":"HNO","PRM":"PRM","HNS":"HNS","FLR":"FLR","A1":"A1","A2":"A2","A3":"A3","A4":"A4","STS":"STS","A5":"A5","A6":"A6","RDSEC":"RDSEC","providedBy":"providedBy","LOC":"LOC","UNIT":"UNIT","SEAT":"SEAT","POD":"POD","RDBR":"RDBR","method":"method","LMK":"LMK","POM":"POM","ADDCODE":"ADDCODE","RD":"RD","PC":"PC","PCN":"PCN","NAM":"NAM","BLD":"BLD","ROOM":"ROOM","RDSUBBR":"RDSUBBR"}},"aefId":"aefId","interfaceDescriptions":[{"ipv6Addr":"ipv6Addr","securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},{"ipv6Addr":"ipv6Addr","securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"}],"serviceKpis":{"avalMem":"avalMem","avalStor":"avalStor","avalComp":"avalComp","conBand":0,"maxRestime":0,"availability":0,"maxReqRate":0,"avalGraComp":"avalGraComp"}},{"protocol":"HTTP_1_1","ueIpRange":{"ueIpv4AddrRanges":[{"start":"198.51.100.1","end":"198.51.100.1"},{"start":"198.51.100.1","end":"198.51.100.1"}],"ueIpv6AddrRanges":[{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"},{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"}]},"securityMethods":["PSK","PSK"],"versions":[{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"},{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"}],"dataFormat":"JSON","domainName":"domainName","aefLocation":{"dcId":"dcId","geoArea":{"shape":"POINT","point":{"lon":36.988422590534526,"lat":-63.615366350946985}},"civicAddr":{"POBOX":"POBOX","usageRules":"usageRules","country":"country","PRD":"PRD","PLC":"PLC","HNO":"HNO","PRM":"PRM","HNS":"HNS","FLR":"FLR","A1":"A1","A2":"A2","A3":"A3","A4":"A4","STS":"STS","A5":"A5","A6":"A6","RDSEC":"RDSEC","providedBy":"providedBy","LOC":"LOC","UNIT":"UNIT","SEAT":"SEAT","POD":"POD","RDBR":"RDBR","method":"method","LMK":"LMK","POM":"POM","ADDCODE":"ADDCODE","RD":"RD","PC":"PC","PCN":"PCN","NAM":"NAM","BLD":"BLD","ROOM":"ROOM","RDSUBBR":"RDSUBBR"}},"aefId":"aefId","interfaceDescriptions":[{"ipv6Addr":"ipv6Addr","securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},{"ipv6Addr":"ipv6Addr","securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"}],"serviceKpis":{"avalMem":"avalMem","avalStor":"avalStor","avalComp":"avalComp","conBand":0,"maxRestime":0,"availability":0,"maxReqRate":0,"avalGraComp":"avalGraComp"}}],"pubApiPath":{"ccfIds":["ccfIds","ccfIds"]}},{"serviceAPICategory":"serviceAPICategory","ccfId":"ccfId","apiName":"apiName","shareableInfo":{"capifProvDoms":["capifProvDoms","capifProvDoms"],"isShareable":True},"apiProvName":"apiProvName","supportedFeatures":"supportedFeatures","description":"description","apiSuppFeats":"apiSuppFeats","apiId":"apiId","apiStatus":{"aefIds":["aefIds","aefIds"]},"aefProfiles":[{"protocol":"HTTP_1_1","ueIpRange":{"ueIpv4AddrRanges":[{"start":"198.51.100.1","end":"198.51.100.1"},{"start":"198.51.100.1","end":"198.51.100.1"}],"ueIpv6AddrRanges":[{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"},{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"}]},"securityMethods":["PSK","PSK"],"versions":[{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"},{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"}],"dataFormat":"JSON","domainName":"domainName","aefLocation":{"dcId":"dcId","geoArea":{"shape":"POINT","point":{"lon":36.988422590534526,"lat":-63.615366350946985}},"civicAddr":{"POBOX":"POBOX","usageRules":"usageRules","country":"country","PRD":"PRD","PLC":"PLC","HNO":"HNO","PRM":"PRM","HNS":"HNS","FLR":"FLR","A1":"A1","A2":"A2","A3":"A3","A4":"A4","STS":"STS","A5":"A5","A6":"A6","RDSEC":"RDSEC","providedBy":"providedBy","LOC":"LOC","UNIT":"UNIT","SEAT":"SEAT","POD":"POD","RDBR":"RDBR","method":"method","LMK":"LMK","POM":"POM","ADDCODE":"ADDCODE","RD":"RD","PC":"PC","PCN":"PCN","NAM":"NAM","BLD":"BLD","ROOM":"ROOM","RDSUBBR":"RDSUBBR"}},"aefId":"aefId","interfaceDescriptions":[{"ipv6Addr":"ipv6Addr","securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},{"ipv6Addr":"ipv6Addr","securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"}],"serviceKpis":{"avalMem":"avalMem","avalStor":"avalStor","avalComp":"avalComp","conBand":0,"maxRestime":0,"availability":0,"maxReqRate":0,"avalGraComp":"avalGraComp"}},{"protocol":"HTTP_1_1","ueIpRange":{"ueIpv4AddrRanges":[{"start":"198.51.100.1","end":"198.51.100.1"},{"start":"198.51.100.1","end":"198.51.100.1"}],"ueIpv6AddrRanges":[{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"},{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"}]},"securityMethods":["PSK","PSK"],"versions":[{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"},{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"}],"dataFormat":"JSON","domainName":"domainName","aefLocation":{"dcId":"dcId","geoArea":{"shape":"POINT","point":{"lon":36.988422590534526,"lat":-63.615366350946985}},"civicAddr":{"POBOX":"POBOX","usageRules":"usageRules","country":"country","PRD":"PRD","PLC":"PLC","HNO":"HNO","PRM":"PRM","HNS":"HNS","FLR":"FLR","A1":"A1","A2":"A2","A3":"A3","A4":"A4","STS":"STS","A5":"A5","A6":"A6","RDSEC":"RDSEC","providedBy":"providedBy","LOC":"LOC","UNIT":"UNIT","SEAT":"SEAT","POD":"POD","RDBR":"RDBR","method":"method","LMK":"LMK","POM":"POM","ADDCODE":"ADDCODE","RD":"RD","PC":"PC","PCN":"PCN","NAM":"NAM","BLD":"BLD","ROOM":"ROOM","RDSUBBR":"RDSUBBR"}},"aefId":"aefId","interfaceDescriptions":[{"ipv6Addr":"ipv6Addr","securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},{"ipv6Addr":"ipv6Addr","securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"}],"serviceKpis":{"avalMem":"avalMem","avalStor":"avalStor","avalComp":"avalComp","conBand":0,"maxRestime":0,"availability":0,"maxReqRate":0,"avalGraComp":"avalGraComp"}}],"pubApiPath":{"ccfIds":["ccfIds","ccfIds"]}}]}} + api_invoker_enrolment_details = {"notificationDestination":"notificationDestination","supportedFeatures":"supportedFeatures","apiInvokerId":"apiInvokerId","expTime":"2000-01-23T04:56:07.000+00:00","apiInvokerInformation":"apiInvokerInformation","websockNotifConfig":{"requestWebsocketUri":True,"websocketUri":"websocketUri"},"onboardingInformation":{"apiInvokerPublicKey":"apiInvokerPublicKey","onboardingSecret":"onboardingSecret","apiInvokerCertificate":"apiInvokerCertificate"},"requestTestNotification":True,"apiList":{"serviceAPIDescriptions":[{"serviceAPICategory":"serviceAPICategory","ccfId":"ccfId","apiName":"apiName","shareableInfo":{"capifProvDoms":["capifProvDoms","capifProvDoms"],"isShareable":True},"apiProvName":"apiProvName","supportedFeatures":"supportedFeatures","description":"description","apiSuppFeats":"apiSuppFeats","apiId":"apiId","apiStatus":{"aefIds":["aefIds","aefIds"]},"aefProfiles":[{"protocol":"HTTP_1_1","grantTypes":["CLIENT_CREDENTIALS","CLIENT_CREDENTIALS"],"ueIpRange":{"ueIpv4AddrRanges":[{"start":"198.51.100.1","end":"198.51.100.1"},{"start":"198.51.100.1","end":"198.51.100.1"}],"ueIpv6AddrRanges":[{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"},{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"}]},"securityMethods":["PSK","PSK"],"versions":[{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"},{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"}],"dataFormat":"JSON","domainName":"domainName","aefLocation":{"dcId":"dcId","geoArea":{"shape":"POINT","point":{"lon":36.988422590534526,"lat":-63.615366350946985}},"civicAddr":{"POBOX":"POBOX","usageRules":"usageRules","country":"country","PRD":"PRD","PLC":"PLC","HNO":"HNO","PRM":"PRM","HNS":"HNS","FLR":"FLR","A1":"A1","A2":"A2","A3":"A3","A4":"A4","STS":"STS","A5":"A5","A6":"A6","RDSEC":"RDSEC","providedBy":"providedBy","LOC":"LOC","UNIT":"UNIT","SEAT":"SEAT","POD":"POD","RDBR":"RDBR","method":"method","LMK":"LMK","POM":"POM","ADDCODE":"ADDCODE","RD":"RD","PC":"PC","PCN":"PCN","NAM":"NAM","BLD":"BLD","ROOM":"ROOM","RDSUBBR":"RDSUBBR"}},"aefId":"aefId","interfaceDescriptions":[{"ipv6Addr":"ipv6Addr","grantTypes":[null,null],"securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},{"ipv6Addr":"ipv6Addr","grantTypes":[null,null],"securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"}],"serviceKpis":{"avalMem":"avalMem","avalStor":"avalStor","avalComp":"avalComp","conBand":0,"maxRestime":0,"availability":0,"maxReqRate":0,"avalGraComp":"avalGraComp"}},{"protocol":"HTTP_1_1","grantTypes":["CLIENT_CREDENTIALS","CLIENT_CREDENTIALS"],"ueIpRange":{"ueIpv4AddrRanges":[{"start":"198.51.100.1","end":"198.51.100.1"},{"start":"198.51.100.1","end":"198.51.100.1"}],"ueIpv6AddrRanges":[{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"},{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"}]},"securityMethods":["PSK","PSK"],"versions":[{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"},{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"}],"dataFormat":"JSON","domainName":"domainName","aefLocation":{"dcId":"dcId","geoArea":{"shape":"POINT","point":{"lon":36.988422590534526,"lat":-63.615366350946985}},"civicAddr":{"POBOX":"POBOX","usageRules":"usageRules","country":"country","PRD":"PRD","PLC":"PLC","HNO":"HNO","PRM":"PRM","HNS":"HNS","FLR":"FLR","A1":"A1","A2":"A2","A3":"A3","A4":"A4","STS":"STS","A5":"A5","A6":"A6","RDSEC":"RDSEC","providedBy":"providedBy","LOC":"LOC","UNIT":"UNIT","SEAT":"SEAT","POD":"POD","RDBR":"RDBR","method":"method","LMK":"LMK","POM":"POM","ADDCODE":"ADDCODE","RD":"RD","PC":"PC","PCN":"PCN","NAM":"NAM","BLD":"BLD","ROOM":"ROOM","RDSUBBR":"RDSUBBR"}},"aefId":"aefId","interfaceDescriptions":[{"ipv6Addr":"ipv6Addr","grantTypes":[null,null],"securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},{"ipv6Addr":"ipv6Addr","grantTypes":[null,null],"securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"}],"serviceKpis":{"avalMem":"avalMem","avalStor":"avalStor","avalComp":"avalComp","conBand":0,"maxRestime":0,"availability":0,"maxReqRate":0,"avalGraComp":"avalGraComp"}}],"pubApiPath":{"ccfIds":["ccfIds","ccfIds"]}},{"serviceAPICategory":"serviceAPICategory","ccfId":"ccfId","apiName":"apiName","shareableInfo":{"capifProvDoms":["capifProvDoms","capifProvDoms"],"isShareable":True},"apiProvName":"apiProvName","supportedFeatures":"supportedFeatures","description":"description","apiSuppFeats":"apiSuppFeats","apiId":"apiId","apiStatus":{"aefIds":["aefIds","aefIds"]},"aefProfiles":[{"protocol":"HTTP_1_1","grantTypes":["CLIENT_CREDENTIALS","CLIENT_CREDENTIALS"],"ueIpRange":{"ueIpv4AddrRanges":[{"start":"198.51.100.1","end":"198.51.100.1"},{"start":"198.51.100.1","end":"198.51.100.1"}],"ueIpv6AddrRanges":[{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"},{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"}]},"securityMethods":["PSK","PSK"],"versions":[{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"},{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"}],"dataFormat":"JSON","domainName":"domainName","aefLocation":{"dcId":"dcId","geoArea":{"shape":"POINT","point":{"lon":36.988422590534526,"lat":-63.615366350946985}},"civicAddr":{"POBOX":"POBOX","usageRules":"usageRules","country":"country","PRD":"PRD","PLC":"PLC","HNO":"HNO","PRM":"PRM","HNS":"HNS","FLR":"FLR","A1":"A1","A2":"A2","A3":"A3","A4":"A4","STS":"STS","A5":"A5","A6":"A6","RDSEC":"RDSEC","providedBy":"providedBy","LOC":"LOC","UNIT":"UNIT","SEAT":"SEAT","POD":"POD","RDBR":"RDBR","method":"method","LMK":"LMK","POM":"POM","ADDCODE":"ADDCODE","RD":"RD","PC":"PC","PCN":"PCN","NAM":"NAM","BLD":"BLD","ROOM":"ROOM","RDSUBBR":"RDSUBBR"}},"aefId":"aefId","interfaceDescriptions":[{"ipv6Addr":"ipv6Addr","grantTypes":[null,null],"securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},{"ipv6Addr":"ipv6Addr","grantTypes":[null,null],"securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"}],"serviceKpis":{"avalMem":"avalMem","avalStor":"avalStor","avalComp":"avalComp","conBand":0,"maxRestime":0,"availability":0,"maxReqRate":0,"avalGraComp":"avalGraComp"}},{"protocol":"HTTP_1_1","grantTypes":["CLIENT_CREDENTIALS","CLIENT_CREDENTIALS"],"ueIpRange":{"ueIpv4AddrRanges":[{"start":"198.51.100.1","end":"198.51.100.1"},{"start":"198.51.100.1","end":"198.51.100.1"}],"ueIpv6AddrRanges":[{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"},{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"}]},"securityMethods":["PSK","PSK"],"versions":[{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"},{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"}],"dataFormat":"JSON","domainName":"domainName","aefLocation":{"dcId":"dcId","geoArea":{"shape":"POINT","point":{"lon":36.988422590534526,"lat":-63.615366350946985}},"civicAddr":{"POBOX":"POBOX","usageRules":"usageRules","country":"country","PRD":"PRD","PLC":"PLC","HNO":"HNO","PRM":"PRM","HNS":"HNS","FLR":"FLR","A1":"A1","A2":"A2","A3":"A3","A4":"A4","STS":"STS","A5":"A5","A6":"A6","RDSEC":"RDSEC","providedBy":"providedBy","LOC":"LOC","UNIT":"UNIT","SEAT":"SEAT","POD":"POD","RDBR":"RDBR","method":"method","LMK":"LMK","POM":"POM","ADDCODE":"ADDCODE","RD":"RD","PC":"PC","PCN":"PCN","NAM":"NAM","BLD":"BLD","ROOM":"ROOM","RDSUBBR":"RDSUBBR"}},"aefId":"aefId","interfaceDescriptions":[{"ipv6Addr":"ipv6Addr","grantTypes":[null,null],"securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},{"ipv6Addr":"ipv6Addr","grantTypes":[null,null],"securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"}],"serviceKpis":{"avalMem":"avalMem","avalStor":"avalStor","avalComp":"avalComp","conBand":0,"maxRestime":0,"availability":0,"maxReqRate":0,"avalGraComp":"avalGraComp"}}],"pubApiPath":{"ccfIds":["ccfIds","ccfIds"]}}]}} headers = { 'Accept': 'application/json', 'Content-Type': 'application/json', @@ -46,7 +48,7 @@ class TestDefaultController(BaseTestCase): """ - api_invoker_enrolment_details = {"notificationDestination":"notificationDestination","supportedFeatures":"supportedFeatures","apiInvokerId":"apiInvokerId","expTime":"2000-01-23T04:56:07.000+00:00","apiInvokerInformation":"apiInvokerInformation","websockNotifConfig":{"requestWebsocketUri":True,"websocketUri":"websocketUri"},"onboardingInformation":{"apiInvokerPublicKey":"apiInvokerPublicKey","onboardingSecret":"onboardingSecret","apiInvokerCertificate":"apiInvokerCertificate"},"requestTestNotification":True,"apiList":{"serviceAPIDescriptions":[{"serviceAPICategory":"serviceAPICategory","ccfId":"ccfId","apiName":"apiName","shareableInfo":{"capifProvDoms":["capifProvDoms","capifProvDoms"],"isShareable":True},"apiProvName":"apiProvName","supportedFeatures":"supportedFeatures","description":"description","apiSuppFeats":"apiSuppFeats","apiId":"apiId","apiStatus":{"aefIds":["aefIds","aefIds"]},"aefProfiles":[{"protocol":"HTTP_1_1","ueIpRange":{"ueIpv4AddrRanges":[{"start":"198.51.100.1","end":"198.51.100.1"},{"start":"198.51.100.1","end":"198.51.100.1"}],"ueIpv6AddrRanges":[{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"},{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"}]},"securityMethods":["PSK","PSK"],"versions":[{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"},{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"}],"dataFormat":"JSON","domainName":"domainName","aefLocation":{"dcId":"dcId","geoArea":{"shape":"POINT","point":{"lon":36.988422590534526,"lat":-63.615366350946985}},"civicAddr":{"POBOX":"POBOX","usageRules":"usageRules","country":"country","PRD":"PRD","PLC":"PLC","HNO":"HNO","PRM":"PRM","HNS":"HNS","FLR":"FLR","A1":"A1","A2":"A2","A3":"A3","A4":"A4","STS":"STS","A5":"A5","A6":"A6","RDSEC":"RDSEC","providedBy":"providedBy","LOC":"LOC","UNIT":"UNIT","SEAT":"SEAT","POD":"POD","RDBR":"RDBR","method":"method","LMK":"LMK","POM":"POM","ADDCODE":"ADDCODE","RD":"RD","PC":"PC","PCN":"PCN","NAM":"NAM","BLD":"BLD","ROOM":"ROOM","RDSUBBR":"RDSUBBR"}},"aefId":"aefId","interfaceDescriptions":[{"ipv6Addr":"ipv6Addr","securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},{"ipv6Addr":"ipv6Addr","securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"}],"serviceKpis":{"avalMem":"avalMem","avalStor":"avalStor","avalComp":"avalComp","conBand":0,"maxRestime":0,"availability":0,"maxReqRate":0,"avalGraComp":"avalGraComp"}},{"protocol":"HTTP_1_1","ueIpRange":{"ueIpv4AddrRanges":[{"start":"198.51.100.1","end":"198.51.100.1"},{"start":"198.51.100.1","end":"198.51.100.1"}],"ueIpv6AddrRanges":[{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"},{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"}]},"securityMethods":["PSK","PSK"],"versions":[{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"},{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"}],"dataFormat":"JSON","domainName":"domainName","aefLocation":{"dcId":"dcId","geoArea":{"shape":"POINT","point":{"lon":36.988422590534526,"lat":-63.615366350946985}},"civicAddr":{"POBOX":"POBOX","usageRules":"usageRules","country":"country","PRD":"PRD","PLC":"PLC","HNO":"HNO","PRM":"PRM","HNS":"HNS","FLR":"FLR","A1":"A1","A2":"A2","A3":"A3","A4":"A4","STS":"STS","A5":"A5","A6":"A6","RDSEC":"RDSEC","providedBy":"providedBy","LOC":"LOC","UNIT":"UNIT","SEAT":"SEAT","POD":"POD","RDBR":"RDBR","method":"method","LMK":"LMK","POM":"POM","ADDCODE":"ADDCODE","RD":"RD","PC":"PC","PCN":"PCN","NAM":"NAM","BLD":"BLD","ROOM":"ROOM","RDSUBBR":"RDSUBBR"}},"aefId":"aefId","interfaceDescriptions":[{"ipv6Addr":"ipv6Addr","securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},{"ipv6Addr":"ipv6Addr","securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"}],"serviceKpis":{"avalMem":"avalMem","avalStor":"avalStor","avalComp":"avalComp","conBand":0,"maxRestime":0,"availability":0,"maxReqRate":0,"avalGraComp":"avalGraComp"}}],"pubApiPath":{"ccfIds":["ccfIds","ccfIds"]}},{"serviceAPICategory":"serviceAPICategory","ccfId":"ccfId","apiName":"apiName","shareableInfo":{"capifProvDoms":["capifProvDoms","capifProvDoms"],"isShareable":True},"apiProvName":"apiProvName","supportedFeatures":"supportedFeatures","description":"description","apiSuppFeats":"apiSuppFeats","apiId":"apiId","apiStatus":{"aefIds":["aefIds","aefIds"]},"aefProfiles":[{"protocol":"HTTP_1_1","ueIpRange":{"ueIpv4AddrRanges":[{"start":"198.51.100.1","end":"198.51.100.1"},{"start":"198.51.100.1","end":"198.51.100.1"}],"ueIpv6AddrRanges":[{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"},{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"}]},"securityMethods":["PSK","PSK"],"versions":[{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"},{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"}],"dataFormat":"JSON","domainName":"domainName","aefLocation":{"dcId":"dcId","geoArea":{"shape":"POINT","point":{"lon":36.988422590534526,"lat":-63.615366350946985}},"civicAddr":{"POBOX":"POBOX","usageRules":"usageRules","country":"country","PRD":"PRD","PLC":"PLC","HNO":"HNO","PRM":"PRM","HNS":"HNS","FLR":"FLR","A1":"A1","A2":"A2","A3":"A3","A4":"A4","STS":"STS","A5":"A5","A6":"A6","RDSEC":"RDSEC","providedBy":"providedBy","LOC":"LOC","UNIT":"UNIT","SEAT":"SEAT","POD":"POD","RDBR":"RDBR","method":"method","LMK":"LMK","POM":"POM","ADDCODE":"ADDCODE","RD":"RD","PC":"PC","PCN":"PCN","NAM":"NAM","BLD":"BLD","ROOM":"ROOM","RDSUBBR":"RDSUBBR"}},"aefId":"aefId","interfaceDescriptions":[{"ipv6Addr":"ipv6Addr","securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},{"ipv6Addr":"ipv6Addr","securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"}],"serviceKpis":{"avalMem":"avalMem","avalStor":"avalStor","avalComp":"avalComp","conBand":0,"maxRestime":0,"availability":0,"maxReqRate":0,"avalGraComp":"avalGraComp"}},{"protocol":"HTTP_1_1","ueIpRange":{"ueIpv4AddrRanges":[{"start":"198.51.100.1","end":"198.51.100.1"},{"start":"198.51.100.1","end":"198.51.100.1"}],"ueIpv6AddrRanges":[{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"},{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"}]},"securityMethods":["PSK","PSK"],"versions":[{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"},{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"}],"dataFormat":"JSON","domainName":"domainName","aefLocation":{"dcId":"dcId","geoArea":{"shape":"POINT","point":{"lon":36.988422590534526,"lat":-63.615366350946985}},"civicAddr":{"POBOX":"POBOX","usageRules":"usageRules","country":"country","PRD":"PRD","PLC":"PLC","HNO":"HNO","PRM":"PRM","HNS":"HNS","FLR":"FLR","A1":"A1","A2":"A2","A3":"A3","A4":"A4","STS":"STS","A5":"A5","A6":"A6","RDSEC":"RDSEC","providedBy":"providedBy","LOC":"LOC","UNIT":"UNIT","SEAT":"SEAT","POD":"POD","RDBR":"RDBR","method":"method","LMK":"LMK","POM":"POM","ADDCODE":"ADDCODE","RD":"RD","PC":"PC","PCN":"PCN","NAM":"NAM","BLD":"BLD","ROOM":"ROOM","RDSUBBR":"RDSUBBR"}},"aefId":"aefId","interfaceDescriptions":[{"ipv6Addr":"ipv6Addr","securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},{"ipv6Addr":"ipv6Addr","securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"}],"serviceKpis":{"avalMem":"avalMem","avalStor":"avalStor","avalComp":"avalComp","conBand":0,"maxRestime":0,"availability":0,"maxReqRate":0,"avalGraComp":"avalGraComp"}}],"pubApiPath":{"ccfIds":["ccfIds","ccfIds"]}}]}} + api_invoker_enrolment_details = {"notificationDestination":"notificationDestination","supportedFeatures":"supportedFeatures","apiInvokerId":"apiInvokerId","expTime":"2000-01-23T04:56:07.000+00:00","apiInvokerInformation":"apiInvokerInformation","websockNotifConfig":{"requestWebsocketUri":True,"websocketUri":"websocketUri"},"onboardingInformation":{"apiInvokerPublicKey":"apiInvokerPublicKey","onboardingSecret":"onboardingSecret","apiInvokerCertificate":"apiInvokerCertificate"},"requestTestNotification":True,"apiList":{"serviceAPIDescriptions":[{"serviceAPICategory":"serviceAPICategory","ccfId":"ccfId","apiName":"apiName","shareableInfo":{"capifProvDoms":["capifProvDoms","capifProvDoms"],"isShareable":True},"apiProvName":"apiProvName","supportedFeatures":"supportedFeatures","description":"description","apiSuppFeats":"apiSuppFeats","apiId":"apiId","apiStatus":{"aefIds":["aefIds","aefIds"]},"aefProfiles":[{"protocol":"HTTP_1_1","grantTypes":["CLIENT_CREDENTIALS","CLIENT_CREDENTIALS"],"ueIpRange":{"ueIpv4AddrRanges":[{"start":"198.51.100.1","end":"198.51.100.1"},{"start":"198.51.100.1","end":"198.51.100.1"}],"ueIpv6AddrRanges":[{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"},{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"}]},"securityMethods":["PSK","PSK"],"versions":[{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"},{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"}],"dataFormat":"JSON","domainName":"domainName","aefLocation":{"dcId":"dcId","geoArea":{"shape":"POINT","point":{"lon":36.988422590534526,"lat":-63.615366350946985}},"civicAddr":{"POBOX":"POBOX","usageRules":"usageRules","country":"country","PRD":"PRD","PLC":"PLC","HNO":"HNO","PRM":"PRM","HNS":"HNS","FLR":"FLR","A1":"A1","A2":"A2","A3":"A3","A4":"A4","STS":"STS","A5":"A5","A6":"A6","RDSEC":"RDSEC","providedBy":"providedBy","LOC":"LOC","UNIT":"UNIT","SEAT":"SEAT","POD":"POD","RDBR":"RDBR","method":"method","LMK":"LMK","POM":"POM","ADDCODE":"ADDCODE","RD":"RD","PC":"PC","PCN":"PCN","NAM":"NAM","BLD":"BLD","ROOM":"ROOM","RDSUBBR":"RDSUBBR"}},"aefId":"aefId","interfaceDescriptions":[{"ipv6Addr":"ipv6Addr","grantTypes":[null,null],"securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},{"ipv6Addr":"ipv6Addr","grantTypes":[null,null],"securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"}],"serviceKpis":{"avalMem":"avalMem","avalStor":"avalStor","avalComp":"avalComp","conBand":0,"maxRestime":0,"availability":0,"maxReqRate":0,"avalGraComp":"avalGraComp"}},{"protocol":"HTTP_1_1","grantTypes":["CLIENT_CREDENTIALS","CLIENT_CREDENTIALS"],"ueIpRange":{"ueIpv4AddrRanges":[{"start":"198.51.100.1","end":"198.51.100.1"},{"start":"198.51.100.1","end":"198.51.100.1"}],"ueIpv6AddrRanges":[{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"},{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"}]},"securityMethods":["PSK","PSK"],"versions":[{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"},{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"}],"dataFormat":"JSON","domainName":"domainName","aefLocation":{"dcId":"dcId","geoArea":{"shape":"POINT","point":{"lon":36.988422590534526,"lat":-63.615366350946985}},"civicAddr":{"POBOX":"POBOX","usageRules":"usageRules","country":"country","PRD":"PRD","PLC":"PLC","HNO":"HNO","PRM":"PRM","HNS":"HNS","FLR":"FLR","A1":"A1","A2":"A2","A3":"A3","A4":"A4","STS":"STS","A5":"A5","A6":"A6","RDSEC":"RDSEC","providedBy":"providedBy","LOC":"LOC","UNIT":"UNIT","SEAT":"SEAT","POD":"POD","RDBR":"RDBR","method":"method","LMK":"LMK","POM":"POM","ADDCODE":"ADDCODE","RD":"RD","PC":"PC","PCN":"PCN","NAM":"NAM","BLD":"BLD","ROOM":"ROOM","RDSUBBR":"RDSUBBR"}},"aefId":"aefId","interfaceDescriptions":[{"ipv6Addr":"ipv6Addr","grantTypes":[null,null],"securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},{"ipv6Addr":"ipv6Addr","grantTypes":[null,null],"securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"}],"serviceKpis":{"avalMem":"avalMem","avalStor":"avalStor","avalComp":"avalComp","conBand":0,"maxRestime":0,"availability":0,"maxReqRate":0,"avalGraComp":"avalGraComp"}}],"pubApiPath":{"ccfIds":["ccfIds","ccfIds"]}},{"serviceAPICategory":"serviceAPICategory","ccfId":"ccfId","apiName":"apiName","shareableInfo":{"capifProvDoms":["capifProvDoms","capifProvDoms"],"isShareable":True},"apiProvName":"apiProvName","supportedFeatures":"supportedFeatures","description":"description","apiSuppFeats":"apiSuppFeats","apiId":"apiId","apiStatus":{"aefIds":["aefIds","aefIds"]},"aefProfiles":[{"protocol":"HTTP_1_1","grantTypes":["CLIENT_CREDENTIALS","CLIENT_CREDENTIALS"],"ueIpRange":{"ueIpv4AddrRanges":[{"start":"198.51.100.1","end":"198.51.100.1"},{"start":"198.51.100.1","end":"198.51.100.1"}],"ueIpv6AddrRanges":[{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"},{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"}]},"securityMethods":["PSK","PSK"],"versions":[{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"},{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"}],"dataFormat":"JSON","domainName":"domainName","aefLocation":{"dcId":"dcId","geoArea":{"shape":"POINT","point":{"lon":36.988422590534526,"lat":-63.615366350946985}},"civicAddr":{"POBOX":"POBOX","usageRules":"usageRules","country":"country","PRD":"PRD","PLC":"PLC","HNO":"HNO","PRM":"PRM","HNS":"HNS","FLR":"FLR","A1":"A1","A2":"A2","A3":"A3","A4":"A4","STS":"STS","A5":"A5","A6":"A6","RDSEC":"RDSEC","providedBy":"providedBy","LOC":"LOC","UNIT":"UNIT","SEAT":"SEAT","POD":"POD","RDBR":"RDBR","method":"method","LMK":"LMK","POM":"POM","ADDCODE":"ADDCODE","RD":"RD","PC":"PC","PCN":"PCN","NAM":"NAM","BLD":"BLD","ROOM":"ROOM","RDSUBBR":"RDSUBBR"}},"aefId":"aefId","interfaceDescriptions":[{"ipv6Addr":"ipv6Addr","grantTypes":[null,null],"securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},{"ipv6Addr":"ipv6Addr","grantTypes":[null,null],"securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"}],"serviceKpis":{"avalMem":"avalMem","avalStor":"avalStor","avalComp":"avalComp","conBand":0,"maxRestime":0,"availability":0,"maxReqRate":0,"avalGraComp":"avalGraComp"}},{"protocol":"HTTP_1_1","grantTypes":["CLIENT_CREDENTIALS","CLIENT_CREDENTIALS"],"ueIpRange":{"ueIpv4AddrRanges":[{"start":"198.51.100.1","end":"198.51.100.1"},{"start":"198.51.100.1","end":"198.51.100.1"}],"ueIpv6AddrRanges":[{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"},{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"}]},"securityMethods":["PSK","PSK"],"versions":[{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"},{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"}],"dataFormat":"JSON","domainName":"domainName","aefLocation":{"dcId":"dcId","geoArea":{"shape":"POINT","point":{"lon":36.988422590534526,"lat":-63.615366350946985}},"civicAddr":{"POBOX":"POBOX","usageRules":"usageRules","country":"country","PRD":"PRD","PLC":"PLC","HNO":"HNO","PRM":"PRM","HNS":"HNS","FLR":"FLR","A1":"A1","A2":"A2","A3":"A3","A4":"A4","STS":"STS","A5":"A5","A6":"A6","RDSEC":"RDSEC","providedBy":"providedBy","LOC":"LOC","UNIT":"UNIT","SEAT":"SEAT","POD":"POD","RDBR":"RDBR","method":"method","LMK":"LMK","POM":"POM","ADDCODE":"ADDCODE","RD":"RD","PC":"PC","PCN":"PCN","NAM":"NAM","BLD":"BLD","ROOM":"ROOM","RDSUBBR":"RDSUBBR"}},"aefId":"aefId","interfaceDescriptions":[{"ipv6Addr":"ipv6Addr","grantTypes":[null,null],"securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},{"ipv6Addr":"ipv6Addr","grantTypes":[null,null],"securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"}],"serviceKpis":{"avalMem":"avalMem","avalStor":"avalStor","avalComp":"avalComp","conBand":0,"maxRestime":0,"availability":0,"maxReqRate":0,"avalGraComp":"avalGraComp"}}],"pubApiPath":{"ccfIds":["ccfIds","ccfIds"]}}]}} headers = { 'Accept': 'application/json', 'Content-Type': 'application/json', diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/test/test_individual_api_invoker_enrolment_details_controller.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/test/test_individual_api_invoker_enrolment_details_controller.py index d0cece92aa3fc6093c66dcfe0cceb498beb8fb0b..1506dfbb65b41f903bc12b418c5a006d7f9edd0c 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/test/test_individual_api_invoker_enrolment_details_controller.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/test/test_individual_api_invoker_enrolment_details_controller.py @@ -1,5 +1,9 @@ import unittest +from api_invoker_management.models.api_invoker_enrolment_details import APIInvokerEnrolmentDetails # noqa: E501 +from api_invoker_management.models.api_invoker_enrolment_details_patch import \ + APIInvokerEnrolmentDetailsPatch # noqa: E501 +from api_invoker_management.models.problem_details import ProblemDetails # noqa: E501 from api_invoker_management.test import BaseTestCase from flask import json diff --git a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/typing_utils.py b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/typing_utils.py index d21c4f633653a0eae75d04b2f6eff684ff9d200d..74e3c913a7db6246bc765f147ca872996112c6bb 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/typing_utils.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/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_API_Invoker_Management_API/setup.py b/services/TS29222_CAPIF_API_Invoker_Management_API/setup.py index 7187d5c15404799138cf880113816241f65be434..c41926d430d403800fb5c805d86533cffd97670a 100644 --- a/services/TS29222_CAPIF_API_Invoker_Management_API/setup.py +++ b/services/TS29222_CAPIF_API_Invoker_Management_API/setup.py @@ -1,4 +1,4 @@ -from setuptools import setup, find_packages +from setuptools import find_packages, setup NAME = "api_invoker_management" VERSION = "1.0.0" diff --git a/services/TS29222_CAPIF_API_Provider_Management_API/.openapi-generator/VERSION b/services/TS29222_CAPIF_API_Provider_Management_API/.openapi-generator/VERSION index 18bb4182dd01428f1d4c3c2145501ee5d40455a3..b23eb27529e2bacf6c8c06f725c323d9fb87f042 100644 --- a/services/TS29222_CAPIF_API_Provider_Management_API/.openapi-generator/VERSION +++ b/services/TS29222_CAPIF_API_Provider_Management_API/.openapi-generator/VERSION @@ -1 +1 @@ -7.5.0 +7.11.0 diff --git a/services/TS29222_CAPIF_API_Provider_Management_API/README.md b/services/TS29222_CAPIF_API_Provider_Management_API/README.md index 3aa91ec68ea850ad7ece64da4412eb0da0423592..c9acf914cff1769f2c2527ba1c6398f97c607d1c 100644 --- a/services/TS29222_CAPIF_API_Provider_Management_API/README.md +++ b/services/TS29222_CAPIF_API_Provider_Management_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 api_provider_management ``` and open your browser to here: diff --git a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/app.py b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/app.py index 0838c6b75281847b0f735c3b40af2928ba19ccd2..c4b33c5713a99390eef66a04c78a42e38adb4b7a 100644 --- a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/app.py +++ b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/app.py @@ -32,7 +32,7 @@ def configure_monitoring(app, config): fluent_bit_host = config['monitoring']['fluent_bit_host'] fluent_bit_port = config['monitoring']['fluent_bit_port'] fluent_bit_sender = sender.FluentSender('Provider-Service', host=fluent_bit_host, port=fluent_bit_port) - propagator = TraceContextTextMapPropagator() + TraceContextTextMapPropagator() tracer_provider = TracerProvider(resource=resource) trace.set_tracer_provider(tracer_provider) diff --git a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/controllers/default_controller.py b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/controllers/default_controller.py index 6232ea297304762760f2a8b01ed66ab6272b8bcb..0a67ace6383475fee45a17c18c509a2c55f559d4 100644 --- a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/controllers/default_controller.py +++ b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/controllers/default_controller.py @@ -3,8 +3,8 @@ from functools import wraps from api_provider_management.models.api_provider_enrolment_details import APIProviderEnrolmentDetails # noqa: E501 from cryptography import x509 from cryptography.hazmat.backends import default_backend -from flask import request, current_app -from flask_jwt_extended import jwt_required, get_jwt_identity +from flask import current_app, request +from flask_jwt_extended import get_jwt_identity, jwt_required from ..core.provider_enrolment_details_api import ProviderManagementOperations from ..core.validate_user import ControlAccess diff --git a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/controllers/individual_api_provider_enrolment_details_controller.py b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/controllers/individual_api_provider_enrolment_details_controller.py index abc759378121d282e40d5bb0bfe2523be5e673e4..cefef1efcb8312e11b0aab822979e7c622c863fe 100644 --- a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/controllers/individual_api_provider_enrolment_details_controller.py +++ b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/controllers/individual_api_provider_enrolment_details_controller.py @@ -1,4 +1,4 @@ -from flask import request, current_app +from flask import current_app, request from ..core.provider_enrolment_details_api import ProviderManagementOperations from ..models.api_provider_enrolment_details_patch import APIProviderEnrolmentDetailsPatch # noqa: E501 diff --git a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/core/provider_enrolment_details_api.py b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/core/provider_enrolment_details_api.py index a721a5aa4c141fc20f31bfce9962c1dcb3756325..60b89b14c2e8ce2b7270525165916983f6440c1b 100644 --- a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/core/provider_enrolment_details_api.py +++ b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/core/provider_enrolment_details_api.py @@ -4,16 +4,15 @@ import secrets from datetime import datetime from api_provider_management.models.api_provider_enrolment_details import APIProviderEnrolmentDetails # noqa: E501 -from flask import current_app, Response +from flask import Response, current_app from pymongo import ReturnDocument +from ..core.sign_certificate import sign_certificate +from ..util import clean_empty, dict_to_camel_case, serialize_clean_camel_case from .auth_manager import AuthManager from .redis_internal_event import RedisInternalEvent from .resources import Resource -from .responses import internal_server_error, not_found_error, forbidden_error, make_response, bad_request_error -from ..core.sign_certificate import sign_certificate -from ..util import dict_to_camel_case, clean_empty, serialize_clean_camel_case - +from .responses import bad_request_error, forbidden_error, internal_server_error, make_response, not_found_error TOTAL_FEATURES = 2 SUPPORTED_FEATURES_HEX = "0" diff --git a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/core/publisher.py b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/core/publisher.py index acedb7e3e337fda548faf59c1a1b240a4ca6f905..9f50351696660e611ac36ff86527ba7f420b0054 100644 --- a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/core/publisher.py +++ b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/core/publisher.py @@ -1,5 +1,6 @@ import redis + class Publisher(): def __init__(self): diff --git a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/core/redis_internal_event.py b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/core/redis_internal_event.py index 50e343424b8498d32078648978c719c923304353..c1ad0973675b69adf3a81bc9592feac33f0c2064 100644 --- a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/core/redis_internal_event.py +++ b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/core/redis_internal_event.py @@ -1,7 +1,7 @@ import json -from .publisher import Publisher from ..encoder import JSONEncoder +from .publisher import Publisher publisher_ops = Publisher() diff --git a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/core/validate_user.py b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/core/validate_user.py index 153a90c7128e642b02fdf3ea43c568d59821ce1c..fea52c1186814f7da2de3b2a848f6d311c4eb154 100644 --- a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/core/validate_user.py +++ b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/core/validate_user.py @@ -1,12 +1,12 @@ import json -from flask import current_app, Response +from flask import Response, current_app -from .resources import Resource -from .responses import internal_server_error from ..encoder import CustomJSONEncoder from ..models.problem_details import ProblemDetails from ..util import serialize_clean_camel_case +from .resources import Resource +from .responses import internal_server_error class ControlAccess(Resource): diff --git a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/api_provider_enrolment_details.py b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/api_provider_enrolment_details.py index 92a631209a444fdd1ea091f061f14574732719a2..18f2a1e6887504279197ef7936b3b57f76c048a8 100644 --- a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/api_provider_enrolment_details.py +++ b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/api_provider_enrolment_details.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_provider_management import util from api_provider_management.models.api_provider_function_details import APIProviderFunctionDetails # noqa: E501 @@ -187,7 +187,7 @@ class APIProviderEnrolmentDetails(Model): :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("Invalid value for `supp_feat`, must be a follow pattern or equal to `/^[A-Fa-f0-9]*$/`") # 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_API_Provider_Management_API/api_provider_management/models/api_provider_enrolment_details_patch.py b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/api_provider_enrolment_details_patch.py index a9eeeceb6706559457d964725cec2042e32eb3c8..5f4ab09ba995ff1d65da1256ba17f4513894882d 100644 --- a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/api_provider_enrolment_details_patch.py +++ b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/api_provider_enrolment_details_patch.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_provider_management import util from api_provider_management.models.api_provider_function_details import APIProviderFunctionDetails # noqa: E501 diff --git a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/api_provider_func_role.py b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/api_provider_func_role.py index 20cc6f7ef2fa0f0731d909c3fdc43124cf40892e..78d9546144b0af8f0157a5487e57a39d7d814256 100644 --- a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/api_provider_func_role.py +++ b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/api_provider_func_role.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_provider_management import util from api_provider_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/api_provider_function_details.py b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/api_provider_function_details.py index 2646b41854e1b1b47300bf11e1400edf12f22934..1c5655bb2d1e3e93d1ea58832e7a6fa1b7d71b21 100644 --- a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/api_provider_function_details.py +++ b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/api_provider_function_details.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_provider_management import util from api_provider_management.models.api_provider_func_role import ApiProviderFuncRole # noqa: E501 diff --git a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/invalid_param.py b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/invalid_param.py index 6d1bfc1552b2e79905697a70bc0d2cb4da885cc0..cb682f8171588fc54278338dfe4bdd4500792add 100644 --- a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/invalid_param.py +++ b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/invalid_param.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_provider_management import util from api_provider_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/problem_details.py b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/problem_details.py index 89e0807ffc704af18bef569df3585aa7fc21e36a..9d7f12324fe44c31d9b3215b63ccc806e25accda 100644 --- a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/problem_details.py +++ b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/problem_details.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_provider_management import util from api_provider_management.models.base_model import Model @@ -259,6 +259,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_API_Provider_Management_API/api_provider_management/models/registration_information.py b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/registration_information.py index 5255ef8ca3e8a88be1d60af0b8b3fa4c1fb06e1b..737b09941678c217795f91b430d23f66b8bcb660 100644 --- a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/registration_information.py +++ b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/models/registration_information.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_provider_management import util from api_provider_management.models.base_model import Model diff --git a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/openapi/openapi.yaml b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/openapi/openapi.yaml index 60fd3db1a7bedc3d233410272113cd3e81095ef3..85be97d06d3e974d46c902c20bb893cee3fe8e2f 100644 --- a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/openapi/openapi.yaml +++ b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/openapi/openapi.yaml @@ -4,9 +4,9 @@ info: \ Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). \nAll rights\ \ reserved.\n" title: CAPIF_API_Provider_Management_API - version: 1.2.0-alpha.3 + version: 1.2.0 externalDocs: - description: 3GPP TS 29.222 V18.5.0 Common API Framework for 3GPP Northbound APIs + description: 3GPP TS 29.222 V18.6.0 Common API Framework for 3GPP Northbound APIs url: https://www.3gpp.org/ftp/Specs/archive/29_series/29.222/ servers: - url: "{apiRoot}/api-provider-management/v1" @@ -617,15 +617,11 @@ components: title: APIProviderEnrolmentDetailsPatch type: object ApiProviderFuncRole: - anyOf: - - enum: + enum: - AEF - APF - AMF - type: string - - description: | - This string provides forward-compatiblity with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates the role (e.g. AEF, APF, etc.) of an API provider domain\ \ function. \nPossible values are:\n- AEF: API provider function is API Exposing\ \ Function.\n- APF: API provider function is API Publishing Function.\n- AMF:\ diff --git a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/test/test_default_controller.py b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/test/test_default_controller.py index 87052d9518b34b8ef3fd5a947244085382c5c396..120b96f850e45e1c1e516904263881433699ef53 100644 --- a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/test/test_default_controller.py +++ b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/test/test_default_controller.py @@ -1,5 +1,7 @@ import unittest +from api_provider_management.models.api_provider_enrolment_details import APIProviderEnrolmentDetails # noqa: E501 +from api_provider_management.models.problem_details import ProblemDetails # noqa: E501 from api_provider_management.test import BaseTestCase from flask import json diff --git a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/test/test_individual_api_provider_enrolment_details_controller.py b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/test/test_individual_api_provider_enrolment_details_controller.py index 6d8533afd9dca27b58ee3aeea4b1d21cf2febd71..9c1819ac17460fe2618982f56653808e44e2e998 100644 --- a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/test/test_individual_api_provider_enrolment_details_controller.py +++ b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/test/test_individual_api_provider_enrolment_details_controller.py @@ -1,5 +1,9 @@ import unittest +from api_provider_management.models.api_provider_enrolment_details import APIProviderEnrolmentDetails # noqa: E501 +from api_provider_management.models.api_provider_enrolment_details_patch import \ + APIProviderEnrolmentDetailsPatch # noqa: E501 +from api_provider_management.models.problem_details import ProblemDetails # noqa: E501 from api_provider_management.test import BaseTestCase from flask import json diff --git a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/typing_utils.py b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/typing_utils.py index d21c4f633653a0eae75d04b2f6eff684ff9d200d..74e3c913a7db6246bc765f147ca872996112c6bb 100644 --- a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/typing_utils.py +++ b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/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_API_Provider_Management_API/api_provider_management/wsgi copy.py b/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/wsgi copy.py deleted file mode 100644 index 6026b0fa96078634d3455ab93d71dcdc78774276..0000000000000000000000000000000000000000 --- a/services/TS29222_CAPIF_API_Provider_Management_API/api_provider_management/wsgi copy.py +++ /dev/null @@ -1,4 +0,0 @@ -from app import app - -if __name__ == "__main__": - app.run() diff --git a/services/TS29222_CAPIF_API_Provider_Management_API/setup.py b/services/TS29222_CAPIF_API_Provider_Management_API/setup.py index 0f5d4a6207ca5caac051c10b37e4276ac23c1256..406d0daec290b7a293ca899a5ccd1ac23b108e59 100644 --- a/services/TS29222_CAPIF_API_Provider_Management_API/setup.py +++ b/services/TS29222_CAPIF_API_Provider_Management_API/setup.py @@ -1,4 +1,4 @@ -from setuptools import setup, find_packages +from setuptools import find_packages, setup NAME = "api_provider_management" VERSION = "1.0.0" diff --git a/services/TS29222_CAPIF_Access_Control_Policy_API/.openapi-generator/VERSION b/services/TS29222_CAPIF_Access_Control_Policy_API/.openapi-generator/VERSION index 18bb4182dd01428f1d4c3c2145501ee5d40455a3..b23eb27529e2bacf6c8c06f725c323d9fb87f042 100644 --- a/services/TS29222_CAPIF_Access_Control_Policy_API/.openapi-generator/VERSION +++ b/services/TS29222_CAPIF_Access_Control_Policy_API/.openapi-generator/VERSION @@ -1 +1 @@ -7.5.0 +7.11.0 diff --git a/services/TS29222_CAPIF_Access_Control_Policy_API/README.md b/services/TS29222_CAPIF_Access_Control_Policy_API/README.md index 1222b0aaa2f6cd49ca656fe3a9c8ba7505ee9ccc..112662bc92618f81095cb09734e126ea2250d002 100644 --- a/services/TS29222_CAPIF_Access_Control_Policy_API/README.md +++ b/services/TS29222_CAPIF_Access_Control_Policy_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 capif_acl ``` and open your browser to here: diff --git a/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/app.py b/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/app.py index 0b39d964d744e37f7813f293083ed7a5013f136b..0841c2d21eb13453a6401e5669d55363302473dd 100644 --- a/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/app.py +++ b/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/app.py @@ -6,6 +6,9 @@ from datetime import datetime from logging.handlers import RotatingFileHandler import connexion +import encoder +from config import Config +from core.consumer_messager import Subscriber from flask_apscheduler import APScheduler from flask_executor import Executor from flask_jwt_extended import JWTManager @@ -19,10 +22,6 @@ from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import BatchSpanProcessor from opentelemetry.trace.propagation.tracecontext import TraceContextTextMapPropagator -import encoder -from config import Config -from core.consumer_messager import Subscriber - NAME = "Acl-Service" # Setting log level @@ -36,7 +35,7 @@ def configure_monitoring(app, config): fluent_bit_host = config['monitoring']['fluent_bit_host'] fluent_bit_port = config['monitoring']['fluent_bit_port'] fluent_bit_sender = sender.FluentSender('Acl-Service', host=fluent_bit_host, port=fluent_bit_port) - propagator = TraceContextTextMapPropagator() + TraceContextTextMapPropagator() tracer_provider = TracerProvider(resource=resource) trace.set_tracer_provider(tracer_provider) diff --git a/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/controllers/default_controller.py b/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/controllers/default_controller.py index bf9857c670738671f33772d16a47a1a3e26152d7..6c201ea4dff83012f9cfd67558f2b11cbab3e510 100644 --- a/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/controllers/default_controller.py +++ b/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/controllers/default_controller.py @@ -2,7 +2,7 @@ from functools import wraps from cryptography import x509 from cryptography.hazmat.backends import default_backend -from flask import request, current_app +from flask import current_app, request from ..core.accesscontrolpolicyapi import accessControlPolicyApi @@ -12,11 +12,11 @@ def cert_validation(): @wraps(f) def __cert_validation(*args, **kwargs): - args = request.view_args + request.view_args cert_tmp = request.headers['X-Ssl-Client-Cert'] cert_raw = cert_tmp.replace('\t', '') - cert = x509.load_pem_x509_certificate(str.encode(cert_raw), default_backend()) + x509.load_pem_x509_certificate(str.encode(cert_raw), default_backend()) result = f(**kwargs) diff --git a/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/controllers/security_controller.py b/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/controllers/security_controller.py index 139597f9cb07c5d48bed18984ec4747f4b4f3438..8b137891791fe96927ad78e64b0aad7bded08bdc 100644 --- a/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/controllers/security_controller.py +++ b/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/controllers/security_controller.py @@ -1,2 +1 @@ - diff --git a/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/core/accesscontrolpolicyapi.py b/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/core/accesscontrolpolicyapi.py index 27e7f248c2c19747c049625de6cd202a2e31da4b..5c00ac43a372d1662a58f2ef246e41ef9b34c69a 100644 --- a/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/core/accesscontrolpolicyapi.py +++ b/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/core/accesscontrolpolicyapi.py @@ -1,9 +1,9 @@ from flask import current_app -from .responses import make_response, not_found_error, internal_server_error from ..core.resources import Resource from ..models.access_control_policy_list import AccessControlPolicyList from ..util import serialize_clean_camel_case +from .responses import internal_server_error, make_response, not_found_error class accessControlPolicyApi(Resource): diff --git a/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/encoder.py b/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/encoder.py index 9afbbe1de7d3bb358283f2bed1f0ab090aff349b..627a7bd72b3c9c9072df158b7418c530d89b0a3f 100644 --- a/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/encoder.py +++ b/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/encoder.py @@ -15,4 +15,4 @@ class CustomJSONEncoder(JSONEncoder): attr = o.attribute_map[attr] dikt[attr] = value return dikt - return JSONEncoder.default(self, o) + return JSONEncoder.default(self, o) \ No newline at end of file diff --git a/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/models/access_control_policy_list.py b/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/models/access_control_policy_list.py index 03850940694ffde9a838d5fda1750ea61fb0cc1f..19dea5dc87cdfd9af4318c1fdc4cd6acc740c71b 100644 --- a/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/models/access_control_policy_list.py +++ b/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/models/access_control_policy_list.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_acl import util from capif_acl.models.api_invoker_policy import ApiInvokerPolicy # noqa: E501 diff --git a/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/models/api_invoker_policy.py b/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/models/api_invoker_policy.py index 1798a003e165a12a7413a4168f12248dcad006c6..cdd35e29e0f34322e5f46591ae9cf591551d3fcb 100644 --- a/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/models/api_invoker_policy.py +++ b/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/models/api_invoker_policy.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_acl import util from capif_acl.models.base_model import Model diff --git a/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/models/invalid_param.py b/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/models/invalid_param.py index cd2c0864d02a070050a6dfce39aaa4ed5a01b9ed..b94db8da5cc81fc88362de3106cc4140a9804d7b 100644 --- a/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/models/invalid_param.py +++ b/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/models/invalid_param.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_acl import util from capif_acl.models.base_model import Model diff --git a/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/models/problem_details.py b/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/models/problem_details.py index 99610c5a6d01f3dbd4b293f77af99531daf57ff9..bf02e50e41fe23fd657c6c09b58937f20ac99ebf 100644 --- a/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/models/problem_details.py +++ b/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/models/problem_details.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_acl import util from capif_acl.models.base_model import Model @@ -259,6 +259,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_Access_Control_Policy_API/capif_acl/models/time_range_list.py b/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/models/time_range_list.py index 5585278a806491f8bb017f1b8f5619face836d58..71f38cfcba3f55db756cc3cad8a67bda84f70062 100644 --- a/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/models/time_range_list.py +++ b/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/models/time_range_list.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_acl import util from capif_acl.models.base_model import Model diff --git a/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/openapi/openapi.yaml b/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/openapi/openapi.yaml index 164693101b1be8d3fdaab38d81075cea20decf7c..eebcdfe38e6189bf1be5e764034840e2ec2883cf 100644 --- a/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/openapi/openapi.yaml +++ b/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/openapi/openapi.yaml @@ -1,11 +1,11 @@ openapi: 3.0.0 info: - description: "API for access control policy. \n© 2022, 3GPP Organizational Partners\ + description: "API for access control policy. \n© 2024, 3GPP Organizational Partners\ \ (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). \nAll rights reserved.\n" title: CAPIF_Access_Control_Policy_API - version: 1.3.0-alpha.1 + version: 1.3.0 externalDocs: - description: 3GPP TS 29.222 V18.0.0 Common API Framework for 3GPP Northbound APIs + description: 3GPP TS 29.222 V18.6.0 Common API Framework for 3GPP Northbound APIs url: https://www.3gpp.org/ftp/Specs/archive/29_series/29.222/ servers: - url: "{apiRoot}/access-control-policy/v1" diff --git a/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/util.py b/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/util.py index 599f221af0ad9351a0f94ef2d20e9dc16aa43a99..9fc4382f721d82b731c0588ad2a30bee4bf55c8f 100644 --- a/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/util.py +++ b/services/TS29222_CAPIF_Access_Control_Policy_API/capif_acl/util.py @@ -51,8 +51,6 @@ def dict_to_camel_case(my_dict): return result - - def _deserialize(data, klass): """Deserializes dict, list, str into an object. diff --git a/services/TS29222_CAPIF_Access_Control_Policy_API/setup.py b/services/TS29222_CAPIF_Access_Control_Policy_API/setup.py index d4234b02c1d5a817c691413564f16afebaac9a7a..276b24f96e8f7cf5b0dcb2e2704f438437242702 100644 --- a/services/TS29222_CAPIF_Access_Control_Policy_API/setup.py +++ b/services/TS29222_CAPIF_Access_Control_Policy_API/setup.py @@ -1,4 +1,4 @@ -from setuptools import setup, find_packages +from setuptools import find_packages, setup NAME = "capif_acl" VERSION = "1.0.0" @@ -30,7 +30,7 @@ setup( entry_points={ 'console_scripts': ['capif_acl=capif_acl.__main__:main']}, long_description="""\ - API for access control policy. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + API for access control policy. © 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. """ ) diff --git a/services/TS29222_CAPIF_Auditing_API/.openapi-generator/FILES b/services/TS29222_CAPIF_Auditing_API/.openapi-generator/FILES index 684a73b60645ff821764ab71687ecab433146cbe..bd1da3346cdaf61b7947732cc2288758d4950728 100644 --- a/services/TS29222_CAPIF_Auditing_API/.openapi-generator/FILES +++ b/services/TS29222_CAPIF_Auditing_API/.openapi-generator/FILES @@ -19,6 +19,7 @@ logs/models/invocation_log.py logs/models/invocation_logs.py logs/models/invocation_logs_retrieve_res.py logs/models/log.py +logs/models/o_auth_grant_type.py logs/models/operation.py logs/models/problem_details.py logs/models/protocol.py diff --git a/services/TS29222_CAPIF_Auditing_API/.openapi-generator/VERSION b/services/TS29222_CAPIF_Auditing_API/.openapi-generator/VERSION index 18bb4182dd01428f1d4c3c2145501ee5d40455a3..b23eb27529e2bacf6c8c06f725c323d9fb87f042 100644 --- a/services/TS29222_CAPIF_Auditing_API/.openapi-generator/VERSION +++ b/services/TS29222_CAPIF_Auditing_API/.openapi-generator/VERSION @@ -1 +1 @@ -7.5.0 +7.11.0 diff --git a/services/TS29222_CAPIF_Auditing_API/README.md b/services/TS29222_CAPIF_Auditing_API/README.md index 7f120ad3805905f9098f0244cde751badfa9be84..17eb857e7f965899d1e251d68f3bf66c55d18bcd 100644 --- a/services/TS29222_CAPIF_Auditing_API/README.md +++ b/services/TS29222_CAPIF_Auditing_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 logs ``` and open your browser to here: diff --git a/services/TS29222_CAPIF_Auditing_API/logs/app.py b/services/TS29222_CAPIF_Auditing_API/logs/app.py index 4e8068e73885ded3f8eacd3d3707791c8c3b9c97..83fd706eb66ad2736ecd727d06964ae6acd5bc5e 100644 --- a/services/TS29222_CAPIF_Auditing_API/logs/app.py +++ b/services/TS29222_CAPIF_Auditing_API/logs/app.py @@ -5,6 +5,8 @@ import os from logging.handlers import RotatingFileHandler import connexion +import encoder +from config import Config from fluent import sender from opentelemetry import trace from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter @@ -14,9 +16,6 @@ from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import BatchSpanProcessor from opentelemetry.trace.propagation.tracecontext import TraceContextTextMapPropagator -import encoder -from config import Config - NAME = "Logs-Service" # Setting log level @@ -30,7 +29,7 @@ def configure_monitoring(app, config): fluent_bit_host = config['monitoring']['fluent_bit_host'] fluent_bit_port = config['monitoring']['fluent_bit_port'] fluent_bit_sender = sender.FluentSender('Logs-Service', host=fluent_bit_host, port=fluent_bit_port) - propagator = TraceContextTextMapPropagator() + TraceContextTextMapPropagator() tracer_provider = TracerProvider(resource=resource) trace.set_tracer_provider(tracer_provider) diff --git a/services/TS29222_CAPIF_Auditing_API/logs/controllers/default_controller.py b/services/TS29222_CAPIF_Auditing_API/logs/controllers/default_controller.py index 87ecabbfc4c4d7d8b20f23d21ce425a0de053849..0ff05f0dea9ebd53fa57866f6b87a085b9284c07 100644 --- a/services/TS29222_CAPIF_Auditing_API/logs/controllers/default_controller.py +++ b/services/TS29222_CAPIF_Auditing_API/logs/controllers/default_controller.py @@ -1,4 +1,4 @@ -from flask import request, current_app +from flask import current_app, request from logs import util from logs.models.interface_description import InterfaceDescription # noqa: E501 from logs.models.operation import Operation # noqa: E501 @@ -46,7 +46,6 @@ def api_invocation_logs_get(aef_id=None, api_invoker_id=None, time_range_start=N :rtype: Union[InvocationLogsRetrieveRes, Tuple[InvocationLogsRetrieveRes, int], Tuple[InvocationLogsRetrieveRes, int, Dict[str, str]] """ - current_app.logger.info("Audit logs") if aef_id is None or api_invoker_id is None: diff --git a/services/TS29222_CAPIF_Auditing_API/logs/core/auditoperations.py b/services/TS29222_CAPIF_Auditing_API/logs/core/auditoperations.py index 86586ed2c16698bde72d647d0d174663e15b079d..b4681ac0a0ebd55680754105dcacd3798cf490b4 100644 --- a/services/TS29222_CAPIF_Auditing_API/logs/core/auditoperations.py +++ b/services/TS29222_CAPIF_Auditing_API/logs/core/auditoperations.py @@ -3,10 +3,10 @@ import json from flask import current_app -from .resources import Resource -from .responses import bad_request_error, not_found_error, internal_server_error, make_response from ..models.invocation_log import InvocationLog from ..util import serialize_clean_camel_case +from .resources import Resource +from .responses import bad_request_error, internal_server_error, make_response, not_found_error class AuditOperations (Resource): diff --git a/services/TS29222_CAPIF_Auditing_API/logs/encoder.py b/services/TS29222_CAPIF_Auditing_API/logs/encoder.py index a6803052e0c0ff15c8bb0ef2e96c97f27d7ca830..f9d89aae1a1b66b91d9a0d0f20a2dc183c6797c4 100644 --- a/services/TS29222_CAPIF_Auditing_API/logs/encoder.py +++ b/services/TS29222_CAPIF_Auditing_API/logs/encoder.py @@ -1,5 +1,4 @@ from connexion.jsonifier import JSONEncoder - from logs.models.base_model import Model @@ -16,4 +15,4 @@ class CustomJSONEncoder(JSONEncoder): attr = o.attribute_map[attr] dikt[attr] = value return dikt - return JSONEncoder.default(self, o) + return JSONEncoder.default(self, o) \ No newline at end of file diff --git a/services/TS29222_CAPIF_Auditing_API/logs/models/interface_description.py b/services/TS29222_CAPIF_Auditing_API/logs/models/interface_description.py index f470096294458c04b0e448c35d3ba9c313ce41da..2a92e75c44c4f8575aba4556c7873f33eb9f9683 100644 --- a/services/TS29222_CAPIF_Auditing_API/logs/models/interface_description.py +++ b/services/TS29222_CAPIF_Auditing_API/logs/models/interface_description.py @@ -1,9 +1,10 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from logs import util from logs.models.base_model import Model +from logs.models.o_auth_grant_type import OAuthGrantType # noqa: E501 from logs.models.security_method import SecurityMethod # noqa: E501 @@ -13,7 +14,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 +29,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 +38,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 +48,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 +58,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 +142,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 +220,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_Auditing_API/logs/models/invalid_param.py b/services/TS29222_CAPIF_Auditing_API/logs/models/invalid_param.py index a7c83e71d656489bea9120c06c796f10bccaf7df..bafe0905192f73c8628043daafbbb5ae6f0f8b05 100644 --- a/services/TS29222_CAPIF_Auditing_API/logs/models/invalid_param.py +++ b/services/TS29222_CAPIF_Auditing_API/logs/models/invalid_param.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from logs import util from logs.models.base_model import Model diff --git a/services/TS29222_CAPIF_Auditing_API/logs/models/invocation_log.py b/services/TS29222_CAPIF_Auditing_API/logs/models/invocation_log.py index f5d5e0ecd4acb9f7380c2a57c58a8124e06afa91..bf5c2ee26e1340d5131d2dae2f345231089ae0ce 100644 --- a/services/TS29222_CAPIF_Auditing_API/logs/models/invocation_log.py +++ b/services/TS29222_CAPIF_Auditing_API/logs/models/invocation_log.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from logs import util from logs.models.base_model import Model @@ -153,6 +153,6 @@ class InvocationLog(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_Auditing_API/logs/models/invocation_logs.py b/services/TS29222_CAPIF_Auditing_API/logs/models/invocation_logs.py index a4fe7ca4eab585e8fb3fdd59bf1afc65e782308d..55c37648da50eefd894aa1cf47e7fe7b4e78fe39 100644 --- a/services/TS29222_CAPIF_Auditing_API/logs/models/invocation_logs.py +++ b/services/TS29222_CAPIF_Auditing_API/logs/models/invocation_logs.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from logs import util from logs.models.base_model import Model @@ -91,6 +91,6 @@ class InvocationLogs(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_Auditing_API/logs/models/invocation_logs_retrieve_res.py b/services/TS29222_CAPIF_Auditing_API/logs/models/invocation_logs_retrieve_res.py index b26a62f2bb044e9c0aa62ffa909c5e3e57d29f2f..07455f47d395ea827cc86198b971414f3d3a5800 100644 --- a/services/TS29222_CAPIF_Auditing_API/logs/models/invocation_logs_retrieve_res.py +++ b/services/TS29222_CAPIF_Auditing_API/logs/models/invocation_logs_retrieve_res.py @@ -1,10 +1,11 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from logs import util from logs.models.base_model import Model from logs.models.invocation_log import InvocationLog # noqa: E501 +from logs.models.invocation_logs import InvocationLogs # noqa: E501 from logs.models.log import Log # noqa: E501 @@ -159,7 +160,7 @@ class InvocationLogsRetrieveRes(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_Auditing_API/logs/models/log.py b/services/TS29222_CAPIF_Auditing_API/logs/models/log.py index 2fb185c6d2241187865dca49d3019552a3c34b86..a3c965eed702014df5b6331483c309157fa5aa38 100644 --- a/services/TS29222_CAPIF_Auditing_API/logs/models/log.py +++ b/services/TS29222_CAPIF_Auditing_API/logs/models/log.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from logs import util from logs.models.base_model import Model diff --git a/services/TS29222_CAPIF_Auditing_API/logs/models/o_auth_grant_type.py b/services/TS29222_CAPIF_Auditing_API/logs/models/o_auth_grant_type.py new file mode 100644 index 0000000000000000000000000000000000000000..57b4bf4ed4b7773036fe6d1421b07c6cd738893a --- /dev/null +++ b/services/TS29222_CAPIF_Auditing_API/logs/models/o_auth_grant_type.py @@ -0,0 +1,33 @@ +from datetime import date, datetime # noqa: F401 +from typing import Dict, List # noqa: F401 + +from logs import util +from logs.models.base_model import Model + + +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_Auditing_API/logs/models/operation.py b/services/TS29222_CAPIF_Auditing_API/logs/models/operation.py index d36a4e88a17c250bc2221f724e225be6ede33053..cf35e30ed8419af92035355e487c81d8f853e7c8 100644 --- a/services/TS29222_CAPIF_Auditing_API/logs/models/operation.py +++ b/services/TS29222_CAPIF_Auditing_API/logs/models/operation.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from logs import util from logs.models.base_model import Model diff --git a/services/TS29222_CAPIF_Auditing_API/logs/models/problem_details.py b/services/TS29222_CAPIF_Auditing_API/logs/models/problem_details.py index beca8ffd297744c5f663e7c1df6e2047142f5148..c074f0e54eca5bf240dc7ad201fd9c4871a08d41 100644 --- a/services/TS29222_CAPIF_Auditing_API/logs/models/problem_details.py +++ b/services/TS29222_CAPIF_Auditing_API/logs/models/problem_details.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from logs import util from logs.models.base_model import Model @@ -259,6 +259,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_Auditing_API/logs/models/protocol.py b/services/TS29222_CAPIF_Auditing_API/logs/models/protocol.py index db5cdc90d6a0c59d66764f5350228abaa7a9cafa..e2b23e6b432f5fd4605c18dad2f12b3deb5e280a 100644 --- a/services/TS29222_CAPIF_Auditing_API/logs/models/protocol.py +++ b/services/TS29222_CAPIF_Auditing_API/logs/models/protocol.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from logs import util from logs.models.base_model import Model diff --git a/services/TS29222_CAPIF_Auditing_API/logs/models/security_method.py b/services/TS29222_CAPIF_Auditing_API/logs/models/security_method.py index db5311a176764c80fa793689d6db8576f6c4f3c0..9091c514f5f8e3a58cb55d2af77bbc0016df5b07 100644 --- a/services/TS29222_CAPIF_Auditing_API/logs/models/security_method.py +++ b/services/TS29222_CAPIF_Auditing_API/logs/models/security_method.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from logs import util from logs.models.base_model import Model diff --git a/services/TS29222_CAPIF_Auditing_API/logs/openapi/openapi.yaml b/services/TS29222_CAPIF_Auditing_API/logs/openapi/openapi.yaml index 7a2cfcd004c5974c420a600f8427b48468a436c8..8fb314aee31fdc301fd0b1e7e69c094ca78d7196 100644 --- a/services/TS29222_CAPIF_Auditing_API/logs/openapi/openapi.yaml +++ b/services/TS29222_CAPIF_Auditing_API/logs/openapi/openapi.yaml @@ -1,11 +1,11 @@ openapi: 3.0.0 info: - description: "API for auditing. \n© 2023, 3GPP Organizational Partners (ARIB, ATIS,\ + description: "API for auditing. \n© 2024, 3GPP Organizational Partners (ARIB, ATIS,\ \ CCSA, ETSI, TSDSI, TTA, TTC). \nAll rights reserved.\n" title: CAPIF_Auditing_API - version: 1.3.0-alpha.2 + version: 1.3.0 externalDocs: - description: 3GPP TS 29.222 V18.1.0 Common API Framework for 3GPP Northbound APIs + description: 3GPP TS 29.222 V18.6.0 Common API Framework for 3GPP Northbound APIs url: https://www.3gpp.org/ftp/Specs/archive/29_series/29.222/ servers: - url: "{apiRoot}/logs/v1" @@ -323,16 +323,12 @@ components: title: DateTime type: string Protocol: - anyOf: - - enum: + enum: - HTTP_1_1 - HTTP_2 - MQTT - WEBSOCKET - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates a protocol and protocol version used by the API. \n\ Possible values are:\n- HTTP_1_1: Indicates that the protocol is HTTP version\ \ 1.1.\n- HTTP_2: Indicates that the protocol is HTTP version 2.\n- MQTT:\ @@ -340,17 +336,13 @@ components: \ Indicates that the protocol is Websocket.\n" title: Protocol Operation: - anyOf: - - enum: + enum: - GET - POST - PUT - PATCH - DELETE - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates an HTTP method. \nPossible values are:\n- GET: HTTP\ \ GET method.\n- POST: HTTP POST method.\n- PUT: HTTP PUT method.\n- PATCH:\ \ HTTP PATCH method.\n- DELETE: HTTP DELETE method.\n" @@ -359,6 +351,9 @@ components: description: Represents the description of an API's interface. example: ipv6Addr: ipv6Addr + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS securityMethods: - PSK - PSK @@ -367,7 +362,10 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr nullable: true - oneOf: [] + oneOf: + - required: ["fqdn"] + - required: ["ipv4Addr"] + - required: ["ipv6Addr"] properties: ipv4Addr: description: | @@ -406,18 +404,20 @@ components: minItems: 1 title: securityMethods type: array + grantTypes: + items: + $ref: '#/components/schemas/OAuthGrantType' + minItems: 1 + title: grantTypes + type: array title: InterfaceDescription type: object SecurityMethod: - anyOf: - - enum: + enum: - PSK - PKI - OAUTH - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates the security method. \nPossible values are:\n- PSK:\ \ Security method 1 (Using TLS-PSK) as described in 3GPP TS 33.122.\n- PKI:\ \ Security method 2 (Using PKI) as described in 3GPP TS 33.122.\n- OAUTH:\ @@ -508,6 +508,9 @@ components: invocationTime: 2000-01-23T04:56:07.000+00:00 srcInterface: ipv6Addr: ipv6Addr + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS securityMethods: - PSK - PSK @@ -525,6 +528,9 @@ components: apiVersion: apiVersion destInterface: ipv6Addr: ipv6Addr + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS securityMethods: - PSK - PSK @@ -539,6 +545,9 @@ components: invocationTime: 2000-01-23T04:56:07.000+00:00 srcInterface: ipv6Addr: ipv6Addr + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS securityMethods: - PSK - PSK @@ -556,6 +565,9 @@ components: apiVersion: apiVersion destInterface: ipv6Addr: ipv6Addr + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS securityMethods: - PSK - PSK @@ -602,6 +614,9 @@ components: invocationTime: 2000-01-23T04:56:07.000+00:00 srcInterface: ipv6Addr: ipv6Addr + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS securityMethods: - PSK - PSK @@ -619,6 +634,9 @@ components: apiVersion: apiVersion destInterface: ipv6Addr: ipv6Addr + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS securityMethods: - PSK - PSK @@ -724,3 +742,16 @@ components: minimum: 0 title: Port type: integer + OAuthGrantType: + enum: + - CLIENT_CREDENTIALS + - AUTHORIZATION_CODE + - AUTHORIZATION_CODE_WITH_PKCE + 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 diff --git a/services/TS29222_CAPIF_Auditing_API/logs/test/test_default_controller.py b/services/TS29222_CAPIF_Auditing_API/logs/test/test_default_controller.py index 3223c999100c4c4bb5f0afb1aa8a3f5c1201e7d3..3e2153c698928b38b480f5515ee684aa2df07279 100644 --- a/services/TS29222_CAPIF_Auditing_API/logs/test/test_default_controller.py +++ b/services/TS29222_CAPIF_Auditing_API/logs/test/test_default_controller.py @@ -1,5 +1,10 @@ import unittest +from logs.models.interface_description import InterfaceDescription # noqa: E501 +from logs.models.invocation_logs_retrieve_res import InvocationLogsRetrieveRes # noqa: E501 +from logs.models.operation import Operation # noqa: E501 +from logs.models.problem_details import ProblemDetails # noqa: E501 +from logs.models.protocol import Protocol # noqa: E501 from logs.test import BaseTestCase diff --git a/services/TS29222_CAPIF_Auditing_API/logs/typing_utils.py b/services/TS29222_CAPIF_Auditing_API/logs/typing_utils.py index d21c4f633653a0eae75d04b2f6eff684ff9d200d..74e3c913a7db6246bc765f147ca872996112c6bb 100644 --- a/services/TS29222_CAPIF_Auditing_API/logs/typing_utils.py +++ b/services/TS29222_CAPIF_Auditing_API/logs/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_Auditing_API/setup.py b/services/TS29222_CAPIF_Auditing_API/setup.py index c593a4122eaa6a814731cb88a1c09e001e2c802b..cbd1ece814a8385bc3e5a8736a78ef3059004677 100644 --- a/services/TS29222_CAPIF_Auditing_API/setup.py +++ b/services/TS29222_CAPIF_Auditing_API/setup.py @@ -1,4 +1,5 @@ -from setuptools import setup, find_packages + +from setuptools import find_packages, setup NAME = "logs" VERSION = "1.0.0" @@ -30,7 +31,7 @@ setup( entry_points={ 'console_scripts': ['logs=logs.__main__:main']}, long_description="""\ - API for auditing. © 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + API for auditing. © 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. """ ) 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/app.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/app.py index 4084bfdb45306b7bd78a1130930a76d8eaefa7a1..f84d18445767ff17e6407552dc42462383106854 100644 --- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/app.py +++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/app.py @@ -5,6 +5,8 @@ import os from logging.handlers import RotatingFileHandler import connexion +import encoder +from config import Config from flask_jwt_extended import JWTManager from fluent import sender from opentelemetry import trace @@ -16,9 +18,6 @@ from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import BatchSpanProcessor from opentelemetry.trace.propagation.tracecontext import TraceContextTextMapPropagator -import encoder -from config import Config - NAME = "Discover-Service" # Setting log level @@ -32,7 +31,7 @@ def configure_monitoring(app, config): fluent_bit_host = config['monitoring']['fluent_bit_host'] fluent_bit_port = config['monitoring']['fluent_bit_port'] fluent_bit_sender = sender.FluentSender('Discover-Service', host=fluent_bit_host, port=fluent_bit_port) - propagator = TraceContextTextMapPropagator() + TraceContextTextMapPropagator() tracer_provider = TracerProvider(resource=resource) trace.set_tracer_provider(tracer_provider) 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..d19229470084af0d4d0cc367ff62d0845d0b729f 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,8 +1,6 @@ -from service_apis.models.discovered_apis import DiscoveredAPIs # noqa: E501 - import json -from flask import request, current_app +from flask import current_app, request from service_apis.models.discovered_apis import DiscoveredAPIs # noqa: E501 from ..core.discoveredapis import DiscoverApisOperations, return_negotiated_supp_feat_dict @@ -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/core/discoveredapis.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/core/discoveredapis.py index bdcd3004f7e57966af4e53fe2b6d392f22486277..394bad686021f3d075a36c6ab34fd3ed5baf0b84 100644 --- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/core/discoveredapis.py +++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/core/discoveredapis.py @@ -7,8 +7,11 @@ from ..core.resources import Resource from ..core.responses import internal_server_error, make_response, not_found_error from ..models.discovered_apis import DiscoveredAPIs from ..util import serialize_clean_camel_case -from ..vendor_specific import find_attribute_in_body, filter_apis_with_vendor_specific_params, \ +from ..vendor_specific import ( + filter_apis_with_vendor_specific_params, + find_attribute_in_body, remove_vendor_specific_fields +) TOTAL_FEATURES = 4 SUPPORTED_FEATURES_HEX = "2" diff --git a/services/TS29222_CAPIF_Discover_Service_API/service_apis/encoder.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/encoder.py index c741e68b91b490a5548c213daf3bd032c74831d0..26d334081b611666b8942e4c9068c34db8870a0b 100644 --- a/services/TS29222_CAPIF_Discover_Service_API/service_apis/encoder.py +++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/encoder.py @@ -1,5 +1,4 @@ from connexion.jsonifier import JSONEncoder - from service_apis.models.base_model import Model 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..bbceaa45cd9a719def2eb43f34b93e2a5bd434de 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,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import Model 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..1196944181c6d50d1435945100f2f01bb369090f 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,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.aef_location import AefLocation # noqa: E501 @@ -7,6 +7,7 @@ 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 @@ -19,7 +20,7 @@ class AefProfile(Model): 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 +33,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 +52,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 +66,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 +79,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 +216,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..eef94f955d0404ee74a77a80bc3539a975c8446d 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,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import Model 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..7314bca7ebf31b3c1da912dde25e3135b5567f57 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,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import 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..ea17cb872c46f179939bf8d9ca792ab75072f046 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,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import 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..fed2a347858ea46bd47e385379120e8f60e8e0fa 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,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import Model 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..7575f306cc771b2167585db5a8ac4a9f3d270a76 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,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import 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..a237756324106618552ca47476c59739c89626df 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,5 +1,6 @@ +import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import Model @@ -12,21 +13,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 +49,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 +60,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 +69,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..a5747b5e3fc9ea83ab85ad2b38f510a85eda761e 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,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import Model +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 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..dfc5dedb02331b769bb85e5a8a56423640c4bafb 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,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import Model 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..3c2d44c20cab166dbb1d40d1a999965c82e059bd 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,9 +1,16 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import Model +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 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..755e077a2178dcd94e5820379f92a665fe3f79ed 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,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import 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..7c44ba11a876f74aaf847c6d7a8be32e05bce3a3 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,9 +1,10 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import Model +from service_apis.models.o_auth_grant_type import OAuthGrantType # noqa: E501 from service_apis.models.security_method import SecurityMethod # noqa: E501 @@ -13,7 +14,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 +29,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 +38,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 +48,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 +58,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 +142,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 +220,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..74464bd14869e33bcc3a651edf6907665c314700 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,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import 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..1791b5a349d12d536d8025b6424fb0c8174b60b6 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,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import 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..b95a30bd03a0659993ce303cd1b1e02d7538fd2d 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,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import Model 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..e2e91ad71ede31f0f471ec5dfa8f2a33bec0f34c 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,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import Model @@ -67,7 +67,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 +94,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..7c01304e88115615aca7a9f5df55e8409cfc452b 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,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import 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..b8e1c5e029a9ea3ee1ae9035bab70f3ac2c010bc 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,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import Model 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..105c1408d0de95e89d5ff2861659a93ddc7338a4 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,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import Model +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 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..68e561097af82903837c90da4a808ace9ec196f2 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,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import Model +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 @@ -15,7 +16,7 @@ class Local3dPointUncertaintyEllipsoid(Model): 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 +29,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 +46,8 @@ class Local3dPointUncertaintyEllipsoid(Model): 'local_origin': 'localOrigin', 'point': 'point', 'uncertainty_ellipsoid': 'uncertaintyEllipsoid', - 'confidence': 'confidence' + 'confidence': 'confidence', + 'v_confidence': 'vConfidence' } self._shape = shape @@ -50,6 +55,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 +188,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..880120dceef973d11f0e9dc0643b976f0faa01a4 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,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import Model +from service_apis.models.geographic_area import GeographicArea # noqa: E501 from service_apis.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 @@ -12,26 +13,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 +73,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 +98,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..b5020552167238121f791d785d223e69169af5ca --- /dev/null +++ b/services/TS29222_CAPIF_Discover_Service_API/service_apis/models/o_auth_grant_type.py @@ -0,0 +1,33 @@ +from datetime import date, datetime # noqa: F401 +from typing import Dict, List # noqa: F401 + +from service_apis import util +from service_apis.models.base_model import Model + + +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..a43fd60d2dc567f5673a3c202a0b5190cfc0b2fa 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,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import 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..802b8a3dc245b963ed89c56d928309aa3477e130 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,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import Model +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 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..32b8233fb715db426d96b1b2ebd6c2a5bbfe0adf 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,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import Model +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 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..9a70de0b37cb3d01e5eeb779006a0d81d7f7fa3a 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,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import Model +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 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..2870ddf91c0357305b00faeb06b83d62e8284768 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,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import Model +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 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..32f2ab66d1063741479dcc700504d132fd798e2d 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,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import Model +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 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..b3374e3f335aef9f85323621271875c7a0cb50d2 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,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import Model +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 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..ac177318b8300aefb2e4b626bcf329f16406b51d 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,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import Model @@ -259,6 +259,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..d88a4100a628d2190a377b9607aa4179c11aac15 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,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import 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..5736c4735d3bf18bde302a3ec5020ac7db2602fb 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,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import 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..f2f1a68978fdb6143ff188771692d439fab2db3c 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,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import 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..0f340dfe4edfe90d5106e4105836a9063e56ec99 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,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import Model 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..23372e621183cb96483444b3e2cc78851b5bac7d 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,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import 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..b81515a9307a3f5a21cd184e5093e16bcfc05d91 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,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.aef_profile import AefProfile # noqa: E501 @@ -236,7 +236,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 +305,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..66dd9e353baa7632e8128d05b755842c103957a8 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,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import Model @@ -170,7 +170,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 +195,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 +220,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 +245,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..0f0c7b02cf1b06f23a73821067a572b9bf58c234 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,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import 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..d5e17a12e20d513247967341bdb0e2f05956f3d9 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,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import 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..53e6a3ad7f5b8f9c8a46e8f5990d772deef92a9d 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,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import 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..bac421f251b5ff37bb5d931a18582b328e3cbd78 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,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import 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..7efbc3f7bdde49f75410126141057ec883f35aa9 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,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from service_apis import util from service_apis.models.base_model import Model 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..bcdeb091ca021ece59f5e92382b419a7b12068e4 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: | @@ -1184,14 +1240,9 @@ components: type: object CommunicationType: type: string - anyOf: - - enum: + enum: - REQUEST_RESPONSE - SUBSCRIBE_NOTIFY - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string description: "Indicates a communication type of the resource or the custom operation.\ \ \nPossible values are:\n- REQUEST_RESPONSE: The communication is of the\ \ type request-response.\n- SUBSCRIBE_NOTIFY: The communication is of the\ @@ -1199,16 +1250,11 @@ components: title: CommunicationType Protocol: type: string - anyOf: - - enum: + enum: - HTTP_1_1 - HTTP_2 - MQTT - WEBSOCKET - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string description: "Indicates a protocol and protocol version used by the API. \n\ Possible values are:\n- HTTP_1_1: Indicates that the protocol is HTTP version\ \ 1.1.\n- HTTP_2: Indicates that the protocol is HTTP version 2.\n- MQTT:\ @@ -1217,15 +1263,10 @@ components: title: Protocol DataFormat: type: string - anyOf: - - enum: + enum: - JSON - XML - PROTOBUF3 - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string description: "Indicates a data format. \nPossible values are:\n- JSON: Indicates\ \ that the data format is JSON.\n- XML: Indicates that the data format is\ \ Extensible Markup Language.\n- PROTOBUF3: Indicates that the data format\ @@ -1356,6 +1397,19 @@ components: type: integer title: ServiceKpis type: object + OAuthGrantType: + enum: + - CLIENT_CREDENTIALS + - AUTHORIZATION_CODE + - AUTHORIZATION_CODE_WITH_PKCE + 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 +1500,9 @@ components: - aefIds aefProfiles: - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -1624,6 +1681,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1632,6 +1692,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1649,6 +1712,9 @@ components: maxReqRate: 0 avalGraComp: avalGraComp - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -1827,6 +1893,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1835,6 +1904,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1935,6 +2007,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 +2188,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2121,6 +2199,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2138,7 +2219,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 +2246,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 @@ -2375,31 +2465,23 @@ components: title: CustomOperation type: object Operation: - anyOf: - - enum: + enum: - GET - POST - PUT - PATCH - DELETE - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates an HTTP method. \nPossible values are:\n- GET: HTTP\ \ GET method.\n- POST: HTTP POST method.\n- PUT: HTTP PUT method.\n- PATCH:\ \ HTTP PATCH method.\n- DELETE: HTTP DELETE method.\n" title: Operation SecurityMethod: - anyOf: - - enum: + enum: - PSK - PKI - OAUTH - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates the security method. \nPossible values are:\n- PSK:\ \ Security method 1 (Using TLS-PSK) as described in 3GPP TS 33.122.\n- PKI:\ \ Security method 2 (Using PKI) as described in 3GPP TS 33.122.\n- OAUTH:\ @@ -2409,6 +2491,9 @@ components: description: Represents the description of an API's interface. example: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2417,7 +2502,10 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr nullable: true - oneOf: [] + oneOf: + - required: ["fqdn"] + - required: ["ipv4Addr"] + - required: ["ipv6Addr"] properties: ipv4Addr: description: | @@ -2456,10 +2544,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: @@ -2735,8 +2831,7 @@ components: title: GADShape type: object SupportedGADShapes: - anyOf: - - enum: + enum: - POINT - POINT_UNCERTAINTY_CIRCLE - POINT_UNCERTAINTY_ELLIPSE @@ -2749,8 +2844,7 @@ components: - DISTANCE_DIRECTION - RELATIVE_2D_LOCATION_UNCERTAINTY_ELLIPSE - RELATIVE_3D_LOCATION_UNCERTAINTY_ELLIPSOID - type: string - - type: string + type: string description: Indicates supported GAD shapes. title: SupportedGADShapes PointUncertaintyCircle: @@ -2978,8 +3072,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 +3127,8 @@ components: $ref: '#/components/schemas/UncertaintyEllipsoid' confidence: $ref: '#/components/schemas/Confidence' + vConfidence: + $ref: '#/components/schemas/Confidence' required: - confidence - localOrigin @@ -3133,9 +3247,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/test_default_controller.py b/services/TS29222_CAPIF_Discover_Service_API/service_apis/test/test_default_controller.py index 3d4afdbc502e49678a51a31478d1c0c451d6c32c..6e626023ebcfcaee0f98fe9cd06891af45c6f272 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,14 @@ import unittest +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 +33,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..da11c500f9628c9c553fd7ea54e06c77d5c35753 100644 --- a/services/TS29222_CAPIF_Discover_Service_API/setup.py +++ b/services/TS29222_CAPIF_Discover_Service_API/setup.py @@ -1,4 +1,5 @@ -from setuptools import setup, find_packages + +from setuptools import find_packages, setup NAME = "service_apis" VERSION = "1.0.0" @@ -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 diff --git a/services/TS29222_CAPIF_Events_API/.openapi-generator/FILES b/services/TS29222_CAPIF_Events_API/.openapi-generator/FILES index 54c709f66c81094be746c23eac6df18d20638d18..2bcc916b8c380d71db69b02312855cd91383d4f2 100644 --- a/services/TS29222_CAPIF_Events_API/.openapi-generator/FILES +++ b/services/TS29222_CAPIF_Events_API/.openapi-generator/FILES @@ -1,5 +1,6 @@ .dockerignore .gitignore +.openapi-generator-ignore .travis.yml Dockerfile README.md @@ -50,6 +51,7 @@ capif_events/models/muting_exception_instructions.py capif_events/models/muting_notifications_settings.py capif_events/models/notification_flag.py capif_events/models/notification_method.py +capif_events/models/o_auth_grant_type.py capif_events/models/operation.py capif_events/models/partitioning_criteria.py capif_events/models/point.py @@ -79,6 +81,7 @@ capif_events/models/version.py capif_events/models/websock_notif_config.py capif_events/openapi/openapi.yaml capif_events/test/__init__.py +capif_events/test/test_default_controller.py capif_events/typing_utils.py capif_events/util.py requirements.txt diff --git a/services/TS29222_CAPIF_Events_API/.openapi-generator/VERSION b/services/TS29222_CAPIF_Events_API/.openapi-generator/VERSION index 18bb4182dd01428f1d4c3c2145501ee5d40455a3..b23eb27529e2bacf6c8c06f725c323d9fb87f042 100644 --- a/services/TS29222_CAPIF_Events_API/.openapi-generator/VERSION +++ b/services/TS29222_CAPIF_Events_API/.openapi-generator/VERSION @@ -1 +1 @@ -7.5.0 +7.11.0 diff --git a/services/TS29222_CAPIF_Events_API/README.md b/services/TS29222_CAPIF_Events_API/README.md index e6189d5346f7d95bbab11277ddcd18acbc6dfbbe..9f89fecda371a76b63bfccae48159dc22eb216da 100644 --- a/services/TS29222_CAPIF_Events_API/README.md +++ b/services/TS29222_CAPIF_Events_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 capif_events ``` and open your browser to here: diff --git a/services/TS29222_CAPIF_Events_API/capif_events/app.py b/services/TS29222_CAPIF_Events_API/capif_events/app.py index ef1d8c3a535c0c5658b4babb1458fcd3dcf0bf0f..b9f0bd9bc7436db9bb1895c07ec024984a7994a5 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/app.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/app.py @@ -6,6 +6,10 @@ from datetime import datetime from logging.handlers import RotatingFileHandler import connexion +import encoder +from config import Config +from core.consumer_messager import Subscriber +from core.notifications import Notifications from flask_apscheduler import APScheduler from flask_executor import Executor from flask_jwt_extended import JWTManager @@ -19,11 +23,6 @@ from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import BatchSpanProcessor from opentelemetry.trace.propagation.tracecontext import TraceContextTextMapPropagator -import encoder -from config import Config -from core.consumer_messager import Subscriber -from core.notifications import Notifications - NAME = "Events-Service" # Setting log level @@ -37,7 +36,7 @@ def configure_monitoring(app, config): fluent_bit_host = config['monitoring']['fluent_bit_host'] fluent_bit_port = config['monitoring']['fluent_bit_port'] fluent_bit_sender = sender.FluentSender('Events-Service', host=fluent_bit_host, port=fluent_bit_port) - propagator = TraceContextTextMapPropagator() + TraceContextTextMapPropagator() tracer_provider = TracerProvider(resource=resource) trace.set_tracer_provider(tracer_provider) diff --git a/services/TS29222_CAPIF_Events_API/capif_events/controllers/default_controller.py b/services/TS29222_CAPIF_Events_API/capif_events/controllers/default_controller.py index 2e071c8bd0b60f7be06ff5118f3c8cf175a99244..f55aeb4065e858b33c2f5cd93123d50dffa16974 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/controllers/default_controller.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/controllers/default_controller.py @@ -4,7 +4,7 @@ from capif_events.models.event_subscription import EventSubscription # noqa: E5 from capif_events.models.event_subscription_patch import EventSubscriptionPatch # noqa: E501 from cryptography import x509 from cryptography.hazmat.backends import default_backend -from flask import request, current_app +from flask import current_app, request from ..core.events_apis import EventSubscriptionsOperations from ..core.validate_user import ControlAccess diff --git a/services/TS29222_CAPIF_Events_API/capif_events/core/events_apis.py b/services/TS29222_CAPIF_Events_API/capif_events/core/events_apis.py index 7f60bc247007f569876e7ef80b245a6b11c568d4..440925c361560ca56b9a66919f941a1403c44326 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/core/events_apis.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/core/events_apis.py @@ -3,13 +3,12 @@ import secrets import rfc3987 from capif_events.models.event_subscription import EventSubscription # noqa: E501 -from flask import current_app, Response +from flask import Response, current_app +from ..util import clean_empty, dict_to_camel_case, serialize_clean_camel_case from .auth_manager import AuthManager from .resources import Resource -from .responses import internal_server_error, not_found_error, make_response, bad_request_error -from ..util import serialize_clean_camel_case, clean_empty, dict_to_camel_case - +from .responses import bad_request_error, internal_server_error, make_response, not_found_error TOTAL_FEATURES = 4 SUPPORTED_FEATURES_HEX = "c" diff --git a/services/TS29222_CAPIF_Events_API/capif_events/core/notifications.py b/services/TS29222_CAPIF_Events_API/capif_events/core/notifications.py index 451054b3cd67bc2ae9e5542665b5e3e90d56f9f9..9c8e07ff5ffb665d5fee301582be883371acfcb1 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/core/notifications.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/core/notifications.py @@ -8,7 +8,6 @@ import requests from encoder import CustomJSONEncoder from flask import current_app from models.event_notification import EventNotification -from models.event_subscription import EventSubscription from util import serialize_clean_camel_case from .internal_event_ops import InternalEventOperations diff --git a/services/TS29222_CAPIF_Events_API/capif_events/core/validate_user.py b/services/TS29222_CAPIF_Events_API/capif_events/core/validate_user.py index 168e903f1f9f272b6f8bdf5e289aa97ec0c2c23c..2357408ad19ba5f87716e395dbe9f41419609cc3 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/core/validate_user.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/core/validate_user.py @@ -1,12 +1,12 @@ import json -from flask import current_app, Response +from flask import Response, current_app -from .resources import Resource -from .responses import internal_server_error from ..encoder import CustomJSONEncoder from ..models.problem_details import ProblemDetails from ..util import serialize_clean_camel_case +from .resources import Resource +from .responses import internal_server_error class ControlAccess(Resource): diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/access_control_policy_list.py b/services/TS29222_CAPIF_Events_API/capif_events/models/access_control_policy_list.py index 95e986c1f31988d0b6ce011546d89d7180cb4ffe..42b98fed0c60768af1cdd6067eb5c0e655126814 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/access_control_policy_list.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/access_control_policy_list.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.api_invoker_policy import ApiInvokerPolicy # noqa: E501 diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/access_control_policy_list_ext.py b/services/TS29222_CAPIF_Events_API/capif_events/models/access_control_policy_list_ext.py index 2492b928ec63192f90df8c7f56943bcc69846c23..5cdc5543c7499fed73c7be30b3b49d10d0c47d86 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/access_control_policy_list_ext.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/access_control_policy_list_ext.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.api_invoker_policy import ApiInvokerPolicy # noqa: E501 diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/aef_location.py b/services/TS29222_CAPIF_Events_API/capif_events/models/aef_location.py index 3487b6f38820c2c3312f02c86538bc0a30a868f3..5c51a242ed2567912de4d362a1a04fa1c2e9c627 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/aef_location.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/aef_location.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/aef_profile.py b/services/TS29222_CAPIF_Events_API/capif_events/models/aef_profile.py index c59fc51faeed458a548864e126eebede10fd7e57..c29502c6a0e1c02996fc9dd2bc7be56d223c7662 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/aef_profile.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/aef_profile.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.aef_location import AefLocation # noqa: E501 @@ -7,6 +7,7 @@ from capif_events.models.base_model import Model from capif_events.models.data_format import DataFormat # noqa: E501 from capif_events.models.interface_description import InterfaceDescription # noqa: E501 from capif_events.models.ip_addr_range import IpAddrRange # noqa: E501 +from capif_events.models.o_auth_grant_type import OAuthGrantType # noqa: E501 from capif_events.models.protocol import Protocol # noqa: E501 from capif_events.models.security_method import SecurityMethod # noqa: E501 from capif_events.models.service_kpis import ServiceKpis # noqa: E501 @@ -19,7 +20,7 @@ class AefProfile(Model): 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 +33,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 +52,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 +66,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 +79,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 +216,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_Events_API/capif_events/models/api_invoker_policy.py b/services/TS29222_CAPIF_Events_API/capif_events/models/api_invoker_policy.py index 30c021c2c6c067dc6e9f8ccbf3d1428b36816c19..a627518b753ec9912f07a0b888c361aa20dc4b37 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/api_invoker_policy.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/api_invoker_policy.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/api_status.py b/services/TS29222_CAPIF_Events_API/capif_events/models/api_status.py index c088f5bd2f98e04e0f69e2073adbb6f163b4bc11..25b8d95c8679095bd13d713386cc5b4ac4cedbb3 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/api_status.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/api_status.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/buffered_notifications_action.py b/services/TS29222_CAPIF_Events_API/capif_events/models/buffered_notifications_action.py index 4275f2907b2720077cbf443e4cbe385ec679dbcf..b53e72cf3ecfdf01310b87f6f8e1f853a521617e 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/buffered_notifications_action.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/buffered_notifications_action.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/capif_event.py b/services/TS29222_CAPIF_Events_API/capif_events/models/capif_event.py index 381df838bb3d53c3eef4a68bc14ed3c23b2aee76..2d55c4ef27293a56e2aa46ed4afe0fe31928123e 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/capif_event.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/capif_event.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/capif_event_detail.py b/services/TS29222_CAPIF_Events_API/capif_events/models/capif_event_detail.py index ebc44655810f491d8b54322167fa858b8a657107..6dcc6c7fdbd607c07b7c47e9f21761e9f547c997 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/capif_event_detail.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/capif_event_detail.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.access_control_policy_list_ext import AccessControlPolicyListExt # noqa: E501 diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/capif_event_filter.py b/services/TS29222_CAPIF_Events_API/capif_events/models/capif_event_filter.py index 6db6dce0dff50e6415c2e8a12ee4a05781648827..dd7c2d7c9bd803cba5c89cd426e72198ac303e41 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/capif_event_filter.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/capif_event_filter.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/civic_address.py b/services/TS29222_CAPIF_Events_API/capif_events/models/civic_address.py index 34b6e912a343a93ee359914305261e68d8e3158f..379ebe0a0e24a23c4818a6d2ff0297f5ea818db4 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/civic_address.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/civic_address.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/communication_type.py b/services/TS29222_CAPIF_Events_API/capif_events/models/communication_type.py index 93fb327500a8881a97fe944506217bd744ce836f..3beb1ab15158899c53c271fc5dadd21b142d92b2 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/communication_type.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/communication_type.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/custom_operation.py b/services/TS29222_CAPIF_Events_API/capif_events/models/custom_operation.py index 57deea3beed891b9805a84b82d303cfeec05ee90..4b20ff1e3a13e1f0e365787d542913d634afe3ac 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/custom_operation.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/custom_operation.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/data_format.py b/services/TS29222_CAPIF_Events_API/capif_events/models/data_format.py index 751627ee5b61091654f48a6e4a65113f6b7a03b4..c668244c4b522293bcd56415be4e3f3713bb40e1 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/data_format.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/data_format.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/ellipsoid_arc.py b/services/TS29222_CAPIF_Events_API/capif_events/models/ellipsoid_arc.py index 05a4ea3eb8267b5f83d8bdeb71476385e58de204..928435e920ac7a14957e517255761d332108254e 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/ellipsoid_arc.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/ellipsoid_arc.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model +from capif_events.models.gad_shape import GADShape # noqa: E501 from capif_events.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from capif_events.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/event_notification.py b/services/TS29222_CAPIF_Events_API/capif_events/models/event_notification.py index e59efbbc35e41ed537930e1ae20b9a133dd83dba..a77a357e1abf68cf57f15d8ab3b5031c7cf87b6a 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/event_notification.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/event_notification.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/event_subscription.py b/services/TS29222_CAPIF_Events_API/capif_events/models/event_subscription.py index af05c0965f9746271b267dd11bf615d9655a68cb..0470f4e68343a62cff358f070463eb8afe871109 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/event_subscription.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/event_subscription.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model @@ -237,6 +237,6 @@ class EventSubscription(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_Events_API/capif_events/models/event_subscription_patch.py b/services/TS29222_CAPIF_Events_API/capif_events/models/event_subscription_patch.py index 401b92e577156034ea63bca357c5f536485da7b3..437e372d7337e9115faeea54e3ce633317b94bbe 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/event_subscription_patch.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/event_subscription_patch.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/gad_shape.py b/services/TS29222_CAPIF_Events_API/capif_events/models/gad_shape.py index 568a10bf718e11d663b2ab6792734cdde7612f4f..4ff103ebce6ff1a8bdacba50c6a97089b144d3dc 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/gad_shape.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/gad_shape.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/geographic_area.py b/services/TS29222_CAPIF_Events_API/capif_events/models/geographic_area.py index 69ee22dac20e1a6fdb3d9d79477097f2df6eec2b..f09f9422ef661d84c6c0fd1dc14e7cbc53e8c996 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/geographic_area.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/geographic_area.py @@ -1,9 +1,16 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model +from capif_events.models.ellipsoid_arc import EllipsoidArc # noqa: E501 from capif_events.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 +from capif_events.models.point import Point # noqa: E501 +from capif_events.models.point_altitude import PointAltitude # noqa: E501 +from capif_events.models.point_altitude_uncertainty import PointAltitudeUncertainty # noqa: E501 +from capif_events.models.point_uncertainty_circle import PointUncertaintyCircle # noqa: E501 +from capif_events.models.point_uncertainty_ellipse import PointUncertaintyEllipse # noqa: E501 +from capif_events.models.polygon import Polygon # noqa: E501 from capif_events.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 from capif_events.models.uncertainty_ellipse import UncertaintyEllipse # noqa: E501 diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/geographical_coordinates.py b/services/TS29222_CAPIF_Events_API/capif_events/models/geographical_coordinates.py index 8337fc1bba7149a56bbaf39aed2c969142065ec3..c0cc15c60a80b6ff17367fa80417bdfc68120dda 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/geographical_coordinates.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/geographical_coordinates.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/interface_description.py b/services/TS29222_CAPIF_Events_API/capif_events/models/interface_description.py index 42ddd5f046ded87bbda36eabbd63c046e342c58b..69bf2441b39692756e06e13daf0c589a2bd4d00f 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/interface_description.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/interface_description.py @@ -1,9 +1,10 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model +from capif_events.models.o_auth_grant_type import OAuthGrantType # noqa: E501 from capif_events.models.security_method import SecurityMethod # noqa: E501 @@ -13,7 +14,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 +29,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 +38,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 +48,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 +58,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 +142,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 +220,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_Events_API/capif_events/models/invalid_param.py b/services/TS29222_CAPIF_Events_API/capif_events/models/invalid_param.py index 795b8890bcbf7a77e9f4105bdf965e959a0eb672..ce023bf2ba2b4c6236debbf769c92a530613bd3e 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/invalid_param.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/invalid_param.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/invocation_log.py b/services/TS29222_CAPIF_Events_API/capif_events/models/invocation_log.py index 1762fbc704b1604c3219ba6759004e1eeb00df50..450c08bb2a307696a8f9a7ee85e12c6b54a87525 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/invocation_log.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/invocation_log.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model @@ -153,6 +153,6 @@ class InvocationLog(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_Events_API/capif_events/models/ip_addr_range.py b/services/TS29222_CAPIF_Events_API/capif_events/models/ip_addr_range.py index f2b3d3b0712234587ab1ea6b576156b3cd03c776..0c43c0a4fa792bb1367566d624977ed9074f9f7e 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/ip_addr_range.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/ip_addr_range.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/ipv4_address_range.py b/services/TS29222_CAPIF_Events_API/capif_events/models/ipv4_address_range.py index a76dee2138581594b9b50b2e1213f97c4e5caf94..2f1dc1f9129534b02cfc229d00715d2a434fa771 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/ipv4_address_range.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/ipv4_address_range.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model @@ -67,7 +67,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 +94,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_Events_API/capif_events/models/ipv4_address_range1.py b/services/TS29222_CAPIF_Events_API/capif_events/models/ipv4_address_range1.py index 6773c80c93f75858879e198bfaaaf732d700b1b0..8c0d666428aff5b236d8815c0f3d27af1fd318ae 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/ipv4_address_range1.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/ipv4_address_range1.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model @@ -65,7 +65,7 @@ class Ipv4AddressRange1(Model): :type start: str """ 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 @@ -90,6 +90,6 @@ class Ipv4AddressRange1(Model): :type end: str """ 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_Events_API/capif_events/models/ipv6_addr1.py b/services/TS29222_CAPIF_Events_API/capif_events/models/ipv6_addr1.py index 01cf6762ff9df505614f9fa8478a669f46760918..0dd4716a6568b8d2b64048a30f7598879651e5ea 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/ipv6_addr1.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/ipv6_addr1.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/ipv6_address_range.py b/services/TS29222_CAPIF_Events_API/capif_events/models/ipv6_address_range.py index 3d7e5c83f6413e3fd7dd181682785e8744b7d069..b7a59aff0fa5cf0034de377034f26520de5dbad4 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/ipv6_address_range.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/ipv6_address_range.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/ipv6_address_range1.py b/services/TS29222_CAPIF_Events_API/capif_events/models/ipv6_address_range1.py index 4eff20b6fc392738fe7383b0de538eb7b80a5307..1f9927194d543b8c597769cd79064aa066df7b2c 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/ipv6_address_range1.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/ipv6_address_range1.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/local2d_point_uncertainty_ellipse.py b/services/TS29222_CAPIF_Events_API/capif_events/models/local2d_point_uncertainty_ellipse.py index 588ecb63c229e45a6f39a0970598a8160699df9d..3432c47665c645f6c81432f55ebc05de10809cf4 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/local2d_point_uncertainty_ellipse.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/local2d_point_uncertainty_ellipse.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model +from capif_events.models.gad_shape import GADShape # noqa: E501 from capif_events.models.local_origin import LocalOrigin # noqa: E501 from capif_events.models.relative_cartesian_location import RelativeCartesianLocation # noqa: E501 from capif_events.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/local3d_point_uncertainty_ellipsoid.py b/services/TS29222_CAPIF_Events_API/capif_events/models/local3d_point_uncertainty_ellipsoid.py index a70f1a00f53bbeb181d38273e49d029427a51e23..702a38e1c1c8dd565993b21be3f586362a19713f 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/local3d_point_uncertainty_ellipsoid.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/local3d_point_uncertainty_ellipsoid.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model +from capif_events.models.gad_shape import GADShape # noqa: E501 from capif_events.models.local_origin import LocalOrigin # noqa: E501 from capif_events.models.relative_cartesian_location import RelativeCartesianLocation # noqa: E501 from capif_events.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 @@ -15,7 +16,7 @@ class Local3dPointUncertaintyEllipsoid(Model): 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 +29,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 +46,8 @@ class Local3dPointUncertaintyEllipsoid(Model): 'local_origin': 'localOrigin', 'point': 'point', 'uncertainty_ellipsoid': 'uncertaintyEllipsoid', - 'confidence': 'confidence' + 'confidence': 'confidence', + 'v_confidence': 'vConfidence' } self._shape = shape @@ -50,6 +55,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 +188,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_Events_API/capif_events/models/local_origin.py b/services/TS29222_CAPIF_Events_API/capif_events/models/local_origin.py index 4cb83ca670e926e5391a3583e5a52b539ff7f029..f11e9ffe08e9d3f873962e5f849d33d991dda4ca 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/local_origin.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/local_origin.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model +from capif_events.models.geographic_area import GeographicArea # noqa: E501 from capif_events.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 @@ -12,26 +13,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 +73,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 +98,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_Events_API/capif_events/models/log.py b/services/TS29222_CAPIF_Events_API/capif_events/models/log.py index 5b9f5bb7b6df2d174ec3f7d3334c97fa9b901cd5..647a3c0807a971e1cd1c111417fae252741766e4 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/log.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/log.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/muting_exception_instructions.py b/services/TS29222_CAPIF_Events_API/capif_events/models/muting_exception_instructions.py index d8882bfbbbcda2a01fabe7b827cfb91dd2743def..a928f40f863e485b4ed3f6d0424379cf37be212f 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/muting_exception_instructions.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/muting_exception_instructions.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/muting_notifications_settings.py b/services/TS29222_CAPIF_Events_API/capif_events/models/muting_notifications_settings.py index 902cf1933feccfd4e1dfa2b293a6598afb903d38..a1de5ef7dd2d19c1df9d0a729e0b7257cf0f2c66 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/muting_notifications_settings.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/muting_notifications_settings.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/notification_flag.py b/services/TS29222_CAPIF_Events_API/capif_events/models/notification_flag.py index 17eff44ae2171e0ac5304e39a20abc2aa583d5c1..85bf9cdee0440a7c0cd8344e43ea8f56e7ea646f 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/notification_flag.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/notification_flag.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/notification_method.py b/services/TS29222_CAPIF_Events_API/capif_events/models/notification_method.py index f8676038ea967eb7e4720c1a5a4f26db9fd3bb35..b6832cd015631c635c10273f52f7fd823061c58e 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/notification_method.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/notification_method.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/o_auth_grant_type.py b/services/TS29222_CAPIF_Events_API/capif_events/models/o_auth_grant_type.py new file mode 100644 index 0000000000000000000000000000000000000000..42bce0038fbda8dea68659de75421f4cc2ab885b --- /dev/null +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/o_auth_grant_type.py @@ -0,0 +1,33 @@ +from datetime import date, datetime # noqa: F401 +from typing import Dict, List # noqa: F401 + +from capif_events import util +from capif_events.models.base_model import Model + + +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_Events_API/capif_events/models/operation.py b/services/TS29222_CAPIF_Events_API/capif_events/models/operation.py index 1a8a1f97a4ba1a0e927975d9c63f76db7b095c16..ae36b0295589d970a718a311259c96f91e1b92f9 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/operation.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/operation.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/partitioning_criteria.py b/services/TS29222_CAPIF_Events_API/capif_events/models/partitioning_criteria.py index 40a8bf7bbec0b9b1ccc6a1e7e20d27698eab840d..e744de1aa4694e448a3b0f4dd3cf8407dc5d0c65 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/partitioning_criteria.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/partitioning_criteria.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/point.py b/services/TS29222_CAPIF_Events_API/capif_events/models/point.py index 3f9f2e2376f97455575e1663e1328cc01997dbb1..68b096fbea1392e7bcecf40415ceb6c99d6e6152 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/point.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/point.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model +from capif_events.models.gad_shape import GADShape # noqa: E501 from capif_events.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from capif_events.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/point_altitude.py b/services/TS29222_CAPIF_Events_API/capif_events/models/point_altitude.py index 64134eca71ac18bedea9675a7dbc58592ab09c68..637b2e254c45c29b7552ceb8d9c23e6de0a69617 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/point_altitude.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/point_altitude.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model +from capif_events.models.gad_shape import GADShape # noqa: E501 from capif_events.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from capif_events.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/point_altitude_uncertainty.py b/services/TS29222_CAPIF_Events_API/capif_events/models/point_altitude_uncertainty.py index f45227d1d0f258105f1071b21ccbd44a092c6f0b..81b375b6a6e845162fb6528967e1a4a354318c59 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/point_altitude_uncertainty.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/point_altitude_uncertainty.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model +from capif_events.models.gad_shape import GADShape # noqa: E501 from capif_events.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from capif_events.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 from capif_events.models.uncertainty_ellipse import UncertaintyEllipse # noqa: E501 diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/point_uncertainty_circle.py b/services/TS29222_CAPIF_Events_API/capif_events/models/point_uncertainty_circle.py index a62a475cec8f7161a6d6bd48ffcefe41c33846a8..55ac081d56aa5c25b6275d686037bdfbf6830cb1 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/point_uncertainty_circle.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/point_uncertainty_circle.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model +from capif_events.models.gad_shape import GADShape # noqa: E501 from capif_events.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from capif_events.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/point_uncertainty_ellipse.py b/services/TS29222_CAPIF_Events_API/capif_events/models/point_uncertainty_ellipse.py index 618bb46d93e05119f0b4292c2dfeb6a2b4f586d9..515a1d183326a9f8882ada63bcb51fe5faf12489 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/point_uncertainty_ellipse.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/point_uncertainty_ellipse.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model +from capif_events.models.gad_shape import GADShape # noqa: E501 from capif_events.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from capif_events.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 from capif_events.models.uncertainty_ellipse import UncertaintyEllipse # noqa: E501 diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/polygon.py b/services/TS29222_CAPIF_Events_API/capif_events/models/polygon.py index 7d89244dfd0f6a0390c8878eefda89988cc17cb5..8d8fe40566c6cbdb9b74e429c777c04686df5c73 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/polygon.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/polygon.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model +from capif_events.models.gad_shape import GADShape # noqa: E501 from capif_events.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from capif_events.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/problem_details.py b/services/TS29222_CAPIF_Events_API/capif_events/models/problem_details.py index bbf924527ac4e21018e437e264614f8e1175bd84..225739b576d0e3c73a9274045178bac8830b29e2 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/problem_details.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/problem_details.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model @@ -259,6 +259,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_Events_API/capif_events/models/protocol.py b/services/TS29222_CAPIF_Events_API/capif_events/models/protocol.py index a92a428aa51087ffc42b7bce764e117e877d2c4a..3fb57d952012c7f97bc056637e38a8014a9b1c52 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/protocol.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/protocol.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/published_api_path.py b/services/TS29222_CAPIF_Events_API/capif_events/models/published_api_path.py index 6f2ae66268e0b014b12f50e956c568313a500944..f66c1853a4366db00f80ec884e8267650463a140 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/published_api_path.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/published_api_path.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/relative_cartesian_location.py b/services/TS29222_CAPIF_Events_API/capif_events/models/relative_cartesian_location.py index e6c06126627a42f13a61c59cac93a5dca5e4c061..eeeb3d3184ebb504c0235f66f78bec9c8ea09892 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/relative_cartesian_location.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/relative_cartesian_location.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/reporting_information.py b/services/TS29222_CAPIF_Events_API/capif_events/models/reporting_information.py index cb2fcfe99585407811692e031c81b8d73f2ae570..ac8dde652e4b900e5e04654ab98f31b7b54a9e0b 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/reporting_information.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/reporting_information.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/resource.py b/services/TS29222_CAPIF_Events_API/capif_events/models/resource.py index 9ab8c7718399c694a099c25489f47cadc81fda95..a675ea250bc1423893c4cfc40c79778f98da5508 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/resource.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/resource.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/routing_rule.py b/services/TS29222_CAPIF_Events_API/capif_events/models/routing_rule.py index 0560f90fd1e414b9da2cde14f59d179c61d4df5d..abfb9e619824fe3b27de5285a501ef0db18fdeb5 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/routing_rule.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/routing_rule.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.aef_profile import AefProfile # noqa: E501 diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/security_method.py b/services/TS29222_CAPIF_Events_API/capif_events/models/security_method.py index fa70435cf343f93ef8fb6d1243d908a3a93730de..cf8caff4780219014873777a5a4d6ec76a778f6b 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/security_method.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/security_method.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/service_api_description.py b/services/TS29222_CAPIF_Events_API/capif_events/models/service_api_description.py index ac3bb24275fe24527cd8377294fd3228c767f25e..88daceb2aed32d51798451878dd5f82b74c4be0e 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/service_api_description.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/service_api_description.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.aef_profile import AefProfile # noqa: E501 @@ -236,7 +236,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 +305,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_Events_API/capif_events/models/service_kpis.py b/services/TS29222_CAPIF_Events_API/capif_events/models/service_kpis.py index 1bbabf845871d651475e7da75d0763bde4c45490..5a536e99c735680425035420c9721784323a91cb 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/service_kpis.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/service_kpis.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model @@ -170,7 +170,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 +195,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 +220,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 +245,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_Events_API/capif_events/models/shareable_information.py b/services/TS29222_CAPIF_Events_API/capif_events/models/shareable_information.py index 0521026981694ad6bda7f3a7810f3fea1dd47c0b..c67425be677121c321cc247a168b860784bd40f4 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/shareable_information.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/shareable_information.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/subscription_action.py b/services/TS29222_CAPIF_Events_API/capif_events/models/subscription_action.py index 99f4aab2780db0706387659caa861045cb198cc1..c0ada57ad068092adfc9603a04817692d2142306 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/subscription_action.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/subscription_action.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/supported_gad_shapes.py b/services/TS29222_CAPIF_Events_API/capif_events/models/supported_gad_shapes.py index e78e057a3ca56201e0cdb0ae9ac5a4265dc8270d..919cd5ad3d2330fb87f56eec45f5eb1bf0d80815 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/supported_gad_shapes.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/supported_gad_shapes.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/time_range_list.py b/services/TS29222_CAPIF_Events_API/capif_events/models/time_range_list.py index ad689a1382d2d0b9f89fa89eec8343f9976385d3..0adae28ca1b48af57b880569ea73f018202ca136 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/time_range_list.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/time_range_list.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/topology_hiding.py b/services/TS29222_CAPIF_Events_API/capif_events/models/topology_hiding.py index 7f56cc9f9d114209df1dc5f7553362ad8a89d76f..5cb44ed03c1589e90f458406bf2b5b0ef5d9dbb9 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/topology_hiding.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/topology_hiding.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/uncertainty_ellipse.py b/services/TS29222_CAPIF_Events_API/capif_events/models/uncertainty_ellipse.py index c10203df5d243e4d1113d46889a179cec6a2cbf5..88c3675d0bcd6dace5bed601e93ae9af75286b61 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/uncertainty_ellipse.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/uncertainty_ellipse.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/uncertainty_ellipsoid.py b/services/TS29222_CAPIF_Events_API/capif_events/models/uncertainty_ellipsoid.py index e1a4a1f24c6a5f648737d9c402914cd3af050049..5e7e36ad021a23cebb5073af6bd01341ff68297a 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/uncertainty_ellipsoid.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/uncertainty_ellipsoid.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/version.py b/services/TS29222_CAPIF_Events_API/capif_events/models/version.py index 5777e684360941e7db1f5413d3abd0594c458009..8185274bc4440d5019df3223623cbf4b1efea1e0 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/version.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/version.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/models/websock_notif_config.py b/services/TS29222_CAPIF_Events_API/capif_events/models/websock_notif_config.py index f1ceeb001a04c47189d64f7f3cd379e533f1769f..de4a84b084654f9b1cb8f0f4f7c9b31369ba50a6 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/models/websock_notif_config.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/models/websock_notif_config.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_events import util from capif_events.models.base_model import Model diff --git a/services/TS29222_CAPIF_Events_API/capif_events/openapi/openapi.yaml b/services/TS29222_CAPIF_Events_API/capif_events/openapi/openapi.yaml index 892a7a2b13e51a0105dd6e7edb43a2a22a0481af..cdf36c3621008b2005c103e0214565e06b7ceb65 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/openapi/openapi.yaml +++ b/services/TS29222_CAPIF_Events_API/capif_events/openapi/openapi.yaml @@ -1,11 +1,11 @@ openapi: 3.0.0 info: - description: "API for event subscription management. \n© 2023, 3GPP Organizational\ + description: "API for event subscription management. \n© 2024, 3GPP Organizational\ \ Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). \nAll rights reserved.\n" title: CAPIF_Events_API - version: 1.3.0-alpha.4 + version: 1.3.0 externalDocs: - description: 3GPP TS 29.222 V18.4.0 Common API Framework for 3GPP Northbound APIs + description: 3GPP TS 29.222 V18.6.0 Common API Framework for 3GPP Northbound APIs url: https://www.3gpp.org/ftp/Specs/archive/29_series/29.222/ servers: - url: "{apiRoot}/capif-events/v1" @@ -18,9 +18,9 @@ paths: post: callbacks: notificationDestination: - '{request.body#/notificationDestination}': + '{$request.body#/notificationDestination}': post: - operationId: notificationDestination_request_bodyNotificationDestinationPost + operationId: notification_destination_post requestBody: content: application/json: @@ -673,6 +673,9 @@ components: invocationTime: 2000-01-23T04:56:07.000+00:00 srcInterface: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -690,6 +693,9 @@ components: apiVersion: apiVersion destInterface: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -704,6 +710,9 @@ components: invocationTime: 2000-01-23T04:56:07.000+00:00 srcInterface: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -721,6 +730,9 @@ components: apiVersion: apiVersion destInterface: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -739,6 +751,9 @@ components: invocationTime: 2000-01-23T04:56:07.000+00:00 srcInterface: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -756,6 +771,9 @@ components: apiVersion: apiVersion destInterface: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -770,6 +788,9 @@ components: invocationTime: 2000-01-23T04:56:07.000+00:00 srcInterface: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -787,6 +808,9 @@ components: apiVersion: apiVersion destInterface: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -807,6 +831,9 @@ components: end: end aefProfile: protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -985,6 +1012,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -993,6 +1023,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1021,6 +1054,9 @@ components: end: end aefProfile: protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -1199,6 +1235,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1207,6 +1246,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1267,6 +1309,9 @@ components: - aefIds aefProfiles: - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -1445,6 +1490,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1453,6 +1501,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1470,6 +1521,9 @@ components: maxReqRate: 0 avalGraComp: avalGraComp - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -1648,6 +1702,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1656,6 +1713,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1695,6 +1755,9 @@ components: - aefIds aefProfiles: - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -1873,6 +1936,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1881,6 +1947,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1898,6 +1967,9 @@ components: maxReqRate: 0 avalGraComp: avalGraComp - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -2076,6 +2148,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2084,6 +2159,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2174,6 +2252,9 @@ components: invocationTime: 2000-01-23T04:56:07.000+00:00 srcInterface: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2191,6 +2272,9 @@ components: apiVersion: apiVersion destInterface: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2205,6 +2289,9 @@ components: invocationTime: 2000-01-23T04:56:07.000+00:00 srcInterface: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2222,6 +2309,9 @@ components: apiVersion: apiVersion destInterface: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2240,6 +2330,9 @@ components: invocationTime: 2000-01-23T04:56:07.000+00:00 srcInterface: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2257,6 +2350,9 @@ components: apiVersion: apiVersion destInterface: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2271,6 +2367,9 @@ components: invocationTime: 2000-01-23T04:56:07.000+00:00 srcInterface: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2288,6 +2387,9 @@ components: apiVersion: apiVersion destInterface: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2308,6 +2410,9 @@ components: end: end aefProfile: protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -2486,6 +2591,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2494,6 +2602,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2522,6 +2633,9 @@ components: end: end aefProfile: protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -2700,6 +2814,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2708,6 +2825,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2768,6 +2888,9 @@ components: - aefIds aefProfiles: - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -2946,6 +3069,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2954,6 +3080,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -2971,6 +3100,9 @@ components: maxReqRate: 0 avalGraComp: avalGraComp - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -3149,6 +3281,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -3157,6 +3292,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -3196,6 +3334,9 @@ components: - aefIds aefProfiles: - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -3374,6 +3515,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -3382,6 +3526,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -3399,6 +3546,9 @@ components: maxReqRate: 0 avalGraComp: avalGraComp - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -3577,6 +3727,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -3585,6 +3738,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -3685,6 +3841,9 @@ components: end: end aefProfile: protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -3863,6 +4022,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -3871,6 +4033,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -3899,6 +4064,9 @@ components: end: end aefProfile: protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -4077,6 +4245,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -4085,6 +4256,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -4148,8 +4322,7 @@ components: title: EventSubscriptionPatch type: object CAPIFEvent: - anyOf: - - enum: + enum: - SERVICE_API_AVAILABLE - SERVICE_API_UNAVAILABLE - SERVICE_API_UPDATE @@ -4163,10 +4336,7 @@ components: - API_INVOKER_UPDATED - API_TOPOLOGY_HIDING_CREATED - API_TOPOLOGY_HIDING_REVOKED - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Describes the CAPIF event. \nPossible values are:\n- SERVICE_API_AVAILABLE:\n\ \ Events related to the availability of service APIs after the service APIs\ \ are\n published.\n- SERVICE_API_UNAVAILABLE:\n Events related to the unavailability\ @@ -4376,6 +4546,9 @@ components: - aefIds aefProfiles: - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -4554,6 +4727,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -4562,6 +4738,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -4579,6 +4758,9 @@ components: maxReqRate: 0 avalGraComp: avalGraComp - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -4757,6 +4939,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -4765,6 +4950,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -4865,6 +5053,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 @@ -5043,6 +5234,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -5051,6 +5245,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -5068,13 +5265,10 @@ components: maxReqRate: 0 avalGraComp: avalGraComp nullable: true - oneOf: - - required: - - ipv4Addr - - required: - - ipv6Addr - - required: - - fqdn + oneOf: + - required: ["domainName"] + - required: ["interfaceDescriptions"] + - {} properties: aefId: description: Identifier of the API exposing function @@ -5098,6 +5292,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 @@ -5277,14 +5477,10 @@ components: title: Resource type: object CommunicationType: - anyOf: - - enum: + enum: - REQUEST_RESPONSE - SUBSCRIBE_NOTIFY - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates a communication type of the resource or the custom operation.\ \ \nPossible values are:\n- REQUEST_RESPONSE: The communication is of the\ \ type request-response.\n- SUBSCRIBE_NOTIFY: The communication is of the\ @@ -5325,32 +5521,24 @@ components: title: CustomOperation type: object Operation: - anyOf: - - enum: + enum: - GET - POST - PUT - PATCH - DELETE - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates an HTTP method. \nPossible values are:\n- GET: HTTP\ \ GET method.\n- POST: HTTP POST method.\n- PUT: HTTP PUT method.\n- PATCH:\ \ HTTP PATCH method.\n- DELETE: HTTP DELETE method.\n" title: Operation Protocol: - anyOf: - - enum: + enum: - HTTP_1_1 - HTTP_2 - MQTT - WEBSOCKET - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates a protocol and protocol version used by the API. \n\ Possible values are:\n- HTTP_1_1: Indicates that the protocol is HTTP version\ \ 1.1.\n- HTTP_2: Indicates that the protocol is HTTP version 2.\n- MQTT:\ @@ -5358,30 +5546,22 @@ components: \ Indicates that the protocol is Websocket.\n" title: Protocol DataFormat: - anyOf: - - enum: + enum: - JSON - XML - PROTOBUF3 - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates a data format. \nPossible values are:\n- JSON: Indicates\ \ that the data format is JSON.\n- XML: Indicates that the data format is\ \ Extensible Markup Language.\n- PROTOBUF3: Indicates that the data format\ \ is Protocol buffers version 3.\n" title: DataFormat SecurityMethod: - anyOf: - - enum: + enum: - PSK - PKI - OAUTH - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates the security method. \nPossible values are:\n- PSK:\ \ Security method 1 (Using TLS-PSK) as described in 3GPP TS 33.122.\n- PKI:\ \ Security method 2 (Using PKI) as described in 3GPP TS 33.122.\n- OAUTH:\ @@ -5391,6 +5571,9 @@ components: description: Represents the description of an API's interface. example: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -5399,11 +5582,10 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr nullable: true - oneOf: - - required: - - domainName - - required: - - interfaceDescriptions + oneOf: + - required: ["fqdn"] + - required: ["ipv4Addr"] + - required: ["ipv6Addr"] properties: ipv4Addr: description: | @@ -5442,6 +5624,12 @@ components: minItems: 1 title: securityMethods type: array + grantTypes: + items: + $ref: '#/components/schemas/OAuthGrantType' + minItems: 1 + title: grantTypes + type: array title: InterfaceDescription type: object AefLocation: @@ -5564,7 +5752,9 @@ components: title: ServiceKpis type: object IpAddrRange: - anyOf: [] + anyOf: + - required: ["ueIpv4AddrRanges"] + - required: ["ueIpv6AddrRanges"] description: Represents the list of public IP ranges example: ueIpv4AddrRanges: @@ -5651,6 +5841,9 @@ components: invocationTime: 2000-01-23T04:56:07.000+00:00 srcInterface: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -5668,6 +5861,9 @@ components: apiVersion: apiVersion destInterface: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -5682,6 +5878,9 @@ components: invocationTime: 2000-01-23T04:56:07.000+00:00 srcInterface: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -5699,6 +5898,9 @@ components: apiVersion: apiVersion destInterface: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -5745,6 +5947,9 @@ components: invocationTime: 2000-01-23T04:56:07.000+00:00 srcInterface: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -5762,6 +5967,9 @@ components: apiVersion: apiVersion destInterface: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -5923,6 +6131,9 @@ components: end: end aefProfile: protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -6101,6 +6312,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -6109,6 +6323,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -6171,15 +6388,11 @@ components: title: Ipv6AddressRange type: object NotificationMethod: - anyOf: - - enum: + enum: - PERIODIC - ONE_TIME - ON_EVENT_DETECTION - 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 + type: string description: "Represents the notification methods that can be subscribed. \n\ Possible values are:\n- PERIODIC\n- ONE_TIME\n- ON_EVENT_DETECTION\n" title: NotificationMethod @@ -6205,17 +6418,13 @@ components: title: SamplingRatio type: integer PartitioningCriteria: - anyOf: - - enum: + enum: - TAC - SUBPLMN - GEOAREA - SNSSAI - DNN - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: | Possible values are: - "TAC": Type Allocation Code @@ -6225,16 +6434,11 @@ components: - "DNN": DNN title: PartitioningCriteria NotificationFlag: - anyOf: - - enum: + enum: - ACTIVATE - DEACTIVATE - RETRIEVAL - type: string - - description: "This string provides forward-compatibility with future extensions\ - \ to the enumeration but is not used to encode content defined in the present\ - \ version of this API. \n" - type: string + type: string description: "Possible values are:\n- ACTIVATE: The event notification is activated.\n\ - DEACTIVATE: The event notification is deactivated and shall be muted. The\ \ available\n event(s) shall be stored.\n- RETRIEVAL: The event notification\ @@ -6255,24 +6459,20 @@ components: title: MutingExceptionInstructions type: object BufferedNotificationsAction: - anyOf: - - enum: + enum: - SEND_ALL - DISCARD_ALL - DROP_OLD - type: string - - type: string + type: string description: | Indicates the required action by the event producer NF on the buffered Notifications. title: BufferedNotificationsAction SubscriptionAction: - anyOf: - - enum: + enum: - CLOSE - CONTINUE_WITH_MUTING - CONTINUE_WITHOUT_MUTING - type: string - - type: string + type: string description: | Indicates the required action by the event producer NF on the event subscription if an exception occurs while the event is muted. title: SubscriptionAction @@ -6292,6 +6492,19 @@ components: type: integer title: MutingNotificationsSettings type: object + OAuthGrantType: + enum: + - CLIENT_CREDENTIALS + - AUTHORIZATION_CODE + - AUTHORIZATION_CODE_WITH_PKCE + 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 DateTime_1: description: string with format "date-time" as defined in OpenAPI. format: date-time @@ -6512,8 +6725,7 @@ components: title: GADShape type: object SupportedGADShapes: - anyOf: - - enum: + enum: - POINT - POINT_UNCERTAINTY_CIRCLE - POINT_UNCERTAINTY_ELLIPSE @@ -6526,8 +6738,7 @@ components: - DISTANCE_DIRECTION - RELATIVE_2D_LOCATION_UNCERTAINTY_ELLIPSE - RELATIVE_3D_LOCATION_UNCERTAINTY_ELLIPSOID - type: string - - type: string + type: string description: Indicates supported GAD shapes. title: SupportedGADShapes PointUncertaintyCircle: @@ -6755,8 +6966,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: @@ -6792,6 +7021,8 @@ components: $ref: '#/components/schemas/UncertaintyEllipsoid' confidence: $ref: '#/components/schemas/Confidence' + vConfidence: + $ref: '#/components/schemas/Confidence' required: - confidence - localOrigin @@ -6886,9 +7117,6 @@ components: title: Ipv6AddressRange_1 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_Events_API/capif_events/test/test_default_controller.py b/services/TS29222_CAPIF_Events_API/capif_events/test/test_default_controller.py index b724d9aef5f5a791e47b4e381d347ee72d743b58..79cc892f18610d2b020b24c2076a7eaa84fe1b07 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/test/test_default_controller.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/test/test_default_controller.py @@ -1,5 +1,8 @@ import unittest +from capif_events.models.event_subscription import EventSubscription # noqa: E501 +from capif_events.models.event_subscription_patch import EventSubscriptionPatch # noqa: E501 +from capif_events.models.problem_details import ProblemDetails # noqa: E501 from capif_events.test import BaseTestCase from flask import json diff --git a/services/TS29222_CAPIF_Events_API/capif_events/typing_utils.py b/services/TS29222_CAPIF_Events_API/capif_events/typing_utils.py index d21c4f633653a0eae75d04b2f6eff684ff9d200d..74e3c913a7db6246bc765f147ca872996112c6bb 100644 --- a/services/TS29222_CAPIF_Events_API/capif_events/typing_utils.py +++ b/services/TS29222_CAPIF_Events_API/capif_events/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_Events_API/setup.py b/services/TS29222_CAPIF_Events_API/setup.py index defed2ccdf4811792f1c8e90ff70d50eec1d89f6..f126a701844e3fd9dd10fb8ee0db3159aaf2bbc3 100644 --- a/services/TS29222_CAPIF_Events_API/setup.py +++ b/services/TS29222_CAPIF_Events_API/setup.py @@ -1,4 +1,5 @@ -from setuptools import setup, find_packages + +from setuptools import find_packages, setup NAME = "capif_events" VERSION = "1.0.0" @@ -30,7 +31,7 @@ setup( entry_points={ 'console_scripts': ['capif_events=capif_events.__main__:main']}, long_description="""\ - API for event subscription management. © 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + API for event subscription management. © 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. """ ) diff --git a/services/TS29222_CAPIF_Events_API/test-requirements.txt b/services/TS29222_CAPIF_Events_API/test-requirements.txt index 202a684feef71ff540d6aa528d348febf0b37d1e..58f51d6a00272d7515a20e3618f345b73c68afa0 100644 --- a/services/TS29222_CAPIF_Events_API/test-requirements.txt +++ b/services/TS29222_CAPIF_Events_API/test-requirements.txt @@ -1,4 +1,4 @@ -pytest~=4.6.7 # needed for python 2.7+3.4 +pytest~=7.1.0 pytest-cov>=2.8.1 -pytest-randomly == 1.2.3 # needed for python 2.7+3.4 -Flask-Testing == 0.8.0 +pytest-randomly>=1.2.3 +Flask-Testing==0.8.1 diff --git a/services/TS29222_CAPIF_Logging_API_Invocation_API/.openapi-generator/FILES b/services/TS29222_CAPIF_Logging_API_Invocation_API/.openapi-generator/FILES index 691fa78ca682780032ad7499166c9dbc98db38ed..fd69e2e1d1357e821cdd25f0232c8795f078b32b 100644 --- a/services/TS29222_CAPIF_Logging_API_Invocation_API/.openapi-generator/FILES +++ b/services/TS29222_CAPIF_Logging_API_Invocation_API/.openapi-generator/FILES @@ -17,6 +17,7 @@ api_invocation_logs/models/interface_description.py api_invocation_logs/models/invalid_param.py api_invocation_logs/models/invocation_log.py api_invocation_logs/models/log.py +api_invocation_logs/models/o_auth_grant_type.py api_invocation_logs/models/operation.py api_invocation_logs/models/problem_details.py api_invocation_logs/models/protocol.py diff --git a/services/TS29222_CAPIF_Logging_API_Invocation_API/.openapi-generator/VERSION b/services/TS29222_CAPIF_Logging_API_Invocation_API/.openapi-generator/VERSION index 18bb4182dd01428f1d4c3c2145501ee5d40455a3..b23eb27529e2bacf6c8c06f725c323d9fb87f042 100644 --- a/services/TS29222_CAPIF_Logging_API_Invocation_API/.openapi-generator/VERSION +++ b/services/TS29222_CAPIF_Logging_API_Invocation_API/.openapi-generator/VERSION @@ -1 +1 @@ -7.5.0 +7.11.0 diff --git a/services/TS29222_CAPIF_Logging_API_Invocation_API/README.md b/services/TS29222_CAPIF_Logging_API_Invocation_API/README.md index 9d330236d45009a4712233fbfd4e9e3aa202de6c..4c9ab923afeaccca940210e6dab592af62487c1e 100644 --- a/services/TS29222_CAPIF_Logging_API_Invocation_API/README.md +++ b/services/TS29222_CAPIF_Logging_API_Invocation_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 api_invocation_logs ``` and open your browser to here: diff --git a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/app.py b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/app.py index eda5d2bcae556fc1c4515520812a8984813dc8ca..56c94af9489f5211e915ddb49601ac294ebe3c44 100644 --- a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/app.py +++ b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/app.py @@ -5,6 +5,8 @@ import os from logging.handlers import RotatingFileHandler import connexion +import encoder +from config import Config from fluent import sender from opentelemetry import trace from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter @@ -14,9 +16,6 @@ from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import BatchSpanProcessor from opentelemetry.trace.propagation.tracecontext import TraceContextTextMapPropagator -import encoder -from config import Config - NAME = "Logging-Service" # Setting log level @@ -30,7 +29,7 @@ def configure_monitoring(app, config): fluent_bit_host = config['monitoring']['fluent_bit_host'] fluent_bit_port = config['monitoring']['fluent_bit_port'] fluent_bit_sender = sender.FluentSender('Logging-Service', host=fluent_bit_host, port=fluent_bit_port) - propagator = TraceContextTextMapPropagator() + TraceContextTextMapPropagator() tracer_provider = TracerProvider(resource=resource) trace.set_tracer_provider(tracer_provider) diff --git a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/controllers/default_controller.py b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/controllers/default_controller.py index 6877196b2e5eda95aad456588eff4d9279c047f6..c91cce607df8537602853d68f63f36d4d09e1735 100644 --- a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/controllers/default_controller.py +++ b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/controllers/default_controller.py @@ -1,9 +1,7 @@ -from api_invocation_logs.models.invocation_log import InvocationLog # noqa: E501 - from api_invocation_logs.models.invocation_log import InvocationLog # noqa: E501 from cryptography import x509 from cryptography.hazmat.backends import default_backend -from flask import request, current_app +from flask import current_app, request from ..core.invocationlogs import LoggingInvocationOperations from ..core.validate_user import ControlAccess diff --git a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/core/invocationlogs.py b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/core/invocationlogs.py index 43106643a5b2b328108e858b417ed68217ca18d6..1e8ddf4f785eac0c3270b7e418e7766b500377b1 100644 --- a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/core/invocationlogs.py +++ b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/core/invocationlogs.py @@ -6,11 +6,11 @@ import secrets from flask import current_app from pymongo import ReturnDocument -from .redis_event import RedisEvent -from .resources import Resource -from .responses import internal_server_error, not_found_error, unauthorized_error, make_response from ..encoder import CustomJSONEncoder from ..util import serialize_clean_camel_case +from .redis_event import RedisEvent +from .resources import Resource +from .responses import internal_server_error, make_response, not_found_error, unauthorized_error class LoggingInvocationOperations(Resource): diff --git a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/core/redis_event.py b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/core/redis_event.py index c65a6a20313002902b4660493d05be5c4cd20a24..8dccdf3d3ad9ad7f9c1460d420390c421ab4289d 100644 --- a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/core/redis_event.py +++ b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/core/redis_event.py @@ -1,7 +1,7 @@ import json -from .publisher import Publisher from ..encoder import CustomJSONEncoder +from .publisher import Publisher publisher_ops = Publisher() diff --git a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/core/validate_user.py b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/core/validate_user.py index c2bdf50f8cafd9a4119b9bbb4ccb7922afed8a81..f3f5cb6fce91214007c1b065ad70f0cc7db2e2a6 100644 --- a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/core/validate_user.py +++ b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/core/validate_user.py @@ -1,12 +1,12 @@ import json -from flask import current_app, Response +from flask import Response, current_app -from .resources import Resource -from .responses import internal_server_error from ..encoder import CustomJSONEncoder from ..models.problem_details import ProblemDetails from ..util import serialize_clean_camel_case +from .resources import Resource +from .responses import internal_server_error class ControlAccess(Resource): diff --git a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/interface_description.py b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/interface_description.py index cffe68d5dc05695e01201b37e088cb6e19d02936..03cb6d5a4e803a6f2ea3ec17f0d4b0aed1dff2e3 100644 --- a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/interface_description.py +++ b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/interface_description.py @@ -1,9 +1,10 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invocation_logs import util from api_invocation_logs.models.base_model import Model +from api_invocation_logs.models.o_auth_grant_type import OAuthGrantType # noqa: E501 from api_invocation_logs.models.security_method import SecurityMethod # noqa: E501 @@ -13,7 +14,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 +29,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 +38,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 +48,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 +58,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 +142,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 +220,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_Logging_API_Invocation_API/api_invocation_logs/models/invalid_param.py b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/invalid_param.py index cabf7c8aa0f77b157ff71e631a462be837e3b519..18d055db58e82bc0ba1f75dbaa2e4868643b3c66 100644 --- a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/invalid_param.py +++ b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/invalid_param.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invocation_logs import util from api_invocation_logs.models.base_model import Model diff --git a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/invocation_log.py b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/invocation_log.py index 2ecb4d636c4afed8406f8950a0337a44253ec779..e7464b7f8f6217eeec903634882faedd332ed2f1 100644 --- a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/invocation_log.py +++ b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/invocation_log.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invocation_logs import util from api_invocation_logs.models.base_model import Model @@ -153,6 +153,6 @@ class InvocationLog(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_Logging_API_Invocation_API/api_invocation_logs/models/log.py b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/log.py index 657d6a724c0fa288c0c2be3b36d3d5dac8b08858..84715f3068385d053d9adacd3540245748eb0a9a 100644 --- a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/log.py +++ b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/log.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invocation_logs import util from api_invocation_logs.models.base_model import Model diff --git a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/o_auth_grant_type.py b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/o_auth_grant_type.py new file mode 100644 index 0000000000000000000000000000000000000000..9c8fcf7d5d8fa71b8a4305bd801510bf6270706d --- /dev/null +++ b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/o_auth_grant_type.py @@ -0,0 +1,33 @@ +from datetime import date, datetime # noqa: F401 +from typing import Dict, List # noqa: F401 + +from api_invocation_logs import util +from api_invocation_logs.models.base_model import Model + + +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_Logging_API_Invocation_API/api_invocation_logs/models/operation.py b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/operation.py index 87835c09f561eebb4b19a5b4b2d1ec1dcd31295b..a4bea82522b1f12123a8b63dd8dd919211da79c1 100644 --- a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/operation.py +++ b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/operation.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invocation_logs import util from api_invocation_logs.models.base_model import Model diff --git a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/problem_details.py b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/problem_details.py index 0a10c19db834cc70ee16f422c6b113a0e2d72ef2..0f87859cabce40bd1ac09cd7e8ad048bca333d04 100644 --- a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/problem_details.py +++ b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/problem_details.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invocation_logs import util from api_invocation_logs.models.base_model import Model @@ -259,6 +259,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_Logging_API_Invocation_API/api_invocation_logs/models/protocol.py b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/protocol.py index 708e8bc4f46ebbd8a31006f60bd7e02eaff4200e..fe449f012305fd73e493d85f5108415c323447f2 100644 --- a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/protocol.py +++ b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/protocol.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invocation_logs import util from api_invocation_logs.models.base_model import Model diff --git a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/security_method.py b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/security_method.py index fe2fcfe31bcff642379cdbf6c5699b2c8baae61f..3f0ff15bf0d1e0c7e9327f94b2c496945cca1685 100644 --- a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/security_method.py +++ b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/models/security_method.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from api_invocation_logs import util from api_invocation_logs.models.base_model import Model diff --git a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/openapi/openapi.yaml b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/openapi/openapi.yaml index f1a93904b8f72512de593c92b8dad3cad206a2c7..7e794c1a7d52c0a4366616d7fd075ac36e6c3131 100644 --- a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/openapi/openapi.yaml +++ b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/openapi/openapi.yaml @@ -1,11 +1,11 @@ openapi: 3.0.0 info: - description: "API for invocation logs. \n© 2022, 3GPP Organizational Partners (ARIB,\ + description: "API for invocation logs. \n© 2024, 3GPP Organizational Partners (ARIB,\ \ ATIS, CCSA, ETSI, TSDSI, TTA, TTC). \nAll rights reserved.\n" title: CAPIF_Logging_API_Invocation_API - version: 1.3.0-alpha.1 + version: 1.3.0 externalDocs: - description: 3GPP TS 29.222 V18.0.0 Common API Framework for 3GPP Northbound APIs + description: 3GPP TS 29.222 V18.6.0 Common API Framework for 3GPP Northbound APIs url: https://www.3gpp.org/ftp/Specs/archive/29_series/29.222/ servers: - url: "{apiRoot}/api-invocation-logs/v1" @@ -192,6 +192,9 @@ components: invocationTime: 2000-01-23T04:56:07.000+00:00 srcInterface: ipv6Addr: ipv6Addr + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS securityMethods: - PSK - PSK @@ -209,6 +212,9 @@ components: apiVersion: apiVersion destInterface: ipv6Addr: ipv6Addr + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS securityMethods: - PSK - PSK @@ -223,6 +229,9 @@ components: invocationTime: 2000-01-23T04:56:07.000+00:00 srcInterface: ipv6Addr: ipv6Addr + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS securityMethods: - PSK - PSK @@ -240,6 +249,9 @@ components: apiVersion: apiVersion destInterface: ipv6Addr: ipv6Addr + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS securityMethods: - PSK - PSK @@ -286,6 +298,9 @@ components: invocationTime: 2000-01-23T04:56:07.000+00:00 srcInterface: ipv6Addr: ipv6Addr + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS securityMethods: - PSK - PSK @@ -303,6 +318,9 @@ components: apiVersion: apiVersion destInterface: ipv6Addr: ipv6Addr + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS securityMethods: - PSK - PSK @@ -458,16 +476,12 @@ components: title: supportedFeatures type: string Protocol: - anyOf: - - enum: + enum: - HTTP_1_1 - HTTP_2 - MQTT - WEBSOCKET - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates a protocol and protocol version used by the API. \n\ Possible values are:\n- HTTP_1_1: Indicates that the protocol is HTTP version\ \ 1.1.\n- HTTP_2: Indicates that the protocol is HTTP version 2.\n- MQTT:\ @@ -475,17 +489,13 @@ components: \ Indicates that the protocol is Websocket.\n" title: Protocol Operation: - anyOf: - - enum: + enum: - GET - POST - PUT - PATCH - DELETE - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates an HTTP method. \nPossible values are:\n- GET: HTTP\ \ GET method.\n- POST: HTTP POST method.\n- PUT: HTTP PUT method.\n- PATCH:\ \ HTTP PATCH method.\n- DELETE: HTTP DELETE method.\n" @@ -499,6 +509,9 @@ components: description: Represents the description of an API's interface. example: ipv6Addr: ipv6Addr + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS securityMethods: - PSK - PSK @@ -508,12 +521,9 @@ components: ipv4Addr: ipv4Addr nullable: true oneOf: - - required: - - ipv4Addr - - required: - - ipv6Addr - - required: - - fqdn + - required: ["fqdn"] + - required: ["ipv4Addr"] + - required: ["ipv6Addr"] properties: ipv4Addr: description: | @@ -552,18 +562,20 @@ components: minItems: 1 title: securityMethods type: array + grantTypes: + items: + $ref: '#/components/schemas/OAuthGrantType' + minItems: 1 + title: grantTypes + type: array title: InterfaceDescription type: object SecurityMethod: - anyOf: - - enum: + enum: - PSK - PKI - OAUTH - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates the security method. \nPossible values are:\n- PSK:\ \ Security method 1 (Using TLS-PSK) as described in 3GPP TS 33.122.\n- PKI:\ \ Security method 2 (Using PKI) as described in 3GPP TS 33.122.\n- OAUTH:\ @@ -593,3 +605,16 @@ components: minimum: 0 title: Port type: integer + OAuthGrantType: + enum: + - CLIENT_CREDENTIALS + - AUTHORIZATION_CODE + - AUTHORIZATION_CODE_WITH_PKCE + 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 diff --git a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/test/test_default_controller.py b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/test/test_default_controller.py index f5c22b452718589984da98915642c2b09c9c6eb2..1475dbad48a6bf2d627dece7cbc29f7551ec39ca 100644 --- a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/test/test_default_controller.py +++ b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/test/test_default_controller.py @@ -1,5 +1,7 @@ import unittest +from api_invocation_logs.models.invocation_log import InvocationLog # noqa: E501 +from api_invocation_logs.models.problem_details import ProblemDetails # noqa: E501 from api_invocation_logs.test import BaseTestCase from flask import json @@ -12,7 +14,7 @@ class TestDefaultController(BaseTestCase): """ - invocation_log = {"supportedFeatures":"supportedFeatures","apiInvokerId":"apiInvokerId","aefId":"aefId","logs":[{"apiName":"apiName","invocationTime":"2000-01-23T04:56:07.000+00:00","srcInterface":{"ipv6Addr":"ipv6Addr","securityMethods":["PSK","PSK"],"fqdn":"fqdn","port":39500,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},"fwdInterface":"fwdInterface","resourceName":"resourceName","uri":"uri","inputParameters":"","invocationLatency":0,"result":"result","protocol":"HTTP_1_1","apiVersion":"apiVersion","destInterface":{"ipv6Addr":"ipv6Addr","securityMethods":["PSK","PSK"],"fqdn":"fqdn","port":39500,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},"operation":"GET","apiId":"apiId","outputParameters":""},{"apiName":"apiName","invocationTime":"2000-01-23T04:56:07.000+00:00","srcInterface":{"ipv6Addr":"ipv6Addr","securityMethods":["PSK","PSK"],"fqdn":"fqdn","port":39500,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},"fwdInterface":"fwdInterface","resourceName":"resourceName","uri":"uri","inputParameters":"","invocationLatency":0,"result":"result","protocol":"HTTP_1_1","apiVersion":"apiVersion","destInterface":{"ipv6Addr":"ipv6Addr","securityMethods":["PSK","PSK"],"fqdn":"fqdn","port":39500,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},"operation":"GET","apiId":"apiId","outputParameters":""}]} + invocation_log = {"supportedFeatures":"supportedFeatures","apiInvokerId":"apiInvokerId","aefId":"aefId","logs":[{"apiName":"apiName","invocationTime":"2000-01-23T04:56:07.000+00:00","srcInterface":{"ipv6Addr":"ipv6Addr","grantTypes":["CLIENT_CREDENTIALS","CLIENT_CREDENTIALS"],"securityMethods":["PSK","PSK"],"fqdn":"fqdn","port":39500,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},"fwdInterface":"fwdInterface","resourceName":"resourceName","uri":"uri","inputParameters":"","invocationLatency":0,"result":"result","protocol":"HTTP_1_1","apiVersion":"apiVersion","destInterface":{"ipv6Addr":"ipv6Addr","grantTypes":["CLIENT_CREDENTIALS","CLIENT_CREDENTIALS"],"securityMethods":["PSK","PSK"],"fqdn":"fqdn","port":39500,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},"operation":"GET","apiId":"apiId","outputParameters":""},{"apiName":"apiName","invocationTime":"2000-01-23T04:56:07.000+00:00","srcInterface":{"ipv6Addr":"ipv6Addr","grantTypes":["CLIENT_CREDENTIALS","CLIENT_CREDENTIALS"],"securityMethods":["PSK","PSK"],"fqdn":"fqdn","port":39500,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},"fwdInterface":"fwdInterface","resourceName":"resourceName","uri":"uri","inputParameters":"","invocationLatency":0,"result":"result","protocol":"HTTP_1_1","apiVersion":"apiVersion","destInterface":{"ipv6Addr":"ipv6Addr","grantTypes":["CLIENT_CREDENTIALS","CLIENT_CREDENTIALS"],"securityMethods":["PSK","PSK"],"fqdn":"fqdn","port":39500,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},"operation":"GET","apiId":"apiId","outputParameters":""}]} headers = { 'Accept': 'application/json', 'Content-Type': 'application/json', diff --git a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/typing_utils.py b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/typing_utils.py index d21c4f633653a0eae75d04b2f6eff684ff9d200d..74e3c913a7db6246bc765f147ca872996112c6bb 100644 --- a/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/typing_utils.py +++ b/services/TS29222_CAPIF_Logging_API_Invocation_API/api_invocation_logs/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_Logging_API_Invocation_API/setup.py b/services/TS29222_CAPIF_Logging_API_Invocation_API/setup.py index 2edd1f3578279a90d77e9e8836f41d275b2b2eaa..aed8492996aef557130e39dc81933efc0fa5d94c 100644 --- a/services/TS29222_CAPIF_Logging_API_Invocation_API/setup.py +++ b/services/TS29222_CAPIF_Logging_API_Invocation_API/setup.py @@ -1,4 +1,5 @@ -from setuptools import setup, find_packages + +from setuptools import find_packages, setup NAME = "api_invocation_logs" VERSION = "1.0.0" @@ -30,7 +31,7 @@ setup( entry_points={ 'console_scripts': ['api_invocation_logs=api_invocation_logs.__main__:main']}, long_description="""\ - API for invocation logs. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + API for invocation logs. © 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. """ ) diff --git a/services/TS29222_CAPIF_Publish_Service_API/.openapi-generator/FILES b/services/TS29222_CAPIF_Publish_Service_API/.openapi-generator/FILES index a238cf9c4aa9ace65c39dfb652a057ca53ab8ec9..44333b51519691ba1428cad21ca5c707b9b66549 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/.openapi-generator/FILES +++ b/services/TS29222_CAPIF_Publish_Service_API/.openapi-generator/FILES @@ -34,6 +34,7 @@ published_apis/models/ipv6_address_range.py published_apis/models/local2d_point_uncertainty_ellipse.py published_apis/models/local3d_point_uncertainty_ellipsoid.py published_apis/models/local_origin.py +published_apis/models/o_auth_grant_type.py published_apis/models/operation.py published_apis/models/point.py published_apis/models/point_altitude.py diff --git a/services/TS29222_CAPIF_Publish_Service_API/.openapi-generator/VERSION b/services/TS29222_CAPIF_Publish_Service_API/.openapi-generator/VERSION index 18bb4182dd01428f1d4c3c2145501ee5d40455a3..b23eb27529e2bacf6c8c06f725c323d9fb87f042 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/.openapi-generator/VERSION +++ b/services/TS29222_CAPIF_Publish_Service_API/.openapi-generator/VERSION @@ -1 +1 @@ -7.5.0 +7.11.0 diff --git a/services/TS29222_CAPIF_Publish_Service_API/README.md b/services/TS29222_CAPIF_Publish_Service_API/README.md index a8ee25750f7e1979fac432c942c9975c6e9b778b..60ff8b067416f4815ed1c0b7b954e45a1a0e0189 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/README.md +++ b/services/TS29222_CAPIF_Publish_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 published_apis ``` and open your browser to here: diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/app.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/app.py index 6cddfc9eca54d3914e8c0dfcc0102afce2331ff5..46e0941cd496c55614ddff1b3e82c1187d455535 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/app.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/app.py @@ -6,6 +6,10 @@ from datetime import datetime from logging.handlers import RotatingFileHandler import connexion +# from published_apis import encoder +import encoder +from config import Config +from core.consumer_messager import Subscriber from flask_apscheduler import APScheduler from flask_executor import Executor from flask_jwt_extended import JWTManager @@ -19,11 +23,6 @@ from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import BatchSpanProcessor from opentelemetry.trace.propagation.tracecontext import TraceContextTextMapPropagator -# from published_apis import encoder -import encoder -from config import Config -from core.consumer_messager import Subscriber - NAME = "Publish-Service" # Setting log level @@ -37,7 +36,7 @@ def configure_monitoring(app, config): fluent_bit_host = config['monitoring']['fluent_bit_host'] fluent_bit_port = config['monitoring']['fluent_bit_port'] fluent_bit_sender = sender.FluentSender('Publish-Service', host=fluent_bit_host, port=fluent_bit_port) - propagator = TraceContextTextMapPropagator() + TraceContextTextMapPropagator() tracer_provider = TracerProvider(resource=resource) trace.set_tracer_provider(tracer_provider) diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/controllers/default_controller.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/controllers/default_controller.py index 695b3ae2d76701115deac7f2d80317cafaa8793f..27c4b6424bd1e3000e78db0ef656e7b7cdf547a2 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/controllers/default_controller.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/controllers/default_controller.py @@ -2,8 +2,8 @@ from functools import wraps from cryptography import x509 from cryptography.hazmat.backends import default_backend -from flask import request, current_app -from published_apis.vendor_specific import vendor_specific_key_n_value, find_attribute_in_body +from flask import current_app, request +from published_apis.vendor_specific import find_attribute_in_body, vendor_specific_key_n_value from ..core.responses import bad_request_error from ..core.serviceapidescriptions import PublishServiceOperations @@ -14,7 +14,6 @@ service_operations = PublishServiceOperations() valid_user = ControlAccess() - def cert_validation(): def _cert_validation(f): @wraps(f) @@ -51,7 +50,6 @@ def cert_validation(): return __cert_validation return _cert_validation - @cert_validation() def apf_id_service_apis_get(apf_id): # noqa: E501 """apf_id_service_apis_get @@ -68,7 +66,6 @@ def apf_id_service_apis_get(apf_id): # noqa: E501 return res - @cert_validation() def apf_id_service_apis_post(apf_id, body): # noqa: E501 """apf_id_service_apis_post @@ -114,7 +111,6 @@ def apf_id_service_apis_post(apf_id, body): # noqa: E501 return res - @cert_validation() def apf_id_service_apis_service_api_id_delete(service_api_id, apf_id): # noqa: E501 """apf_id_service_apis_service_api_id_delete @@ -134,7 +130,6 @@ def apf_id_service_apis_service_api_id_delete(service_api_id, apf_id): # noqa: return res - @cert_validation() def apf_id_service_apis_service_api_id_get(service_api_id, apf_id): # noqa: E501 """apf_id_service_apis_service_api_id_get @@ -153,7 +148,6 @@ def apf_id_service_apis_service_api_id_get(service_api_id, apf_id): # noqa: E50 return res - @cert_validation() def apf_id_service_apis_service_api_id_put(service_api_id, apf_id, body): # noqa: E501 """apf_id_service_apis_service_api_id_put diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/controllers/individual_apf_published_api_controller.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/controllers/individual_apf_published_api_controller.py index 0661991fe4961b9b4abc8f62cd31c07e7575c985..78336ca4aa2717bb23f1adc21a57fbb828c4d828 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/controllers/individual_apf_published_api_controller.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/controllers/individual_apf_published_api_controller.py @@ -2,7 +2,7 @@ from functools import wraps from cryptography import x509 from cryptography.hazmat.backends import default_backend -from flask import request, current_app +from flask import current_app, request from published_apis.models.service_api_description_patch import ServiceAPIDescriptionPatch # noqa: E501 from ..core.serviceapidescriptions import PublishServiceOperations diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/controllers/security_controller.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/controllers/security_controller.py index 139597f9cb07c5d48bed18984ec4747f4b4f3438..8b137891791fe96927ad78e64b0aad7bded08bdc 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/controllers/security_controller.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/controllers/security_controller.py @@ -1,2 +1 @@ - diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/core/publisher.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/core/publisher.py index 34fcdf453873b4b59a894d9f6b96b7ce1a217c2e..8292de4d4330b14c17be74e7448403b56fc5b9e3 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/core/publisher.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/core/publisher.py @@ -1,5 +1,6 @@ import redis + class Publisher(): def __init__(self): diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/core/redis_event.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/core/redis_event.py index f80e6b2e666574188740a99a0da0837ea899e01d..3037ae76a7bff9e74674d6e3b686cfbb24cf0f58 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/core/redis_event.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/core/redis_event.py @@ -1,7 +1,7 @@ import json -from .publisher import Publisher from ..encoder import JSONEncoder +from .publisher import Publisher publisher_ops = Publisher() diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/core/serviceapidescriptions.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/core/serviceapidescriptions.py index 7be748220702584de69bed2875c946ae346cb4c7..d5b451756eab0773972e3c438c065068cddfc472 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/core/serviceapidescriptions.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/core/serviceapidescriptions.py @@ -5,15 +5,21 @@ from datetime import datetime from flask import current_app from pymongo import ReturnDocument +from ..models.service_api_description import ServiceAPIDescription +from ..util import clean_empty, clean_n_camel_case, dict_to_camel_case +from ..vendor_specific import add_vend_spec_fields from .auth_manager import AuthManager from .publisher import Publisher from .redis_event import RedisEvent from .resources import Resource -from .responses import internal_server_error, forbidden_error, not_found_error, unauthorized_error, make_response, \ - bad_request_error -from ..models.service_api_description import ServiceAPIDescription -from ..util import dict_to_camel_case, clean_empty, clean_n_camel_case -from ..vendor_specific import add_vend_spec_fields +from .responses import ( + bad_request_error, + forbidden_error, + internal_server_error, + make_response, + not_found_error, + unauthorized_error +) publisher_ops = Publisher() diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/core/validate_user.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/core/validate_user.py index 94fe1d4bc014038a11cefbbd2cfe82dfa5c7e14d..1782fe0425311da838e31af7d96338c28e236bf6 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/core/validate_user.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/core/validate_user.py @@ -1,12 +1,12 @@ import json -from flask import current_app, Response +from flask import Response, current_app -from .resources import Resource -from .responses import internal_server_error from ..encoder import CustomJSONEncoder from ..models.problem_details import ProblemDetails from ..util import serialize_clean_camel_case +from .resources import Resource +from .responses import internal_server_error class ControlAccess(Resource): diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/encoder.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/encoder.py index 4d957655c7a45b96d9a0193333a35f1de7a47acd..6f24878a3c5f09dfd0accb35785385b3cfd59159 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/encoder.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/encoder.py @@ -1,5 +1,4 @@ from connexion.jsonifier import JSONEncoder - from published_apis.models.base_model import Model diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/aef_location.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/aef_location.py index 40e90aa6254b2b16f5338c80305125cdd9fbf05b..ca2cc22eda46173d3151563f0d4b546717d23752 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/aef_location.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/aef_location.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/aef_profile.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/aef_profile.py index 8d8ae4708c42e76200ee598aacf4d643a4df8c07..b50b23b78c674d1b199b65a0ea0f151e9fe416dc 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/aef_profile.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/aef_profile.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.aef_location import AefLocation # noqa: E501 @@ -7,6 +7,7 @@ from published_apis.models.base_model import Model from published_apis.models.data_format import DataFormat # noqa: E501 from published_apis.models.interface_description import InterfaceDescription # noqa: E501 from published_apis.models.ip_addr_range import IpAddrRange # noqa: E501 +from published_apis.models.o_auth_grant_type import OAuthGrantType # noqa: E501 from published_apis.models.protocol import Protocol # noqa: E501 from published_apis.models.security_method import SecurityMethod # noqa: E501 from published_apis.models.service_kpis import ServiceKpis # noqa: E501 @@ -19,7 +20,7 @@ class AefProfile(Model): 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 +33,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 +52,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 +66,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 +79,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 +216,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_Publish_Service_API/published_apis/models/api_status.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/api_status.py index 14b0d36b47f51f02a1eba14e8904e281668bdd19..4fcf081767b9ecb1b39cd5d20da889340ca3fbcc 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/api_status.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/api_status.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/civic_address.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/civic_address.py index 94b868bebcd2edca4e57d5b7a1c7e6d87446f0a1..2985c188eb06e9d11b0dc573a8ceb56381095e11 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/civic_address.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/civic_address.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/communication_type.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/communication_type.py index d69e24ba75985f9a34b7370fd6ebdeb8d8bc36c6..34963f38384b204a81b2ffa06a40c0e4ac27b891 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/communication_type.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/communication_type.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/custom_operation.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/custom_operation.py index f99e4aedae9b09337c670881277243a2966f467f..2900d43e17262cad2e54846c54435e290ce8b8e7 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/custom_operation.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/custom_operation.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/data_format.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/data_format.py index b8892d621d6c465009716813c0d4ce3010f849e6..0f79d52e5065ec93093869492ba323a67936bcd6 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/data_format.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/data_format.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/ellipsoid_arc.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/ellipsoid_arc.py index 550649e40a9e3c4371175299c3a22a2ef8d06372..9b065e534e33fc866ce64014a327986c52bf3708 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/ellipsoid_arc.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/ellipsoid_arc.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model +from published_apis.models.gad_shape import GADShape # noqa: E501 from published_apis.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from published_apis.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/gad_shape.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/gad_shape.py index 1bee0024fd3a619ecf1d16813f26af9a3725b324..370e1da43523b25efd6ff6b24aaf82bb884c62c5 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/gad_shape.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/gad_shape.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/geographic_area.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/geographic_area.py index 4c88245f94b88b140eeac6171d234019815855a2..226225be6b0c16d010f3b706afe4b3480c6c7b21 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/geographic_area.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/geographic_area.py @@ -1,9 +1,16 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model +from published_apis.models.ellipsoid_arc import EllipsoidArc # noqa: E501 from published_apis.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 +from published_apis.models.point import Point # noqa: E501 +from published_apis.models.point_altitude import PointAltitude # noqa: E501 +from published_apis.models.point_altitude_uncertainty import PointAltitudeUncertainty # noqa: E501 +from published_apis.models.point_uncertainty_circle import PointUncertaintyCircle # noqa: E501 +from published_apis.models.point_uncertainty_ellipse import PointUncertaintyEllipse # noqa: E501 +from published_apis.models.polygon import Polygon # noqa: E501 from published_apis.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 from published_apis.models.uncertainty_ellipse import UncertaintyEllipse # noqa: E501 diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/geographical_coordinates.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/geographical_coordinates.py index 7ef6a2cd12e48b4c1ea27dbb6603a21b6c8a5b50..253a9089c9cb7e930ccfacafeacfe01ec8ec6171 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/geographical_coordinates.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/geographical_coordinates.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/interface_description.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/interface_description.py index dec959628c16f492cff126fdd8c2928b700cccda..7c8707c4f072fb8cde6149618d79f4268318439d 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/interface_description.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/interface_description.py @@ -1,9 +1,10 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model +from published_apis.models.o_auth_grant_type import OAuthGrantType # noqa: E501 from published_apis.models.security_method import SecurityMethod # noqa: E501 @@ -13,7 +14,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 +29,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 +38,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 +48,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 +58,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 +142,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 +220,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_Publish_Service_API/published_apis/models/invalid_param.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/invalid_param.py index 4dd00c7af87dc50fe1ad6b9940c8b470f10dcae9..b7b4d5ce3dbb78a15125941d0e0fcf33d14ce649 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/invalid_param.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/invalid_param.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/ip_addr_range.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/ip_addr_range.py index e4bffa1c6834d9da8fadd80a9ef0a58a4e8fdbc4..48c4ede0261690c73fc09e414d7b7b9941c611ed 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/ip_addr_range.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/ip_addr_range.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/ipv4_address_range.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/ipv4_address_range.py index bfca85a70a36e4bc6fa708d32a8d74c889f82e04..2547d74c60efd7deabec57a76d6b54f8e78f5968 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/ipv4_address_range.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/ipv4_address_range.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model @@ -67,7 +67,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 +94,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_Publish_Service_API/published_apis/models/ipv6_addr1.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/ipv6_addr1.py index 082fbaf1aeb951e7199eb70647a2f8d39735f162..354ce4697a8d26ba5022df31632a963a3231bb6d 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/ipv6_addr1.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/ipv6_addr1.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/ipv6_address_range.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/ipv6_address_range.py index 3270bfc550671772f04e9089e3c70e68cbeff70a..a28eff1fbd9d8b2f3d1f658c1eccb119ce17985a 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/ipv6_address_range.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/ipv6_address_range.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/local2d_point_uncertainty_ellipse.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/local2d_point_uncertainty_ellipse.py index 777b98ed5fbc2c0337000ee68db6b003d80c1a08..2b13ab8c53823918d162de6ef89908954298d456 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/local2d_point_uncertainty_ellipse.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/local2d_point_uncertainty_ellipse.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model +from published_apis.models.gad_shape import GADShape # noqa: E501 from published_apis.models.local_origin import LocalOrigin # noqa: E501 from published_apis.models.relative_cartesian_location import RelativeCartesianLocation # noqa: E501 from published_apis.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/local3d_point_uncertainty_ellipsoid.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/local3d_point_uncertainty_ellipsoid.py index 728f69a97952fdd9d256ba460856f91bd8307d12..ca17643db139f7c8197dc2a855a196c848f6cacc 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/local3d_point_uncertainty_ellipsoid.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/local3d_point_uncertainty_ellipsoid.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model +from published_apis.models.gad_shape import GADShape # noqa: E501 from published_apis.models.local_origin import LocalOrigin # noqa: E501 from published_apis.models.relative_cartesian_location import RelativeCartesianLocation # noqa: E501 from published_apis.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 @@ -15,7 +16,7 @@ class Local3dPointUncertaintyEllipsoid(Model): 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 +29,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 +46,8 @@ class Local3dPointUncertaintyEllipsoid(Model): 'local_origin': 'localOrigin', 'point': 'point', 'uncertainty_ellipsoid': 'uncertaintyEllipsoid', - 'confidence': 'confidence' + 'confidence': 'confidence', + 'v_confidence': 'vConfidence' } self._shape = shape @@ -50,6 +55,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 +188,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_Publish_Service_API/published_apis/models/local_origin.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/local_origin.py index 82df6391e1ac6b1253028f6edac90e0c7840b1ec..d86b7142076691f2bfdad4b5b5b44e1a4afc1017 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/local_origin.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/local_origin.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model +from published_apis.models.geographic_area import GeographicArea # noqa: E501 from published_apis.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 @@ -12,26 +13,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 +73,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 +98,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_Publish_Service_API/published_apis/models/o_auth_grant_type.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/o_auth_grant_type.py new file mode 100644 index 0000000000000000000000000000000000000000..a61d636f96cf630eea524d82a1b66e01a92d2761 --- /dev/null +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/o_auth_grant_type.py @@ -0,0 +1,33 @@ +from datetime import date, datetime # noqa: F401 +from typing import Dict, List # noqa: F401 + +from published_apis import util +from published_apis.models.base_model import Model + + +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_Publish_Service_API/published_apis/models/operation.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/operation.py index c59a6702cbbb5458c6fb9df20adf3969f0f18006..abfa0c2274c1fccd47f7d9b6d9b33fb98bee3ca8 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/operation.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/operation.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/point.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/point.py index 433aa9e86eed54a6499d9592629ee17d96d8cf12..b0d7a764fe3f9ea0c8949c3694bd0c875378b912 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/point.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/point.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model +from published_apis.models.gad_shape import GADShape # noqa: E501 from published_apis.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from published_apis.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/point_altitude.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/point_altitude.py index 7bfb24aea35a99d1598137df1cb78f603953e66b..7fd826c19e66f439059bbf63ce60c22732da0a1f 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/point_altitude.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/point_altitude.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model +from published_apis.models.gad_shape import GADShape # noqa: E501 from published_apis.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from published_apis.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/point_altitude_uncertainty.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/point_altitude_uncertainty.py index 9bc6dbd52c146d8a6b477ec6d520f9c62c9fe00d..98b36ca7499c574f0c07f8afbb79c3c5373be86d 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/point_altitude_uncertainty.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/point_altitude_uncertainty.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model +from published_apis.models.gad_shape import GADShape # noqa: E501 from published_apis.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from published_apis.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 from published_apis.models.uncertainty_ellipse import UncertaintyEllipse # noqa: E501 diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/point_uncertainty_circle.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/point_uncertainty_circle.py index 7b15b671711acb96bf78cb2d285aa43c89613f9c..477dfae0a5dc41fc9de892511f8826cdbf56f0d9 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/point_uncertainty_circle.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/point_uncertainty_circle.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model +from published_apis.models.gad_shape import GADShape # noqa: E501 from published_apis.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from published_apis.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/point_uncertainty_ellipse.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/point_uncertainty_ellipse.py index 13c8e1b728b0c0e5c1aa77b258e8b3eec1601aaa..1e328c073b5bf6e476e872d24a34fd95e26d0539 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/point_uncertainty_ellipse.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/point_uncertainty_ellipse.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model +from published_apis.models.gad_shape import GADShape # noqa: E501 from published_apis.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from published_apis.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 from published_apis.models.uncertainty_ellipse import UncertaintyEllipse # noqa: E501 diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/polygon.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/polygon.py index d4ce9418c9f81429e04d259f481296f6b0fb84d0..d021ee3b87fe4b369133ee5793bcef43e6c7aa22 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/polygon.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/polygon.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model +from published_apis.models.gad_shape import GADShape # noqa: E501 from published_apis.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from published_apis.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/problem_details.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/problem_details.py index ac7c9ee947d49dbbf350ba9b552285d5192504a0..39abad6a1db12b1b640c33deea95e56eaae3674a 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/problem_details.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/problem_details.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model @@ -259,6 +259,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_Publish_Service_API/published_apis/models/protocol.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/protocol.py index dc6ae7eb66a5790f3ad46a5469d3e3edaa5adc50..011e1942fce34f3b749ae9bf7d7bebc08be298ff 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/protocol.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/protocol.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/published_api_path.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/published_api_path.py index a76f56fae938dacb1734239ba6e81cdf70038454..8e02d4859804bce2851a8290edbeb45be9941870 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/published_api_path.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/published_api_path.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/relative_cartesian_location.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/relative_cartesian_location.py index 35c9dbf5b7190a018396cd9529d63e23829b752f..0d1e9116e2b1b158d4ffdec945b53d4401035a7a 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/relative_cartesian_location.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/relative_cartesian_location.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/resource.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/resource.py index 6c8d09d8689135cde8c056ccb40395e5a233eaf2..d00e3ee8a4b0ace5c27b9cec789beb91f0530b2c 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/resource.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/resource.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/security_method.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/security_method.py index 01847e2b25c67b269906c42ed1c1bcda2cb2823c..97c264ab4b5795168820700c331d712acceb3b59 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/security_method.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/security_method.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/service_api_description.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/service_api_description.py index e50c9e0156d90e4b43dc914951ff08f787b8e186..0111b908811623633bfc80232974455b322d950f 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/service_api_description.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/service_api_description.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.aef_profile import AefProfile # noqa: E501 @@ -106,6 +106,7 @@ class ServiceAPIDescription(Model): "VendorExt": True if supp_feat_in_bin[8] == "1" else False } + @classmethod def from_dict(cls, dikt) -> 'ServiceAPIDescription': """Returns the dict as a model @@ -255,7 +256,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 @@ -324,7 +325,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_Publish_Service_API/published_apis/models/service_api_description_patch.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/service_api_description_patch.py index d812d30d0c2d01195a9b3a1d8e13533df9900d60..283a1a0791a6f6f1b6f591a081b7f87b9dfe6fb0 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/service_api_description_patch.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/service_api_description_patch.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.aef_profile import AefProfile # noqa: E501 @@ -212,7 +212,7 @@ class ServiceAPIDescriptionPatch(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_Publish_Service_API/published_apis/models/service_kpis.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/service_kpis.py index 2d0b3c17db4afbc15b0b13d915399174cd6b9cc8..ac1a773e675c9607fbe6ecb9862f4c92cfe4abdd 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/service_kpis.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/service_kpis.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model @@ -170,7 +170,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 +195,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 +220,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 +245,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_Publish_Service_API/published_apis/models/shareable_information.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/shareable_information.py index 548e3753599f8f5140d3f4fc30815af64dd70e03..a2dfbeaf55bb62c23ae192b2811662d34aa15690 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/shareable_information.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/shareable_information.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/supported_gad_shapes.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/supported_gad_shapes.py index 7b5da39915dde3f281e64fed7538a37ec001d0b4..095abd0a7e66febeb50854297069f72e3f733ff3 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/supported_gad_shapes.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/supported_gad_shapes.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/uncertainty_ellipse.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/uncertainty_ellipse.py index 7fc3e1720fe863c3e4fcf1a5e108266b2377005f..44957aa6658285616b2c203fd727239b7b357a47 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/uncertainty_ellipse.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/uncertainty_ellipse.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/uncertainty_ellipsoid.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/uncertainty_ellipsoid.py index 7a89fe9675241a553b87ce3a27e81e53dbaa7547..0a34178324ae19541d8de1436ed837bf20dec49c 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/uncertainty_ellipsoid.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/uncertainty_ellipsoid.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/version.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/version.py index a53e20f2d53c692458e5042c6f57659efd32be3d..4188ad7993ce37586e783b92532850928abad182 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/version.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/models/version.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from published_apis import util from published_apis.models.base_model import Model diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/openapi/openapi.yaml b/services/TS29222_CAPIF_Publish_Service_API/published_apis/openapi/openapi.yaml index 041eed50493715bf874d53f509ae22769e7a3d11..6fd9b48632d3bc98c7de20ed0a7ac3f16f1897f4 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/openapi/openapi.yaml +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/openapi/openapi.yaml @@ -3,9 +3,9 @@ info: description: "API for publishing service APIs. \n© 2024, 3GPP Organizational Partners\ \ (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). \nAll rights reserved.\n" title: CAPIF_Publish_Service_API - version: 1.3.0-alpha.5 + version: 1.3.1 externalDocs: - description: 3GPP TS 29.222 V18.5.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}/published-apis/v1" @@ -715,6 +715,9 @@ components: - aefIds aefProfiles: - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -893,6 +896,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -901,6 +907,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -918,6 +927,9 @@ components: maxReqRate: 0 avalGraComp: avalGraComp - protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -1096,6 +1108,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1104,6 +1119,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1185,6 +1203,9 @@ components: description: Represents the description of an API's interface. example: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1193,13 +1214,10 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr nullable: true - oneOf: - - required: - - ipv4Addr - - required: - - ipv6Addr - - required: - - fqdn + oneOf: + - required: ["fqdn"] + - required: ["ipv4Addr"] + - required: ["ipv6Addr"] properties: ipv4Addr: description: | @@ -1238,12 +1256,21 @@ components: minItems: 1 title: securityMethods type: array + grantTypes: + items: + $ref: '#/components/schemas/OAuthGrantType' + minItems: 1 + title: grantTypes + type: array title: InterfaceDescription type: object AefProfile: description: Represents the AEF profile data. example: protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -1422,6 +1449,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1430,6 +1460,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1447,11 +1480,9 @@ components: maxReqRate: 0 avalGraComp: avalGraComp nullable: true - oneOf: - - required: - - domainName - - required: - - interfaceDescriptions + oneOf: + - required: ["domainName"] + - required: ["interfaceDescriptions"] properties: aefId: description: Identifier of the API exposing function @@ -1475,6 +1506,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 @@ -1907,7 +1944,9 @@ components: title: ServiceKpis type: object IpAddrRange: - anyOf: [] + anyOf: + - required: ["ueIpv4AddrRanges"] + - required: ["ueIpv6AddrRanges"] description: Represents the list of public IP ranges example: ueIpv4AddrRanges: @@ -1939,16 +1978,12 @@ components: title: IpAddrRange type: object Protocol: - anyOf: - - enum: + enum: - HTTP_1_1 - HTTP_2 - MQTT - WEBSOCKET - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates a protocol and protocol version used by the API. \n\ Possible values are:\n- HTTP_1_1: Indicates that the protocol is HTTP version\ \ 1.1.\n- HTTP_2: Indicates that the protocol is HTTP version 2.\n- MQTT:\ @@ -1956,61 +1991,45 @@ components: \ Indicates that the protocol is Websocket.\n" title: Protocol CommunicationType: - anyOf: - - enum: + enum: - REQUEST_RESPONSE - SUBSCRIBE_NOTIFY - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates a communication type of the resource or the custom operation.\ \ \nPossible values are:\n- REQUEST_RESPONSE: The communication is of the\ \ type request-response.\n- SUBSCRIBE_NOTIFY: The communication is of the\ \ type subscribe-notify.\n" title: CommunicationType DataFormat: - anyOf: - - enum: + enum: - JSON - XML - PROTOBUF3 - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates a data format. \nPossible values are:\n- JSON: Indicates\ \ that the data format is JSON.\n- XML: Indicates that the data format is\ \ Extensible Markup Language.\n- PROTOBUF3: Indicates that the data format\ \ is Protocol buffers version 3.\n" title: DataFormat SecurityMethod: - anyOf: - - enum: + enum: - PSK - PKI - OAUTH - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates the security method. \nPossible values are:\n- PSK:\ \ Security method 1 (Using TLS-PSK) as described in 3GPP TS 33.122.\n- PKI:\ \ Security method 2 (Using PKI) as described in 3GPP TS 33.122.\n- OAUTH:\ \ Security method 3 (TLS with OAuth token) as described in 3GPP TS 33.122.\n" title: SecurityMethod Operation: - anyOf: - - enum: + enum: - GET - POST - PUT - PATCH - DELETE - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates an HTTP method. \nPossible values are:\n- GET: HTTP\ \ GET method.\n- POST: HTTP POST method.\n- PUT: HTTP PUT method.\n- PATCH:\ \ HTTP PATCH method.\n- DELETE: HTTP DELETE method.\n" @@ -2112,6 +2131,19 @@ components: minimum: 0 title: Port type: integer + OAuthGrantType: + enum: + - CLIENT_CREDENTIALS + - AUTHORIZATION_CODE + - AUTHORIZATION_CODE_WITH_PKCE + 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 DateTime: description: string with format "date-time" as defined in OpenAPI. format: date-time @@ -2308,8 +2340,7 @@ components: title: GADShape type: object SupportedGADShapes: - anyOf: - - enum: + enum: - POINT - POINT_UNCERTAINTY_CIRCLE - POINT_UNCERTAINTY_ELLIPSE @@ -2322,8 +2353,8 @@ components: - DISTANCE_DIRECTION - RELATIVE_2D_LOCATION_UNCERTAINTY_ELLIPSE - RELATIVE_3D_LOCATION_UNCERTAINTY_ELLIPSOID - type: string - - type: string + + type: string description: Indicates supported GAD shapes. title: SupportedGADShapes PointUncertaintyCircle: @@ -2551,8 +2582,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: @@ -2588,6 +2637,8 @@ components: $ref: '#/components/schemas/UncertaintyEllipsoid' confidence: $ref: '#/components/schemas/Confidence' + vConfidence: + $ref: '#/components/schemas/Confidence' required: - confidence - localOrigin @@ -2687,9 +2738,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_Publish_Service_API/published_apis/test/test_default_controller.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/test/test_default_controller.py index 7f824b920aa117a74730d8d5cb6a7236e729534a..aa3a20d40b74688c95ec3c6258472fa735487f0d 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/test/test_default_controller.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/test/test_default_controller.py @@ -1,6 +1,8 @@ import unittest from flask import json +from published_apis.models.problem_details import ProblemDetails # noqa: E501 +from published_apis.models.service_api_description import ServiceAPIDescription # noqa: E501 from published_apis.test import BaseTestCase @@ -27,7 +29,7 @@ class TestDefaultController(BaseTestCase): """ - service_api_description = {"serviceAPICategory":"serviceAPICategory","ccfId":"ccfId","apiName":"apiName","shareableInfo":{"capifProvDoms":["capifProvDoms","capifProvDoms"],"isShareable":True},"apiProvName":"apiProvName","supportedFeatures":"supportedFeatures","description":"description","apiSuppFeats":"apiSuppFeats","apiId":"apiId","apiStatus":{"aefIds":["aefIds","aefIds"]},"aefProfiles":[{"protocol":"HTTP_1_1","ueIpRange":{"ueIpv4AddrRanges":[{"start":"198.51.100.1","end":"198.51.100.1"},{"start":"198.51.100.1","end":"198.51.100.1"}],"ueIpv6AddrRanges":[{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"},{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"}]},"securityMethods":["PSK","PSK"],"versions":[{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"},{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"}],"dataFormat":"JSON","domainName":"domainName","aefLocation":{"dcId":"dcId","geoArea":{"shape":"POINT","point":{"lon":36.988422590534526,"lat":-63.615366350946985}},"civicAddr":{"POBOX":"POBOX","usageRules":"usageRules","country":"country","PRD":"PRD","PLC":"PLC","HNO":"HNO","PRM":"PRM","HNS":"HNS","FLR":"FLR","A1":"A1","A2":"A2","A3":"A3","A4":"A4","STS":"STS","A5":"A5","A6":"A6","RDSEC":"RDSEC","providedBy":"providedBy","LOC":"LOC","UNIT":"UNIT","SEAT":"SEAT","POD":"POD","RDBR":"RDBR","method":"method","LMK":"LMK","POM":"POM","ADDCODE":"ADDCODE","RD":"RD","PC":"PC","PCN":"PCN","NAM":"NAM","BLD":"BLD","ROOM":"ROOM","RDSUBBR":"RDSUBBR"}},"aefId":"aefId","interfaceDescriptions":[{"ipv6Addr":"ipv6Addr","securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},{"ipv6Addr":"ipv6Addr","securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"}],"serviceKpis":{"avalMem":"avalMem","avalStor":"avalStor","avalComp":"avalComp","conBand":0,"maxRestime":0,"availability":0,"maxReqRate":0,"avalGraComp":"avalGraComp"}},{"protocol":"HTTP_1_1","ueIpRange":{"ueIpv4AddrRanges":[{"start":"198.51.100.1","end":"198.51.100.1"},{"start":"198.51.100.1","end":"198.51.100.1"}],"ueIpv6AddrRanges":[{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"},{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"}]},"securityMethods":["PSK","PSK"],"versions":[{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"},{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"}],"dataFormat":"JSON","domainName":"domainName","aefLocation":{"dcId":"dcId","geoArea":{"shape":"POINT","point":{"lon":36.988422590534526,"lat":-63.615366350946985}},"civicAddr":{"POBOX":"POBOX","usageRules":"usageRules","country":"country","PRD":"PRD","PLC":"PLC","HNO":"HNO","PRM":"PRM","HNS":"HNS","FLR":"FLR","A1":"A1","A2":"A2","A3":"A3","A4":"A4","STS":"STS","A5":"A5","A6":"A6","RDSEC":"RDSEC","providedBy":"providedBy","LOC":"LOC","UNIT":"UNIT","SEAT":"SEAT","POD":"POD","RDBR":"RDBR","method":"method","LMK":"LMK","POM":"POM","ADDCODE":"ADDCODE","RD":"RD","PC":"PC","PCN":"PCN","NAM":"NAM","BLD":"BLD","ROOM":"ROOM","RDSUBBR":"RDSUBBR"}},"aefId":"aefId","interfaceDescriptions":[{"ipv6Addr":"ipv6Addr","securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},{"ipv6Addr":"ipv6Addr","securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"}],"serviceKpis":{"avalMem":"avalMem","avalStor":"avalStor","avalComp":"avalComp","conBand":0,"maxRestime":0,"availability":0,"maxReqRate":0,"avalGraComp":"avalGraComp"}}],"pubApiPath":{"ccfIds":["ccfIds","ccfIds"]}} + service_api_description = {"serviceAPICategory":"serviceAPICategory","ccfId":"ccfId","apiName":"apiName","shareableInfo":{"capifProvDoms":["capifProvDoms","capifProvDoms"],"isShareable":True},"apiProvName":"apiProvName","supportedFeatures":"supportedFeatures","description":"description","apiSuppFeats":"apiSuppFeats","apiId":"apiId","apiStatus":{"aefIds":["aefIds","aefIds"]},"aefProfiles":[{"protocol":"HTTP_1_1","grantTypes":["CLIENT_CREDENTIALS","CLIENT_CREDENTIALS"],"ueIpRange":{"ueIpv4AddrRanges":[{"start":"198.51.100.1","end":"198.51.100.1"},{"start":"198.51.100.1","end":"198.51.100.1"}],"ueIpv6AddrRanges":[{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"},{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"}]},"securityMethods":["PSK","PSK"],"versions":[{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"},{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"}],"dataFormat":"JSON","domainName":"domainName","aefLocation":{"dcId":"dcId","geoArea":{"shape":"POINT","point":{"lon":36.988422590534526,"lat":-63.615366350946985}},"civicAddr":{"POBOX":"POBOX","usageRules":"usageRules","country":"country","PRD":"PRD","PLC":"PLC","HNO":"HNO","PRM":"PRM","HNS":"HNS","FLR":"FLR","A1":"A1","A2":"A2","A3":"A3","A4":"A4","STS":"STS","A5":"A5","A6":"A6","RDSEC":"RDSEC","providedBy":"providedBy","LOC":"LOC","UNIT":"UNIT","SEAT":"SEAT","POD":"POD","RDBR":"RDBR","method":"method","LMK":"LMK","POM":"POM","ADDCODE":"ADDCODE","RD":"RD","PC":"PC","PCN":"PCN","NAM":"NAM","BLD":"BLD","ROOM":"ROOM","RDSUBBR":"RDSUBBR"}},"aefId":"aefId","interfaceDescriptions":[{"ipv6Addr":"ipv6Addr","grantTypes":[null,null],"securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},{"ipv6Addr":"ipv6Addr","grantTypes":[null,null],"securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"}],"serviceKpis":{"avalMem":"avalMem","avalStor":"avalStor","avalComp":"avalComp","conBand":0,"maxRestime":0,"availability":0,"maxReqRate":0,"avalGraComp":"avalGraComp"}},{"protocol":"HTTP_1_1","grantTypes":["CLIENT_CREDENTIALS","CLIENT_CREDENTIALS"],"ueIpRange":{"ueIpv4AddrRanges":[{"start":"198.51.100.1","end":"198.51.100.1"},{"start":"198.51.100.1","end":"198.51.100.1"}],"ueIpv6AddrRanges":[{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"},{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"}]},"securityMethods":["PSK","PSK"],"versions":[{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"},{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"}],"dataFormat":"JSON","domainName":"domainName","aefLocation":{"dcId":"dcId","geoArea":{"shape":"POINT","point":{"lon":36.988422590534526,"lat":-63.615366350946985}},"civicAddr":{"POBOX":"POBOX","usageRules":"usageRules","country":"country","PRD":"PRD","PLC":"PLC","HNO":"HNO","PRM":"PRM","HNS":"HNS","FLR":"FLR","A1":"A1","A2":"A2","A3":"A3","A4":"A4","STS":"STS","A5":"A5","A6":"A6","RDSEC":"RDSEC","providedBy":"providedBy","LOC":"LOC","UNIT":"UNIT","SEAT":"SEAT","POD":"POD","RDBR":"RDBR","method":"method","LMK":"LMK","POM":"POM","ADDCODE":"ADDCODE","RD":"RD","PC":"PC","PCN":"PCN","NAM":"NAM","BLD":"BLD","ROOM":"ROOM","RDSUBBR":"RDSUBBR"}},"aefId":"aefId","interfaceDescriptions":[{"ipv6Addr":"ipv6Addr","grantTypes":[null,null],"securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},{"ipv6Addr":"ipv6Addr","grantTypes":[null,null],"securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"}],"serviceKpis":{"avalMem":"avalMem","avalStor":"avalStor","avalComp":"avalComp","conBand":0,"maxRestime":0,"availability":0,"maxReqRate":0,"avalGraComp":"avalGraComp"}}],"pubApiPath":{"ccfIds":["ccfIds","ccfIds"]}} headers = { 'Accept': 'application/json', 'Content-Type': 'application/json', @@ -76,7 +78,7 @@ class TestDefaultController(BaseTestCase): """ - service_api_description = {"serviceAPICategory":"serviceAPICategory","ccfId":"ccfId","apiName":"apiName","shareableInfo":{"capifProvDoms":["capifProvDoms","capifProvDoms"],"isShareable":True},"apiProvName":"apiProvName","supportedFeatures":"supportedFeatures","description":"description","apiSuppFeats":"apiSuppFeats","apiId":"apiId","apiStatus":{"aefIds":["aefIds","aefIds"]},"aefProfiles":[{"protocol":"HTTP_1_1","ueIpRange":{"ueIpv4AddrRanges":[{"start":"198.51.100.1","end":"198.51.100.1"},{"start":"198.51.100.1","end":"198.51.100.1"}],"ueIpv6AddrRanges":[{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"},{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"}]},"securityMethods":["PSK","PSK"],"versions":[{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"},{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"}],"dataFormat":"JSON","domainName":"domainName","aefLocation":{"dcId":"dcId","geoArea":{"shape":"POINT","point":{"lon":36.988422590534526,"lat":-63.615366350946985}},"civicAddr":{"POBOX":"POBOX","usageRules":"usageRules","country":"country","PRD":"PRD","PLC":"PLC","HNO":"HNO","PRM":"PRM","HNS":"HNS","FLR":"FLR","A1":"A1","A2":"A2","A3":"A3","A4":"A4","STS":"STS","A5":"A5","A6":"A6","RDSEC":"RDSEC","providedBy":"providedBy","LOC":"LOC","UNIT":"UNIT","SEAT":"SEAT","POD":"POD","RDBR":"RDBR","method":"method","LMK":"LMK","POM":"POM","ADDCODE":"ADDCODE","RD":"RD","PC":"PC","PCN":"PCN","NAM":"NAM","BLD":"BLD","ROOM":"ROOM","RDSUBBR":"RDSUBBR"}},"aefId":"aefId","interfaceDescriptions":[{"ipv6Addr":"ipv6Addr","securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},{"ipv6Addr":"ipv6Addr","securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"}],"serviceKpis":{"avalMem":"avalMem","avalStor":"avalStor","avalComp":"avalComp","conBand":0,"maxRestime":0,"availability":0,"maxReqRate":0,"avalGraComp":"avalGraComp"}},{"protocol":"HTTP_1_1","ueIpRange":{"ueIpv4AddrRanges":[{"start":"198.51.100.1","end":"198.51.100.1"},{"start":"198.51.100.1","end":"198.51.100.1"}],"ueIpv6AddrRanges":[{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"},{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"}]},"securityMethods":["PSK","PSK"],"versions":[{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"},{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"}],"dataFormat":"JSON","domainName":"domainName","aefLocation":{"dcId":"dcId","geoArea":{"shape":"POINT","point":{"lon":36.988422590534526,"lat":-63.615366350946985}},"civicAddr":{"POBOX":"POBOX","usageRules":"usageRules","country":"country","PRD":"PRD","PLC":"PLC","HNO":"HNO","PRM":"PRM","HNS":"HNS","FLR":"FLR","A1":"A1","A2":"A2","A3":"A3","A4":"A4","STS":"STS","A5":"A5","A6":"A6","RDSEC":"RDSEC","providedBy":"providedBy","LOC":"LOC","UNIT":"UNIT","SEAT":"SEAT","POD":"POD","RDBR":"RDBR","method":"method","LMK":"LMK","POM":"POM","ADDCODE":"ADDCODE","RD":"RD","PC":"PC","PCN":"PCN","NAM":"NAM","BLD":"BLD","ROOM":"ROOM","RDSUBBR":"RDSUBBR"}},"aefId":"aefId","interfaceDescriptions":[{"ipv6Addr":"ipv6Addr","securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},{"ipv6Addr":"ipv6Addr","securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"}],"serviceKpis":{"avalMem":"avalMem","avalStor":"avalStor","avalComp":"avalComp","conBand":0,"maxRestime":0,"availability":0,"maxReqRate":0,"avalGraComp":"avalGraComp"}}],"pubApiPath":{"ccfIds":["ccfIds","ccfIds"]}} + service_api_description = {"serviceAPICategory":"serviceAPICategory","ccfId":"ccfId","apiName":"apiName","shareableInfo":{"capifProvDoms":["capifProvDoms","capifProvDoms"],"isShareable":True},"apiProvName":"apiProvName","supportedFeatures":"supportedFeatures","description":"description","apiSuppFeats":"apiSuppFeats","apiId":"apiId","apiStatus":{"aefIds":["aefIds","aefIds"]},"aefProfiles":[{"protocol":"HTTP_1_1","grantTypes":["CLIENT_CREDENTIALS","CLIENT_CREDENTIALS"],"ueIpRange":{"ueIpv4AddrRanges":[{"start":"198.51.100.1","end":"198.51.100.1"},{"start":"198.51.100.1","end":"198.51.100.1"}],"ueIpv6AddrRanges":[{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"},{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"}]},"securityMethods":["PSK","PSK"],"versions":[{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"},{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"}],"dataFormat":"JSON","domainName":"domainName","aefLocation":{"dcId":"dcId","geoArea":{"shape":"POINT","point":{"lon":36.988422590534526,"lat":-63.615366350946985}},"civicAddr":{"POBOX":"POBOX","usageRules":"usageRules","country":"country","PRD":"PRD","PLC":"PLC","HNO":"HNO","PRM":"PRM","HNS":"HNS","FLR":"FLR","A1":"A1","A2":"A2","A3":"A3","A4":"A4","STS":"STS","A5":"A5","A6":"A6","RDSEC":"RDSEC","providedBy":"providedBy","LOC":"LOC","UNIT":"UNIT","SEAT":"SEAT","POD":"POD","RDBR":"RDBR","method":"method","LMK":"LMK","POM":"POM","ADDCODE":"ADDCODE","RD":"RD","PC":"PC","PCN":"PCN","NAM":"NAM","BLD":"BLD","ROOM":"ROOM","RDSUBBR":"RDSUBBR"}},"aefId":"aefId","interfaceDescriptions":[{"ipv6Addr":"ipv6Addr","grantTypes":[null,null],"securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},{"ipv6Addr":"ipv6Addr","grantTypes":[null,null],"securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"}],"serviceKpis":{"avalMem":"avalMem","avalStor":"avalStor","avalComp":"avalComp","conBand":0,"maxRestime":0,"availability":0,"maxReqRate":0,"avalGraComp":"avalGraComp"}},{"protocol":"HTTP_1_1","grantTypes":["CLIENT_CREDENTIALS","CLIENT_CREDENTIALS"],"ueIpRange":{"ueIpv4AddrRanges":[{"start":"198.51.100.1","end":"198.51.100.1"},{"start":"198.51.100.1","end":"198.51.100.1"}],"ueIpv6AddrRanges":[{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"},{"start":"2001:db8:85a3::8a2e:370:7334","end":"2001:db8:85a3::8a2e:370:7334"}]},"securityMethods":["PSK","PSK"],"versions":[{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"},{"apiVersion":"apiVersion","resources":[{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"},{"operations":[null,null],"commType":"REQUEST_RESPONSE","custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"description":"description","resourceName":"resourceName","custOpName":"custOpName","uri":"uri"}],"custOperations":[{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"},{"operations":["GET","GET"],"description":"description","custOpName":"custOpName"}],"expiry":"2000-01-23T04:56:07.000+00:00"}],"dataFormat":"JSON","domainName":"domainName","aefLocation":{"dcId":"dcId","geoArea":{"shape":"POINT","point":{"lon":36.988422590534526,"lat":-63.615366350946985}},"civicAddr":{"POBOX":"POBOX","usageRules":"usageRules","country":"country","PRD":"PRD","PLC":"PLC","HNO":"HNO","PRM":"PRM","HNS":"HNS","FLR":"FLR","A1":"A1","A2":"A2","A3":"A3","A4":"A4","STS":"STS","A5":"A5","A6":"A6","RDSEC":"RDSEC","providedBy":"providedBy","LOC":"LOC","UNIT":"UNIT","SEAT":"SEAT","POD":"POD","RDBR":"RDBR","method":"method","LMK":"LMK","POM":"POM","ADDCODE":"ADDCODE","RD":"RD","PC":"PC","PCN":"PCN","NAM":"NAM","BLD":"BLD","ROOM":"ROOM","RDSUBBR":"RDSUBBR"}},"aefId":"aefId","interfaceDescriptions":[{"ipv6Addr":"ipv6Addr","grantTypes":[null,null],"securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},{"ipv6Addr":"ipv6Addr","grantTypes":[null,null],"securityMethods":[null,null],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"}],"serviceKpis":{"avalMem":"avalMem","avalStor":"avalStor","avalComp":"avalComp","conBand":0,"maxRestime":0,"availability":0,"maxReqRate":0,"avalGraComp":"avalGraComp"}}],"pubApiPath":{"ccfIds":["ccfIds","ccfIds"]}} headers = { 'Accept': 'application/json', 'Content-Type': 'application/json', diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/test/test_individual_apf_published_api_controller.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/test/test_individual_apf_published_api_controller.py index 76ef07950be6c5c7741944d89558faa4c457d238..c9664f15017ceed886888771eb336d2eba60dd60 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/test/test_individual_apf_published_api_controller.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/test/test_individual_apf_published_api_controller.py @@ -1,6 +1,9 @@ import unittest from flask import json +from published_apis.models.problem_details import ProblemDetails # noqa: E501 +from published_apis.models.service_api_description import ServiceAPIDescription # noqa: E501 +from published_apis.models.service_api_description_patch import ServiceAPIDescriptionPatch # noqa: E501 from published_apis.test import BaseTestCase diff --git a/services/TS29222_CAPIF_Publish_Service_API/published_apis/typing_utils.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/typing_utils.py index d21c4f633653a0eae75d04b2f6eff684ff9d200d..74e3c913a7db6246bc765f147ca872996112c6bb 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/typing_utils.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_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_Publish_Service_API/published_apis/vendor_specific.py b/services/TS29222_CAPIF_Publish_Service_API/published_apis/vendor_specific.py index 21fd6b6d0a6676e5a1b19efbaaf0adec32e694d4..97cfd8001ffa56350b21ebcedb9f5b9ba83a694e 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/published_apis/vendor_specific.py +++ b/services/TS29222_CAPIF_Publish_Service_API/published_apis/vendor_specific.py @@ -1,5 +1,6 @@ import re + def find_attribute_in_body(test, path): f_key = [] if type(test) == dict: diff --git a/services/TS29222_CAPIF_Publish_Service_API/setup.py b/services/TS29222_CAPIF_Publish_Service_API/setup.py index 8b1c991255816f36ad3ecced8745484a6162e5a6..9cd039a1bc7640b1fd10d53f0531b12407a742f5 100644 --- a/services/TS29222_CAPIF_Publish_Service_API/setup.py +++ b/services/TS29222_CAPIF_Publish_Service_API/setup.py @@ -1,4 +1,5 @@ -from setuptools import setup, find_packages + +from setuptools import find_packages, setup NAME = "published_apis" VERSION = "1.0.0" diff --git a/services/TS29222_CAPIF_Routing_Info_API/.openapi-generator/FILES b/services/TS29222_CAPIF_Routing_Info_API/.openapi-generator/FILES index be8f43b72f15e9d43510b5fa60ebd25e0872a090..850cbed46d8e4ac07390cf5d14736db4d0d18d56 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/.openapi-generator/FILES +++ b/services/TS29222_CAPIF_Routing_Info_API/.openapi-generator/FILES @@ -34,6 +34,7 @@ capif_routing_info/models/ipv6_address_range1.py capif_routing_info/models/local2d_point_uncertainty_ellipse.py capif_routing_info/models/local3d_point_uncertainty_ellipsoid.py capif_routing_info/models/local_origin.py +capif_routing_info/models/o_auth_grant_type.py capif_routing_info/models/operation.py capif_routing_info/models/point.py capif_routing_info/models/point_altitude.py diff --git a/services/TS29222_CAPIF_Routing_Info_API/.openapi-generator/VERSION b/services/TS29222_CAPIF_Routing_Info_API/.openapi-generator/VERSION index 18bb4182dd01428f1d4c3c2145501ee5d40455a3..b23eb27529e2bacf6c8c06f725c323d9fb87f042 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/.openapi-generator/VERSION +++ b/services/TS29222_CAPIF_Routing_Info_API/.openapi-generator/VERSION @@ -1 +1 @@ -7.5.0 +7.11.0 diff --git a/services/TS29222_CAPIF_Routing_Info_API/README.md b/services/TS29222_CAPIF_Routing_Info_API/README.md index edacb4a6f8839ed6e00ca6b7250bd7aca3d9df43..b239418e6ca48afcab32df49aeb265a57a253a3c 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/README.md +++ b/services/TS29222_CAPIF_Routing_Info_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 capif_routing_info ``` and open your browser to here: diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/app.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/app.py index 48e8769b25cbe6c591bc4486b116d21def6a8fe0..4df40da69432a169b724788f808ba260a0d775f0 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/app.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/app.py @@ -1,7 +1,6 @@ #!/usr/bin/env python3 import connexion - import encoder app = connexion.App(__name__, specification_dir='openapi/') diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/controllers/default_controller.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/controllers/default_controller.py index 9dafc055a9b0e9e95accef08aaf07610d76331ac..575fc24577116a078df5342b9a1462681ebc80e1 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/controllers/default_controller.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/controllers/default_controller.py @@ -1,11 +1,6 @@ -import connexion -from typing import Dict -from typing import Tuple -from typing import Union from capif_routing_info.models.problem_details import ProblemDetails # noqa: E501 from capif_routing_info.models.routing_info import RoutingInfo # noqa: E501 -from capif_routing_info import util def service_apis_service_api_id_get(service_api_id, aef_id, supp_feat=None): # noqa: E501 diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/controllers/security_controller.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/controllers/security_controller.py index 6d294ffd6df1a26a469dbb4e72533b01503468dd..8b137891791fe96927ad78e64b0aad7bded08bdc 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/controllers/security_controller.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/controllers/security_controller.py @@ -1,2 +1 @@ -from typing import List diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/encoder.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/encoder.py index ba7c4d5e37a65102002ee1a785da9eb1e49da013..61d252c5e965bac05ac1b9bd589e72b70023b516 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/encoder.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/encoder.py @@ -1,7 +1,5 @@ -from connexion.jsonifier import JSONEncoder -import six - from capif_routing_info.models.base_model import Model +from connexion.jsonifier import JSONEncoder class CustomJSONEncoder(JSONEncoder): diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/aef_location.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/aef_location.py index f0e756be690433fcf944def5f64229fd20e75748..aede9133a325c6682962fc375903c6acadcd0ead 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/aef_location.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/aef_location.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/aef_profile.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/aef_profile.py index ccf24ad69e698692adb1f873fa673cd204a7b6fe..62efcf1933982f08fdec8ac9ba615ee15cf59186 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/aef_profile.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/aef_profile.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.aef_location import AefLocation # noqa: E501 @@ -7,6 +7,7 @@ from capif_routing_info.models.base_model import Model from capif_routing_info.models.data_format import DataFormat # noqa: E501 from capif_routing_info.models.interface_description import InterfaceDescription # noqa: E501 from capif_routing_info.models.ip_addr_range import IpAddrRange # noqa: E501 +from capif_routing_info.models.o_auth_grant_type import OAuthGrantType # noqa: E501 from capif_routing_info.models.protocol import Protocol # noqa: E501 from capif_routing_info.models.security_method import SecurityMethod # noqa: E501 from capif_routing_info.models.service_kpis import ServiceKpis # noqa: E501 @@ -19,7 +20,7 @@ class AefProfile(Model): 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 +33,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 +52,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 +66,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 +79,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 +216,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_Routing_Info_API/capif_routing_info/models/civic_address.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/civic_address.py index e12616c961824a301b1af41fe3dbf471ec6ba956..46b947c1d84995f8b1c124e2f7d3a9557e085804 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/civic_address.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/civic_address.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/communication_type.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/communication_type.py index 02f3063dda850439667db3d3ee6a07c28d7be1e9..84355f1b16295dc3d0eb46736fc35494b5b1fe12 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/communication_type.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/communication_type.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/custom_operation.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/custom_operation.py index 6ea6b7059ce6f8d02a9b784008d62a95731d4e2f..d6a2f42a3104b9149eafe68ef56b6fbaa00e9ce4 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/custom_operation.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/custom_operation.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/data_format.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/data_format.py index 3b453d17bc4f39e447f89c96913113c721558905..8c400e5eca82cd8eaa526c92d6c2ee2e2c503a5a 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/data_format.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/data_format.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ellipsoid_arc.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ellipsoid_arc.py index 790d70a094bdf1a4de495c033be74595d004de61..246c731e1ce7b941bed67947d7a8106555fb41f1 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ellipsoid_arc.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ellipsoid_arc.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model +from capif_routing_info.models.gad_shape import GADShape # noqa: E501 from capif_routing_info.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from capif_routing_info.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/gad_shape.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/gad_shape.py index de28747699d8840f565a4408119912eee256510f..c4606e3addf004a87ad47faee99e0125aaae8a54 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/gad_shape.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/gad_shape.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/geographic_area.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/geographic_area.py index f0fd6607f0701b96db86c9be546b1f1cb823114b..83b2f60ac2c2c0dcb7aa3ec96295a4b3a8844536 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/geographic_area.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/geographic_area.py @@ -1,9 +1,16 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model +from capif_routing_info.models.ellipsoid_arc import EllipsoidArc # noqa: E501 from capif_routing_info.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 +from capif_routing_info.models.point import Point # noqa: E501 +from capif_routing_info.models.point_altitude import PointAltitude # noqa: E501 +from capif_routing_info.models.point_altitude_uncertainty import PointAltitudeUncertainty # noqa: E501 +from capif_routing_info.models.point_uncertainty_circle import PointUncertaintyCircle # noqa: E501 +from capif_routing_info.models.point_uncertainty_ellipse import PointUncertaintyEllipse # noqa: E501 +from capif_routing_info.models.polygon import Polygon # noqa: E501 from capif_routing_info.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 from capif_routing_info.models.uncertainty_ellipse import UncertaintyEllipse # noqa: E501 diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/geographical_coordinates.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/geographical_coordinates.py index 8b0e51f2785d65a76975f5d71d8d1dfa80570f15..e33c892b620f5856605531a3bf763710ce4c034c 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/geographical_coordinates.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/geographical_coordinates.py @@ -1,9 +1,8 @@ from datetime import date, datetime # noqa: F401 +from typing import Dict, List # noqa: F401 -from typing import List, Dict # noqa: F401 - -from capif_routing_info.models.base_model import Model from capif_routing_info import util +from capif_routing_info.models.base_model import Model class GeographicalCoordinates(Model): diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/interface_description.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/interface_description.py index 6d0075be6c8732003d5184a3993e5df6e3183dd0..e895f9dbcdf8be5e5d76d0369930157e830518a9 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/interface_description.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/interface_description.py @@ -1,9 +1,10 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model +from capif_routing_info.models.o_auth_grant_type import OAuthGrantType # noqa: E501 from capif_routing_info.models.security_method import SecurityMethod # noqa: E501 @@ -13,7 +14,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 +29,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 +38,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 +48,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 +58,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 +142,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 +220,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_Routing_Info_API/capif_routing_info/models/invalid_param.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/invalid_param.py index 3014346fa88dc43513de02189977734f0fc0fcd2..b42e24b5f26b70398fca28d2d275e01e7bdbda73 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/invalid_param.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/invalid_param.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ip_addr_range.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ip_addr_range.py index 6fa0acf3a648c993cc37968a0925723c3406d460..b9869baf6afd0fb77d256742e9a28f79fcfef4de 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ip_addr_range.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ip_addr_range.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ipv4_address_range.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ipv4_address_range.py index a8025b6cb70da8555be363e1ac5ef1a59026ff85..cdde631bae1ca0c5aea3bd55598169fa48aefd18 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ipv4_address_range.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ipv4_address_range.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model @@ -65,7 +65,7 @@ class Ipv4AddressRange(Model): :type start: str """ 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 @@ -90,6 +90,6 @@ class Ipv4AddressRange(Model): :type end: str """ 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_Routing_Info_API/capif_routing_info/models/ipv4_address_range1.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ipv4_address_range1.py index ebb34a4abaf993a285dc769286c65b7f9db34367..beae3e04e7eb4885252671709d62cdf676990d4e 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ipv4_address_range1.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ipv4_address_range1.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model @@ -67,7 +67,7 @@ class Ipv4AddressRange1(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 +94,6 @@ class Ipv4AddressRange1(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_Routing_Info_API/capif_routing_info/models/ipv6_addr1.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ipv6_addr1.py index a08058027ebdc12cff398ed5b394e83bc9791fb0..bfe953152e3f1792dfc4863ea4d054a8522eec8c 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ipv6_addr1.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ipv6_addr1.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ipv6_address_range.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ipv6_address_range.py index 2067eb2d4600f322d0bce17c8676ce28733ede39..c419f267679d7414833d8da2c2e001ee734f7080 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ipv6_address_range.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ipv6_address_range.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ipv6_address_range1.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ipv6_address_range1.py index 270b9ac93a0ccf3bc6f4586f262595b80880f9ff..2efedbc22e95a5112548ff7516d5ff22f263183f 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ipv6_address_range1.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/ipv6_address_range1.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/local2d_point_uncertainty_ellipse.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/local2d_point_uncertainty_ellipse.py index c9b258b16c56b4118051ac79c9ddeb7d99cc4074..e1f2f11d61ce3df625961983b7533b92257c9306 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/local2d_point_uncertainty_ellipse.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/local2d_point_uncertainty_ellipse.py @@ -1,21 +1,15 @@ from datetime import date, datetime # noqa: F401 +from typing import Dict, List # noqa: F401 -from typing import List, Dict # noqa: F401 - -from capif_routing_info.models.base_model import Model -from capif_routing_info.models.gad_shape import GADShape -from capif_routing_info.models.local_origin import LocalOrigin -from capif_routing_info.models.relative_cartesian_location import RelativeCartesianLocation -from capif_routing_info.models.supported_gad_shapes import SupportedGADShapes -from capif_routing_info.models.uncertainty_ellipse import UncertaintyEllipse from capif_routing_info import util - +from capif_routing_info.models.base_model import Model from capif_routing_info.models.gad_shape import GADShape # noqa: E501 from capif_routing_info.models.local_origin import LocalOrigin # noqa: E501 from capif_routing_info.models.relative_cartesian_location import RelativeCartesianLocation # noqa: E501 from capif_routing_info.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 from capif_routing_info.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_Routing_Info_API/capif_routing_info/models/local3d_point_uncertainty_ellipsoid.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/local3d_point_uncertainty_ellipsoid.py index 2539de2ce701974bc68b9d0873ef30d0eb853fa0..f494ead2a284323f4f0eafe2d8214cd73c23a096 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/local3d_point_uncertainty_ellipsoid.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/local3d_point_uncertainty_ellipsoid.py @@ -1,28 +1,22 @@ from datetime import date, datetime # noqa: F401 +from typing import Dict, List # noqa: F401 -from typing import List, Dict # noqa: F401 - -from capif_routing_info.models.base_model import Model -from capif_routing_info.models.gad_shape import GADShape -from capif_routing_info.models.local_origin import LocalOrigin -from capif_routing_info.models.relative_cartesian_location import RelativeCartesianLocation -from capif_routing_info.models.supported_gad_shapes import SupportedGADShapes -from capif_routing_info.models.uncertainty_ellipsoid import UncertaintyEllipsoid from capif_routing_info import util - +from capif_routing_info.models.base_model import Model from capif_routing_info.models.gad_shape import GADShape # noqa: E501 from capif_routing_info.models.local_origin import LocalOrigin # noqa: E501 from capif_routing_info.models.relative_cartesian_location import RelativeCartesianLocation # noqa: E501 from capif_routing_info.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 from capif_routing_info.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 @@ -35,13 +29,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 = { @@ -49,7 +46,8 @@ class Local3dPointUncertaintyEllipsoid(Model): 'local_origin': 'localOrigin', 'point': 'point', 'uncertainty_ellipsoid': 'uncertaintyEllipsoid', - 'confidence': 'confidence' + 'confidence': 'confidence', + 'v_confidence': 'vConfidence' } self._shape = shape @@ -57,6 +55,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': @@ -189,3 +188,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_Routing_Info_API/capif_routing_info/models/local_origin.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/local_origin.py index 8eb4a75aa3736a6a1c1c3ed99035c8ace4ed5441..a301c3ac640d9b878e32f090d0f740cc491d4be8 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/local_origin.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/local_origin.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model +from capif_routing_info.models.geographic_area import GeographicArea # noqa: E501 from capif_routing_info.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 @@ -12,26 +13,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 +73,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 +98,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_Routing_Info_API/capif_routing_info/models/o_auth_grant_type.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/o_auth_grant_type.py new file mode 100644 index 0000000000000000000000000000000000000000..eabc37f6c2f9293968dbff73bb44a820618092b6 --- /dev/null +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/o_auth_grant_type.py @@ -0,0 +1,33 @@ +from datetime import date, datetime # noqa: F401 +from typing import Dict, List # noqa: F401 + +from capif_routing_info import util +from capif_routing_info.models.base_model import Model + + +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_Routing_Info_API/capif_routing_info/models/operation.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/operation.py index 3e0511a1860ec3f6d451cf77f5e7655c10d6fd75..b72c36a01e02f240f217b4b8cfe23f89f556a976 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/operation.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/operation.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/point.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/point.py index 471c405c488739b2ea9b8bed187d30e82391a532..a6f38782a4c13997bc91c54e2193460d06ce0b4a 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/point.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/point.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model +from capif_routing_info.models.gad_shape import GADShape # noqa: E501 from capif_routing_info.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from capif_routing_info.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/point_altitude.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/point_altitude.py index 8524f90298135d054c687cc304afb06753a32624..72156c95accd736576d9ae3f9af19da600a925fb 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/point_altitude.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/point_altitude.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model +from capif_routing_info.models.gad_shape import GADShape # noqa: E501 from capif_routing_info.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from capif_routing_info.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/point_altitude_uncertainty.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/point_altitude_uncertainty.py index fdcea5e2713a88881a422e4fc1a2172b9aef963d..63f0459a392fb043ae96cb1cf1ce38ed92a5bc90 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/point_altitude_uncertainty.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/point_altitude_uncertainty.py @@ -1,19 +1,14 @@ from datetime import date, datetime # noqa: F401 +from typing import Dict, List # noqa: F401 -from typing import List, Dict # noqa: F401 - -from capif_routing_info.models.base_model import Model -from capif_routing_info.models.gad_shape import GADShape -from capif_routing_info.models.geographical_coordinates import GeographicalCoordinates -from capif_routing_info.models.supported_gad_shapes import SupportedGADShapes -from capif_routing_info.models.uncertainty_ellipse import UncertaintyEllipse from capif_routing_info import util - +from capif_routing_info.models.base_model import Model from capif_routing_info.models.gad_shape import GADShape # noqa: E501 from capif_routing_info.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from capif_routing_info.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 from capif_routing_info.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_Routing_Info_API/capif_routing_info/models/point_uncertainty_circle.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/point_uncertainty_circle.py index 80faac436162d573d9f9ace49bbeec0a11cc21ca..7a7e2cd8a9a79b045d83da05ca8fc94382fdfbdf 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/point_uncertainty_circle.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/point_uncertainty_circle.py @@ -1,17 +1,13 @@ from datetime import date, datetime # noqa: F401 +from typing import Dict, List # noqa: F401 -from typing import List, Dict # noqa: F401 - -from capif_routing_info.models.base_model import Model -from capif_routing_info.models.gad_shape import GADShape -from capif_routing_info.models.geographical_coordinates import GeographicalCoordinates -from capif_routing_info.models.supported_gad_shapes import SupportedGADShapes from capif_routing_info import util - +from capif_routing_info.models.base_model import Model from capif_routing_info.models.gad_shape import GADShape # noqa: E501 from capif_routing_info.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from capif_routing_info.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_Routing_Info_API/capif_routing_info/models/point_uncertainty_ellipse.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/point_uncertainty_ellipse.py index 03c55bf712de32ce6a2f6ac845c783e0d353b1ed..df2712164c10f378ffb3380df1db8add3ecb5c77 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/point_uncertainty_ellipse.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/point_uncertainty_ellipse.py @@ -1,19 +1,14 @@ from datetime import date, datetime # noqa: F401 +from typing import Dict, List # noqa: F401 -from typing import List, Dict # noqa: F401 - -from capif_routing_info.models.base_model import Model -from capif_routing_info.models.gad_shape import GADShape -from capif_routing_info.models.geographical_coordinates import GeographicalCoordinates -from capif_routing_info.models.supported_gad_shapes import SupportedGADShapes -from capif_routing_info.models.uncertainty_ellipse import UncertaintyEllipse from capif_routing_info import util - +from capif_routing_info.models.base_model import Model from capif_routing_info.models.gad_shape import GADShape # noqa: E501 from capif_routing_info.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from capif_routing_info.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 from capif_routing_info.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_Routing_Info_API/capif_routing_info/models/polygon.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/polygon.py index 977b02264d6e0f1988660ce5423fd4f96b9ffaf8..c4e0ed43a1c612faba708efb6da736053a3ac850 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/polygon.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/polygon.py @@ -1,8 +1,9 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model +from capif_routing_info.models.gad_shape import GADShape # noqa: E501 from capif_routing_info.models.geographical_coordinates import GeographicalCoordinates # noqa: E501 from capif_routing_info.models.supported_gad_shapes import SupportedGADShapes # noqa: E501 diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/problem_details.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/problem_details.py index e2a91365ae14fe297d8c12b6a2b54a31b07566c7..d095ab5a0f7869c35f0e371b003887d381589a82 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/problem_details.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/problem_details.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model @@ -259,6 +259,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_Routing_Info_API/capif_routing_info/models/protocol.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/protocol.py index 48cda2a8fbf79ffff6fde64dc11a85029db46d18..59c0a37d65d9834f28d5b103cc96e5120898a377 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/protocol.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/protocol.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/relative_cartesian_location.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/relative_cartesian_location.py index 592f4bc6f6168af43830e8f6f7c19403e3d11d3b..b71e9ce1b4cc9c9080fde9c332331730c98984ae 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/relative_cartesian_location.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/relative_cartesian_location.py @@ -1,9 +1,8 @@ from datetime import date, datetime # noqa: F401 +from typing import Dict, List # noqa: F401 -from typing import List, Dict # noqa: F401 - -from capif_routing_info.models.base_model import Model from capif_routing_info import util +from capif_routing_info.models.base_model import Model class RelativeCartesianLocation(Model): diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/resource.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/resource.py index 11872f4956b1bf735f272764f90a9c4bf52b2f8b..ee34d66fab1f64cd542967a9f7455c0c46ffd5cb 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/resource.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/resource.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/routing_info.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/routing_info.py index e81e9048a76c696da9a358140882987a246a76eb..9615bb65153cfc2fd418645d0c8267dcceb91c0a 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/routing_info.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/routing_info.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/routing_rule.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/routing_rule.py index 14216c31d50518bcb63cd014e1406b0257c35527..f5072e733c0002c0c99c5f4cd1100696f5f1b91d 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/routing_rule.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/routing_rule.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.aef_profile import AefProfile # noqa: E501 diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/security_method.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/security_method.py index dc073f400e54197b4644303edcd593ddca912869..948a0e089daf765bf2fe503474e7ba21831964a0 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/security_method.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/security_method.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/service_kpis.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/service_kpis.py index 05926a00f7016ce60d930cfc065969673c500fda..b06404f71cefeb1f66c19b1950c6f4623c5b4004 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/service_kpis.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/service_kpis.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model @@ -170,7 +170,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 +195,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 +220,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 +245,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_Routing_Info_API/capif_routing_info/models/supported_gad_shapes.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/supported_gad_shapes.py index 98407a0e203a26f5b3650c7f16429b97af3f4dfa..ef3f27bad0e980acbe614f2b169b20efc899a535 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/supported_gad_shapes.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/supported_gad_shapes.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/uncertainty_ellipse.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/uncertainty_ellipse.py index 9d802dd4c13e7dc4e6c47054f367119fe8edd1c1..00d8acb97933eedfb03d721c049bb160bed83c34 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/uncertainty_ellipse.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/uncertainty_ellipse.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/uncertainty_ellipsoid.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/uncertainty_ellipsoid.py index 45538ba797abdfca3825c1dc1f69f3458ab74f75..c1307ee35664c5dac0674fac7f4b40a8652052de 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/uncertainty_ellipsoid.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/uncertainty_ellipsoid.py @@ -1,9 +1,8 @@ from datetime import date, datetime # noqa: F401 +from typing import Dict, List # noqa: F401 -from typing import List, Dict # noqa: F401 - -from capif_routing_info.models.base_model import Model from capif_routing_info import util +from capif_routing_info.models.base_model import Model class UncertaintyEllipsoid(Model): diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/version.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/version.py index 6e7df34151ca1fa86ec73bc191ffab1332456376..990be9ce880456035f83ac1a90522c249e3e9c6a 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/version.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/models/version.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_routing_info import util from capif_routing_info.models.base_model import Model diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/openapi/openapi.yaml b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/openapi/openapi.yaml index 5e93c85aac7ab73a113427949cca3bac11566a58..218463684f74a4c6ed85323ac37533ce01962499 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/openapi/openapi.yaml +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/openapi/openapi.yaml @@ -1,11 +1,11 @@ openapi: 3.0.0 info: - description: "API for Routing information. \n© 2022, 3GPP Organizational Partners\ + description: "API for Routing information. \n© 2024, 3GPP Organizational Partners\ \ (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). \nAll rights reserved.\n" title: CAPIF_Routing_Info_API - version: 1.2.0-alpha.1 + version: 1.2.0 externalDocs: - description: 3GPP TS 29.222 V18.0.0 Common API Framework for 3GPP Northbound APIs + description: 3GPP TS 29.222 V18.6.0 Common API Framework for 3GPP Northbound APIs url: https://www.3gpp.org/ftp/Specs/archive/29_series/29.222/ servers: - url: "{apiRoot}/capif-routing-info/v1" @@ -209,6 +209,9 @@ components: end: end aefProfile: protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -387,6 +390,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -395,6 +401,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -423,6 +432,9 @@ components: end: end aefProfile: protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -601,6 +613,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -609,6 +624,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -651,6 +669,9 @@ components: end: end aefProfile: protocol: HTTP_1_1 + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS ueIpRange: ueIpv4AddrRanges: - start: 198.51.100.1 @@ -829,6 +850,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -837,6 +861,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -997,6 +1024,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 @@ -1175,6 +1205,9 @@ components: aefId: aefId interfaceDescriptions: - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1183,6 +1216,9 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr - ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1200,11 +1236,9 @@ components: maxReqRate: 0 avalGraComp: avalGraComp nullable: true - oneOf: - - required: - - domainName - - required: - - interfaceDescriptions + oneOf: + - required: ["domainName"] + - required: ["interfaceDescriptions"] properties: aefId: description: Identifier of the API exposing function @@ -1228,6 +1262,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 @@ -1407,14 +1447,10 @@ components: title: Resource type: object CommunicationType: - anyOf: - - enum: + enum: - REQUEST_RESPONSE - SUBSCRIBE_NOTIFY - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates a communication type of the resource or the custom operation.\ \ \nPossible values are:\n- REQUEST_RESPONSE: The communication is of the\ \ type request-response.\n- SUBSCRIBE_NOTIFY: The communication is of the\ @@ -1455,32 +1491,24 @@ components: title: CustomOperation type: object Operation: - anyOf: - - enum: + enum: - GET - POST - PUT - PATCH - DELETE - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates an HTTP method. \nPossible values are:\n- GET: HTTP\ \ GET method.\n- POST: HTTP POST method.\n- PUT: HTTP PUT method.\n- PATCH:\ \ HTTP PATCH method.\n- DELETE: HTTP DELETE method.\n" title: Operation Protocol: - anyOf: - - enum: + enum: - HTTP_1_1 - HTTP_2 - MQTT - WEBSOCKET - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates a protocol and protocol version used by the API. \n\ Possible values are:\n- HTTP_1_1: Indicates that the protocol is HTTP version\ \ 1.1.\n- HTTP_2: Indicates that the protocol is HTTP version 2.\n- MQTT:\ @@ -1488,30 +1516,22 @@ components: \ Indicates that the protocol is Websocket.\n" title: Protocol DataFormat: - anyOf: - - enum: + enum: - JSON - XML - PROTOBUF3 - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates a data format. \nPossible values are:\n- JSON: Indicates\ \ that the data format is JSON.\n- XML: Indicates that the data format is\ \ Extensible Markup Language.\n- PROTOBUF3: Indicates that the data format\ \ is Protocol buffers version 3.\n" title: DataFormat SecurityMethod: - anyOf: - - enum: + enum: - PSK - PKI - OAUTH - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates the security method. \nPossible values are:\n- PSK:\ \ Security method 1 (Using TLS-PSK) as described in 3GPP TS 33.122.\n- PKI:\ \ Security method 2 (Using PKI) as described in 3GPP TS 33.122.\n- OAUTH:\ @@ -1521,6 +1541,9 @@ components: description: Represents the description of an API's interface. example: ipv6Addr: ipv6Addr + grantTypes: + - null + - null securityMethods: - null - null @@ -1529,13 +1552,10 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr nullable: true - oneOf: - - required: - - ipv4Addr - - required: - - ipv6Addr - - required: - - fqdn + oneOf: + - required: ["fqdn"] + - required: ["ipv4Addr"] + - required: ["ipv6Addr"] properties: ipv4Addr: description: | @@ -1574,6 +1594,12 @@ components: minItems: 1 title: securityMethods type: array + grantTypes: + items: + $ref: '#/components/schemas/OAuthGrantType' + minItems: 1 + title: grantTypes + type: array title: InterfaceDescription type: object AefLocation: @@ -1696,7 +1722,9 @@ components: title: ServiceKpis type: object IpAddrRange: - anyOf: [] + anyOf: + - required: ["ueIpv4AddrRanges"] + - required: ["ueIpv6AddrRanges"] description: Represents the list of public IP ranges example: ueIpv4AddrRanges: @@ -1739,6 +1767,19 @@ components: pattern: "^(([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])$" title: Ipv4Addr type: string + OAuthGrantType: + enum: + - CLIENT_CREDENTIALS + - AUTHORIZATION_CODE + - AUTHORIZATION_CODE_WITH_PKCE + 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 DateTime: description: string with format "date-time" as defined in OpenAPI. format: date-time @@ -1954,8 +1995,7 @@ components: title: GADShape type: object SupportedGADShapes: - anyOf: - - enum: + enum: - POINT - POINT_UNCERTAINTY_CIRCLE - POINT_UNCERTAINTY_ELLIPSE @@ -1968,8 +2008,7 @@ components: - DISTANCE_DIRECTION - RELATIVE_2D_LOCATION_UNCERTAINTY_ELLIPSE - RELATIVE_3D_LOCATION_UNCERTAINTY_ELLIPSOID - type: string - - type: string + type: string description: Indicates supported GAD shapes. title: SupportedGADShapes PointUncertaintyCircle: @@ -2197,8 +2236,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: @@ -2234,6 +2291,8 @@ components: $ref: '#/components/schemas/UncertaintyEllipsoid' confidence: $ref: '#/components/schemas/Confidence' + vConfidence: + $ref: '#/components/schemas/Confidence' required: - confidence - localOrigin @@ -2326,9 +2385,6 @@ components: title: Ipv6AddressRange_1 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_Routing_Info_API/capif_routing_info/test/test_default_controller.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/test/test_default_controller.py index e90ce9235112e14d0517a5508215f5dae8c2c4c6..cf2e7c38182b332a62e9da67b6011e3d6657a2f5 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/test/test_default_controller.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/test/test_default_controller.py @@ -1,5 +1,7 @@ import unittest +from capif_routing_info.models.problem_details import ProblemDetails # noqa: E501 +from capif_routing_info.models.routing_info import RoutingInfo # noqa: E501 from capif_routing_info.test import BaseTestCase diff --git a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/util.py b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/util.py index 6f369d510e55cbab6fb999fe743b26757c2e91c1..fc17a1caf0e6643d07026f90da90d1fcbed857bc 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/util.py +++ b/services/TS29222_CAPIF_Routing_Info_API/capif_routing_info/util.py @@ -1,6 +1,5 @@ import datetime -import typing from capif_routing_info import typing_utils diff --git a/services/TS29222_CAPIF_Routing_Info_API/setup.py b/services/TS29222_CAPIF_Routing_Info_API/setup.py index 6d66c72675bb2bd84baebd370e98e511f3312eba..327037e0efdf06c6e4bcf9aa870bbe6ad277ca7f 100644 --- a/services/TS29222_CAPIF_Routing_Info_API/setup.py +++ b/services/TS29222_CAPIF_Routing_Info_API/setup.py @@ -1,4 +1,5 @@ -from setuptools import setup, find_packages + +from setuptools import find_packages, setup NAME = "capif_routing_info" VERSION = "1.0.0" @@ -30,7 +31,7 @@ setup( entry_points={ 'console_scripts': ['capif_routing_info=capif_routing_info.__main__:main']}, long_description="""\ - API for Routing information. © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. + API for Routing information. © 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. """ ) diff --git a/services/TS29222_CAPIF_Security_API/.openapi-generator/FILES b/services/TS29222_CAPIF_Security_API/.openapi-generator/FILES index 1fd34c24a0763985d9f135288f82a424d7f4c66d..a3947acd44363fa560ce0e5e3c34285ccf95a204 100644 --- a/services/TS29222_CAPIF_Security_API/.openapi-generator/FILES +++ b/services/TS29222_CAPIF_Security_API/.openapi-generator/FILES @@ -22,9 +22,11 @@ capif_security/models/cause.py capif_security/models/interface_description.py capif_security/models/invalid_param.py capif_security/models/invalid_param1.py +capif_security/models/ml_model_inter_ind.py capif_security/models/nf_type.py capif_security/models/no_profile_match_info.py capif_security/models/no_profile_match_reason.py +capif_security/models/nwdaf_event.py capif_security/models/o_auth_grant_type.py capif_security/models/plmn_id.py capif_security/models/plmn_id_nid.py diff --git a/services/TS29222_CAPIF_Security_API/.openapi-generator/VERSION b/services/TS29222_CAPIF_Security_API/.openapi-generator/VERSION index 18bb4182dd01428f1d4c3c2145501ee5d40455a3..b23eb27529e2bacf6c8c06f725c323d9fb87f042 100644 --- a/services/TS29222_CAPIF_Security_API/.openapi-generator/VERSION +++ b/services/TS29222_CAPIF_Security_API/.openapi-generator/VERSION @@ -1 +1 @@ -7.5.0 +7.11.0 diff --git a/services/TS29222_CAPIF_Security_API/README.md b/services/TS29222_CAPIF_Security_API/README.md index 6534bceb3d41c0580fba545343824b1629f05bd8..66df10994ad85cbdf33b6eda4b8bfcf0d0ca940b 100644 --- a/services/TS29222_CAPIF_Security_API/README.md +++ b/services/TS29222_CAPIF_Security_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 capif_security ``` and open your browser to here: diff --git a/services/TS29222_CAPIF_Security_API/capif_security/app.py b/services/TS29222_CAPIF_Security_API/capif_security/app.py index c61896eea8d8488eb0d5dbc1053df55238292c2d..f4f39fde845188be2a9768e7d1a71093c05a4ddc 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/app.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/app.py @@ -6,6 +6,9 @@ from datetime import datetime from logging.handlers import RotatingFileHandler import connexion +import encoder +from config import Config +from core.consumer_messager import Subscriber from flask_apscheduler import APScheduler from flask_executor import Executor from flask_jwt_extended import JWTManager @@ -19,10 +22,6 @@ from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import BatchSpanProcessor from opentelemetry.trace.propagation.tracecontext import TraceContextTextMapPropagator -import encoder -from config import Config -from core.consumer_messager import Subscriber - NAME = "Security-Service" # Setting log level @@ -36,7 +35,7 @@ def configure_monitoring(app, config): fluent_bit_host = config['monitoring']['fluent_bit_host'] fluent_bit_port = config['monitoring']['fluent_bit_port'] fluent_bit_sender = sender.FluentSender('Security-Service', host=fluent_bit_host, port=fluent_bit_port) - propagator = TraceContextTextMapPropagator() + TraceContextTextMapPropagator() tracer_provider = TracerProvider(resource=resource) trace.set_tracer_provider(tracer_provider) diff --git a/services/TS29222_CAPIF_Security_API/capif_security/controllers/default_controller.py b/services/TS29222_CAPIF_Security_API/capif_security/controllers/default_controller.py index 3609bd8f17bb6f3267fa72750280e82c61ef5d04..385d3cfd4a8c6bb03a4f517c8863e1e0141dec3c 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/controllers/default_controller.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/controllers/default_controller.py @@ -5,7 +5,7 @@ from capif_security.models.security_notification import SecurityNotification # from capif_security.models.service_security import ServiceSecurity # noqa: E501 from cryptography import x509 from cryptography.hazmat.backends import default_backend -from flask import request, current_app +from flask import current_app, request from ..core.publisher import Publisher from ..core.redis_internal_event import RedisInternalEvent @@ -17,7 +17,6 @@ publish_ops = Publisher() valid_user = ControlAccess() - def cert_validation(): def _cert_validation(f): @wraps(f) @@ -51,7 +50,6 @@ def cert_validation(): return __cert_validation return _cert_validation - @cert_validation() def securities_security_id_token_post(security_id, body): # noqa: E501 """securities_security_id_token_post @@ -111,7 +109,6 @@ def trusted_invokers_api_invoker_id_delete(api_invoker_id): # noqa: E501 current_app.logger.info("Removing security context") return service_security_ops.delete_servicesecurity(api_invoker_id) - @cert_validation() def trusted_invokers_api_invoker_id_delete_post(api_invoker_id, body): # noqa: E501 """trusted_invokers_api_invoker_id_delete_post @@ -125,7 +122,6 @@ def trusted_invokers_api_invoker_id_delete_post(api_invoker_id, body): # noqa: :rtype: Union[None, Tuple[None, int], Tuple[None, int, Dict[str, str]] """ - if request.is_json: body = SecurityNotification.from_dict(request.get_json()) # noqa: E501 @@ -134,7 +130,6 @@ def trusted_invokers_api_invoker_id_delete_post(api_invoker_id, body): # noqa: return res - @cert_validation() def trusted_invokers_api_invoker_id_get(api_invoker_id, authentication_info=None, authorization_info=None): # noqa: E501 """trusted_invokers_api_invoker_id_get @@ -156,7 +151,6 @@ def trusted_invokers_api_invoker_id_get(api_invoker_id, authentication_info=None return res - @cert_validation() def trusted_invokers_api_invoker_id_put(api_invoker_id, body): # noqa: E501 """trusted_invokers_api_invoker_id_put @@ -188,7 +182,6 @@ def trusted_invokers_api_invoker_id_put(api_invoker_id, body): # noqa: E501 return res - @cert_validation() def trusted_invokers_api_invoker_id_update_post(api_invoker_id, body): # noqa: E501 """trusted_invokers_api_invoker_id_update_post diff --git a/services/TS29222_CAPIF_Security_API/capif_security/controllers/security_controller.py b/services/TS29222_CAPIF_Security_API/capif_security/controllers/security_controller.py index 139597f9cb07c5d48bed18984ec4747f4b4f3438..8b137891791fe96927ad78e64b0aad7bded08bdc 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/controllers/security_controller.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/controllers/security_controller.py @@ -1,2 +1 @@ - diff --git a/services/TS29222_CAPIF_Security_API/capif_security/core/redis_event.py b/services/TS29222_CAPIF_Security_API/capif_security/core/redis_event.py index c65a6a20313002902b4660493d05be5c4cd20a24..8dccdf3d3ad9ad7f9c1460d420390c421ab4289d 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/core/redis_event.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/core/redis_event.py @@ -1,7 +1,7 @@ import json -from .publisher import Publisher from ..encoder import CustomJSONEncoder +from .publisher import Publisher publisher_ops = Publisher() diff --git a/services/TS29222_CAPIF_Security_API/capif_security/core/redis_internal_event.py b/services/TS29222_CAPIF_Security_API/capif_security/core/redis_internal_event.py index 50e343424b8498d32078648978c719c923304353..c1ad0973675b69adf3a81bc9592feac33f0c2064 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/core/redis_internal_event.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/core/redis_internal_event.py @@ -1,7 +1,7 @@ import json -from .publisher import Publisher from ..encoder import JSONEncoder +from .publisher import Publisher publisher_ops = Publisher() diff --git a/services/TS29222_CAPIF_Security_API/capif_security/core/servicesecurity.py b/services/TS29222_CAPIF_Security_API/capif_security/core/servicesecurity.py index e0a9041b523a71042293002fda228f02eb627c9b..2cbc3e7779d87215267a2c85fd94e0ddc464710f 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/core/servicesecurity.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/core/servicesecurity.py @@ -9,14 +9,14 @@ from flask import current_app from flask_jwt_extended import create_access_token from pymongo import ReturnDocument -from .redis_event import RedisEvent -from .resources import Resource -from .responses import not_found_error, make_response, bad_request_error, internal_server_error, forbidden_error from ..core.publisher import Publisher from ..models.access_token_claims import AccessTokenClaims from ..models.access_token_err import AccessTokenErr from ..models.access_token_rsp import AccessTokenRsp -from ..util import dict_to_camel_case, clean_empty, serialize_clean_camel_case +from ..util import clean_empty, dict_to_camel_case, serialize_clean_camel_case +from .redis_event import RedisEvent +from .resources import Resource +from .responses import bad_request_error, forbidden_error, internal_server_error, make_response, not_found_error publish_ops = Publisher() diff --git a/services/TS29222_CAPIF_Security_API/capif_security/core/validate_user.py b/services/TS29222_CAPIF_Security_API/capif_security/core/validate_user.py index c3f70049a8f7cfc869839bed8563fe1e82304f7d..29180d1a1a697cae8a4548945c8e619c6791882f 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/core/validate_user.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/core/validate_user.py @@ -1,11 +1,11 @@ import json -from flask import current_app, Response +from flask import Response, current_app -from .resources import Resource -from .responses import internal_server_error, serialize_clean_camel_case from ..encoder import CustomJSONEncoder from ..models.problem_details import ProblemDetails +from .resources import Resource +from .responses import internal_server_error, serialize_clean_camel_case class ControlAccess(Resource): diff --git a/services/TS29222_CAPIF_Security_API/capif_security/models/access_token_claims.py b/services/TS29222_CAPIF_Security_API/capif_security/models/access_token_claims.py index 71d49c28b2f01a003dc9bdda6cd25a43f8bc2899..61a482b62939553c5673585c9c69e9f28a7a7f64 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/access_token_claims.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/access_token_claims.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.base_model import Model diff --git a/services/TS29222_CAPIF_Security_API/capif_security/models/access_token_err.py b/services/TS29222_CAPIF_Security_API/capif_security/models/access_token_err.py index b5d7f6f8e415d419bd42e9a819f7c73952adc860..3e7629b59cc6656802ee046b3f7c49106e2520cd 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/access_token_err.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/access_token_err.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.base_model import Model diff --git a/services/TS29222_CAPIF_Security_API/capif_security/models/access_token_err1.py b/services/TS29222_CAPIF_Security_API/capif_security/models/access_token_err1.py index 325b219770cb2e32fdaff49e727994030b09b5d8..efd3e8f4fa2e261ceaa3b285448722b2aff16e88 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/access_token_err1.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/access_token_err1.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.base_model import Model diff --git a/services/TS29222_CAPIF_Security_API/capif_security/models/access_token_req1.py b/services/TS29222_CAPIF_Security_API/capif_security/models/access_token_req1.py index b9e4ff408db15c09cd03ecf79f6a76e8b03a67a2..0530651a6dd30da7ebcb1f3194c282416b4d7f47 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/access_token_req1.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/access_token_req1.py @@ -1,10 +1,12 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.base_model import Model +from capif_security.models.ml_model_inter_ind import MlModelInterInd # noqa: E501 from capif_security.models.nf_type import NFType # noqa: E501 +from capif_security.models.nwdaf_event import NwdafEvent # noqa: E501 from capif_security.models.plmn_id import PlmnId # noqa: E501 from capif_security.models.plmn_id_nid import PlmnIdNid # noqa: E501 from capif_security.models.snssai import Snssai # noqa: E501 @@ -16,7 +18,7 @@ class AccessTokenReq1(Model): Do not edit the class manually. """ - def __init__(self, grant_type=None, nf_instance_id=None, nf_type=None, target_nf_type=None, scope=None, target_nf_instance_id=None, requester_plmn=None, requester_plmn_list=None, requester_snssai_list=None, requester_fqdn=None, requester_snpn_list=None, target_plmn=None, target_snpn=None, target_snssai_list=None, target_nsi_list=None, target_nf_set_id=None, target_nf_service_set_id=None, hnrf_access_token_uri=None, source_nf_instance_id=None): # noqa: E501 + def __init__(self, grant_type=None, nf_instance_id=None, nf_type=None, target_nf_type=None, scope=None, target_nf_instance_id=None, requester_plmn=None, requester_plmn_list=None, requester_snssai_list=None, requester_fqdn=None, requester_snpn_list=None, target_plmn=None, target_snpn=None, target_snssai_list=None, target_nsi_list=None, target_nf_set_id=None, target_nf_service_set_id=None, hnrf_access_token_uri=None, source_nf_instance_id=None, vendor_id=None, analytics_ids=None, requester_inter_ind_list=None, source_vendor_id=None): # noqa: E501 """AccessTokenReq1 - a model defined in OpenAPI :param grant_type: The grant_type of this AccessTokenReq1. # noqa: E501 @@ -57,6 +59,14 @@ class AccessTokenReq1(Model): :type hnrf_access_token_uri: str :param source_nf_instance_id: The source_nf_instance_id of this AccessTokenReq1. # noqa: E501 :type source_nf_instance_id: str + :param vendor_id: The vendor_id of this AccessTokenReq1. # noqa: E501 + :type vendor_id: str + :param analytics_ids: The analytics_ids of this AccessTokenReq1. # noqa: E501 + :type analytics_ids: List[NwdafEvent] + :param requester_inter_ind_list: The requester_inter_ind_list of this AccessTokenReq1. # noqa: E501 + :type requester_inter_ind_list: List[MlModelInterInd] + :param source_vendor_id: The source_vendor_id of this AccessTokenReq1. # noqa: E501 + :type source_vendor_id: str """ self.openapi_types = { 'grant_type': str, @@ -77,7 +87,11 @@ class AccessTokenReq1(Model): 'target_nf_set_id': str, 'target_nf_service_set_id': str, 'hnrf_access_token_uri': str, - 'source_nf_instance_id': str + 'source_nf_instance_id': str, + 'vendor_id': str, + 'analytics_ids': List[NwdafEvent], + 'requester_inter_ind_list': List[MlModelInterInd], + 'source_vendor_id': str } self.attribute_map = { @@ -99,7 +113,11 @@ class AccessTokenReq1(Model): 'target_nf_set_id': 'targetNfSetId', 'target_nf_service_set_id': 'targetNfServiceSetId', 'hnrf_access_token_uri': 'hnrfAccessTokenUri', - 'source_nf_instance_id': 'sourceNfInstanceId' + 'source_nf_instance_id': 'sourceNfInstanceId', + 'vendor_id': 'vendorId', + 'analytics_ids': 'analyticsIds', + 'requester_inter_ind_list': 'requesterInterIndList', + 'source_vendor_id': 'sourceVendorId' } self._grant_type = grant_type @@ -121,6 +139,10 @@ class AccessTokenReq1(Model): self._target_nf_service_set_id = target_nf_service_set_id self._hnrf_access_token_uri = hnrf_access_token_uri self._source_nf_instance_id = source_nf_instance_id + self._vendor_id = vendor_id + self._analytics_ids = analytics_ids + self._requester_inter_ind_list = requester_inter_ind_list + self._source_vendor_id = source_vendor_id @classmethod def from_dict(cls, dikt) -> 'AccessTokenReq1': @@ -248,7 +270,7 @@ class AccessTokenReq1(Model): if scope is None: raise ValueError("Invalid value for `scope`, must not be `None`") # noqa: E501 if scope is not None and not re.search(r'^([a-zA-Z0-9_:-]+)( [a-zA-Z0-9_:-]+)*$', scope): # noqa: E501 - raise ValueError("Invalid value for `scope`, must be a follow pattern or equal to `/^([a-zA-Z0-9_:-]+)( [a-zA-Z0-9_:-]+)*$/`") # noqa: E501 + raise ValueError(r"Invalid value for `scope`, must be a follow pattern or equal to `/^([a-zA-Z0-9_:-]+)( [a-zA-Z0-9_:-]+)*$/`") # noqa: E501 self._scope = scope @@ -367,7 +389,7 @@ class AccessTokenReq1(Model): if requester_fqdn is not None and len(requester_fqdn) < 4: raise ValueError("Invalid value for `requester_fqdn`, length must be greater than or equal to `4`") # noqa: E501 if requester_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}\.?$', requester_fqdn): # noqa: E501 - raise ValueError("Invalid value for `requester_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 `requester_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._requester_fqdn = requester_fqdn @@ -573,3 +595,99 @@ class AccessTokenReq1(Model): """ self._source_nf_instance_id = source_nf_instance_id + + @property + def vendor_id(self) -> str: + """Gets the vendor_id of this AccessTokenReq1. + + Vendor ID of the NF Service instance (Private Enterprise Number assigned by IANA) # noqa: E501 + + :return: The vendor_id of this AccessTokenReq1. + :rtype: str + """ + return self._vendor_id + + @vendor_id.setter + def vendor_id(self, vendor_id: str): + """Sets the vendor_id of this AccessTokenReq1. + + Vendor ID of the NF Service instance (Private Enterprise Number assigned by IANA) # noqa: E501 + + :param vendor_id: The vendor_id of this AccessTokenReq1. + :type vendor_id: str + """ + if vendor_id is not None and not re.search(r'^[0-9]{6}$', vendor_id): # noqa: E501 + raise ValueError(r"Invalid value for `vendor_id`, must be a follow pattern or equal to `/^[0-9]{6}$/`") # noqa: E501 + + self._vendor_id = vendor_id + + @property + def analytics_ids(self) -> List[NwdafEvent]: + """Gets the analytics_ids of this AccessTokenReq1. + + + :return: The analytics_ids of this AccessTokenReq1. + :rtype: List[NwdafEvent] + """ + return self._analytics_ids + + @analytics_ids.setter + def analytics_ids(self, analytics_ids: List[NwdafEvent]): + """Sets the analytics_ids of this AccessTokenReq1. + + + :param analytics_ids: The analytics_ids of this AccessTokenReq1. + :type analytics_ids: List[NwdafEvent] + """ + if analytics_ids is not None and len(analytics_ids) < 1: + raise ValueError("Invalid value for `analytics_ids`, number of items must be greater than or equal to `1`") # noqa: E501 + + self._analytics_ids = analytics_ids + + @property + def requester_inter_ind_list(self) -> List[MlModelInterInd]: + """Gets the requester_inter_ind_list of this AccessTokenReq1. + + + :return: The requester_inter_ind_list of this AccessTokenReq1. + :rtype: List[MlModelInterInd] + """ + return self._requester_inter_ind_list + + @requester_inter_ind_list.setter + def requester_inter_ind_list(self, requester_inter_ind_list: List[MlModelInterInd]): + """Sets the requester_inter_ind_list of this AccessTokenReq1. + + + :param requester_inter_ind_list: The requester_inter_ind_list of this AccessTokenReq1. + :type requester_inter_ind_list: List[MlModelInterInd] + """ + if requester_inter_ind_list is not None and len(requester_inter_ind_list) < 1: + raise ValueError("Invalid value for `requester_inter_ind_list`, number of items must be greater than or equal to `1`") # noqa: E501 + + self._requester_inter_ind_list = requester_inter_ind_list + + @property + def source_vendor_id(self) -> str: + """Gets the source_vendor_id of this AccessTokenReq1. + + Vendor ID of the NF Service instance (Private Enterprise Number assigned by IANA) # noqa: E501 + + :return: The source_vendor_id of this AccessTokenReq1. + :rtype: str + """ + return self._source_vendor_id + + @source_vendor_id.setter + def source_vendor_id(self, source_vendor_id: str): + """Sets the source_vendor_id of this AccessTokenReq1. + + Vendor ID of the NF Service instance (Private Enterprise Number assigned by IANA) # noqa: E501 + + :param source_vendor_id: The source_vendor_id of this AccessTokenReq1. + :type source_vendor_id: str + """ + if source_vendor_id is not None and not re.search(r'^[0-9]{6}$', source_vendor_id): # noqa: E501 + raise ValueError(r"Invalid value for `source_vendor_id`, must be a follow pattern or equal to `/^[0-9]{6}$/`") # noqa: E501 + + self._source_vendor_id = source_vendor_id diff --git a/services/TS29222_CAPIF_Security_API/capif_security/models/access_token_rsp.py b/services/TS29222_CAPIF_Security_API/capif_security/models/access_token_rsp.py index deaf22ecf4b0582fa2ae0e8139f9d581c5c2b963..477f3a630d6a35db16fe8d4887f77a3941749c2c 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/access_token_rsp.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/access_token_rsp.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.base_model import Model diff --git a/services/TS29222_CAPIF_Security_API/capif_security/models/cause.py b/services/TS29222_CAPIF_Security_API/capif_security/models/cause.py index 1b57bf4d57b05f9341e1b65c78a1adbc776e3222..b4fbd86ed3b5bc9a62ee44bc5376037ed65dc762 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/cause.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/cause.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.base_model import Model diff --git a/services/TS29222_CAPIF_Security_API/capif_security/models/interface_description.py b/services/TS29222_CAPIF_Security_API/capif_security/models/interface_description.py index 47458b7bbdf994962f8c666b802e57a440ce8f37..b414ef8be3c37f2fbdec8091060fed13e0f15086 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/interface_description.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/interface_description.py @@ -1,9 +1,10 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.base_model import Model +from capif_security.models.o_auth_grant_type import OAuthGrantType # noqa: E501 from capif_security.models.security_method import SecurityMethod # noqa: E501 @@ -13,7 +14,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 +29,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 +38,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 +48,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 +58,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 +142,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 +220,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_Security_API/capif_security/models/invalid_param.py b/services/TS29222_CAPIF_Security_API/capif_security/models/invalid_param.py index ca4a094e20c698002c86403d02fe7f7a42f337d5..57a656957de03ca9db28000d81758e917a68fec0 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/invalid_param.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/invalid_param.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.base_model import Model diff --git a/services/TS29222_CAPIF_Security_API/capif_security/models/invalid_param1.py b/services/TS29222_CAPIF_Security_API/capif_security/models/invalid_param1.py index 3546df8df11b34d800c60a77027a211d4a1e2bb6..e7abd4e92f7f6270e45978705893f4ddedb4ea47 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/invalid_param1.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/invalid_param1.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.base_model import Model diff --git a/services/TS29222_CAPIF_Security_API/capif_security/models/ml_model_inter_ind.py b/services/TS29222_CAPIF_Security_API/capif_security/models/ml_model_inter_ind.py new file mode 100644 index 0000000000000000000000000000000000000000..c1ab27a7782a47fa16ee19d067320279785fff0d --- /dev/null +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/ml_model_inter_ind.py @@ -0,0 +1,93 @@ +from datetime import date, datetime # noqa: F401 +from typing import Dict, List # noqa: F401 + +from capif_security import util +from capif_security.models.base_model import Model +from capif_security.models.nwdaf_event import NwdafEvent # noqa: E501 + + +class MlModelInterInd(Model): + """NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). + + Do not edit the class manually. + """ + + def __init__(self, analytics_id=None, vendor_list=None): # noqa: E501 + """MlModelInterInd - a model defined in OpenAPI + + :param analytics_id: The analytics_id of this MlModelInterInd. # noqa: E501 + :type analytics_id: NwdafEvent + :param vendor_list: The vendor_list of this MlModelInterInd. # noqa: E501 + :type vendor_list: List[str] + """ + self.openapi_types = { + 'analytics_id': NwdafEvent, + 'vendor_list': List[str] + } + + self.attribute_map = { + 'analytics_id': 'analyticsId', + 'vendor_list': 'vendorList' + } + + self._analytics_id = analytics_id + self._vendor_list = vendor_list + + @classmethod + def from_dict(cls, dikt) -> 'MlModelInterInd': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The MlModelInterInd of this MlModelInterInd. # noqa: E501 + :rtype: MlModelInterInd + """ + return util.deserialize_model(dikt, cls) + + @property + def analytics_id(self) -> NwdafEvent: + """Gets the analytics_id of this MlModelInterInd. + + + :return: The analytics_id of this MlModelInterInd. + :rtype: NwdafEvent + """ + return self._analytics_id + + @analytics_id.setter + def analytics_id(self, analytics_id: NwdafEvent): + """Sets the analytics_id of this MlModelInterInd. + + + :param analytics_id: The analytics_id of this MlModelInterInd. + :type analytics_id: NwdafEvent + """ + if analytics_id is None: + raise ValueError("Invalid value for `analytics_id`, must not be `None`") # noqa: E501 + + self._analytics_id = analytics_id + + @property + def vendor_list(self) -> List[str]: + """Gets the vendor_list of this MlModelInterInd. + + + :return: The vendor_list of this MlModelInterInd. + :rtype: List[str] + """ + return self._vendor_list + + @vendor_list.setter + def vendor_list(self, vendor_list: List[str]): + """Sets the vendor_list of this MlModelInterInd. + + + :param vendor_list: The vendor_list of this MlModelInterInd. + :type vendor_list: List[str] + """ + if vendor_list is None: + raise ValueError("Invalid value for `vendor_list`, must not be `None`") # noqa: E501 + if vendor_list is not None and len(vendor_list) < 1: + raise ValueError("Invalid value for `vendor_list`, number of items must be greater than or equal to `1`") # noqa: E501 + + self._vendor_list = vendor_list diff --git a/services/TS29222_CAPIF_Security_API/capif_security/models/nf_type.py b/services/TS29222_CAPIF_Security_API/capif_security/models/nf_type.py index 0f2e09b2e0bab651339f2cd65f494f889375bced..017f038407b5d6f1adf76f2cbb9947176db5dd7f 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/nf_type.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/nf_type.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.base_model import Model diff --git a/services/TS29222_CAPIF_Security_API/capif_security/models/no_profile_match_info.py b/services/TS29222_CAPIF_Security_API/capif_security/models/no_profile_match_info.py index c374ddeb15a33b92ff8c90e3f0127b1ccc5b7b8d..c7b85407994ed452215d57681a143f0c738b1e9f 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/no_profile_match_info.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/no_profile_match_info.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.base_model import Model diff --git a/services/TS29222_CAPIF_Security_API/capif_security/models/no_profile_match_reason.py b/services/TS29222_CAPIF_Security_API/capif_security/models/no_profile_match_reason.py index 511afb65c55e3578646cb99d2cd2a1cc29a952ed..5fe37d570bfca3d100c66284c7d1df31c18ab578 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/no_profile_match_reason.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/no_profile_match_reason.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.base_model import Model diff --git a/services/TS29222_CAPIF_Security_API/capif_security/models/nwdaf_event.py b/services/TS29222_CAPIF_Security_API/capif_security/models/nwdaf_event.py new file mode 100644 index 0000000000000000000000000000000000000000..d1701a39355274027f4cb014b33bd6a41d72f450 --- /dev/null +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/nwdaf_event.py @@ -0,0 +1,33 @@ +from datetime import date, datetime # noqa: F401 +from typing import Dict, List # noqa: F401 + +from capif_security import util +from capif_security.models.base_model import Model + + +class NwdafEvent(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 + """NwdafEvent - a model defined in OpenAPI + + """ + self.openapi_types = { + } + + self.attribute_map = { + } + + @classmethod + def from_dict(cls, dikt) -> 'NwdafEvent': + """Returns the dict as a model + + :param dikt: A dict. + :type: dict + :return: The NwdafEvent of this NwdafEvent. # noqa: E501 + :rtype: NwdafEvent + """ + return util.deserialize_model(dikt, cls) diff --git a/services/TS29222_CAPIF_Security_API/capif_security/models/o_auth_grant_type.py b/services/TS29222_CAPIF_Security_API/capif_security/models/o_auth_grant_type.py index 9420cc5b79b8d444095b0f61c03bce8cff7d2c38..3813c0567751ec8ce28e8db5b7b6a2e365b8128e 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/o_auth_grant_type.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/o_auth_grant_type.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.base_model import Model diff --git a/services/TS29222_CAPIF_Security_API/capif_security/models/plmn_id.py b/services/TS29222_CAPIF_Security_API/capif_security/models/plmn_id.py index 82696e45abb6eb48a4294cb3aae537561027c1e5..c86104bbe9c49ebddb7277422d2a3fbb0ea33c49 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/plmn_id.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/plmn_id.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.base_model import Model @@ -67,7 +67,7 @@ class PlmnId(Model): if mcc is None: raise ValueError("Invalid value for `mcc`, must not be `None`") # noqa: E501 if mcc is not None and not re.search(r'^\d{3}$', mcc): # noqa: E501 - raise ValueError("Invalid value for `mcc`, must be a follow pattern or equal to `/^\d{3}$/`") # noqa: E501 + raise ValueError(r"Invalid value for `mcc`, must be a follow pattern or equal to `/^\d{3}$/`") # noqa: E501 self._mcc = mcc @@ -94,6 +94,6 @@ class PlmnId(Model): if mnc is None: raise ValueError("Invalid value for `mnc`, must not be `None`") # noqa: E501 if mnc is not None and not re.search(r'^\d{2,3}$', mnc): # noqa: E501 - raise ValueError("Invalid value for `mnc`, must be a follow pattern or equal to `/^\d{2,3}$/`") # noqa: E501 + raise ValueError(r"Invalid value for `mnc`, must be a follow pattern or equal to `/^\d{2,3}$/`") # noqa: E501 self._mnc = mnc diff --git a/services/TS29222_CAPIF_Security_API/capif_security/models/plmn_id_nid.py b/services/TS29222_CAPIF_Security_API/capif_security/models/plmn_id_nid.py index eb9d1e25fb1ad0aae8e7b3d20b62633b6b77e2d7..9e41487672befd24b64b1bd8bb052bbd40a15fc8 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/plmn_id_nid.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/plmn_id_nid.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.base_model import Model @@ -72,7 +72,7 @@ class PlmnIdNid(Model): if mcc is None: raise ValueError("Invalid value for `mcc`, must not be `None`") # noqa: E501 if mcc is not None and not re.search(r'^\d{3}$', mcc): # noqa: E501 - raise ValueError("Invalid value for `mcc`, must be a follow pattern or equal to `/^\d{3}$/`") # noqa: E501 + raise ValueError(r"Invalid value for `mcc`, must be a follow pattern or equal to `/^\d{3}$/`") # noqa: E501 self._mcc = mcc @@ -99,7 +99,7 @@ class PlmnIdNid(Model): if mnc is None: raise ValueError("Invalid value for `mnc`, must not be `None`") # noqa: E501 if mnc is not None and not re.search(r'^\d{2,3}$', mnc): # noqa: E501 - raise ValueError("Invalid value for `mnc`, must be a follow pattern or equal to `/^\d{2,3}$/`") # noqa: E501 + raise ValueError(r"Invalid value for `mnc`, must be a follow pattern or equal to `/^\d{2,3}$/`") # noqa: E501 self._mnc = mnc @@ -124,6 +124,6 @@ class PlmnIdNid(Model): :type nid: str """ if nid is not None and not re.search(r'^[A-Fa-f0-9]{11}$', nid): # noqa: E501 - raise ValueError("Invalid value for `nid`, must be a follow pattern or equal to `/^[A-Fa-f0-9]{11}$/`") # noqa: E501 + raise ValueError(r"Invalid value for `nid`, must be a follow pattern or equal to `/^[A-Fa-f0-9]{11}$/`") # noqa: E501 self._nid = nid diff --git a/services/TS29222_CAPIF_Security_API/capif_security/models/problem_details.py b/services/TS29222_CAPIF_Security_API/capif_security/models/problem_details.py index 50003d8edc6738e6cc4f2869ed5ee81bb135dd02..47dd078a7edd89eae8643e15f687aae3d86a705d 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/problem_details.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/problem_details.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.base_model import Model @@ -259,6 +259,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_Security_API/capif_security/models/problem_details1.py b/services/TS29222_CAPIF_Security_API/capif_security/models/problem_details1.py index 777afe0d157acb199a51f88eb6e4c214e06af679..e0fbf4c1c96a65e6c3252f6494dc9c03ffe4cacd 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/problem_details1.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/problem_details1.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.access_token_err1 import AccessTokenErr1 # noqa: E501 @@ -281,7 +281,7 @@ class ProblemDetails1(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 @@ -352,7 +352,7 @@ class ProblemDetails1(Model): if nrf_id is not None and len(nrf_id) < 4: raise ValueError("Invalid value for `nrf_id`, length must be greater than or equal to `4`") # noqa: E501 if nrf_id 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}\.?$', nrf_id): # noqa: E501 - raise ValueError("Invalid value for `nrf_id`, 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 `nrf_id`, 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._nrf_id = nrf_id diff --git a/services/TS29222_CAPIF_Security_API/capif_security/models/query_param_combination.py b/services/TS29222_CAPIF_Security_API/capif_security/models/query_param_combination.py index 962b251cb3f11966fca13593ed83108837b6c405..430eab7c485613e4e10b528f86f7f3d36340f872 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/query_param_combination.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/query_param_combination.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.base_model import Model diff --git a/services/TS29222_CAPIF_Security_API/capif_security/models/query_parameter.py b/services/TS29222_CAPIF_Security_API/capif_security/models/query_parameter.py index b5d0a01d55a408f7c0d03c0c63f7d9c35e1b7c83..39302f5b54f2966ff964788c75043281c4beb822 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/query_parameter.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/query_parameter.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.base_model import Model diff --git a/services/TS29222_CAPIF_Security_API/capif_security/models/res_owner_id.py b/services/TS29222_CAPIF_Security_API/capif_security/models/res_owner_id.py index d59b5a482b015d29981607583c6dd281adc22ba9..7ad71592d2b673a45ceee24e79b4313ea081cae8 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/res_owner_id.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/res_owner_id.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.base_model import Model @@ -60,6 +60,6 @@ class ResOwnerId(Model): :type gpsi: str """ if gpsi is not None and not re.search(r'^(msisdn-[0-9]{5,15}|extid-[^@]+@[^@]+|.+)$', gpsi): # noqa: E501 - raise ValueError("Invalid value for `gpsi`, must be a follow pattern or equal to `/^(msisdn-[0-9]{5,15}|extid-[^@]+@[^@]+|.+)$/`") # noqa: E501 + raise ValueError(r"Invalid value for `gpsi`, must be a follow pattern or equal to `/^(msisdn-[0-9]{5,15}|extid-[^@]+@[^@]+|.+)$/`") # noqa: E501 self._gpsi = gpsi diff --git a/services/TS29222_CAPIF_Security_API/capif_security/models/security_information.py b/services/TS29222_CAPIF_Security_API/capif_security/models/security_information.py index e678a36274780d48ed837600b989c242a24ed646..ab650a4a244870166b3ea1dd6c630362aad62f52 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/security_information.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/security_information.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.base_model import Model diff --git a/services/TS29222_CAPIF_Security_API/capif_security/models/security_method.py b/services/TS29222_CAPIF_Security_API/capif_security/models/security_method.py index 1d5bfae95a2a73e568e4eeb368352c08c3eeed13..c3deabe5ae9811a582082aba27fd5e424b4af31d 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/security_method.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/security_method.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.base_model import Model diff --git a/services/TS29222_CAPIF_Security_API/capif_security/models/security_notification.py b/services/TS29222_CAPIF_Security_API/capif_security/models/security_notification.py index 90e4e803465c61955773367a6849cfff1cc73ea4..fbf39b6da8002adb8809ab42db1b80c980c75753 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/security_notification.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/security_notification.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.base_model import Model diff --git a/services/TS29222_CAPIF_Security_API/capif_security/models/service_security.py b/services/TS29222_CAPIF_Security_API/capif_security/models/service_security.py index 7556c8e730f0eace96c78c784bb89ff36f9012c4..10d26438f071121c9119bd888dd41d0ac7c8d7e7 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/service_security.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/service_security.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.base_model import Model @@ -174,6 +174,6 @@ class ServiceSecurity(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_Security_API/capif_security/models/snssai.py b/services/TS29222_CAPIF_Security_API/capif_security/models/snssai.py index 557c4bdefee53cd918a12740970fffc2f7b89542..90cde98ec45d99e5747842625e44d9b50fbb24c1 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/snssai.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/snssai.py @@ -1,6 +1,6 @@ import re # noqa: E501 from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.base_model import Model @@ -94,6 +94,6 @@ class Snssai(Model): :type sd: str """ if sd is not None and not re.search(r'^[A-Fa-f0-9]{6}$', sd): # noqa: E501 - raise ValueError("Invalid value for `sd`, must be a follow pattern or equal to `/^[A-Fa-f0-9]{6}$/`") # noqa: E501 + raise ValueError(r"Invalid value for `sd`, must be a follow pattern or equal to `/^[A-Fa-f0-9]{6}$/`") # noqa: E501 self._sd = sd diff --git a/services/TS29222_CAPIF_Security_API/capif_security/models/websock_notif_config.py b/services/TS29222_CAPIF_Security_API/capif_security/models/websock_notif_config.py index b72b264f4c1411234828bd2a2af341459d59609a..13109aa1543741d1e4e24465d804436c863bdfaa 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/models/websock_notif_config.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/models/websock_notif_config.py @@ -1,5 +1,5 @@ from datetime import date, datetime # noqa: F401 -from typing import List, Dict # noqa: F401 +from typing import Dict, List # noqa: F401 from capif_security import util from capif_security.models.base_model import Model diff --git a/services/TS29222_CAPIF_Security_API/capif_security/openapi/openapi.yaml b/services/TS29222_CAPIF_Security_API/capif_security/openapi/openapi.yaml index fe88c19931162b07c8de7a6f7a956eb55f96951b..71929d3de4564f9090f5af1333730b909828a888 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/openapi/openapi.yaml +++ b/services/TS29222_CAPIF_Security_API/capif_security/openapi/openapi.yaml @@ -3,9 +3,9 @@ info: description: "API for CAPIF security management. \n© 2024, 3GPP Organizational\ \ Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). \nAll rights reserved.\n" title: CAPIF_Security_API - version: 1.3.0-alpha.4 + version: 1.3.0 externalDocs: - description: 3GPP TS 29.222 V18.5.0 Common API Framework for 3GPP Northbound APIs + description: 3GPP TS 29.222 V18.6.0 Common API Framework for 3GPP Northbound APIs url: https://www.3gpp.org/ftp/Specs/archive/29_series/29.222/ servers: - url: "{apiRoot}/capif-security/v1" @@ -307,9 +307,9 @@ paths: put: callbacks: notificationDestination: - '{request.body#/notificationDestination}': + '{$request.body#/notificationDestination}': post: - operationId: notificationDestination_request_bodyNotificationDestinationPost + operationId: notification_destination_post requestBody: content: application/json: @@ -805,6 +805,9 @@ components: authorizationInfo: authorizationInfo interfaceDetails: ipv6Addr: ipv6Addr + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS securityMethods: - PSK - PSK @@ -817,14 +820,17 @@ components: - null aefId: aefId grantType: - - CLIENT_CREDENTIALS - - CLIENT_CREDENTIALS + - null + - null apiId: apiId - selSecurityMethod: null authenticationInfo: authenticationInfo authorizationInfo: authorizationInfo interfaceDetails: ipv6Addr: ipv6Addr + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS securityMethods: - PSK - PSK @@ -837,8 +843,8 @@ components: - null aefId: aefId grantType: - - CLIENT_CREDENTIALS - - CLIENT_CREDENTIALS + - null + - null apiId: apiId websockNotifConfig: requestWebsocketUri: true @@ -881,6 +887,9 @@ components: authorizationInfo: authorizationInfo interfaceDetails: ipv6Addr: ipv6Addr + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS securityMethods: - PSK - PSK @@ -893,15 +902,13 @@ components: - null aefId: aefId grantType: - - CLIENT_CREDENTIALS - - CLIENT_CREDENTIALS + - null + - null apiId: apiId nullable: true - oneOf: - - required: - - aefId - - required: - - interfaceDetails + oneOf: + - required: ["aefId"] + - required: ["interfaceDetails"] properties: interfaceDetails: $ref: '#/components/schemas/InterfaceDescription' @@ -1093,30 +1100,28 @@ components: title: AccessTokenErr type: object Cause: - anyOf: - - enum: + enum: - OVERLIMIT_USAGE - UNEXPECTED_REASON - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + - AUTHORIZATION_ISSUE + - OTHER_REASON + type: string description: "Indicates the cause for revoking the API invoker's authorization\ \ to the service API. \nPossible values are:\n- OVERLIMIT_USAGE:\n The\ \ revocation of the authorization of the API invoker is due to the overlimit\n\ \ usage of the service API\n- UNEXPECTED_REASON:\n The revocation\ - \ of the authorization of the API invoker is due to unexpected reason.\n" + \ of the authorization of the API invoker is due to unexpected reason.\n-\ + \ AUTHORIZATION_ISSUE:\n The revocation of the authorization of the API\ + \ invoker is due to API Invoker\n not being authorized anymore by the\ + \ API Provider.\n- OTHER_REASON:\n The revocation of the authorization\ + \ of the API invoker is due to other reason.\n" title: Cause OAuthGrantType: - anyOf: - - enum: + 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 + 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\ @@ -1308,6 +1313,9 @@ components: description: Represents the description of an API's interface. example: ipv6Addr: ipv6Addr + grantTypes: + - CLIENT_CREDENTIALS + - CLIENT_CREDENTIALS securityMethods: - PSK - PSK @@ -1316,13 +1324,10 @@ components: apiPrefix: apiPrefix ipv4Addr: ipv4Addr nullable: true - oneOf: - - required: - - ipv4Addr - - required: - - ipv6Addr - - required: - - fqdn + oneOf: + - required: ["fqdn"] + - required: ["ipv4Addr"] + - required: ["ipv6Addr"] properties: ipv4Addr: description: | @@ -1361,18 +1366,20 @@ components: minItems: 1 title: securityMethods type: array + grantTypes: + items: + $ref: '#/components/schemas/OAuthGrantType' + minItems: 1 + title: grantTypes + type: array title: InterfaceDescription type: object SecurityMethod: - anyOf: - - enum: + enum: - PSK - PKI - OAUTH - type: string - - description: | - This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. - type: string + type: string description: "Indicates the security method. \nPossible values are:\n- PSK:\ \ Security method 1 (Using TLS-PSK) as described in 3GPP TS 33.122.\n- PKI:\ \ Security method 2 (Using PKI) as described in 3GPP TS 33.122.\n- OAUTH:\ @@ -1530,12 +1537,52 @@ components: format: uuid title: NfInstanceId type: string + vendorId: + description: Vendor ID of the NF Service instance (Private Enterprise Number + assigned by IANA) + pattern: "^[0-9]{6}$" + title: VendorId + type: string + analyticsIds: + items: + $ref: '#/components/schemas/NwdafEvent' + minItems: 1 + title: analyticsIds + type: array + requesterInterIndList: + items: + $ref: '#/components/schemas/MlModelInterInd' + minItems: 1 + title: requesterInterIndList + type: array + sourceVendorId: + description: Vendor ID of the NF Service instance (Private Enterprise Number + assigned by IANA) + pattern: "^[0-9]{6}$" + title: VendorId + type: string required: - grant_type - nfInstanceId - scope title: AccessTokenReq_1 type: object + MlModelInterInd: + description: ML Model Interoperability Indicator per Analytics Id + properties: + analyticsId: + $ref: '#/components/schemas/NwdafEvent' + vendorList: + items: + $ref: '#/components/schemas/VendorId' + minItems: 1 + title: vendorList + type: array + required: + - analyticsId + - vendorList + title: MlModelInterInd + type: object NoProfileMatchInfo: description: Provides the reason for not finding NF matching the search criteria properties: @@ -1552,16 +1599,14 @@ components: title: NoProfileMatchInfo type: object NoProfileMatchReason: - anyOf: - - enum: + enum: - REQUESTER_PLMN_NOT_ALLOWED - TARGET_NF_SUSPENDED - TARGET_NF_UNDISCOVERABLE - QUERY_PARAMS_COMBINATION_NO_MATCH - TARGET_NF_TYPE_NOT_SUPPORTED - UNSPECIFIED - type: string - - type: string + type: string description: No Profile Match Reason title: NoProfileMatchReason QueryParamCombination: @@ -1615,8 +1660,7 @@ components: title: NfInstanceId type: string NFType: - anyOf: - - enum: + enum: - NRF - UDM - AMF @@ -1681,8 +1725,7 @@ components: - MF - SLPKMF - RH - type: string - - type: string + type: string description: NF types known to NRF title: NFType PlmnId: @@ -1809,3 +1852,62 @@ components: \ an alphabetic character or a digit.\n" title: NfServiceSetId type: string + VendorId: + description: Vendor ID of the NF Service instance (Private Enterprise Number + assigned by IANA) + pattern: "^[0-9]{6}$" + title: VendorId + type: string + NwdafEvent: + enum: + - SLICE_LOAD_LEVEL + - NETWORK_PERFORMANCE + - NF_LOAD + - SERVICE_EXPERIENCE + - UE_MOBILITY + - UE_COMMUNICATION + - QOS_SUSTAINABILITY + - ABNORMAL_BEHAVIOUR + - USER_DATA_CONGESTION + - NSI_LOAD_LEVEL + - DN_PERFORMANCE + - DISPERSION + - RED_TRANS_EXP + - WLAN_PERFORMANCE + - SM_CONGESTION + - PFD_DETERMINATION + - PDU_SESSION_TRAFFIC + - E2E_DATA_VOL_TRANS_TIME + - MOVEMENT_BEHAVIOUR + - LOC_ACCURACY + - RELATIVE_PROXIMITY + type: string + description: "Describes the NWDAF Events. \nPossible values are:\n- SLICE_LOAD_LEVEL:\ + \ Indicates that the event subscribed is load level information of Network\n\ + \ Slice.\n- NETWORK_PERFORMANCE: Indicates that the event subscribed is network\ + \ performance\n information.\n- NF_LOAD: Indicates that the event subscribed\ + \ is load level and status of one or several\n Network Functions.\n- SERVICE_EXPERIENCE:\ + \ Indicates that the event subscribed is service experience.\n- UE_MOBILITY:\ + \ Indicates that the event subscribed is UE mobility information.\n- UE_COMMUNICATION:\ + \ Indicates that the event subscribed is UE communication information.\n-\ + \ QOS_SUSTAINABILITY: Indicates that the event subscribed is QoS sustainability.\n\ + - ABNORMAL_BEHAVIOUR: Indicates that the event subscribed is abnormal behaviour.\n\ + - USER_DATA_CONGESTION: Indicates that the event subscribed is user data congestion\n\ + \ information.\n- NSI_LOAD_LEVEL: Indicates that the event subscribed is\ + \ load level information of Network\n Slice and the optionally associated\ + \ Network Slice Instance.\n- DN_PERFORMANCE: Indicates that the event subscribed\ + \ is DN performance information.\n- DISPERSION: Indicates that the event subscribed\ + \ is dispersion information.\n- RED_TRANS_EXP: Indicates that the event subscribed\ + \ is redundant transmission experience.\n- WLAN_PERFORMANCE: Indicates that\ + \ the event subscribed is WLAN performance.\n- SM_CONGESTION: Indicates the\ + \ Session Management Congestion Control Experience information\n for specific\ + \ DNN and/or S-NSSAI.\n- PFD_DETERMINATION: Indicates that the event subscribed\ + \ is the PFD Determination nformation\n for known application identifier(s).\n\ + - PDU_SESSION_TRAFFIC: Indicates that the event subscribed is the PDU Session\ + \ traffic\n information.\n- E2E_DATA_VOL_TRANS_TIME: Indicates that the event\ + \ subscribed is of E2E data volume \n transfer time.\n- MOVEMENT_BEHAVIOUR:\ + \ Indicates that the event subscribed is the Movement Behaviour\n information.\n\ + - LOC_ACCURACY: Indicates that the event subscribed is of location accuracy.\n\ + - RELATIVE_PROXIMITY: Indicates that the event subscribed is the Relative\ + \ Proximity\n information.\n" + title: NwdafEvent diff --git a/services/TS29222_CAPIF_Security_API/capif_security/test/test_default_controller.py b/services/TS29222_CAPIF_Security_API/capif_security/test/test_default_controller.py index 0fbd10e62626ed8f593c420322c65483c246f5ff..da26a6d60f9f873e168b53c95e80a271b395150e 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/test/test_default_controller.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/test/test_default_controller.py @@ -1,5 +1,11 @@ import unittest +from capif_security.models.access_token_err import AccessTokenErr # noqa: E501 +from capif_security.models.access_token_rsp import AccessTokenRsp # noqa: E501 +from capif_security.models.problem_details import ProblemDetails # noqa: E501 +from capif_security.models.res_owner_id import ResOwnerId # noqa: E501 +from capif_security.models.security_notification import SecurityNotification # noqa: E501 +from capif_security.models.service_security import ServiceSecurity # noqa: E501 from capif_security.test import BaseTestCase from flask import json @@ -90,7 +96,7 @@ class TestDefaultController(BaseTestCase): """ - service_security = {"notificationDestination":"notificationDestination","supportedFeatures":"supportedFeatures","securityInfo":[{"authenticationInfo":"authenticationInfo","authorizationInfo":"authorizationInfo","interfaceDetails":{"ipv6Addr":"ipv6Addr","securityMethods":["PSK","PSK"],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},"prefSecurityMethods":[null,null],"aefId":"aefId","grantType":["CLIENT_CREDENTIALS","CLIENT_CREDENTIALS"],"apiId":"apiId"},{"authenticationInfo":"authenticationInfo","authorizationInfo":"authorizationInfo","interfaceDetails":{"ipv6Addr":"ipv6Addr","securityMethods":["PSK","PSK"],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},"prefSecurityMethods":[null,null],"aefId":"aefId","grantType":["CLIENT_CREDENTIALS","CLIENT_CREDENTIALS"],"apiId":"apiId"}],"websockNotifConfig":{"requestWebsocketUri":True,"websocketUri":"websocketUri"},"requestTestNotification":True} + service_security = {"notificationDestination":"notificationDestination","supportedFeatures":"supportedFeatures","securityInfo":[{"authenticationInfo":"authenticationInfo","authorizationInfo":"authorizationInfo","interfaceDetails":{"ipv6Addr":"ipv6Addr","grantTypes":["CLIENT_CREDENTIALS","CLIENT_CREDENTIALS"],"securityMethods":["PSK","PSK"],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},"prefSecurityMethods":[null,null],"aefId":"aefId","grantType":[null,null],"apiId":"apiId"},{"authenticationInfo":"authenticationInfo","authorizationInfo":"authorizationInfo","interfaceDetails":{"ipv6Addr":"ipv6Addr","grantTypes":["CLIENT_CREDENTIALS","CLIENT_CREDENTIALS"],"securityMethods":["PSK","PSK"],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},"prefSecurityMethods":[null,null],"aefId":"aefId","grantType":[null,null],"apiId":"apiId"}],"websockNotifConfig":{"requestWebsocketUri":True,"websocketUri":"websocketUri"},"requestTestNotification":True} headers = { 'Accept': 'application/json', 'Content-Type': 'application/json', @@ -109,7 +115,7 @@ class TestDefaultController(BaseTestCase): """ - service_security = {"notificationDestination":"notificationDestination","supportedFeatures":"supportedFeatures","securityInfo":[{"authenticationInfo":"authenticationInfo","authorizationInfo":"authorizationInfo","interfaceDetails":{"ipv6Addr":"ipv6Addr","securityMethods":["PSK","PSK"],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},"prefSecurityMethods":[null,null],"aefId":"aefId","grantType":["CLIENT_CREDENTIALS","CLIENT_CREDENTIALS"],"apiId":"apiId"},{"authenticationInfo":"authenticationInfo","authorizationInfo":"authorizationInfo","interfaceDetails":{"ipv6Addr":"ipv6Addr","securityMethods":["PSK","PSK"],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},"prefSecurityMethods":[null,null],"aefId":"aefId","grantType":["CLIENT_CREDENTIALS","CLIENT_CREDENTIALS"],"apiId":"apiId"}],"websockNotifConfig":{"requestWebsocketUri":True,"websocketUri":"websocketUri"},"requestTestNotification":True} + service_security = {"notificationDestination":"notificationDestination","supportedFeatures":"supportedFeatures","securityInfo":[{"authenticationInfo":"authenticationInfo","authorizationInfo":"authorizationInfo","interfaceDetails":{"ipv6Addr":"ipv6Addr","grantTypes":["CLIENT_CREDENTIALS","CLIENT_CREDENTIALS"],"securityMethods":["PSK","PSK"],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},"prefSecurityMethods":[null,null],"aefId":"aefId","grantType":[null,null],"apiId":"apiId"},{"authenticationInfo":"authenticationInfo","authorizationInfo":"authorizationInfo","interfaceDetails":{"ipv6Addr":"ipv6Addr","grantTypes":["CLIENT_CREDENTIALS","CLIENT_CREDENTIALS"],"securityMethods":["PSK","PSK"],"fqdn":"fqdn","port":5248,"apiPrefix":"apiPrefix","ipv4Addr":"ipv4Addr"},"prefSecurityMethods":[null,null],"aefId":"aefId","grantType":[null,null],"apiId":"apiId"}],"websockNotifConfig":{"requestWebsocketUri":True,"websocketUri":"websocketUri"},"requestTestNotification":True} headers = { 'Accept': 'application/json', 'Content-Type': 'application/json', diff --git a/services/TS29222_CAPIF_Security_API/capif_security/typing_utils.py b/services/TS29222_CAPIF_Security_API/capif_security/typing_utils.py index d21c4f633653a0eae75d04b2f6eff684ff9d200d..74e3c913a7db6246bc765f147ca872996112c6bb 100644 --- a/services/TS29222_CAPIF_Security_API/capif_security/typing_utils.py +++ b/services/TS29222_CAPIF_Security_API/capif_security/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_Security_API/setup.py b/services/TS29222_CAPIF_Security_API/setup.py index fc9b23b7d53422ce54abd698b7c191c2396b4fd2..f291508a42b991b1c21df0bb95c108472c38aea4 100644 --- a/services/TS29222_CAPIF_Security_API/setup.py +++ b/services/TS29222_CAPIF_Security_API/setup.py @@ -1,4 +1,5 @@ -from setuptools import setup, find_packages + +from setuptools import find_packages, setup NAME = "capif_security" VERSION = "1.0.0" diff --git a/services/helper/helper_service/app.py b/services/helper/helper_service/app.py index 6dd56d8cb57a1cfca965f4db4177098c40cf492b..f43ab73b4aefb46810ec82ef86594657f0234d42 100644 --- a/services/helper/helper_service/app.py +++ b/services/helper/helper_service/app.py @@ -2,14 +2,12 @@ import json import logging import os -from db.db import MongoDatabse - import requests -from OpenSSL.crypto import PKey, TYPE_RSA, X509Req, dump_certificate_request, FILETYPE_PEM, dump_privatekey -from flask import Flask - from config import Config from controllers.helper_controller import helper_routes +from db.db import MongoDatabse +from flask import Flask +from OpenSSL.crypto import FILETYPE_PEM, TYPE_RSA, PKey, X509Req, dump_certificate_request, dump_privatekey app = Flask(__name__) config = Config().get_config() diff --git a/services/helper/helper_service/controllers/helper_controller.py b/services/helper/helper_service/controllers/helper_controller.py index 5a8eba34303d3804b20fad31ad337a3f962276e6..19b11160cc621d0b2a86b9bdc7ac0f50fe83065a 100644 --- a/services/helper/helper_service/controllers/helper_controller.py +++ b/services/helper/helper_service/controllers/helper_controller.py @@ -2,7 +2,7 @@ from config import Config from core.helper_operations import HelperOperations -from flask import Blueprint, request, current_app, jsonify +from flask import Blueprint, current_app, jsonify, request config = Config().get_config() diff --git a/services/helper/helper_service/core/helper_operations.py b/services/helper/helper_service/core/helper_operations.py index 77384cdab290ba547eb157d372c76b7953856f31..f0c1f6d3bcaa5243e7b6529b13114aa0b5b00c0a 100644 --- a/services/helper/helper_service/core/helper_operations.py +++ b/services/helper/helper_service/core/helper_operations.py @@ -4,8 +4,15 @@ import pymongo import requests from config import Config from db.db import MongoDatabse -from flask import jsonify, current_app -from utils.utils import to_snake_case, convert_dict_keys_to_snake_case, validate_snake_case_keys, get_nested_value, convert_value_to_original_type, convert_nested_values +from flask import current_app, jsonify +from utils.utils import ( + convert_dict_keys_to_snake_case, + convert_nested_values, + convert_value_to_original_type, + get_nested_value, + to_snake_case, + validate_snake_case_keys +) class HelperOperations: diff --git a/services/helper/helper_service/utils/utils.py b/services/helper/helper_service/utils/utils.py index a5349309041f45b6c257fdb2b692cfed9d9e7916..fce57a344dd18e1f57625ca3ff9eeefced0428e2 100644 --- a/services/helper/helper_service/utils/utils.py +++ b/services/helper/helper_service/utils/utils.py @@ -1,6 +1,8 @@ import re + from flask import jsonify + def to_snake_case(text): """ Convert string to snake case. diff --git a/services/register/register_service/app.py b/services/register/register_service/app.py index 8a03c2df2b827c298a53fbf85b10d90d266518c4..378bf88c3a670f8103d6dd3d89d5cb8095e332c0 100644 --- a/services/register/register_service/app.py +++ b/services/register/register_service/app.py @@ -4,13 +4,12 @@ import logging import os import requests -from OpenSSL.crypto import PKey, TYPE_RSA, X509Req, dump_certificate_request, FILETYPE_PEM, dump_privatekey -from flask import Flask -from flask_jwt_extended import JWTManager - from config import Config from controllers.register_controller import register_routes from db.db import MongoDatabse +from flask import Flask +from flask_jwt_extended import JWTManager +from OpenSSL.crypto import FILETYPE_PEM, TYPE_RSA, PKey, X509Req, dump_certificate_request, dump_privatekey app = Flask(__name__) diff --git a/services/register/register_service/controllers/register_controller.py b/services/register/register_service/controllers/register_controller.py index 85777ed3e5dd99b0cba10fcd3d862042fbc414ae..93d7fafdbb80bb0a6013703c9efd35a2dc8a2e61 100644 --- a/services/register/register_service/controllers/register_controller.py +++ b/services/register/register_service/controllers/register_controller.py @@ -7,7 +7,7 @@ import jwt from config import Config from core.register_operations import RegisterOperations from db.db import MongoDatabse -from flask import current_app, jsonify, request, Blueprint +from flask import Blueprint, current_app, jsonify, request from flask_httpauth import HTTPBasicAuth auth = HTTPBasicAuth() diff --git a/services/register/register_service/core/register_operations.py b/services/register/register_service/core/register_operations.py index 452a8c0df589a191539dc25f68acf2b2f6b755b3..844ce9515db80fe2d70a14a34553649ad3b2c5a4 100644 --- a/services/register/register_service/core/register_operations.py +++ b/services/register/register_service/core/register_operations.py @@ -5,9 +5,9 @@ from datetime import datetime import requests from config import Config from db.db import MongoDatabse -from flask import jsonify, current_app +from flask import current_app, jsonify from flask_jwt_extended import create_access_token -from utils.utils import to_snake_case, convert_dict_keys_to_snake_case, validate_snake_case_keys +from utils.utils import convert_dict_keys_to_snake_case, to_snake_case, validate_snake_case_keys class RegisterOperations: diff --git a/services/register/register_service/utils/utils.py b/services/register/register_service/utils/utils.py index 067bf1f1f78cc8b01e4b208b377afa6da52feb2e..4b38761f1eef55f90e78291910d492b54d2ba09f 100644 --- a/services/register/register_service/utils/utils.py +++ b/services/register/register_service/utils/utils.py @@ -1,6 +1,8 @@ import re + from flask import jsonify + def to_snake_case(text): """ Convert string to snake case.