Versions Compared

Key

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

...

#

Description

Details

Decisions

1Should the java interface take in objects(like REST interface) or a few individual fields in a signature?



...

POST /dataspaces/{dataspace-name}/modules

Description

Create (and validate) a module set (upload a model file) for the given dataspace. Payload is a file containing 1 or more yang modules. This operation will also create a dataspace.

Request Parameters:

NameDescriptionTypeData type
dataspace-nameThe name of the dataspacepathstringrequired
filea yang model fileformyangoptional


Responses:

200 OK201 – OK – New resource has been created


GET /dataspaces/{dataspace-name}/modules?namespace="namespace-name"&revision="revision"

Description

Read all modules in the store.

Request Parameters:

NameDescriptionTypeData type
dataspace-nameThe name of the dataspacepathstringrequired
namespace-nameThe name of the namepsacequerystringoptional
revisionModule revision querystringoptional


200 OK – Everything is working


DELETE /dataspaces/{dataspace-name}/

Description

Delete a dataspace.

Request Parameters:

NameDescriptionTypeData type
dataspace-nameThe name of the dataspacepathstringrequired


200 OK204 – OK – The resource was successfully deleted


Description of Operations for Anchor Persistence

POST /dataspaces/{dataspace-name}/anchors

Description

Create a new anchor in the given dataspace (payload includes anchor name, module namespace and revision)

Request Body

application/json

Request Parameters:

NameDescriptionTypeData type
dataspace-nameThe name of the dataspacepathstringrequired


200 OK201 – OK – New resource has been created


GET /dataspaces/{dataspace-name}/anchors/{anchor-name}

Description

Read an anchor and the associated attributes given a anchor and a dataspace.

Request Parameters:

NameDescriptionTypeData type
dataspace-nameThe name of the dataspacepathstringrequired
anchor-nameThe name of the anchorpathstringrequired


200 OK – Everything is working


DELETE /dataspaces/{dataspace-name}/anchors/{anchor-name}

Description

Delete an anchor given a anchor and a dataspace. This will delete the whole tree.

Request Parameters:

NameDescriptionTypeData type
dataspace-nameThe name of the dataspacepathstringrequired
anchor-nameThe name of the anchorpathstringrequired


200 OK

204 – OK – The resource was successfully deleted


GET /dataspaces/{dataspace-name}/anchors

Description

Read all anchors in the given a dataspace.

Request Parameters:

NameDescriptionTypeData type
dataspace-nameThe name of the dataspacepathstringrequired


200 OK – Everything is working


Description of Operations for Node Persistence

...

POST /dataspaces/{dataspace-name}/nodes

Description

Create a (root) node for a given anchor for the given dataspace, the node can have children. Their children will also be persisted as separate nodes in the system.

Request Parameters:

NameDescriptionTypeData type
dataspace-nameThe name of the dataspacepathstringrequired
fileModel fileformyangrequired

200 OK


201 – OK – New resource has been created



POST GET /dataspaces/{dataspace-name}/anchors/{anchor-name}/nodes

Description

Get a node given an anchor for the given dataspace (return just one level with just xpath references to its children)

Request Body

{

    "xpath" : "/dataspace/anchors/nodes[1]"

: { xpath specification }}

Request Parameters:

NameDescriptionTypeData type
dataspace-nameThe name of the dataspacepathstringrequired
anchor-nameThe name of the anchorpathstringrequired


200 OK

– Everything is working

Example Response



POST GET /dataspaces/{dataspace-id}/nodes

Description

Get a node (under any anchor) given a Xpath expression for the given dataspace

Get all the relevant nodes given a schema node identifier for the given dataspace

Request Body

{

    "xpath" : "/dataspace/anchor/nodes"

: { xpath specification }}

Request Parameters:

NameDescriptionTypeData type
dataspace-nameThe name of the dataspacepathstringrequired


200 OK – Everything is working

Example Response



Payload Data Structures


Schema definitions

TODO

dataspace : object

Description:

A dataspace is an object that contains yang modules.

...

Namespace : object

Description:

A namespace is declared by the yang module.


Security on the API

TODO


Response Codes

The API specification should describe the right HTTP status code to return the client.

...

e.g Requests per unit time allowed; pagination

TODO

API Interactions and Flows

...