...
# | Usecase | NCMP Datastore | Path | ?fields | ?topic | Query | Time frame |
---|---|---|---|---|---|---|---|
1 | Read | passthrough-running | RESTConf Path only | Implemented by SDNC/Node | Implemented by DMI Plugin | Not supported | Istanbul |
2 | Read | ncmp-datastores:operational | CPSPath only | TBD | TBD | Limited xpath functionality | Istanbul |
3 | Create | passthrough-running | RESTConf Path only | N/A | N/A | N/A | Istanbul |
4 | Create | ncmp-datastores:running | CPSPath only | N/A | N/A | N/A | > Istanbul |
5 | Delete | passthrough-running | RESTConf Path only | N/A | N/A | Not supported | Istanbul |
6 | Delete | ncmp-datastores:running | CPSPath only | N/A | N/A | Not supported | > Istanbul |
7 | Update | passthrough-running | RESTConf Path only | N/A | N/A | N/A | Istanbul |
8 | Update | ncmp-datastores:running | CPSPath only | N/A | N/A | N/A | > Istanbul |
9 | Patches | passthrough-running | RESTConf Path only | N/A | N/A | N/A | Istanbul |
10 | Patches | ncmp-datastores:running | CPSPath only | N/A | N/A | N/A | > Istanbul |
11 | Bulk | passthrough-running | RESTConf Path only | N/A | N/A | N/A | > Istanbul |
12 | Bulk | ncmp-datastores:running | CPSPath only | N/A | N/A | N/A | > Istanbul |
13 | Action | passthrough-running | RESTConf Path only | N/A | N/A | N/A | Istanbul? |
14 | Action | ncmp-datastores:running | CPSPath only | N/A | N/A | N/A | Istanbul? |
REST API
Req/usecase | REST Method | URI / Payload | Header Parameters | Request/Response Example | Status | |
---|---|---|---|---|---|---|
1 | Read a data resource directly from source (passthrough) for a cmHandle - async | GET | {ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds
|
passthrough then an exception is thrown | Accept: application/json | Scenario : Read the GNBCUCPFunction for cmhandle "335ff" as passthrough Method : GET URI : {ncmp-root}/ncmp/v1/cm-handle/335ff/ds/ncmp-datastores: Header : Event Response: { [ } | ||||
2 | Read a data resource directly from source (passthrough) for a cmHandle. Only return specific field(s). Synchronous call | GET | {ncmp-root}/ncmp/v1/cm-handle//ds /ncmp-datastores:passthrough-running/{dataresource-identifier}?fields={fields} | Accept: application/json | Scenario : Read the EUtranCellFDD.(administrativeState, Method : GET URI : {ncmp-root}/ncmp/v1/cm-handle/335ff/ds/ncmp-datastores: Header : Response: HTTP/1.1 200 OK { [ | |
3 | ALTERNATIVE OUTPUT TO ABOVE Read a data resource directly from Synchronous call | GET | {ncmp-root}/ncmp/v1/cm-handle//ds /ncmp-datastores:passthrough-running/{dataresource-identifier}?fields={fields} | Accept: application/json | Scenario : Read the EUtranCellFDD.(administrativeState, Method : GET URI : {ncmp-root}/ncmp/v1/cm-handle/335ff/ds/ncmp-datastores: Header : Response: HTTP/1.1 200 OK { [ OR "/ManagedElement[@id="Kista-001"]/ENodeBFunction[@id="1"] OR "xpath": "/ManagedElement[@id="Kista-001"]/ENodeBFunction | Under Review Talk to Niamh and Toine on the different options |
4 | Read a data resource with some leaf value condition directly from source (passthrough) for a cmHandle. Only Synchronous call | GET | {ncmp-root}/ncmp/v1/cm-handle//ds /ncmp-datastores:passthrough-running/{dataresource-identifier[]}?fields={fields} &topic={topicId} | ContentType: application /json | Scenario : Read the LocalSctpEndpoint.(interfaceUsed==X2, Method : GET URI : {ncmp-root}/ncmp/v1/cm-handle/335ff/ds/ncmp-datastores: Header : Response: HTTP/1.1 200 OK { [ } | Under Review |
5 | Create a data resource for a cmhandle | POST | {ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds { OR with datastores defaults {ncmp-root}/ncmp/v1/cm-handle/<cmhande>/ { | ContentType: application /json | Scenario : Create ericsson-nrsectorcarrier-vdu-add:NRSectorCarrier=4 Method : POST URI : : {ncmp-root}/ncmp/v1/cm-handle/ |
ManagedElement
34l5k32/ManagedElement Header : Body : { | |||||
6 | Update a data resource for a cmhandle | PATCH | {ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds { OR with datastores defaults {ncmp-root}/ncmp/v1/cm-handle/<cmhande>/ { | ContentType: application /json | Scenario : Update ericsson-nrsectorcarrier-vdu-add:NRSectorCarrier=4 Method : PATCH URI |
: {ncmp-root}/ncmp/v1/cm-handle/ |
ManagedElement
34l5k32/ManagedElement |
34l5k32//NRSectorCarrier[@id=4] |
// |
34l5k32/
should resolve to a single resource/node Header : Body : { | ||||||
7 | Delete a data resource for a cmhandle | DELETE | {ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds OR with datastores defaults {ncmp-root}/ncmp/v1/cm-handle/<cmhande>/ | ContentType: application /json | Scenario : Create ericsson-nrsectorcarrier-vdu-add:NRSectorCarrier=4 under _3gpp-common-managed-element:ManagedElement=Kista-001 /_3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1 Method : DELETE URI : {ncmp-root}/ncmp/v1/cm-handle/34l5k32/ManagedElement [@id=Kista-001]/GNBDUFunction[@id=1]/NRSectorCarrier[@id=4] OR {ncmp-root}/ncmp/v1/cm-handle/34l5k32//NRSectorCarrier[@id=4] Header : Accept: application/json Body : {} | |
8 |
NCMP-CM-001-1
Get model (module set) for CMHandle | GET | {ncmp-root}/ncmp/v1/model/<handleId> | Accept: application/ yang- data+json | Scenario : Get the model data for CMHandle with id "335ff" Method : GET URI : {ncmp-root}/ncmp/v1/model/335ff Header : Response: { "ietf-yang-library:modules-state" : { | |
9 | Create a data resource for a cmhandle | POST | {ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds { OR with datastores defaults {ncmp-root}/ncmp/v1/cm-handle/<cmhande>/ { | Content- Type: application /yang- data+json | Scenario : Create ericsson-nrsectorcarrier-vdu-add:NRSectorCarrier=4 Method : POST URI : {ncmp-root}/ncmp/v1/cm-handle/ |
34l5k32/_3gpp- |
34l5k32/
managed-commonmanaged-element:ManagedElement=Kista-001/_3gpp-nr- |
gnbdufunction
nrmgnbdufunction:GNBDUFunction=1 Header : Body : { | |||||
10 | Delete a data resource for a cmHandle | DELETE | {ncmp-root}/ncmp/v1/<handleId>/ds/ncmp- OR with datastores defaults {ncmp-root}/ncmp/v1/cm-handle/<cmhande>/ | Content-Type: application/yang- data+json | Scenario : Delete NRSectorCarrier=4 Method : DELETE URI : {adapter-root}/ncmp/v1/cm-handle/ |
34l5k32/_3gpp- |
34l5k32/
managed-commonmanaged-element:ManagedElement=Kista-001/_3gpp-nr- |
gnbdufunction
nrmgnbdufunction:GNBDUFunction=1/_3gpp-nr-nrm-nrsectorcarrier: | |
11 |
Update a data resource for a cmHandle | PATCH | {ncmp-root}/ncmp/v1/data/<handleId>/ds/ncmp- OR with datastores defaults {ncmp-root}/ncmp/v1/cmhandle/<cmhandle>/ | Content-Type: application/yang- data+json | Scenario : |
Add NRSectorCarrier=4 to GNBDUFunction=1 if it doesn't |
Method : PATCH |
Method
URI : {ncmp-root}/ncmp/v1/cm-handle/d32455f/_3gpp- |
commonmanaged- |
managed-
element:ManagedElement=Kista-001/_3gpp-nr- |
gnbdufunction
nrmgnbdufunction:GNBDUFunction=1 |
:
Header |
Body { _3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1 : { | |
12 |
Multiple edits under a target data | PATCH | {ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds OR using datastores defaults {ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ | Content-Type: application/yang- patch+json | Scenario : Make multiple updates under the GNBDUFunction=1 data Method : PATCH URI : {ncmp-root}/ncmp/v1/cm-handle/32rf234/_3gpp-common- Header : Body : { "ietf-restconf:yang-patch" : { Response : HTTP/1.1 200 OK { | ||
13 |
NCMP-CM-001-6
Execute a yang action | POST | {ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds Note : If the "action" statement OR using datastores defaults {ncmp-root}/ncmp/v1/cm-handle { "param1Name" : } | Content-Type: application/yang- data+json | Method : POST URI : {ncmp-root}/ncmp/v1/cm-handle/3445fff/_3gpp-common- Header : Body : | |
14 |
NCMP-CM-001-7
Execute an rpc operation | POST | {ncmp-root}/ncmp/v1/cm-handle/<cmhandle> { Note : If there is no "input" OR using datastores defaults {ncmp-root}/ncmp/v1/cm-handle/<cmhandle> { | Content-Type: application/yang- data+json | Method : POST URI : {ncmp-root}/ncmp/v1/cm-handle/3445fff/operations/_3gpp- Header : Body : | |
15 |
Read a filtered set of data under a data | GET | {ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds options
OR using datastores defaults {ncmp-root}/ncmp/v1/cm-handle/<cmhandle> | Accept: application /yang-data +json | Scenario : Read GNBDUFunction=1.userLabel and NRSectorCarrier with Method : GET URI : {ncmp-root}/ncmp/v1/cm-handle/3fsdfr3/_3gpp-common- {ncmp-root}/ncmp/v1/cm-handle/3fsdfr3/ManagedElement=Kista-001 Header : |
Body: |
Response : HTTP/1.1 200 OK _3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1 { "userLabel" : "myGnodeBFunction-1", _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier=1 { _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier=3{ _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier=4 { } } | |
16 |
NCMP-CM-001-9
Read descendant data resources with | GET | {ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds options
|
OR using datastores defaults {ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ | Accept: application /yang-data+ json | Scenario : Read all NRCellDU MOs with attributes userLabel and id under Method : GET URI : {ncmp-root}/ncmp/v1/cmhandle/3445fff/_3gpp-common- Header : Response : HTTP/1.1 200 OK { _3gpp-nr-nrm-nrcelldu:NRCellDU=1 { _3gpp-nr-nrm-nrcelldu:NRCellDU=4 { _3gpp-nr-nrm-nrcelldu:NRCellDU=5 { | ||
17 |
NCMP-CM-001-10
Read data resources to a given depth | POST | {ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds
|
|
|
|
|
|
resource-
OR using datastores defaults {ncmp-root}/ncmp/v1/data/<cmhandle>/{data- | Accept: application /yang- data+json | Method : POST URI : {ncmp-root}/ncmp/v1/cm-handle/3445fff/_3gpp-common- Header : |
Body: |
Response : HTTP/1.1 200 OK _3gpp-nr-nrm-nrsectorcarrier: _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier=3{ _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier=4 { _3gpp-nr-nrm-nrcelldu:NRCellDU=1 { _3gpp-nr-nrm-nrcelldu:NRCellDU=4 { _3gpp-nr-nrm-nrcelldu:NRCellDU=5 { | |
18 |
Create or replace the target data | PUT | {ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds/ OR using datastores defaults {ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ | Accept: application /yang-data+ json | Method : PUT URI : {ncmp-root}/v1/cm-handle/3445fff/_3gpp-common-managed- Header : Body : | ||
19 |
NCMP-CM-002-1
Get data for list of CMHandles | PUT | {ncmp-root}/ncmp/v1/ds/{datastore}/{data- OR using datastores defaults {ncmp-root}/ncmp/v1/{data-resource-identifier} | Accept: (yangData | Scenario Get the NRCellDU=Cell-001 data for multiple cmhandles Method : PUT URI : {ncmp-root}/ncmp/v1/ds/ncmp-datastores:passthrough-running? Header : Body : Response : HTTP/1.1 200 OK "response" : [ "top3gpp:id" : "NR-Cell-001" }, _3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1 { "_3gpp-nr-nrm-nrcelldu:NRCellDU=NR- "top3gpp:id" : "NR-Cell-001" } } }, _3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1 { "_3gpp-nr-nrm-nrcelldu:NRCellDU=NR-Cell- } { "ietf-restconf:errors" : { } } ] | |
20 |
NCMP-CM-002-2
Read resource data (with 'fields') for list | POST | {ncmp-root}/ncmp/v1/ds/{datastore}/{data- OR {ncmp-root}/ncmp/v1/{data-resource-identifier} | Accept: (yangData | Scenario Get the |
of NRSectorCarrier and NRCellDUs Method : POST URI : {ncmp-root}/ncmp/v1//NRSectorCarrier?fields=top3gpp:id;_3gpp- Header : |
Body: |
Body
{ Response : HTTP/1.1 200 OK "response" : [ " : " cmHandle 1231", "yangData" : { "_3gpp-nr-nrm-nrsectorcarrier: "_3gpp-nr-nrm-nrsectorcarrier: "_3gpp-nr-nrm-nrsectorcarrier: "_3gpp-nr-nrm-nrcelldu:NRCellDU=1" : { "_3gpp-nr-nrm-nrcelldu:NRCellDU=4" : { "_3gpp-nr-nrm-nrcelldu:NRCellDU=5" : { } } }, { " : " cmHandle 1232", "data" : { "_3gpp-nr-nrm-nrsectorcarrier: "_3gpp-nr-nrm-nrsectorcarrier: } }, { "_3gpp-nr-nrm-nrsectorcarrier: "_3gpp-nr-nrm-nrcelldu:NRCellDU=1" : { } }, { " : " cmHandle 1234", "yangData" : { _3gpp-nr-nrm-gnbdufunction: "_3gpp-nr-nrm-nrcelldu:NRCellDU=1 { } } ] } | |
21 |
Execute a yang action on multiple | POST | {ncmp-root}/ncmp/v1/data/{data-resource- input: { Note : If the "action" |
has
statement has no | Content-Type: (yangData |
NCMP-CM-002-4
Execute a yang action on multiple
CMHandles
POST
{ncmp-root}/ncmp/v1/data/{data-resource-input: {
"param1Name" : "param1Value”,
"param2Name" : "param2Value”
}
Note : If the "action" statement
has no
"input" section, the request
message MUST
NOT include a message-body
Content-Type:
application/json
(yangData
contains the
yang-data
+json payload
as per individual
cmHandle
requests)
Method : POST URI : {ncmp-root}/ncmp/v1/data/_3gpp-common-managed-element: Header : Body : "yangData" : { Response Success HTTP/1.1 202 Accepted //EMPTY BODY Error Response : HTTP/1.1 202 Accepted response : [ { 1232", "yangData" : { ietf.org/html/rfc6241#section-4.3 "error-type" : "protocol", 1234", "yangData" : { "error" : [ | |
22 |
NCMP-CM-002-5
Execute an rpc operation on multiple | POST | {ncmp-root}/ncmp/v1/ |
operations/{module-name}: |
{ Note : If there is no "input" | Content-Type: application/json | Method : POST URI :{ncmp-root}/ncmp/v1/ |
operations/_3gpp-common- |
operations
elementmanagedelement:ManagedElement=Kista-001/_3gpp-nr-nrm-gnbdufunction: |
(dummy action) Header : Body : operation : "action", | |
23 |
NCMP-DAO-004
GET/ POST/ PATCH /PUT/ DELETE | {ncmp-root}/ncmp/v1/cm-handle/ |
/data/ds/ncmp-datastores:passthrough-running/ |
{xpath}? |
topic=<dmaap-topic-Identifier> |
topic
{ncmp-root}/ncmp/v1/cm-handle/ |
/data/ds/ncmp-datastores:running/{xpath}? |
topic= |
topic
<dmaap-topic-Identifier> **Async communication channel is DMaaP Immediate response with a requestId is sent |
to the caller and the CRUD request is |
executed asynchronously where data is returned via |
the provided topic identifier. | Accept : application/json | Scenario : Async request to NCMP Method : GET/POST/PATCH/PUT/DELETE URI : {ncmp-root}/ncmp/v1/cm-handle/de3455/data/ds/ncmp-datastores: |
topic=5G:SectorCarrierOrchestrator-0012391:12 |
topic
Body : // Include body where required Response : response data is published on the topic identified by <topicIdentifier> |
request. |
Output Specification
?fields={fields}&topic= {topicId}
...