This document describes the procedure for sending notifications related to VNF package management
Precondition: The subscribed API consumer has subscribed previously for notifications related to VNF package management.
If an event occurs that matches the filtering criteria which are part of the subscription, Etsicatalog will generate notification that includes information about the event, and sends it in the body of a POST request to the URI
which the subscribed API consumer has registered as part of the subscription request.
The subscribed API consumer should acknowledges the successful delivery of the notification by returning a "204 No Content" response.
1.VnfPackage Onboarding Notification
When the vnf package performs the Onboarding operation successfully, Etsicatalog will filter all Subscriptions records:
- notificationTypes == “VnfPackageOnboardingNotification”
&&
- VnfPackage‘s vnfdId / vnfPkgId / vnfProductsFromProviders matching subscription.filters
If there are some matching subscription records, Etsicatalog will send a notification to the URI which is provided by the Client in its subscription request.
1.1 Flow of VnfPackage Onboarding Notification
1.2 Subscribe API example:
curl -X POST http://{{baseUrl}}//api/vnfpkgm/v1/subscriptions -H 'Content-Type: application/json' -d '{ "filters": { "notificationTypes": [ "VnfPackageOnboardingNotification" ], "vnfdId": [ "uuid_vnfdid" ] }, "callbackUri": "http://www.vnf1.com/notification", "authentication": { "authType": [ "BASIC" ], "paramsBasic": { "userName": "username", "password": "userpwd" } } }'
1.3 Notification API example:
POST http://URI-is-provided-by-the-client-when-creating-the-subscription-VnfPackageOnboardingNotification
For this example, the URI provided by client is http://www.vnf1.com/notification according to the subscription request above.
curl -X POST http://www.vnf1.com/notification http:// -H 'Content-Type: application/json' -d '{ "id":"notify_id", "notificationType":"VnfPackageOnboardingNotification", "timeStamp":"2019-12-16 14:41:16", "vnfPkgId":"vnfPackage_uuid", "vnfdId":"vnfdId_uuid", "subscriptionId":"subscription_id", "_links":{ "subscription":{ "href":"http://subscriptionuri" }, "vnfPackage":{ "href":"http://vnfPackageuri" } } }'
2.VnfPackage Change Notification
When the vnf package performs the Deleting or Patching operation successfully, Etsicatalog will filter all Subscriptions records:
- notificationTypes == “VnfPackageChangeNotification”
&&
- VnfPackage’s vnfdId / vnfPkgId / vnfProductsFromProviders matching subscription.filters
If there are some matching subscription records, Etsicatalog will send a notification to the URI which is provided by the Client in its subscription request.
2.1 Flow of VnfPackage Change Notification
2.2 Subscribe API example:
curl -X POST http://{{baseUrl}}/api/vnfpkgm/v1/subscriptions -H 'Content-Type: application/json' -d '{ "filters": { "notificationTypes": [ "VnfPackageChangeNotification" ], "vnfdId": [ "uuid_vnfdid" ] }, "callbackUri": "http://www.vnf1.com/notification", "authentication": { "authType": [ "BASIC" ], "paramsBasic": { "userName": "string", "password": "string" } } }'
2.3 Notification API example:
POST http://URI-is-provided-by-the-client-when-creating-the-sbuscription-VnfPackageChangeNotification
For this example, the URI provided by client is http://www.vnf1.com/notification according to the subscription request above.
curl -X POST http://www.vnf1.com/notification -H 'Content-Type: application/json' \ -d '{ "id":"notify_id", "notificationType":"VnfPackageChangeNotification", "timeStamp":"2019-12-16 14:41:16", "vnfPkgId":"vnfPackage_uuid", "vnfdId":"vnfdId_uuid", "subscriptionId":"subscription_id", "changeType":"OP_STATE_CHANGE", "operationalState":"ENABLED", "_links":{ "subscription":{ "href":"http://subscriptionuri" }, "vnfPackage":{ "href":"http://vnfPackageuri" } } }'