| Req/usecase | REST Method | URI / Payload | Request/Response Example |
---|
1 | Read of a data resource getting specific fields for a given cmHandle Sync call | GET | ncmp-root}/ncmp/v1/data/ch/<cm-handle>/data/{data-resource-identifier}?fields={fields}
Note 'topic' and 'fields' are only supported in passthrough mode at this time (ONAP Release I). If not passhrough passthrough then an exception is thrown from NCMP at this time. Accept : application/yang-data+json Always return the yang-data+json in the "data" event payload | Scenario : Read the GNBCUCPFunction for cmhandle "335ff" as passthrough Method : GET URI : {ncmp-root}/ncmp/v1/data/ch/335ff/data/ManagedElement[@id=Kista-001] /GNBCUCPFunction[@id=1]?fields=pLMNId;gNBId;gNBIdLength Header : Accept: application/yang-data+json
Response : { "_3gpp-common-managed-element:ManagedElement" : [ { "id"="Kista-001", _3gpp-nr-nrm-gnbcucpfunction:GNBCUCPFunction : [ { "id"="1", "attributes" : { "pLMNId : [ { "mcc" : "01", "mnc" : "123" }], "gNBId" : 123, "gNBIdLength" : 3 } } ] } ] } |
2 | Async read of a data resource getting specific fields from ncmp-datastores: passthrough-running for a given cmHandle | GET | {ncmp-root}/ncmp/v1/data/ch/<cm-handle>/data/{data-resource-identifier}?fields={fields}&topic={topicId} Note 'topic' and 'fields' are only supported in passthrough mode at this time (ONAP Release I). If not passhrough then an exception is thrown from NCMP at this time. Accept : application/json
Always return the yang-data+json in the "data" event payload | Scenario : Read the GNBCUCPFunction for cmhandle "335ff" as passthrough Method : GET URI : {ncmp-root}/ncmp/v1/data/ch/335ff/data/ManagedElement[@id=Kista-001] /GNBCUCPFunction[@id=1]?fields=pLMNId;gNBId;gNBIdLength&topic=anr-app: anr24234234:v2 OR {ncmp-root}/ncmp/v1/data/ch/335ff/ds/ncmp-datastores:passthrough-running? fields=_3gpp-common-managed-element:ManagedElement/_3gpp-nr-nrm-gnbcucpfunction:GNBCUCPFunction(pLMNId;gNBId;gNBIdLength)&topic=anr-app: anr24234234:v2
Header : Accept: application/json
Response : { responseId : 323234 } Event Response: { "requestId" : "dd3434", "data" : { "_3gpp-common-managed-element:ManagedElement" : [ { "id"="Kista-001", ? _3gpp-nr-nrm-gnbcucpfunction:GNBCUCPFunction : [ { "id"="1", "attributes" : { "pLMNId : [ { "mcc" : "01", "mnc" : "123" }], "gNBId" : 123, "gNBIdLength" : 3 } } ] } ] } } Note : async not supported by NCMP locally in ONAP Rel I |
3 | Read a data resource directly from source (passthrough) for a cmHandle. Only return specific field(s). Synchronous call | GET | {ncmp-root}/ncmp/v1/data/ch/<cm-handle>/data/{data-resource-identifier}?fields={fields} Accept: application/yang-data+json | Scenario : Read the EUtranCellFDD.(administrativeState, operationalState, tac, earfcndl, cellId, physicalLayerCellId) for cmhandle "335ff" Method : GET URI : ? physicalLayerCellId) Header : Accept: application/yang-data+json |
4 | Read a data resource with some leaf value condition directly from the source (passthrough) for a cmHandle. Only return specific field(s). Synchronous call | GET | {ncmp-root}/ncmp/v1/data/ch/<cm-handle>/data/{data-resource-identifier[<condition>]}?fields={fields}
Accept: application/yang-data+json | Scenario : Read the LocalSctpEndpoint.(interfaceUsed==X2, sctpEndpointRef) for cmhandle "335ff" as passthrough Method : GET URI cps-path {ncmp-root}/ncmp/v1/query/ch/335ff/query/LocalSctpEndpoint[interfaceUsed=X2]? fields=sctpEndpointRef
|
5 | Read descendant data resources with specified fields under a given data resource for a given cmHandle | GET | {ncmp-root}/ncmp/v1/ch/<cm-handle>/{data-resource-identifier}?fields={fields-expression} options Option | Description |
---|
fields | Request a subset of the target resource contents |
| Scenario : Read all NRCellDU MOs with attributes userLabel and id under the _3gpp-nr-nrm-gnbdufunction:GNBDUFunction MO Method : GET URI :{ncmp-root}/ncmp/v1/ch/3445fff/data/ManagedElement[@id=Kista-001] /GNBCUCPFunction[@id=1]?fields=_3gpp-nr-nrm-nrcelldu:NRCellDU/attributes (administrativeState;operationalState) Header : Accept : application/yang-data+json Response : HTTP/1.1 200 OK Date: Thu, 26 Jan 2017 20:56:30 GMT Server: example-server Content-Type: application/yang-data+json { _3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1 { _3gpp-nr-nrm-nrcelldu:NRCellDU=1 { "top3gpp:id" : "NR-Cell-001" "attributes" : { "administrativeState " : "LOCKED", "operationalState" : "disabled" } }, _3gpp-nr-nrm-nrcelldu:NRCellDU=2 { "top3gpp:id" : "NR-Cell-002" "attributes" : { "administrativeState " : "LOCKED", "operationalState" : "disabled" } }, _3gpp-nr-nrm-nrcelldu:NRCellDU=3 { "top3gpp:id" : "NR-Cell-003" "attributes" : { "administrativeState " : "LOCKED", "operationalState" : "disabled" } }, _3gpp-nr-nrm-nrcelldu:NRCellDU=4 { "top3gpp:id" : "NR-Cell-004" "attributes" : { "administrativeState " : "LOCKED", "operationalState" : "disabled" } }, _3gpp-nr-nrm-nrcelldu:NRCellDU=5 { "top3gpp:id" : "NR-Cell-005" "attributes" : { "administrativeState " : "LOCKED", "operationalState" : "disabled" } } } } |
6 | Create a data resource for a cmhandle | POST | {ncmp-root}/ncmp/v1/data/ch/<cm-handle>/data/{parent-data-resource-identifier} { <new-yang-data-resource> } Content: application/yang-data+json | Scenario : Create nrsectorcarrier-vdu-add:NRSectorCarrier=4 under _3gppcommon-managed-element:ManagedElement=Kista-001/_3gpp-nr-nrm-gnbdufunction:
GNBDUFunction=1 Method : POST URI : {ncmp-root}/ncmp/v1/ data/ch/34l5k32/data/ManagedElement[@id=Kista-001] /GNBDUFunction[@id=1] Header : Content-Type: application/yang-data+json
|
7 | Update a data resource for a cmhandle with plain-patch update | PATCH | {ncmp-root}/ncmp/v1/data/ch/<cm-handle>/{data-resource-identifier} { } Content: application/yang-data+json Behaves as a merge - merge with existing if it exists or create if it does not exist. | Scenario : Update _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier=4 txDirection to "DL_AND_UL" under _3gpp-common-managed-element:ManagedElement=Kista001/_3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1 Method : PATCH URI : {ncmp-root}/ncmp/v1/data/ch/34l5k32/ManagedElement[@id=Kista-001] /GNBDUFunction[@id=1]/NRSectorCarrier[@id=4] Header : Content-Type: application/yang-data+json Body : |
Body : { _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier" : { "id" : 4 "attributes" : { "userLabel : "nrSectorCar-4", "txDirection" : "DL_AND_UL", "configuredMaxTxPower" : "90", "arfcnDL" : "9999999", "arfcnUL" : "888888", "bSChannelBwDL" : "90", "bSChannelBwUL" : "80", "sectorEquipmentFunctionRef" : "ManagedElement=1/... /SectorEquipmentFunction=2" } } } |
7 | Update a data resource for a cmhandle with plain-patch update | PATCH | {ncmp-root}/ncmp/v1/ch/<cm-handle>/data/{data-resource-identifier} { <updated-yang-data-resource> } Content: application/yang-data+json Behaves as a merge - merge with existing if it exists or create if it does not exist. | Scenario : Update _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier=4 txDirection to "DL_AND_UL" under _3gpp-common-managed-element:ManagedElement=Kista001/_3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1 Method : PATCH URI : {ncmp-root}/ncmp/v1/ch/34l5k32/data/ManagedElement[@id=Kista-001] /GNBDUFunction[@id=1]/NRSectorCarrier[@id=4] Header : Content-Type: application/yang-data+json Body : { _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier" : { "id" : 4 "attributes" : { "txDirection" : "DL_AND_UL" } } } |
8 | Update a data resource with multiple edits for a cmhandle with yang-patch update | PATCH | {ncmp-root}/ncmp/v1/ch/<cm-handle>/data/{data-resource-identifier} { <updated-yang-data-resource> }
Content: application/yang-patch+json If using yang-patch content then ds/ncmp-datastore-passthrough-running must be used by rad apps until full support is available from NCMP/CPS | Scenario : Update _3gpp-common-managed-element:ManagedElement=Kista-001/_3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1 with multiple operations on the tree Method : PATCH URI : {ncmp-root}/ncmp/v1/ch/34l5k32/data/ds/ncmp-datastore-passthrough-running/ManagedElement[@id=Kista-001]/GNBDUFunction[@id=1]
Header : Content-Type: application/yang-patch+json Body : { "ietf-restconf:yang-patch" : { "patch-id" : "change-cell-and-carriers", "edit" : [ { "edit-id" : 1, "operation" : "create", "target" : "/_3gpp-nr-nrm-nrcelldu:NRCellDU=1", "value" : { "_3gpp-nr-nrm-nrcelldu:NRCellDU" : { "id" : 1, "cId" : 511, "userLabel" : "some-cell-label", ... } } }, { "edit-id" : 2, "operation" : "create", "target" : "/_3gpp-nr-nrm-nrcelldu:NRCellDU=2", "value" : { "_3gpp-nr-nrm-nrcelldu:NRCellDU" : { "id" : 2, "cId" : 512, "userLabel" : "some-other-cell-label", ... } } }, { "edit-id" : 3, "operation" : "merge", "target" : "/_3gpp-nr-nrm-nrcelldu:NRCellDU=3", "value" : { "_3gpp-nr-nrm-nrcelldu:NRCellDU" : { "cId" : 412, "userLabel" : "yet-another-cell-label", ... } } }, { "edit-id" : 4, "operation" : "merge", "target" : "_3gpp-nr-nrm-nrcelldu:NRCellDU=4", "value" : { "_3gpp-nr-nrm-nrcelldu:NRCellDU" : { "cId" : 412, "userLabel" : "yet-another-cell-label", ... } } } ] } } Response : HTTP/1.1 200 OK Date: Thu, 26 Jan 2017 20:56:30 GMT Server: example-server Last-Modified: Thu, 26 Jan 2017 20:56:30 GMT Content-Type: application/yang-patch+json { "ietf-yang-patch:yang-patch-status" : { "patch-id" : "change-cell-and-carriers", "ok" : [null] } } | 8 | Update a data resource with multiple edits for a cmhandle with yang-patch update | PATCH | {ncmp-root}/ncmp/v1/data/ch/<cm-handle>/{data-resource-identifier} { <updated-yang-data-resource> } Content: application/yang-patch+json If using yang-patch content then ds/ncmp-datastore-passthrough-running must be used by rad apps until full support is available from NCMP/CPS Scenario : Update _3gpp-common-managed-element:ManagedElement=Kista-001/_3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1 with multiple operations on the tree Method : PATCH URI : {ncmp-root}/ncmp/v1/data/ch/34l5k32/ds/ncmp-datastore-passthrough-running/ManagedElement[@id=Kista-001]/GNBDUFunction[@id=1] |
9 | Replace a data resource for a cmhandle | PUT | {ncmp-root}/ncmp/v1/data/ch/<cm-handle>/data/{data-resource-identifier} { <yang-data-resource-for-replace> } Content: application/yang-data+json | Scenario : Replace _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier=4 txDirection to "DL_AND_UL" under _3gpp-common-managed-element:ManagedElement=Kista001/_3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1 - removes all config params not specified including sub-tree if one exists Method : PUT URI : {ncmp-root}/ncmp/v1 /data/ch/34l5k32/data/ManagedElement[@id=Kista-001] /GNBDUFunction[@id=1]/ NRSectorCarrier[@id=4] Header : Content-Type: application/yang-data+jsonNRSectorCarrier[@id=4] Header : Content-Type: application/yang-data+json
Body : { _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier" : { "id" : 4 "attributes" : { "txDirection" : "DL_AND_UL" } } } |
10 | Delete a data resource for a cmhandle | DELETE | {ncmp-root}/ncmp/v1/data/ch/<cm-handle>/data/{data-resource-identifier | Scenario : Delete nrsectorcarrier-vdu-add:NRSectorCarrier=4 under _3gppcommon-managed-element:ManagedElement=Kista-001/_3gpp-nr-nrm-gnbdufunction: GNBDUFunction=1 Method : DELETE URI : {ncmp-root}/ncmp/v1/data/ch/34l5k32/data/ManagedElement[@id=Kista-001] /GNBDUFunction[@id=1]/NRSectorCarrier[@id=4] Header : Accept: application/json Body : {} |
11 | Get all cmhandles that support a given module | GET | {ncmp-root}/ncmp/v1/ch/data/ch?module={module-name} Content: application/json | Scenario : Get the all cmhandles that support a given module Method : GET URI : {ncmp-root}/ncmp/v1/ch/data/ch?module=_3gpp-nr-nrm-gnbdufunction Header : Accept: application/json Response: { cm-handles : [ "ew534fe", "23ft4", "434fsdf", ... ] } |