Loading .gitignore +2 −1 Original line number Original line Diff line number Diff line Loading @@ -37,4 +37,5 @@ results helm/capif/*.lock helm/capif/*.lock helm/capif/charts/tempo* helm/capif/charts/tempo* *.bakresults/ *.bak *.bak helm/capif/charts/ocf-helper/templates/ocf-helper-configmap.yaml +4 −0 Original line number Original line Diff line number Diff line Loading @@ -36,5 +36,9 @@ data: "configuration_api": { "configuration_api": { "path": "/configuration", "path": "/configuration", "openapi_file": "configuration/openapi/openapi.yaml" "openapi_file": "configuration/openapi/openapi.yaml" }, "visibility_control": { "path": "/visibility-control", "openapi_file": "visibility_control/openapi/openapi.yaml" } } } } No newline at end of file services/TS29222_CAPIF_API_Invoker_Management_API/.openapi-generator/FILES +12 −4 Original line number Original line Diff line number Diff line Loading @@ -8,13 +8,14 @@ git_push.sh api_invoker_management/__init__.py api_invoker_management/__init__.py api_invoker_management/__main__.py api_invoker_management/__main__.py api_invoker_management/controllers/__init__.py api_invoker_management/controllers/__init__.py api_invoker_management/controllers/default_controller.py api_invoker_management/controllers/individual_on_boarded_api_invoker_document_controller.py api_invoker_management/controllers/individual_api_invoker_enrolment_details_controller.py api_invoker_management/controllers/on_boarded_api_invokers_collection_controller.py api_invoker_management/controllers/security_controller.py api_invoker_management/controllers/security_controller.py api_invoker_management/encoder.py api_invoker_management/encoder.py api_invoker_management/models/__init__.py api_invoker_management/models/__init__.py api_invoker_management/models/aef_location.py api_invoker_management/models/aef_location.py api_invoker_management/models/aef_profile.py api_invoker_management/models/aef_profile.py api_invoker_management/models/api_info.py api_invoker_management/models/api_invoker_enrolment_details.py api_invoker_management/models/api_invoker_enrolment_details.py api_invoker_management/models/api_invoker_enrolment_details_patch.py api_invoker_management/models/api_invoker_enrolment_details_patch.py api_invoker_management/models/api_list.py api_invoker_management/models/api_list.py Loading @@ -25,6 +26,8 @@ api_invoker_management/models/communication_type.py api_invoker_management/models/custom_operation.py api_invoker_management/models/custom_operation.py api_invoker_management/models/data_format.py api_invoker_management/models/data_format.py api_invoker_management/models/ellipsoid_arc.py api_invoker_management/models/ellipsoid_arc.py api_invoker_management/models/enrol_fail_cause.py api_invoker_management/models/enrol_fail_reason.py api_invoker_management/models/gad_shape.py api_invoker_management/models/gad_shape.py api_invoker_management/models/geographic_area.py api_invoker_management/models/geographic_area.py api_invoker_management/models/geographical_coordinates.py api_invoker_management/models/geographical_coordinates.py Loading @@ -37,7 +40,10 @@ api_invoker_management/models/ipv6_address_range.py api_invoker_management/models/local2d_point_uncertainty_ellipse.py api_invoker_management/models/local2d_point_uncertainty_ellipse.py api_invoker_management/models/local3d_point_uncertainty_ellipsoid.py api_invoker_management/models/local3d_point_uncertainty_ellipsoid.py api_invoker_management/models/local_origin.py api_invoker_management/models/local_origin.py api_invoker_management/models/net_slice_id.py api_invoker_management/models/o_auth_grant_type.py api_invoker_management/models/o_auth_grant_type.py api_invoker_management/models/onboarding_criteria.py api_invoker_management/models/onboarding_fail_reason.py api_invoker_management/models/onboarding_information.py api_invoker_management/models/onboarding_information.py api_invoker_management/models/onboarding_notification.py api_invoker_management/models/onboarding_notification.py api_invoker_management/models/operation.py api_invoker_management/models/operation.py Loading @@ -50,12 +56,14 @@ api_invoker_management/models/polygon.py api_invoker_management/models/problem_details.py api_invoker_management/models/problem_details.py api_invoker_management/models/protocol.py api_invoker_management/models/protocol.py api_invoker_management/models/published_api_path.py api_invoker_management/models/published_api_path.py api_invoker_management/models/related_criteria.py api_invoker_management/models/relative_cartesian_location.py api_invoker_management/models/relative_cartesian_location.py api_invoker_management/models/resource.py api_invoker_management/models/resource.py api_invoker_management/models/security_method.py api_invoker_management/models/security_method.py api_invoker_management/models/service_api_description.py api_invoker_management/models/service_api_description.py api_invoker_management/models/service_kpis.py api_invoker_management/models/service_kpis.py api_invoker_management/models/shareable_information.py api_invoker_management/models/shareable_information.py api_invoker_management/models/snssai.py api_invoker_management/models/supported_gad_shapes.py api_invoker_management/models/supported_gad_shapes.py api_invoker_management/models/uncertainty_ellipse.py api_invoker_management/models/uncertainty_ellipse.py api_invoker_management/models/uncertainty_ellipsoid.py api_invoker_management/models/uncertainty_ellipsoid.py Loading @@ -63,8 +71,8 @@ api_invoker_management/models/version.py api_invoker_management/models/websock_notif_config.py api_invoker_management/models/websock_notif_config.py api_invoker_management/openapi/openapi.yaml api_invoker_management/openapi/openapi.yaml api_invoker_management/test/__init__.py api_invoker_management/test/__init__.py api_invoker_management/test/test_default_controller.py api_invoker_management/test/test_individual_on_boarded_api_invoker_document_controller.py api_invoker_management/test/test_individual_api_invoker_enrolment_details_controller.py api_invoker_management/test/test_on_boarded_api_invokers_collection_controller.py api_invoker_management/typing_utils.py api_invoker_management/typing_utils.py api_invoker_management/util.py api_invoker_management/util.py requirements.txt requirements.txt Loading services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/app.py +4 −2 Original line number Original line Diff line number Diff line Loading @@ -14,13 +14,15 @@ from flask_executor import Executor from flask_jwt_extended import JWTManager from flask_jwt_extended import JWTManager from fluent import sender from fluent import sender from opentelemetry import trace from opentelemetry import trace from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import \ OTLPSpanExporter from opentelemetry.instrumentation.flask import FlaskInstrumentor from opentelemetry.instrumentation.flask import FlaskInstrumentor from opentelemetry.instrumentation.redis import RedisInstrumentor from opentelemetry.instrumentation.redis import RedisInstrumentor from opentelemetry.sdk.resources import Resource from opentelemetry.sdk.resources import Resource from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import BatchSpanProcessor from opentelemetry.sdk.trace.export import BatchSpanProcessor from opentelemetry.trace.propagation.tracecontext import TraceContextTextMapPropagator from opentelemetry.trace.propagation.tracecontext import \ TraceContextTextMapPropagator NAME = "Invoker-Service" NAME = "Invoker-Service" Loading services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/controllers/default_controller.py→services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/controllers/individual_on_boarded_api_invoker_document_controller.py +24 −23 Original line number Original line Diff line number Diff line from functools import wraps from functools import wraps from api_invoker_management.models.api_invoker_enrolment_details_patch import \ APIInvokerEnrolmentDetailsPatch # noqa: E501 from cryptography import x509 from cryptography import x509 from cryptography.hazmat.backends import default_backend from cryptography.hazmat.backends import default_backend from flask import current_app, request from flask import current_app, request from flask_jwt_extended import get_jwt_identity, jwt_required from ..core.apiinvokerenrolmentdetails import InvokerManagementOperations from ..core.apiinvokerenrolmentdetails import InvokerManagementOperations from ..core.validate_user import ControlAccess from ..core.validate_user import ControlAccess from ..models.api_invoker_enrolment_details import APIInvokerEnrolmentDetails # noqa: E501 from ..models.api_invoker_enrolment_details import \ APIInvokerEnrolmentDetails # noqa: E501 invoker_operations = InvokerManagementOperations() invoker_operations = InvokerManagementOperations() valid_user = ControlAccess() valid_user = ControlAccess() Loading Loading @@ -38,12 +40,12 @@ def cert_validation(): return _cert_validation return _cert_validation @cert_validation() @cert_validation() def onboarded_invokers_onboarding_id_delete(onboarding_id): # noqa: E501 def delete_ind_onboarded_api_invoker(onboarding_id): # noqa: E501 """onboarded_invokers_onboarding_id_delete """Delete an existing Individual On-boarded API Invoker resource. Deletes an individual API Invoker. # noqa: E501 Deletes an existing Individual On-boarded API Invoker. # noqa: E501 :param onboarding_id: String identifying an individual on-boarded API invoker resource :param onboarding_id: :type onboarding_id: str :type onboarding_id: str :rtype: Union[None, Tuple[None, int], Tuple[None, int, Dict[str, str]] :rtype: Union[None, Tuple[None, int], Tuple[None, int, Dict[str, str]] Loading @@ -54,44 +56,43 @@ def onboarded_invokers_onboarding_id_delete(onboarding_id): # noqa: E501 return res return res @cert_validation() @cert_validation() def onboarded_invokers_onboarding_id_put(onboarding_id, body): # noqa: E501 def modify_ind_api_invoke_enrolment(onboarding_id, body): # noqa: E501 """onboarded_invokers_onboarding_id_put """modify_ind_api_invoke_enrolment Updates an individual API invoker details. # noqa: E501 # noqa: E501 :param onboarding_id: String identifying an individual on-boarded API invoker resource :param onboarding_id: :type onboarding_id: str :type onboarding_id: str :param api_invoker_enrolment_details: representation of the API invoker details to be updated in CAPIF core function :param api_invoker_enrolment_details_patch: :type api_invoker_enrolment_details: dict | bytes :type api_invoker_enrolment_details_patch: dict | bytes :rtype: Union[APIInvokerEnrolmentDetails, Tuple[APIInvokerEnrolmentDetails, int], Tuple[APIInvokerEnrolmentDetails, int, Dict[str, str]] :rtype: Union[APIInvokerEnrolmentDetails, Tuple[APIInvokerEnrolmentDetails, int], Tuple[APIInvokerEnrolmentDetails, int, Dict[str, str]] """ """ current_app.logger.info("Updating invoker") current_app.logger.info("Updating invoker") if request.is_json: if request.is_json: body = APIInvokerEnrolmentDetails.from_dict(request.get_json()) # noqa: E501 body = APIInvokerEnrolmentDetailsPatch.from_dict(request.get_json()) # noqa: E501 res = invoker_operations.update_apiinvokerenrolmentdetail(onboarding_id,body) res = invoker_operations.patch_apiinvokerenrolmentdetail(onboarding_id, body) return res return res @jwt_required() @cert_validation() def onboarded_invokers_post(body): # noqa: E501 def update_ind_onboarded_api_invoker(onboarding_id, body): # noqa: E501 """onboarded_invokers_post """Update an existing Individual On-boarded API Invoker resource. Creates a new individual API Invoker profile. # noqa: E501 # noqa: E501 :param onboarding_id: :type onboarding_id: str :param api_invoker_enrolment_details: :param api_invoker_enrolment_details: :type api_invoker_enrolment_details: dict | bytes :type api_invoker_enrolment_details: dict | bytes :rtype: Union[APIInvokerEnrolmentDetails, Tuple[APIInvokerEnrolmentDetails, int], Tuple[APIInvokerEnrolmentDetails, int, Dict[str, str]] :rtype: Union[APIInvokerEnrolmentDetails, Tuple[APIInvokerEnrolmentDetails, int], Tuple[APIInvokerEnrolmentDetails, int, Dict[str, str]] """ """ identity = get_jwt_identity() current_app.logger.info("Updating invoker") username, uuid = identity.split() current_app.logger.info("Creating Invoker") if request.is_json: if request.is_json: body = APIInvokerEnrolmentDetails.from_dict(request.get_json()) # noqa: E501 body = APIInvokerEnrolmentDetails.from_dict(request.get_json()) # noqa: E501 res = invoker_operations.add_apiinvokerenrolmentdetail(body, username, uuid) res = invoker_operations.update_apiinvokerenrolmentdetail(onboarding_id,body) return res return res Loading
.gitignore +2 −1 Original line number Original line Diff line number Diff line Loading @@ -37,4 +37,5 @@ results helm/capif/*.lock helm/capif/*.lock helm/capif/charts/tempo* helm/capif/charts/tempo* *.bakresults/ *.bak *.bak
helm/capif/charts/ocf-helper/templates/ocf-helper-configmap.yaml +4 −0 Original line number Original line Diff line number Diff line Loading @@ -36,5 +36,9 @@ data: "configuration_api": { "configuration_api": { "path": "/configuration", "path": "/configuration", "openapi_file": "configuration/openapi/openapi.yaml" "openapi_file": "configuration/openapi/openapi.yaml" }, "visibility_control": { "path": "/visibility-control", "openapi_file": "visibility_control/openapi/openapi.yaml" } } } } No newline at end of file
services/TS29222_CAPIF_API_Invoker_Management_API/.openapi-generator/FILES +12 −4 Original line number Original line Diff line number Diff line Loading @@ -8,13 +8,14 @@ git_push.sh api_invoker_management/__init__.py api_invoker_management/__init__.py api_invoker_management/__main__.py api_invoker_management/__main__.py api_invoker_management/controllers/__init__.py api_invoker_management/controllers/__init__.py api_invoker_management/controllers/default_controller.py api_invoker_management/controllers/individual_on_boarded_api_invoker_document_controller.py api_invoker_management/controllers/individual_api_invoker_enrolment_details_controller.py api_invoker_management/controllers/on_boarded_api_invokers_collection_controller.py api_invoker_management/controllers/security_controller.py api_invoker_management/controllers/security_controller.py api_invoker_management/encoder.py api_invoker_management/encoder.py api_invoker_management/models/__init__.py api_invoker_management/models/__init__.py api_invoker_management/models/aef_location.py api_invoker_management/models/aef_location.py api_invoker_management/models/aef_profile.py api_invoker_management/models/aef_profile.py api_invoker_management/models/api_info.py api_invoker_management/models/api_invoker_enrolment_details.py api_invoker_management/models/api_invoker_enrolment_details.py api_invoker_management/models/api_invoker_enrolment_details_patch.py api_invoker_management/models/api_invoker_enrolment_details_patch.py api_invoker_management/models/api_list.py api_invoker_management/models/api_list.py Loading @@ -25,6 +26,8 @@ api_invoker_management/models/communication_type.py api_invoker_management/models/custom_operation.py api_invoker_management/models/custom_operation.py api_invoker_management/models/data_format.py api_invoker_management/models/data_format.py api_invoker_management/models/ellipsoid_arc.py api_invoker_management/models/ellipsoid_arc.py api_invoker_management/models/enrol_fail_cause.py api_invoker_management/models/enrol_fail_reason.py api_invoker_management/models/gad_shape.py api_invoker_management/models/gad_shape.py api_invoker_management/models/geographic_area.py api_invoker_management/models/geographic_area.py api_invoker_management/models/geographical_coordinates.py api_invoker_management/models/geographical_coordinates.py Loading @@ -37,7 +40,10 @@ api_invoker_management/models/ipv6_address_range.py api_invoker_management/models/local2d_point_uncertainty_ellipse.py api_invoker_management/models/local2d_point_uncertainty_ellipse.py api_invoker_management/models/local3d_point_uncertainty_ellipsoid.py api_invoker_management/models/local3d_point_uncertainty_ellipsoid.py api_invoker_management/models/local_origin.py api_invoker_management/models/local_origin.py api_invoker_management/models/net_slice_id.py api_invoker_management/models/o_auth_grant_type.py api_invoker_management/models/o_auth_grant_type.py api_invoker_management/models/onboarding_criteria.py api_invoker_management/models/onboarding_fail_reason.py api_invoker_management/models/onboarding_information.py api_invoker_management/models/onboarding_information.py api_invoker_management/models/onboarding_notification.py api_invoker_management/models/onboarding_notification.py api_invoker_management/models/operation.py api_invoker_management/models/operation.py Loading @@ -50,12 +56,14 @@ api_invoker_management/models/polygon.py api_invoker_management/models/problem_details.py api_invoker_management/models/problem_details.py api_invoker_management/models/protocol.py api_invoker_management/models/protocol.py api_invoker_management/models/published_api_path.py api_invoker_management/models/published_api_path.py api_invoker_management/models/related_criteria.py api_invoker_management/models/relative_cartesian_location.py api_invoker_management/models/relative_cartesian_location.py api_invoker_management/models/resource.py api_invoker_management/models/resource.py api_invoker_management/models/security_method.py api_invoker_management/models/security_method.py api_invoker_management/models/service_api_description.py api_invoker_management/models/service_api_description.py api_invoker_management/models/service_kpis.py api_invoker_management/models/service_kpis.py api_invoker_management/models/shareable_information.py api_invoker_management/models/shareable_information.py api_invoker_management/models/snssai.py api_invoker_management/models/supported_gad_shapes.py api_invoker_management/models/supported_gad_shapes.py api_invoker_management/models/uncertainty_ellipse.py api_invoker_management/models/uncertainty_ellipse.py api_invoker_management/models/uncertainty_ellipsoid.py api_invoker_management/models/uncertainty_ellipsoid.py Loading @@ -63,8 +71,8 @@ api_invoker_management/models/version.py api_invoker_management/models/websock_notif_config.py api_invoker_management/models/websock_notif_config.py api_invoker_management/openapi/openapi.yaml api_invoker_management/openapi/openapi.yaml api_invoker_management/test/__init__.py api_invoker_management/test/__init__.py api_invoker_management/test/test_default_controller.py api_invoker_management/test/test_individual_on_boarded_api_invoker_document_controller.py api_invoker_management/test/test_individual_api_invoker_enrolment_details_controller.py api_invoker_management/test/test_on_boarded_api_invokers_collection_controller.py api_invoker_management/typing_utils.py api_invoker_management/typing_utils.py api_invoker_management/util.py api_invoker_management/util.py requirements.txt requirements.txt Loading
services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/app.py +4 −2 Original line number Original line Diff line number Diff line Loading @@ -14,13 +14,15 @@ from flask_executor import Executor from flask_jwt_extended import JWTManager from flask_jwt_extended import JWTManager from fluent import sender from fluent import sender from opentelemetry import trace from opentelemetry import trace from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import \ OTLPSpanExporter from opentelemetry.instrumentation.flask import FlaskInstrumentor from opentelemetry.instrumentation.flask import FlaskInstrumentor from opentelemetry.instrumentation.redis import RedisInstrumentor from opentelemetry.instrumentation.redis import RedisInstrumentor from opentelemetry.sdk.resources import Resource from opentelemetry.sdk.resources import Resource from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import BatchSpanProcessor from opentelemetry.sdk.trace.export import BatchSpanProcessor from opentelemetry.trace.propagation.tracecontext import TraceContextTextMapPropagator from opentelemetry.trace.propagation.tracecontext import \ TraceContextTextMapPropagator NAME = "Invoker-Service" NAME = "Invoker-Service" Loading
services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/controllers/default_controller.py→services/TS29222_CAPIF_API_Invoker_Management_API/api_invoker_management/controllers/individual_on_boarded_api_invoker_document_controller.py +24 −23 Original line number Original line Diff line number Diff line from functools import wraps from functools import wraps from api_invoker_management.models.api_invoker_enrolment_details_patch import \ APIInvokerEnrolmentDetailsPatch # noqa: E501 from cryptography import x509 from cryptography import x509 from cryptography.hazmat.backends import default_backend from cryptography.hazmat.backends import default_backend from flask import current_app, request from flask import current_app, request from flask_jwt_extended import get_jwt_identity, jwt_required from ..core.apiinvokerenrolmentdetails import InvokerManagementOperations from ..core.apiinvokerenrolmentdetails import InvokerManagementOperations from ..core.validate_user import ControlAccess from ..core.validate_user import ControlAccess from ..models.api_invoker_enrolment_details import APIInvokerEnrolmentDetails # noqa: E501 from ..models.api_invoker_enrolment_details import \ APIInvokerEnrolmentDetails # noqa: E501 invoker_operations = InvokerManagementOperations() invoker_operations = InvokerManagementOperations() valid_user = ControlAccess() valid_user = ControlAccess() Loading Loading @@ -38,12 +40,12 @@ def cert_validation(): return _cert_validation return _cert_validation @cert_validation() @cert_validation() def onboarded_invokers_onboarding_id_delete(onboarding_id): # noqa: E501 def delete_ind_onboarded_api_invoker(onboarding_id): # noqa: E501 """onboarded_invokers_onboarding_id_delete """Delete an existing Individual On-boarded API Invoker resource. Deletes an individual API Invoker. # noqa: E501 Deletes an existing Individual On-boarded API Invoker. # noqa: E501 :param onboarding_id: String identifying an individual on-boarded API invoker resource :param onboarding_id: :type onboarding_id: str :type onboarding_id: str :rtype: Union[None, Tuple[None, int], Tuple[None, int, Dict[str, str]] :rtype: Union[None, Tuple[None, int], Tuple[None, int, Dict[str, str]] Loading @@ -54,44 +56,43 @@ def onboarded_invokers_onboarding_id_delete(onboarding_id): # noqa: E501 return res return res @cert_validation() @cert_validation() def onboarded_invokers_onboarding_id_put(onboarding_id, body): # noqa: E501 def modify_ind_api_invoke_enrolment(onboarding_id, body): # noqa: E501 """onboarded_invokers_onboarding_id_put """modify_ind_api_invoke_enrolment Updates an individual API invoker details. # noqa: E501 # noqa: E501 :param onboarding_id: String identifying an individual on-boarded API invoker resource :param onboarding_id: :type onboarding_id: str :type onboarding_id: str :param api_invoker_enrolment_details: representation of the API invoker details to be updated in CAPIF core function :param api_invoker_enrolment_details_patch: :type api_invoker_enrolment_details: dict | bytes :type api_invoker_enrolment_details_patch: dict | bytes :rtype: Union[APIInvokerEnrolmentDetails, Tuple[APIInvokerEnrolmentDetails, int], Tuple[APIInvokerEnrolmentDetails, int, Dict[str, str]] :rtype: Union[APIInvokerEnrolmentDetails, Tuple[APIInvokerEnrolmentDetails, int], Tuple[APIInvokerEnrolmentDetails, int, Dict[str, str]] """ """ current_app.logger.info("Updating invoker") current_app.logger.info("Updating invoker") if request.is_json: if request.is_json: body = APIInvokerEnrolmentDetails.from_dict(request.get_json()) # noqa: E501 body = APIInvokerEnrolmentDetailsPatch.from_dict(request.get_json()) # noqa: E501 res = invoker_operations.update_apiinvokerenrolmentdetail(onboarding_id,body) res = invoker_operations.patch_apiinvokerenrolmentdetail(onboarding_id, body) return res return res @jwt_required() @cert_validation() def onboarded_invokers_post(body): # noqa: E501 def update_ind_onboarded_api_invoker(onboarding_id, body): # noqa: E501 """onboarded_invokers_post """Update an existing Individual On-boarded API Invoker resource. Creates a new individual API Invoker profile. # noqa: E501 # noqa: E501 :param onboarding_id: :type onboarding_id: str :param api_invoker_enrolment_details: :param api_invoker_enrolment_details: :type api_invoker_enrolment_details: dict | bytes :type api_invoker_enrolment_details: dict | bytes :rtype: Union[APIInvokerEnrolmentDetails, Tuple[APIInvokerEnrolmentDetails, int], Tuple[APIInvokerEnrolmentDetails, int, Dict[str, str]] :rtype: Union[APIInvokerEnrolmentDetails, Tuple[APIInvokerEnrolmentDetails, int], Tuple[APIInvokerEnrolmentDetails, int, Dict[str, str]] """ """ identity = get_jwt_identity() current_app.logger.info("Updating invoker") username, uuid = identity.split() current_app.logger.info("Creating Invoker") if request.is_json: if request.is_json: body = APIInvokerEnrolmentDetails.from_dict(request.get_json()) # noqa: E501 body = APIInvokerEnrolmentDetails.from_dict(request.get_json()) # noqa: E501 res = invoker_operations.add_apiinvokerenrolmentdetail(body, username, uuid) res = invoker_operations.update_apiinvokerenrolmentdetail(onboarding_id,body) return res return res