Commit 3a289396 authored by JorgeEcheva26's avatar JorgeEcheva26
Browse files

Event feature documentation and small changes in the code, tested and change...

Event feature documentation and small changes in the code, tested and change in mistake in capif_sdk_config
parent 7c137014
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -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.
@@ -97,6 +97,10 @@ OpenCAPIF SDK brings a set of functions to integrate with the 5G Core's function
| /{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)
@@ -106,7 +110,7 @@ NOTE: Above mentioned CAPIF APIs are defined in these 3GPP references:
- [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.


@@ -132,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

@@ -144,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.

@@ -228,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.

@@ -317,7 +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 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)
+34 −35
Original line number Diff line number Diff line
@@ -39,42 +39,19 @@
      "service-kpis": ""
    },
    "events": {
      "events": ["SERVICE_API_AVAILABLE"],
      "description": [""],
      "eventFilters": [
        {
          "apiIds": [
            "string"
          ],
          "apiInvokerIds": [
            "string"
          ],
          "aefIds": [
            "string"
          ]
        }
      ],
      "eventReq":"string",
      "requestTestNotification": true,
      "websockNotifConfig": {
        "websocketUri":"",
        "requestWebsocketUri": true
          "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": "",
@@ -84,7 +61,29 @@
      "csr_country_name": "",
      "csr_email_address": ""
    },
    "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": "",
−131 KiB
Loading image diff...
Loading