Versions Compared

Key

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

...

#UsecaseNCMP DatastorePath?fields?topicQueryTime frame
1Readpassthrough-runningRESTConf Path onlyImplemented by SDNC/NodeImplemented by DMI PluginNot supportedIstanbul
2Readncmp-datastores:operational CPSPath onlyTBDTBDLimited xpath functionalityIstanbul
3Createpassthrough-runningRESTConf Path onlyN/AN/AN/AIstanbul
4Createncmp-datastores:runningCPSPath onlyN/AN/AN/A> Istanbul
5Deletepassthrough-runningRESTConf Path onlyN/AN/ANot supportedIstanbul
6Deletencmp-datastores:runningCPSPath onlyN/AN/ANot supported> Istanbul
7Updatepassthrough-runningRESTConf Path onlyN/AN/AN/AIstanbul
8Updatencmp-datastores:runningCPSPath onlyN/AN/AN/A> Istanbul
9Patchespassthrough-runningRESTConf Path onlyN/AN/AN/AIstanbul
10Patchesncmp-datastores:runningCPSPath onlyN/AN/AN/A> Istanbul
11Bulk passthrough-runningRESTConf Path onlyN/AN/AN/A> Istanbul
12Bulkncmp-datastores:runningCPSPath onlyN/AN/AN/A> Istanbul
13Actionpassthrough-runningRESTConf Path onlyN/AN/AN/AIstanbul?
14Actionncmp-datastores:runningCPSPath onlyN/AN/AN/AIstanbul?

REST API

 


Req/usecase

REST

Method

 URI / Payload

Header Parameters

Request/Response ExampleStatus
1Read a data resource directly from
source (passthrough) for a cmHandle - async
GET

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds
/ncmp-datastores:passthrough-running/{dataresource-identifier}?fields={fields}&topic=
{topicId}


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/json
Scenario : Read the GNBCUCPFunction for cmhandle "335ff" as
passthrough
Method : GET
URI : {ncmp-root}/ncmp/v1/cm-handle/335ff/ds/ncmp-datastores:
passthrough-running//GNBCUCPFunction?fields=pLMNId;gNBId;
gNBIdLength;syncStatus&topic=anr-app:anr24234234:v2
Header :
Accept: application/json

passthrough

Method  : GET

URI         : {ncmp-root}/ncmp/v1/cm-handle/335ff/ds/ncmp-datastores:
passthrough-running//GNBCUCPFunction?fields=pLMNId;gNBId;
gNBIdLength;syncStatus&topic=anr-app:anr24234234:v2

Header :
      Accept: application/json

Event Response:

{

     [
           {
                 "xpath": "/ManagedElement[@id=Kista-001]/GNBCUCPFunction
[@id=1]",
                  "leaves": {
                           "pLMNId : [ { "mcc" : "01", "mnc" : "123" } ],
                           "gNBId" : 123,
                           "gNBIdLength" : 3
                           "syncStatus" : "SYNCHRONIZED"

           }
     ]
}


2Read 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, 
operationalState, tac, earfcndl, cellId, physicalLayerCellId) for cmhandle 
"335ff" as passthrough

Method  : GET

URI         : {ncmp-root}/ncmp/v1/cm-handle/335ff/ds/ncmp-datastores:
passthrough-running//EUtranCellFDD?fields=administrativeState;
operationalState;tac;earfcndl;cellId;physicalLayerCellId

Header :
      Accept: application/json

Response:

HTTP/1.1 200 OK 
Date: Thu, 26 Apr 2021 20:56:30 GMT 
Server: example-server 
Content-Type: application/json

{

     [
           {
                 "xpath": "/ManagedElement[@id="Kista-001"]/ENodeBFunction
[@id="1"]/EUtranCellFDD[@id="LTE05ERBS00008-2"],
                  "leaves": {
                           "administrativeState" : "UNLOCKED",
                           "cellId" : 2,
                           "earfcndl" : "4".
                           "operationalState" : "ENABLED",
                           "physicalLayerCellId" : 0,
                           "tac" : "1"
           },
           {
                 "xpath": "/ManagedElement[@id="Kista-001"]/ENodeBFunction
[@id="1"]/EUtranCellFDD[@id="LTE05ERBS00008-3"],
                  "leaves": {
                           "administrativeState" : "UNLOCKED",
                           "cellId" : 3,
                           "earfcndl" : 4.
                           "operationalState" : "ENABLED",
                           "physicalLayerCellId" : 3,
                           "tac" : "3"
           },
           {
                 "xpath": "/ManagedElement[@id="Kista-001"]/ENodeBFunction
[@id="1"]/EUtranCellFDD[@id="LTE05ERBS00008-4"],
                  "leaves": {
                           "administrativeState" : "UNLOCKED",
                           "cellId" : 4,
                           "earfcndl" : 4.
                           "operationalState" : "ENABLED",
                           "physicalLayerCellId" : 4,
                           "tac" : "4"
           }
     ]
}


3

ALTERNATIVE OUTPUT TO ABOVE 
SCENARIO

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, 
operationalState, tac, earfcndl, cellId, physicalLayerCellId) for cmhandle 
"335ff" as passthrough

Method  : GET

URI         : {ncmp-root}/ncmp/v1/cm-handle/335ff/ds/ncmp-datastores:
passthrough-running//EUtranCellFDD?fields=administrativeState;
operationalState;tac;earfcndl;cellId;physicalLayerCellId

Header :
      Accept: application/json

Response:

HTTP/1.1 200 OK 
Date: Thu, 26 Apr 2021 20:56:30 GMT 
Server: example-server 
Content-Type: application/json

{

     [
         {
             "ManagedElement[@id="Kista-001"] : [
                  "ENodeBFunction[@id="1"] : [
                       "EUtranCellFDD[@id="LTE05ERBS00008-2"] : {
                           "administrativeState" : "UNLOCKED",
                           "cellId" : 2,
                           "earfcndl" : "4".
                           "operationalState" : "ENABLED",
                           "physicalLayerCellId" : 0,
                           "tac" : "1"
                         }
                    ]
               ]
           { 

 OR

                 "/ManagedElement[@id="Kista-001"]/ENodeBFunction[@id="1"]
/EUtranCellFDD[@id="LTE05ERBS00008-3"],
                  {
                           "administrativeState" : "UNLOCKED",
                           "cellId" : 3,
                           "earfcndl" : 4.
                           "operationalState" : "ENABLED",
                           "physicalLayerCellId" : 3,
                           "tac" : "3"
           },
           {  


OR

                 "xpath": "/ManagedElement[@id="Kista-001"]/ENodeBFunction
[@id="1"]/EUtranCellFDD[@id="LTE05ERBS00008-4"],
                  "leaves": {
                           "administrativeState" : "UNLOCKED",
                           "cellId" : 4,
                           "earfcndl" : 4.
                           "operationalState" : "ENABLED",
                           "physicalLayerCellId" : 4,
                           "tac" : "4"
           }
     ]
}

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 
return specific field(s).

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, 
sctpEndpointRef) for cmhandle "335ff" as passthrough

Method  : GET

URI         : {ncmp-root}/ncmp/v1/cm-handle/335ff/ds/ncmp-datastores:
passthrough-running//LocalSctpEndpoint[ interfaceUsed=X2 ]?
fields=sctpEndpointRef

Header :
      Accept: application/json

Response:

HTTP/1.1 200 OK 
Date: Thu, 26 Apr 2021 20:56:30 GMT 
Server: example-server 
Content-Type: application/json

{

     [
           {
                 "xpath": "/ManagedElement[@id=Kista-001]/...
/LocalSctpEndpoint[@id=3]",
                  "leaves": {
                           "sctpEndpointRef" : "some-sctp-ref"

           }
     ]
}

Under
Review
5Create a data resource for a cmhandlePOST

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds
/ncmp-datastores:passthrough-running/{parent-
data-resource-identifier}



     <new-yang-data-resource>
}    

OR with datastores defaults

{ncmp-root}/ncmp/v1/cm-handle/<cmhande>/
{parent-data-resource-identifier}



     <new-yang-data-resource>

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  : POST 

URI         : : {ncmp-root}/ncmp/v1/cm-handle/

ManagedElement

34l5k32/ManagedElement
[@id=Kista-001]/GNBDUFunction[@id=1]

Header :
      Content-Type: application/json

Body :

{
       NRSectorCarrier" : {
                "id" : 4
                "attributes" : {
                        "userLabel : "nrSectorCar-4",
                        "txDirection" :  "DL_AND_UL",
                        "configuredMaxTxPower" : "90",
                         "arfcnDL" : "9999999",
                          "arfcnUL" : "888888",
                          "bSChannelBwDL" : "90",
                          "bSChannelBwUL" : "80",
                          "sectorEquipmentFunctionRef" : "_3gpp-common-
managed-
                                                                                   element:
ManagedElement=1/.../sef:SectorEquipmentFunction=2"
               }
         }
}


6

Update a data resource for a cmhandle

PATCH

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds
/ncmp-datastores:passthrough-running/{parent-
data-resource-identifier}


     <updated-yang-data-resource>
}    

OR with datastores defaults

{ncmp-root}/ncmp/v1/cm-handle/<cmhande>/
{parent-data-resource-identifier}


     <updated-yang-data-resource>

ContentType:
application
/json

Scenario : Update ericsson-nrsectorcarrier-vdu-add:NRSectorCarrier=4 
txDirection to  "DL_AND_UL" under _3gpp-common-managed-element:
ManagedElement=Kista-001/_3gpp-nr-nrm-gnbdufunction:
GNBDUFunction=1

Method  : PATCH

URI     

   

  : {ncmp-root}/ncmp/v1/cm-handle/

ManagedElement

34l5k32/ManagedElement
[@id=Kista-001]/GNBDUFunction[@id=1]/NRSectorCarrier[@id=4]
OR
{ncmp-root}/ncmp/v1/cm-handle/

34l5k32//NRSectorCarrier[@id=4]

 

//

 


34l5k32/

should resolve to a single resource/node

Header :
      Content-Type: application/json

Body :

{
       NRSectorCarrier" : {
                "id" : 4
                "attributes" : {
                        "txDirection" :  "DL_AND_UL"
               }
         }
}


7

Delete a data resource for a cmhandle

DELETE

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds
/ncmp-datastores:passthrough-running/{data-
resource-identifier}

OR with datastores defaults

{ncmp-root}/ncmp/v1/cm-handle/<cmhande>/
{data-resource-identifier}

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 :
      Accept: application/yang-data+json

Response:

{

   "ietf-yang-library:modules-state" : {
          "module-set-id" : 
"5479120c17a619545ea6aff7aa19838b036ebbd7",
          "module" : [
            {
              "name" : "_3gpp-nr-nrm-nrsectorcarrier",
              "revision" : "2020-12-09",
              "schema" : "/modules/_3gpp-nr-nrm-
nrsectorcarrier/2020-12-09",
              "namespace" : "urn:3gpp:sa5:_3gpp-nr-nrm-
nrnetwork-nrsectorcarrier",
              "feature" : [ "feature1", "feature2" ],
              "deviation" : [
                {
                  "name" : "_3gpp-nr-nrm-
nrsectorcarrier",
                  "revision" : "2020-12-17"
                }
              ],
              "conformance-type" : "implement"
            },
            {
              "name" : "ietf-yang-library",
              "revision" : "2016-06-21",
              "schema" : "/modules/ietf-yang-library
/2016-06-21",
              "namespace" :
                "urn:ietf:params:xml:ns:yang:ietf-yang-
library",
              "conformance-type" : "implement"
            }
     }
  }
}


9

Create a data resource for a cmhandle

POST

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds
/ncmp-datastores:passthrough-running/{parent-
data-resource-identifier}


     <new-yang-data-resource>
}    


OR with datastores defaults

{ncmp-root}/ncmp/v1/cm-handle/<cmhande>/
{parent-data-resource-identifier}


     <new-yang-data-resource>

Content-
Type: 
application
/yang-
data+json

Scenario : Create ericsson-nrsectorcarrier-vdu-add:NRSectorCarrier=4 
under _3gpp-common-managed-element:ManagedElement=Kista-001
/_3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1

Method  : POST 

URI         : {ncmp-root}/ncmp/v1/cm-handle/

34l5k32/_3gpp-

common-

34l5k32/

managed-

commonmanaged-element:ManagedElement=Kista-001/_3gpp-nr-

nrm-
gnbdufunction

nrmgnbdufunction:GNBDUFunction=1

Header :
      Content-Type: application/yang-data+json

Body :

{
       "ericsson-nrsectorcarrier-vdu-add:NRSectorCarrier"  {
                "top3gpp:id" : 4
                "attributes" : {
                        "mf3gpp:userLabel : "nrSectorCar-4",
                        "txDirection" :  "DL_AND_UL",
                        "configuredMaxTxPower" : "90",
                         "arfcnDL" : "9999999",
                          "arfcnUL" : "888888",
                          "bSChannelBwDL" : "90",
                          "bSChannelBwUL" : "80",
                          "sectorEquipmentFunctionRef" : "_3gpp-common-
managed-element:ManagedElement=1/.../sef:SectorEquipmentFunction=2"
               }
         }
}


10

Delete a data resource for a cmHandle

DELETE

{ncmp-root}/ncmp/v1/<handleId>/ds/ncmp-
datastores:passthrough-running/{data-resource-
identifier}

OR with datastores defaults

{ncmp-root}/ncmp/v1/cm-handle/<cmhande>/
{parent-data-resource-identifier}

Content-Type: 
application/yang-
data+json

Scenario : Delete NRSectorCarrier=4

Method  : DELETE

URI         : {adapter-root}/ncmp/v1/cm-handle/

34l5k32/_3gpp-

common-

34l5k32/

managed-

commonmanaged-element:ManagedElement=Kista-001/_3gpp-nr-

nrm-
gnbdufunction

nrmgnbdufunction:GNBDUFunction=1/_3gpp-nr-nrm-nrsectorcarrier:
NRSectorCarrier=4


11
NCMP-CM-001-3

Update a data resource for a cmHandle

PATCH

{ncmp-root}/ncmp/v1/data/<handleId>/ds/ncmp-
datastores:passthrough-running/{data-resource-
identifier}
{  
     <yang-data-sub-resource>
}

OR with datastores defaults

{ncmp-root}/ncmp/v1/cmhandle/<cmhandle>/
{parent-data-resource-identifier}
{  
     <yang-data-sub-resource>
}    

Content-Type: 
application/yang-
data+json

Scenario :

 

 Add NRSectorCarrier=4 to GNBDUFunction=1 if it doesn't
already exist

          


Method : PATCH

Method 

URI : {ncmp-root}/ncmp/v1/cm-handle/d32455f/_3gpp-

common

commonmanaged-

URI
managed-

element:ManagedElement=Kista-001/_3gpp-nr-

nrm-
gnbdufunction

nrmgnbdufunction:GNBDUFunction=1

 :

Header
            Content-Type: application/yang-data+json

 :

Body

{

         _3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1 : {
             "id" : 1,
             "_3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier"  {
                "top3gpp:id" : 4
                "attributes" : {
                        "mf3gpp:userLabel : "nrSectorCar-4",
                        "txDirection" :  "DL_AND_UL",
                        "configuredMaxTxPower" : "90",
                         "arfcnDL" : "9999999",
                          "arfcnUL" : "888888",
                          "bSChannelBwDL" : "90",
                          "bSChannelBwUL" : "80",
                          "sectorEquipmentFunctionRef" : "_3gpp-common-
managed-element:ManagedElement=1/.../  
                                                                                                                        
                     sef:SectorEquipmentFunction=2"
                }
             }
         }
     }
}


12
NCMP-CM-001-8

Multiple edits under a target data 
resource for a single cmHandle

PATCH

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds
/ncmp-datastores:passthrough-running/{data-
resource-identifier}
{
     yang-patch payload
}

OR using datastores defaults

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/
{data-resource-identifier}
{
     yang-patch payload
}

Content-Type: 
application/yang-
patch+json

Scenario : Make multiple updates under the GNBDUFunction=1 data 
resource

Method  : PATCH

URI         : {ncmp-root}/ncmp/v1/cm-handle/32rf234/_3gpp-common-
managed-element:ManagedElement=Kista-001/_3gpp-nr-nrm-
gnbdufunction: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]
             }
          }
      


13

NCMP-CM-001-6

Execute a yang action

POST

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds
/ncmp-datastores:passthrough-running/{data-
resource-identifier}/{action}
{
    input: {
                  "param1Name" : "param1Value”,
                  "param2Name" : "param2Value”
             }
}

Note : If the "action" statement 
has no 
"input" section, the  request 
message MUST 
NOT include a message-body

OR using datastores defaults

{ncmp-root}/ncmp/v1/cm-handle
/<cmhandle>/data/{data-resource-
identifier}
/{action}

{
    input: {

                  "param1Name" : 
"param1Value”,
                  "param2Name" : 
"param2Value”

             }
}

Content-Type: 
application/yang-
data+json

Method  : POST 

URI         : {ncmp-root}/ncmp/v1/cm-handle/3445fff/_3gpp-common-
managed-element:ManagedElement=Kista-001/_3gpp-nr-nrm-
gnbdufunction:GNBDUFunction=1/resetPort  (dummy non-existent action)

Header :
      Content-Type: application/yang-data+json

Body :
{
     "input" : {
           "param1Name" : "param1Value”,
           "param2Name" : "param2Value”
    }
}


14

NCMP-CM-001-7

Execute an rpc operation

POST

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>
/operations/ds/ncmp-datastores :passthrough-
running/{module-name}:{action}

{  
    input: {
                  "param1Name" : "param1Value”,
                  "param2Name" : "param2Value”
             }
}

Note : If there is no "input" 
section, 
the  request MUST NOT include a 
message-body

OR using datastores defaults

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>
/operations/{module-name}:{action}

{  
    input: {
                  "param1Name" : "param1Value”,
                  "param2Name" : "param2Value”
             }
}

Content-Type: 
application/yang-
data+json

Method  : POST 

URI         : {ncmp-root}/ncmp/v1/cm-handle/3445fff/operations/_3gpp-
common-managed-element:resetDevice  (dummy action)

Header :
      Content-Type: application/yang-data+json

Body :
{
     "input" : {
           "param1Name" : "param1Value”,
           "param2Name" : "param2Value”
    }
}


15
NCMP-CM-001-9

Read a filtered set of data under a  data 
resource for a cmHandle

GET

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds
/ncmp-datastores:passthrough-running/{data-
resource-identifier}?fields={fields-expression}

options 


OptionDescription
fieldsRequest a subset of the target 
resource contents


OR using datastores defaults

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>
/data/{data-resource-identifier}?fields={fields-
expression}

Accept: 
application
/yang-data
+json

Scenario : Read GNBDUFunction=1.userLabel and NRSectorCarrier with 
its attributes txDirection & arfcnUL

Method  : GET

URI         : {ncmp-root}/ncmp/v1/cm-handle/3fsdfr3/_3gpp-common-
managed-element:ManagedElement=Kista-001/_3gpp-nr-nrm-
gnbdufunction:GNBDUFunction=1?fields=userLabel;(_3gpp-nr-nrm-
nrsectorcarrier:NRSectorCarrier(txDirection;arfcnUL)

{ncmp-root}/ncmp/v1/cm-handle/3fsdfr3/ManagedElement=Kista-001
//NRSectorCarrier

Header :
        Accept : application/yang-data+json

 

Body:

Body

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 {

                   "userLabel" : "myGnodeBFunction-1",

                                       _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier=1 {
                                           attributes {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "55555"
                                           }
                                        },  
                                       _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier=2 {
                                           attributes {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "66666"
                                           }
                                        },  

                                       _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier=3{
                                           attributes {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "77777"
                                        },  

                                       _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier=4 {
                                           attributes {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "88888"
                                           }
                                        }

                             }

}


16

NCMP-CM-001-9

Read descendant data resources with 
specified fields under a  given data 
resource for a given cmHandle

GET

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds
/ncmp-datastores:passthrough-running/{data-
resource-identifier}?fields={fields-expression}

options 


OptionDescription
fieldsRequest a subset of the
target 
target
resource contents


OR using datastores defaults

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/
{data-resource-identifier}?fields={fields-
expression}

Accept: 
application
/yang-data+
json

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/cmhandle/3445fff/_3gpp-common-
managed-element:ManagedElement=Kista-001/_3gpp-nr-nrm-
gnbdufunction:GNBDUFunction=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"
                                           }
                                        }
                              }
                    }


17

NCMP-CM-001-10

Read data resources to a given depth 
for a given cmHandle

POST

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds
/ncmp-datastores:passthrough-running/{data-
resource-identifier}?depth={level}


OptionDescription
depthRequest limited sub-tree
depth 
depth
in the reply content
If '1' then only immediate
data 
data
resource is retrieved
If 'x' then x levels of data
tree 
tree
are retrieved
'unbounded' will get the full
tree 
tree
starting at the given
data
dataresource-

resource-
identifier


OR using datastores defaults

{ncmp-root}/ncmp/v1/data/<cmhandle>/{data-
resource-identifier}?depth={level}

Accept: 
application
/yang-
data+json

Method  : POST

URI         : {ncmp-root}/ncmp/v1/cm-handle/3445fff/_3gpp-common-
managed-element:ManagedElement=Kista-001/_3gpp-nr-nrm-
gnbdufunction:GNBDUFunction=1?depth=4

Header :
      Content-Type: application/yang-data+json
      Accept : application/yang-data+json

 

Body:

 Body

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 {  
# level 1

                                       _3gpp-nr-nrm-nrsectorcarrier:
NRSectorCarrier=1 {     # level 2
                                           "top3gpp:id" : "NRSectorCarrier-1",  # level 3
                                           "attributes" : {                                    # level 3
                                                  "txDirection" : "DL_AND_UL",     # level 4
                                                  "arfcnUL" : "55555",                    # level 4
                                                   ...
                                           }
                                        },  
                                       _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier=2 {
                                           "top3gpp:id" : "NRSectorCarrier-2",
                                           "attributes" : {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "66666".
                                                   ...
                                           }
                                        },  

                                       _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier=3{
                                           "top3gpp:id" : "NRSectorCarrier-3",
                                           "attributes" : {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "77777".
                                                   ...
                                           }
                                        },  

                                       _3gpp-nr-nrm-nrsectorcarrier:NRSectorCarrier=4 {
                                           "top3gpp:id" : "NRSectorCarrier-4",
                                           "attributes" : {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "88888".
                                                   ...
                                        },

                                     _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"
                                                   ...
                                           }
                                        }
              }
         }


18
NCMP-CM-001-11

Create or replace the target data 
resource for a CMHandle

PUT

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/ds/
{datastore}/{data-resource-identifier}
{  
     <yang-data-sub-resource>

OR using datastores defaults  

{ncmp-root}/ncmp/v1/cm-handle/<cmhandle>/
{data-resource-identifier}
{  
     <yang-data-sub-resource>

Accept: 
application
/yang-data+
json

Method  : PUT

URI         : {ncmp-root}/v1/cm-handle/3445fff/_3gpp-common-managed-
element:ManagedElement=Kista-001/_3gpp-nr-nrm-gnbdufunction:
GNBDUFunction=1

Header :
      Content-Type: application/yang-data+json

Body :
{
          _3gpp-nr-nrm-gnbdufunction:GNBDUFunction {
                 "userLabel" : "newGNB-001",
                 "gNBDUName" : "newGNBDUName-001"
                  ....
          }
}


19

NCMP-CM-002-1

Get data for list of CMHandles

PUT

{ncmp-root}/ncmp/v1/ds/{datastore}/{data-
resource-identifier}

OR using datastores defaults  

{ncmp-root}/ncmp/v1/{data-resource-identifier}

Accept: 
application
/json

(yangData 
contains 
the yang-
data
+json 
payload as 
per 
individual 
cmHandle 
requests)

Scenario Get the NRCellDU=Cell-001 data for multiple cmhandles

Method  : PUT

URI         : {ncmp-root}/ncmp/v1/ds/ncmp-datastores:passthrough-running?
fields=_3gpp-common-managed-element:ManagedElement/_3gpp-nr-nrm-
gnbdufunction:GNBDUFunction/NRCellDU=NR-Cell-001

Header :
      Accept : application/json

Body :
{
    " operation" : "read",                                  // inspired by yang patch 
'operation'
    "cmHandles" : ["34l5k32", "ddf4545", "45g6756"]    //omit to get for all 
cmhandles
}

Response :

  HTTP/1.1 200 OK
  Date: Thu, 26 Jan 2017 20:56:30 GMT
  Server: example-server
  Content-Type: application/json

  "response" : [
     {
       "cmHandle" : "34l5k32",
       "yangData" : {
          3gpp-common-managed-element:ManagedElement=1 {
             _3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1 
{
                   "top3gpp:id" : "1",
                   "_3gpp-nr-nrm-nrcelldu:NRCellDU=NR-
Cell-001" :  {

                                           "top3gpp:id" : "NR-Cell-001"
                                           "attributes" : {
                                                  "administrativeState " : "LOCKED",
                                                  "operationalState" : "disabled"
                                                   ...
                                           }
                                        }

                         },

                        
                       3gpp-common-managed-element:ManagedElement=1 {

                               _3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1 {
                                      "top3gpp:id" : "1",

                   "_3gpp-nr-nrm-nrcelldu:NRCellDU=NR-
Cell-001" :  {

                                           "top3gpp:id" : "NR-Cell-001"
                                           "attributes" : {
                                                  "administrativeState " : "LOCKED",
                                                  "operationalState" : "disabled"
                                                   ...
                                           }
                                        }

                          }

                     }

        },
        {
            "cmHandle" : "ddf4545",
             "yangData" : {      
                   3gpp-common-managed-element:ManagedElement=1 {

           _3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1 {
                   "top3gpp:id" : "1",

                                       "_3gpp-nr-nrm-nrcelldu:NRCellDU=NR-Cell-
001" :  {
                                           "top3gpp:id" : "NR-Cell-001"
                                           "attributes" : {
                                                  "administrativeState " : "LOCKED",
                                                  "operationalState" : "disabled"
                                                   ...
                                           }
                                        }
                              }

                    }
                }
        },

  {
            "cmHandle" : "45g6756",
             "yangData" : {      

           "ietf-restconf:errors" : {
              "error" : [
                 {
                  "error-type" : "connectivity",
                  "error-tag" : "access-denied",
                  "error-message" : "Cannot read EMS 
with given credentials"
                 }
               ]
            }

            }

        }

     ]


20

NCMP-CM-002-2

Read resource data (with 'fields') for list 
of CMHandles

POST

{ncmp-root}/ncmp/v1/ds/{datastore}/{data-
resource-identifier}

OR

{ncmp-root}/ncmp/v1/{data-resource-identifier}

Accept: 
application
/json

(yangData 
contains 
the yang-
data
+json 
payload as 
per 
individual 
cmHandle 
requests)

Scenario Get the 

 and

and select attributes 

GNBDUFunction.id

of

 of NRSectorCarrier and NRCellDUs

Method  : POST

URI         : {ncmp-root}/ncmp/v1//NRSectorCarrier?fields=top3gpp:id;_3gpp-
nr-nrm-nrsectorcarrier:NRSectorCarrier(top3gpp:id;attributes(txDirection;
arfcnUL);_3gpp-nr-nrm-nrcelldu:NRCellDU(top3gpp:id;attributes
(administrativeState;operationalState)

Header :
      Content-Type: application/json
      Accept : application/json

 

Body:

Body

{
    operation : "read",
    "cmHandles" : ["1231", "1232", "1233", "1234"]
}

Response :

  HTTP/1.1 200 OK
  Date: Thu, 26 Jan 2017 20:56:30 GMT
  Server: example-server
  Content-Type: application/json
  

  "response" : [
        {
          "

" : "

cmHandle

1231",

          "yangData" : {
               _3gpp-nr-nrm-gnbdufunction:
GNBDUFunction=1 {
                   "top3gpp:id" : "1",

                                       "_3gpp-nr-nrm-nrsectorcarrier:
NRSectorCarrier=1" :  {
                                           "top3gpp:id" : "NRSectorCarrier-1",
                                           "attributes" : {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "55555".
                                                   ...
                                           }
                                        },  
                                       "_3gpp-nr-nrm-nrsectorcarrier:
NRSectorCarrier=2" :  {
                                           "top3gpp:id" : "NRSectorCarrier-2",
                                           "attributes" : {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "66666".
                                                   ...
                                           }
                                        },  

                                       "_3gpp-nr-nrm-nrsectorcarrier:
NRSectorCarrier=3" : {
                                           "top3gpp:id" : "NRSectorCarrier-3",
                                           "attributes" : {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "77777".
                                                   ...
                                           }
                                        },  

                                       "_3gpp-nr-nrm-nrsectorcarrier:
NRSectorCarrier=4" :  {
                                           "top3gpp:id" : "NRSectorCarrier-4",
                                           "attributes" : {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "88888".
                                                   ...
                                        },

"_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"
                                                   ...
                                           }
                                        }

                              }

                    }

             },

      {
          "

" : "

cmHandle

1232",

          "data" : {
               _3gpp-nr-nrm-gnbdufunction:
GNBDUFunction=1 {
                   "top3gpp:id" : "1",

                                       "_3gpp-nr-nrm-nrsectorcarrier:
NRSectorCarrier=2" : {
                                           "top3gpp:id" : "NRSectorCarrier-2",
                                           "attributes" : {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "66666".
                                                   ...
                                           }
                                        },  

                                       "_3gpp-nr-nrm-nrsectorcarrier:
NRSectorCarrier=3" : {
                                           "top3gpp:id" : "NRSectorCarrier-3",
                                           "attributes" : {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "77777".
                                                   ...
                                           }
                                        }

                              }

              },

      {
          "cmHandle" : "1233",
          "yangData" : {
               _3gpp-nr-nrm-gnbdufunction:
GNBDUFunction=1 {
                   "top3gpp:id" : "1",

                                       "_3gpp-nr-nrm-nrsectorcarrier:
NRSectorCarrier=4" :  {
                                           "top3gpp:id" : "NRSectorCarrier-4",
                                           "attributes" : {
                                                  "txDirection" : "DL_AND_UL",
                                                  "arfcnUL" : "88888".
                                                   ...
                                        },

"_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"
                                                   ...
                                           }
                                        },  

                              }

              },

             {
                   "

" : "

cmHandle

1234",

                    "yangData" : {

               _3gpp-nr-nrm-gnbdufunction:
GNBDUFunction=1 {
                  "top3gpp:id" : "1",

                                      "_3gpp-nr-nrm-nrcelldu:NRCellDU=1 {
                                           "top3gpp:id" : "NR-Cell-001"
                                           "attributes" : {
                                                  "administrativeState " : "LOCKED",
                                                  "operationalState" : "disabled"
                                                   ...
                                           }
                                        }

                              }

              }

       ]

}


21
NCMP-CM-002-4

Execute a yang action on multiple 
CMHandles

POST

{ncmp-root}/ncmp/v1/data/{data-resource-
identifier}/{action}

input: {
                  "param1Name" : "param1Value”,
                  "param2Name" : "param2Value”
             }

Note : If the "action"

statement 
has

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)

NCMP-CM-002-4

Execute a yang action on multiple 
CMHandles

POST

{ncmp-root}/ncmp/v1/data/{data-resource-

identifier}/{action}

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:
ManagedElement/_3gpp-nr-nrm-gnbdufunction:GNBDUFunction
/resetPort  (dummy non-existent action)

Header :
      Content-Type: application/json

Body :
{
    operation : "action",
    "cmHandles" : ["1231", "1232", "1233", "1234"],

    "yangData" : {
        input: {
            "param1Name" : "param1Value”,
            "param2Name" : "param2Value”
        }
     }
}

Response Success

         HTTP/1.1 202 Accepted
         Date: Thu, 26 Jan 2021 20:56:30 GMT 
         Content-Type: application/json

         //EMPTY BODY

Error Response : 

     HTTP/1.1 202 Accepted
     Date: Thu, 26 Jan 2021 20:56:30 GMT
     Content-Type: application/json

     response : [

      { 
        "cmHandle" : "


1232",

        "yangData" : {
           "ietf-restconf:errors" : {
             "error" : [
               {                 # See 

https://tools.

ietf.org/html/rfc6241#section-4.3

                 "error-type" : "protocol",
                 "error-tag" : "invalid-value",
                 "error-path" : "3gpp-common-managed-
element:ManagedElement/_3gpp-nr-nrm-gnbdufunction:
GNBDUFunction/resetPort",
                 "error-message" : "Invalid input 
parameter value for param2Name"
               }
             ]
          }
       },
       { 
          "cmHandle" : ""


1234",

          "yangData" : {
             "ietf-restconf:errors" : {

                "error" : [ 
                   { "error-type" : "protocol", 
                     "error-tag" : "invalid-value", 
                     "error-path" : "3gpp-common-
managed-element:ManagedElement/_3gpp-nr-nrm-
gnbdufunction:GNBDUFunction/resetPort", 
                     "error-message" : "Invalid input 
parameter value for param2Name" } 
                ] 
          } 
       }
     ] 


22

NCMP-CM-002-5

Execute an rpc operation on multiple 
CMHandles

POST

{ncmp-root}/ncmp/v1/

operations

operations/{module-name}:


{action}

{  
input: {
                  "param1Name" : "param1Value”,
                  "param2Name" : "param2Value”
             }
}

Note : If there is no "input" 
section, 
the  request MUST NOT include a 
message-body

Content-Type: 
application/json

Method  : POST 

URI         :{ncmp-root}/ncmp/v1/

operations/_3gpp-common-

managed-

operations

element

managedelement:ManagedElement=Kista-001/_3gpp-nr-nrm-gnbdufunction:
GNBDUFunction=1/resetDevice

 

(dummy action)


Header :
      Content-Type: application/json

Body :
{

    operation : "action",
    "handles" : ["1231", "1232", "1233", "1234"],
     input: {
            "param1Name" : "param1Value”,
            "param2Name" : "param2Value”
     }
}


23

NCMP-DAO-004


GET/
POST/
PATCH
/PUT/
DELETE

{ncmp-root}/ncmp/v1/cm-handle/

<cmhandle>

/data/ds/ncmp-datastores:passthrough-running/


{xpath}?

topic=<dmaap-topic-Identifier>

topic

{ncmp-root}/ncmp/v1/cm-handle/

<cmhandle>

/data/ds/ncmp-datastores:running/{xpath}?

topic=

topic

<dmaap-topic-Identifier>

**Async communication channel is DMaaP

Immediate response with a requestId is sent

to 

to the caller and the CRUD request is

executed 

executed asynchronously where data is returned via

the 

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:
passthrough-running/_3gpp-common-managed-element:
ManagedElement=Kista-001/_3gpp-nr-nrm-gnbdufunction:
GNBDUFunction=1?

topic=5G:SectorCarrierOrchestrator-0012391:12

topic

Body :    //  Include body where required
{
       ....
}

Response   :
{
     "requestId" : "<some-requestId>"
}

response data is published on the topic identified by <topicIdentifier> 
keyed on

requestI

request.



Output Specification 

?fields={fields}&topic= {topicId}

...