| 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/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 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/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/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/ch/335ff/data/ManagedElement[@id=Kista-001] /GNBCUCPFunction[@id=1]?fields=pLMNId;gNBId;gNBIdLength&topic=anrsome-app: anr24234234:v2-topic-name 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=anrsome-app: anr24234234:v2-topic-name 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/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 : ? 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/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 cps-path {ncmp-root}/ncmp/v1/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" " : [ { "top3gpp:id" : "NR-Cell-001" "attributes" : {
"administrativeState " : "LOCKED", "operationalState" : "disabled" , } }, { "top3gpp:id" : "NR-Cell-002" "attributes" : { "administrativeState " : "LOCKED", "operationalState" : "disabled"
}
}, _3gpp-nr-nrm-nrcelldu:NRCellDU=2 { "}, { "top3gpp:id" : "NR-Cell- 002003"
"attributes" : {
"administrativeState " : "LOCKED", "operationalState" : "disabled" } }, { "top3gpp:id" : "NR-Cell-004" "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", "administrativeState " : "LOCKED", "operationalState" : "disabled"
}
} } } ] } ] } |
6 | Create a data resource for a cmhandle | POST | {ncmp-root}/ncmp/v1/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/ch/34l5k32/data/ManagedElement[@id=Kista-001] /GNBDUFunction[@id=1] Header : Content-Type: application/yang-data+json Body : { "_3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier" :[ { "id" : 4 "attributescld" : {5 "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, "arrtibutes" : { "idcId" : 1511, "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, "arrtibutes" : { "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] } } |
9 | Replace a data resource for a cmhandle | PUT | {ncmp-root}/ncmp/v1/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/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" } }] } |
10 | Delete a data resource for a cmhandle | DELETE | {ncmp-root}/ncmp/v1/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/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?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/?module=_3gpp-nr-nrm-gnbdufunction Header : Accept: application/json Response: { cm-handles : [ "ew534fe", "23ft4", "434fsdf", ... ] } |