...
# | Description | Details | Decisions |
---|---|---|---|
1 | Should 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:
| |||||||||||||||
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:
| ||||||||||||||||||||
200 – OK – Everything is working |
DELETE /dataspaces/{dataspace-name}/ | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Description Delete a dataspace. | ||||||||||
Request Parameters:
| ||||||||||
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:
| ||||||||||
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:
| |||||||||||||||
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:
| |||||||||||||||
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:
| ||||||||||
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:
| |||||||||||||||
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:
| |||||||||||||||
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:
| ||||||||||
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
...