Versions Compared

Key

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

...

Expand
titleAPI Details

*For response output, where applicable the yang-library format and conventions are used 'as is'  or extended

all the registered cmhandles given pluginGETncmpncmp-dmiplugins/{plugin-id}/chScenario : Get all cmhandles from NCMP for a given dmi-plugin. May be used
for conciliation
Method : GET
URI : {ncmp-root}/ncmp-dmi/v1/dmi-plugins/{dmi-plugin}/ch
Header :
Content-Type: application/json
Success Response :
HTTP/1.1 200 Ok
Date: Thu, 26 Jan 2021 20:56:30 GMT
Server: example-server
{ "cmhandles"cmhandle":"node-1",
"additionalProperties":{subSystemsystem001 }
}]
}

Get module set for a cmhandle

#Use CaseRest MethodServiceURIExample*
1DMI notifies NCMP of new , deleted or changed cmhandles DMI Plugin NCMP. Including initial registration

POST for creating.

For update, replace and patch is distinguished by the HTTP method (PUT or PATCH).

json attributes:

  • "dmi-plugin" resolvable servicename
  • "created-cm-handles" used for initial cm handle registrations or subsequent
    cmhandle creations
  • "updated-cm-handles"
    Used for updates to cmhandles. Same structure as for create handles
  • "removed-cm-handles"  array of cmhandles that have been deleted
    from the network (no additional properties
NCMP

{ncmp-root}/ncmp-dmi/v1/ch/

Scenario : DMI notifies NCMP of new cmhandles
Method : POST
URI : {ncmp-root}/ncmp-dmi/v1/ch/
Header :
Content-Type: application/json

Request Body
:
{
"dmi-plugin" : "onap.dmi.plugin",
"created-cm-handles" : [ { "cmhandle" : "rf4er5454",


Code Block
languagexml
titleCreate
{
  "operation": "create",  // Valid operations are: “create”, “read”, “update” and “delete”.
  "data-type": "application/json",
  "data": {
    "dmi-plugin": "onap.dmi.plugin",
    "data": {
      "cmhandle": "node-123"
    
},
    
"additionalProperties"
:

 {
      
"subsystemId": "system-001"
    }
  }
}



2Get all the registered cmhandles for a given pluginGETNCMP{ncmp-root}/ncmp-dmi/v1/dmi-plugins/{plugin-id}/ch
Scenario : Get all cmhandles from NCMP for a given dmi-plugin. May be used
for conciliation
Method : { "subsystemId" : "system-001" }
GET
URI : {ncmp-root}/ncmp-dmi/v1/dmi-plugins/{dmi-plugin}/ch
Header :
Content-Type: application/json

Success Response :
HTTP/1.1 200 Ok
Date: Thu, 26 Jan 2021 20:56:30 GMT
Server: example-server
{ "cmhandles" : [ {
}, {..} ],
"cmhandle" : "updatednode-cm-handles1",
: [ .. ],
"removed-cm-handlesadditionalProperties" : [{ "node-1",subSystem" : "nodesystem-2" , ...001" }
} ]
}
23

Get

module set for a

cmhandle


POSTNCMPDMI-Plugin{dmi-root}/dmi/v1/ch/cmhandle-001/modules

Header :
Content-Type: application/json


Code Block
languagexml
{
  "operation": "read",
  "data-type": "application/json",
  "data": {
    "data": {
      "cmhandle": "node-123"
    },
    "additionalProperties": {
      "subsystemId": "system-001"
    }
  }
}


Response:
{
"ietf-yang-library:yang-library" : [
{ "module-set
" : [ {
 
 
          
 
 
 "
name" : "
sample-
module"
,
 
   
3POSTDMI-Plugin{dmi-root}/dmi/v1/ch/cmhandle-001/modules

Header :
Content-Type: application/json

Body :
{ "additionalProperties" : {"subSystem" : "subsystem-001"}}
Response:
{
"ietf-yang-library:yang-library" : [
{ "module-set" : [ {
          "module" : [
{
"name" : "
sample-module
_3gpp-nr-nrm-nrsectorcarrier",
"
module
revision" : 
[
"2020-12-09",
{
  "namespace" 
"name" : "
: "urn:3gpp:sa5:_3gpp-nr-nrm-nrnetwork-nrsectorcarrier",
"revision" : "2020-12-09",
} 
...
"namespace" : "urn:3gpp:sa5:_3gpp-nr-nrm-nrnetwork-nrsectorcarrier",
}
}
4Get yang module source for a list of modulesPOSTDMI-Plugin

{dmi-root}/dmi/v1/ch/<cm-handle>model


DMI PLugin will make multiple requests to xNF and combine the result in a list


Code Block
languagexml
{
  "operation": "read",
  "data-type": "application/json",
  "data": {
    "data": {
      "cmhandle": "node-123"
    },
    "additionalProperties": {
      "subsystemId": "system-001",
      
...
}
4Get yang module source for a list of modulesPOSTDMI-Plugin

{dmi-root}/dmi/v1/ch/<cm-handle>model

DMI PLugin will make multiple requests to xNF and combine the result in a list

Body :
{ "additionalProperties" : {"subSystem" : "subsystem-001"}
"modules" : [ {
"modules": [
        {
          "namespace": "urn:3gpp:sa5:_3gpp-nr-nrm-nrnetwork-nrsectorcarrier",
          "name": "_3gpp-nr-nrm-nrsectorcarrier",
          "revision": "2020-12-09"
        }
, { ... } ]

      ]
    }
  }
}


Response: a list yang module references and source for each

{ [
{
"name" : "_3gpp-nr-nrm-nrsectorcarrier",
"revision" : "2020-12-09",

"namespace": "urn:3gpp:sa5:_3gpp-nr-nrm-nrnetwork-nrsectorcarrier" }
,
"yang-source": "module pnf-sw-upgrade {\n namespace \"http://onap.org/pnf-sw-upgrade\";\n prefix upgrade;\n\n import ietf-yang-types {\n prefix yang;\n }
\n\n revision 2019-12-03 {\n description\n \"initial version\";\n }\n\n container software-upgrade {\n list upgrade-package {\n key \"id\";\n leaf id {\n type string;\n }
\n\n leaf current-status {\n type enumeration {\n enum \"CREATED\";\n enum \"INITIALIZED\";\n enum \"DOWNLOAD_IN_PROGRESS\";\n enum \"DOWNLOAD_COMPLETED\";\n
enum \"ACTIVATION_IN_PROGRESS\";\n enum \"ACTIVATION_COMPLETED\";\n }\n description\n \"List of possible states of the upgrade\";\n }\n\n leaf state-change-time
{\n type yang:date-and-time;\n mandatory false;\n description\n \"Date and time of the last state change.\";\n }\n\n leaf action {\n type enumeration
{\n enum \"NONE\";\n enum \"PRE_CHECK\";\n enum \"DOWNLOAD_NE_SW\";\n enum \"ACTIVATE_NE_SW\";\n enum \"CANCEL\";\n }\n mandatory false;\n description\n
\"List of possible actions for the upgrade\";\n }\n\n leaf software-version {\n type string;\n description\n \"Possible name or release version of the UP\";\n }
\n\n leaf uri {\n type string;\n description\n \"A URI that points to the directory where the UP can be found.\";\n }\n\n leaf user {\n type string;\n description\n
\"Indicates the user.\";\n }\n\n leaf password {\n type string;\n description\n \"Indicates the password.\";\n }\n\n leaf user-label {\n type string;\n description\n
\"Free-text description of the UP.\";\n }\n\n leaf node-health {\n type string;\n description\n \"Reflect Node Health Status\";\n }\n }\n }\n}"
}, {...} ]
}



GET Request with body


The HTTP libraries of certain languages (notably JavaScript) don’t allow GET requests to have a request body. In fact, some users are surprised that GET requests are ever allowed to have a body.

...