Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

PlantUML Macro
aligncenter
@startuml
SOL003_Adapter -> ETSICatalog: Post PkgmSubscriptionRequest/Subscriptions\n(callbackUri=/URI-is-provided-by-the-client\nfilter.notificationTypes=VnfPackageOnboardingNotification\nfilters.vnfProductsFromProviders/vnfdId/vnfPkgId=...)
note over ETSICatalog: test notification endpoint
ETSICatalog->SOL003_Adapter: Get /URI-is-provided-by-the-client
ETSICatalog<-SOL003_Adapter: 204 No Content
note over ETSICatalog:  Creates a new subscription
ETSICatalog->SOL003_Adapter: 201 Created
alt
SOL003_Adapter -> ETSICatalog: Put /vnf_packages/(vnfPkgId)/package_content
else
SOL003_Adapter -> ETSICatalog: Put /vnf_packages/(vnfPkgId)/package_content/upload_from_uri
end
ETSICatalog->SOL003_Adapter: 202 Accepted
note over ETSICatalog: Uploading of VNF package content
note over ETSICatalog: Filter Subscriptions
alt  Filted by Subscriptions.filters.vnfProductsFromProviders/vnfdId/vnfPkgId
ETSICatalog->SOL003_Adapter: Post /URI-is-provided-by-the-client
ETSICatalog<-SOL003_Adapter: 204 No Content
end
@enduml

...

Code Block
languagebash
{
    "filters": {
        "notificationTypes": [
            "VnfPackageOnboardingNotification"
        ],
        "vnfdId": [
            "uuid_vnfdid"
        ]
    },
    "callbackUri": "http://www.vnf1.com/notification",
    "authentication": {
        "authType": [
            "BASIC"
        ],
        "paramsBasic": {
            "userName": "string",
            "password": "string"
        }
    }
}

1.

...

3 Notification API example:

Code Block
{
  "id":"notify_id",
  "notificationType":"VnfPackageOnboardingNotification",
  "timeStamp":"nowtime()",
  "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:

...

If there is some matching subscription records,  Etsicatalog will post notifications requests.


2.1 Flow of VnfPackage Change Notification

PlantUML Macro
aligncenter
@startuml
SOL003_Adapter -> ETSICatalog: Post PkgmSubscriptionRequest/Subscriptions\n(callbackUri=/URI-is-provided-by-the-client\nfilter.notificationTypes=VnfPackageChangeNotification\nfilters.vnfProductsFromProviders/vnfdId/vnfPkgId=...)
note over ETSICatalog: test notification endpoint
ETSICatalog->SOL003_Adapter: Get /URI-is-provided-by-the-client
ETSICatalog<-SOL003_Adapter: 204 No Content
note over ETSICatalog:  Creates a new subscription
ETSICatalog->SOL003_Adapter: 201 Created
alt
SOL003_Adapter -> ETSICatalog: Delete /vnf_packages/(vnfPkgId)
note over ETSICatalog: Deletes the VNF package
ETSICatalog->SOL003_Adapter: 200 OK
else
SOL003_Adapter -> ETSICatalog: Patch /vnf_packages/(vnfPkgId)
note over ETSICatalog: Updates the information of the VNF package
ETSICatalog->SOL003_Adapter: 204 No Content
end
note over ETSICatalog: Filter Subscriptions
alt  Filted by Subscriptions.filters.vnfProductsFromProviders/vnfdId/vnfPkgId
ETSICatalog->SOL003_Adapter: Post /URI-is-provided-by-the-client
ETSICatalog<-SOL003_Adapter: 204 No Content
end
@enduml

2.2 Subscribe API example:

Code Block
languagebash
{
    "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:

Code Block
{
  "id":"notify_id",
  "notificationType":"VnfPackageChangeNotification",
  "timeStamp":"nowtime()",
  "vnfPkgId":"vnfPackage_uuid",
  "vnfdId":"vnfdId_uuid",
  "subscriptionId":"subscription_id",
  "changeType":"OP_STATE_CHANGE",
  "operationalState":"ENABLED",
  "_links":{
    "subscription":{
      "href":"http:\\subscriptionuri"
    },
    "vnfPackage":{
      "href":"http:\\vnfPackageuri"
    }
  }
}