Versions Compared

Key

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

...




<OP>mandatorythe HTTP method
dmimandatorythe dmi root resource
<v{v-number}>mandatoryversion of the dmi interface is the target resource URI is the query parameter list
<data|operations|dmi-action>mandatoryyang data, rpc operation or a (non-modelledmodeled) ncmp api action
<cmHandle>mandatoryunique (string) identifier of a yang tree instance.
{datastore}optionaloptional datastore
<resource-path>optionalthe path expression identifying the resource that is
being accessed by the operation. If this field is not
present, then the target resource is the API itself.
<query>optionalthe set of parameters associated with the RESTCONF message;
see Section 3.4 of [RFC3986]. RESTCONF parameters have 
the familiar form of "name=value" pairs. Most query parameters are
optional to implement by the server and optional to use by the client. Each optional query parameter is identified by a URI

...


UsecaseREST MethodURIExample
1Add a data resource for a cmHandlePOST

dmi-root}/dmi/v1/data/ch/<cm-handle>/{parent-data-resource-identifier}

{

<new-yang-data-resource>

}

Content-Type: application/json

"data" payload : yang-data+json

see example 4 CPS-391Spike: Define and Agree NCMP REST Interface#RESTAPI
2Delete a data resource for a cmHandlePUT{dmiroot}/dmi/v1/data/ch/<cm-handle>/{resource-identifier}see example 7 CPS-391Spike: Define and Agree NCMP REST Interface#RESTAPI
3Patch a data resource for a cmHandlePATCH

{dmi-root}/dmi/v1/data/ch/<cm-handle>/{resource-identifier}

{
<yang-data-for-merging>
}

Content-Type: application/json

"data" payload : yang-data+json

see example 5 CPS-391Spike: Define and Agree NCMP REST Interface#RESTAPI
4Patch multiple child resources for a single cmHandlePATCH

{dmi-root}/dmi/v1/data/ch/<cm-handle>/{resource-identifier}


Content-Type: application/json

"data" payload : yang-patch+json

see example 6 CPS-391Spike: Define and Agree NCMP REST Interface#RESTAPI
5Execute a yang action on a cmhandle instancePOST

dmi-root}/dmi/v1/data/ch/<cm-handle>/{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

see example 10 CPS-391Spike: Define and Agree NCMP REST Interface#RESTAPI
6Execute an rpc operationPOST

{dmi-root}/dmi/v1/operations/ch/<cm-handle>/ {module-name}:{action}

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

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

see example 11 CPS-391Spike: Define and Agree NCMP REST Interface#RESTAPI
7Read a filtered set of data under a data resource for a cmHandlePUT

dmiroot}/dmi/v1/data/ch/<cm-handle>/{resource-identifier}?fields={fields-expression}

OptionDescription
fieldsRequest a subset of the target
resource contents



8Read data resources with specified fields under a given data resource for a given cmHandlePUT

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


OptionDescription
fieldsRequest a subset of the target
resource contents


see example 12 CPS-391Spike: Define and Agree NCMP REST Interface#RESTAPI
9Get data resource with 'fileds' for a cmhandle with a given scope conditionPUT{dmi-root}/dmi/v1/data/ch/{cm-handle}/{resourcepath}?fields={fields}&scope={scope}see example 2 CPS-391Spike: Define and Agree NCMP REST Interface#RESTAPI
10Read descendant nodes to a given depth for a given cmHandlePUT

{dmi-root}/dmi/v1/data/ch/{cm-handle}/{resource-identifier}?depth={level}


OptionDescription
depthRequest limited sub-tree depth in
the reply content
If '1' then only immediate resource
is retrieved
If '2' then resource plus next level
resources are retrieved


see example 12 CPS-391Spike: Define and Agree NCMP REST Interface#RESTAPI
11Replace data for a CMHandlePUT

{dmi-root}/dmi/v1/data/ch/<cm-handle>/{resource-identifier}

{

   data : {

            .... the complete tree config to be replaced

           }

}

see example 12 CPS-391Spike: Define and Agree NCMP REST Interface#RESTAPI


DMI Inventory



Use CaseRest MethodURIExample
1DMI registers a new data source with NCMP POST

{ncmp-root}/ncmp/v1/dmi-plugin/
{
    "dmi-plugin-id : { dmi-plugin-id }
     "dmi-source-id" : { unique-data-source-id }
}


dmi-plugin-id should be resolvable service name ink8s DNS


2Delete a data source from NCMP DMI Plugin NCMPDELETE{ncmp-root}/ncmp/v1/dmi-pluigin/ { dmi-plugin-id}/dmi-source/ { unique-data-source-id }
3NCMP requests cmhandles for a datasource (may be refresh of existing
datasource or for a newly registered datasource) NCMP DMI plugin
GET

{dmi-root}/v1/dmi-source/{unique-data-source-id}?topic={topic-id}


Content-Type: application/json

Note - the following will refresh ALL dmi data sources managed by a dmi plugin
{dmi-root}/v1/dmi-source?topic={topic-id}


4Notify of change to CMHandle(s)
Topic : 'NCMP_INVENTORY' / sync request topic
Topic name should come from Data Catalog OR should DMI registry store the topic from the initialNCMP sync request?)

...