Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • ocf/sdk
1 result
Show changes
Commits on Source (14)
Showing
with 59 additions and 24 deletions
......@@ -176,6 +176,6 @@ config
*/__pycache__
*.capif_sdk_config_sample_test.json
/test/capif_sdk_config_sample_test.json
......@@ -64,7 +64,7 @@ Network Apps can be developed by third-party service providers, network operator
Next image illustrates how CAPIF works and where the SDK provides means to integrate with it:
![CAPIF-illustration](./doc/images/flows_capif_illustration.jpg)
![CAPIF-illustration](./doc/images/flows-capif_illustration.jpg)
For that purpose Network Apps play 2 different roles when interacting with CAPIF:
- **Invoker**: a Network App acting as an Invoker is responsible for consuming APIs exposed by other services. This role represents an external application or service that calls the 3GPP northbound APIs to utilize the network’s functionalities.
......@@ -96,6 +96,11 @@ OpenCAPIF SDK brings a set of functions to integrate with the 5G Core's function
| /{apfId}/service-apis/{serviceApiId} (GET) | [get_service()](./doc/sdk_full_documentation.md#get-services) | Retrieves the details of a specific service API for a specific `apfId` and `serviceApiId` |
| /{apfId}/service-apis (GET) | [get_all_services()](./doc/sdk_full_documentation.md#get-all-services) | Retrieves a list of all available service APIs for a specific `apfId` |
| /aef-security/v1/check-authentication (POST) | [check_authentication()](./doc/sdk_full_documentation.md#check_authentication) | This custom operation allows the API invoker to confirm the `supported_features` from the API exposing function(AEF) |
| /api-invocation-logs/v1/{aefId}/logs (POST) | [create_logs( aefId, api_invoker_id)](./doc/sdk_full_documentation.md#create_logs) | This operation allows to the Provider to notice to the CCF about the query of an invoker for an especific `aefId`
| /capif-events/v1/{subscriberId}/subscriptions (POST) | [create_subscription(name, id)](./doc/sdk_full_documentation.md#create_subscription) | This operation allows to the Invoker/AEF/APF/AMF to ask to the CCF about notifications related to certain functionalities.
| /capif-events/v1/{subscriberId}/subscriptions/{subscriptionId} (DELETE) | [delete_subscription(name, id)](./doc/sdk_full_documentation.md#delete_subscription) | This operation allows to the Invoker/AEF/APF/AMF to withdraw the petition to receive notifications related to certain functionalities.
| /capif-events/v1/{subscriberId}/subscriptions/{subscriptionId} (PUT) | [update_subscription(name, id)](./doc/sdk_full_documentation.md#update_subscription) | This operation allows to the Invoker/AEF/APF/AMF to modify to the petition to receive notifications related to certain functionalities. **ONLY AVAILABLE IN OPENCAPIF RELEASE 2**
| /capif-events/v1/{subscriberId}/subscriptions/{subscriptionId} (PATCH) | [patch_subscription(name, id)](./doc/sdk_full_documentation.md#patch_subscription) | This operation allows to the Invoker/AEF/APF/AMF to modify to the petition to receive notifications related to certain functionalities. **ONLY AVAILABLE IN OPENCAPIF RELEASE 2**
NOTE: Above mentioned CAPIF APIs are defined in these 3GPP references:
- [CAPIF Invoker API specification](https://github.com/jdegre/5GC_APIs/blob/Rel-18/TS29222_CAPIF_API_Invoker_Management_API.yaml)
......@@ -104,7 +109,8 @@ NOTE: Above mentioned CAPIF APIs are defined in these 3GPP references:
- [CAPIF Publish API specification](https://github.com/jdegre/5GC_APIs/blob/Rel-18/TS29222_CAPIF_Publish_Service_API.yaml)
- [CAPIF Security API specification](https://github.com/jdegre/5GC_APIs/blob/Rel-18/TS29222_CAPIF_Security_API.yaml)
- [AEF Security API specification](https://github.com/jdegre/5GC_APIs/blob/Rel-18/TS29222_AEF_Security_API.yaml)
- [CAPIF Logging API management](https://github.com/jdegre/5GC_APIs/blob/Rel-18/TS29222_CAPIF_Logging_API_Invocation_API.yaml)
- [CAPIF Events API management](https://github.com/jdegre/5GC_APIs/blob/Rel-18/TS29222_CAPIF_Events_API.yaml)
NOTE: In the [3GPP Technical Specification (TS) 29.222 V18.5.0 Common API Framework for 3GPP Northbound APIs](https://www.etsi.org/deliver/etsi_ts/129200_129299/129222/18.05.00_60/ts_129222v180500p.pdf) the `service` concept is understood as equal as the `API` concept.
......@@ -130,7 +136,7 @@ Here is a visual look on the variables of the CAPIF sdk referenced in:
- [Important information for Invoker Consumer](#important-information-for-invoker-consumer)
- [Important information for Provider Consumer](#important-information-for-provider-consumers)
![sdk_data_schema](./doc/images/flows_data_schema.png)
![sdk_data_schema](./doc/images/flows-data_schema.png)
# Network App developer path
......@@ -142,7 +148,7 @@ Here is a good explanation about how a usual flow of a Network App should work:
A Network App development running as a Provider would typically follow this process step by step, making use of the SDK:
![PROVIDER_PATH](./doc/images/flows_provider_path.jpg)
![PROVIDER_PATH](./doc/images/flows-provider_path.jpg)
Now, it is described in 4 simple steps how a Provider can be developed in just some code lines, below snippet. It describes the usual flow a Provider would follow to publish an API service.
......@@ -226,7 +232,7 @@ The `provider_capif_ids` variable stores the `provider_capif_ids.json` content i
A Network App development running as an Invoker would typically follow this process step by step, making use of the SDK:
![INVOKER_PATH](./doc/images/flows_invoker_path.jpg)
![INVOKER_PATH](./doc/images/flows-invoker_path.jpg)
Now, it is described in some simple steps how an Invoker can be developed in just some code lines. Find below the code snippet. It describes the usual flow an Invoker would follow to consume APIs from CAPIF.
......@@ -315,8 +321,6 @@ There are some features which **are not currently available at latest OpenCAPIF
- [CAPIF Access control policy management](https://github.com/jdegre/5GC_APIs/blob/Rel-18/TS29222_CAPIF_Access_Control_Policy_API.yaml)
- [CAPIF Auditing API management](https://github.com/jdegre/5GC_APIs/blob/Rel-18/TS29222_CAPIF_Auditing_API.yaml)
- [CAPIF Events API management](https://github.com/jdegre/5GC_APIs/blob/Rel-18/TS29222_CAPIF_Events_API.yaml)
- [CAPIF Logging API management](https://github.com/jdegre/5GC_APIs/blob/Rel-18/TS29222_CAPIF_Logging_API_Invocation_API.yaml)
- [CAPIF Routing info API management](https://github.com/jdegre/5GC_APIs/blob/Rel-18/TS29222_CAPIF_Routing_Info_API.yaml)
- [CAPIF Security API management](https://github.com/jdegre/5GC_APIs/blob/Rel-18/TS29222_CAPIF_Security_API.yaml)
- /trustedInvokers/{apiInvokerId}/delete (POST)
......
......@@ -9,10 +9,10 @@
"invoker": {
"invoker_folder": "",
"capif_callback_url": "",
"supported_features":"",
"check_authentication_data":{
"ip":"",
"port":""
"supported_features": "",
"check_authentication_data": {
"ip": "",
"port": ""
},
"cert_generation": {
"csr_common_name": "",
......@@ -37,21 +37,21 @@
"api-supported-features": "",
"ue-ip-addr": "",
"service-kpis": ""
},
"events": {
"description": [""],
"eventFilters": [
{
"apiIds": [""],
"apiInvokerIds": [""],
"aefIds": [""]
}
]
}
},
"provider": {
"provider_folder": "",
"supported_features": "",
"apfs": "",
"aefs": "",
"publish_req": {
"service_api_id": "",
"publisher_apf_id": "",
"publisher_aefs_ids": [
"",
""
]
},
"cert_generation": {
"csr_common_name": "",
"csr_organizational_unit": "",
......@@ -61,6 +61,37 @@
"csr_country_name": "",
"csr_email_address": ""
},
"api_description_path": ""
}
"apfs": "",
"aefs": "",
"publish_req": {
"service_api_id": "",
"publisher_apf_id": "",
"publisher_aefs_ids": ["", ""]
},
"api_description_path": "",
"events": {
"description": [""],
"eventFilters": [
{
"apiIds": [""],
"apiInvokerIds": [""],
"aefIds": [""]
}
],
"notificationDestination": "",
"websockNotifConfig": {
"websocketUri": "",
"requestWebsocketUri": false
}
},
"log": {
"apiName": "",
"apiVersion": "",
"resourceName": "",
"uri": "",
"protocol": "",
"operation": "",
"result": ""
}
}
}
doc/images/capif_provider_details_example.png

131 KiB

doc/images/flows-event_subscription.jpg

134 KiB

doc/images/flows-invoker_check_authentication.jpg

130 KiB

doc/images/flows-invoker_discover.jpg

130 KiB

doc/images/flows-invoker_get_tokens.jpg

131 KiB

doc/images/flows-invoker_onboard.jpg

133 KiB

doc/images/flows-invoker_path.jpg

134 KiB

doc/images/flows-invoker_update_offboard.jpg

130 KiB

doc/images/flows-provider_logs.jpg

128 KiB

doc/images/flows-provider_onboard.jpg

132 KiB

doc/images/flows-provider_path.jpg

131 KiB

doc/images/flows-provider_publish_functions.jpg

131 KiB

doc/images/flows-provider_update_offboard.jpg

129 KiB

doc/images/flows-updated_opencapif .jpg

128 KiB