Although the PoC will only implement a few of the possible Java API methods it is important to have a good detailed view of the structure and naming of this interface going forward and document it.
Acceptance Criteria for Proposed Java Interface:
- Should follow ONAP or wider best practice
- Documented on ONAP Wiki
- Discussed and agreed within CPS Team
- Discussed and agreed with wider community
Currently we are considering 3 'separated' Java APIs or 'groups' of methods:
- Models (add, list)
- Data (CRUD)
- Queries
Jira Ticket:
- CCSDK-2871Getting issue details... STATUS
Jira Backlog:
Open Issues/Decisions
# | Description | Details | Decisions |
---|---|---|---|
Should the java interface take in objects(like REST interface) or a few individual fields in a signature? |
Description of Operations for Modelling Storage
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 OK |
GET /dataspaces/{dataspace-name}/modules?namespace="namespace-name"&revision="revision" | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Description Read all modules in the store. | ||||||||||||||||||||
Request Parameters:
| ||||||||||||||||||||
200 OK |
DELETE /dataspaces/{dataspace-name}/ | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Description Delete a dataspace. | ||||||||||
Request Parameters:
| ||||||||||
200 OK |
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 OK |
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 |
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 |
GET /dataspaces/{dataspace-name}/anchors | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
Description Read all anchors in the given a dataspace. | ||||||||||
Request Parameters:
| ||||||||||
200 OK |
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 |
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: { xpath specification }} | |||||||||||||||
Request Parameters:
| |||||||||||||||
200 OK |
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: { xpath specification }} | ||||||||||
Request Parameters:
| ||||||||||
200 OK |
Schema definitions
dataspace : object |
---|
Description: A dataspace is an object that contains yang modules. |
anchor : object |
---|
Description: An anchor is an object used the describe the base of the tree. A anchor must exist before creating a model instance |
Namespace : object |
---|
Description: A namespace is declared by the yang module. |