summaryrefslogtreecommitdiffstats
path: root/cps-rest/docs/openapi
diff options
context:
space:
mode:
authorJosephKeenan <joseph.keenan@est.tech>2021-05-24 17:42:23 +0100
committerJosephKeenan <joseph.keenan@est.tech>2021-05-26 16:46:29 +0100
commiteef2e112d1f447b47f2f19d24e9dfd9a76550333 (patch)
tree60db7b08fa88f297433f4f13eaecee7fd4d46d97 /cps-rest/docs/openapi
parent576f48e8d3ef2ac7526b5684eba0a3e8259ce3cc (diff)
Aligning differing openAPI paths (cps-rest & ncmp-rest)
Issue-ID: CPS-427 Change-Id: I1d6853419923994feed4d9c38482818f17202e36 Signed-off-by: JosephKeenan <joseph.keenan@est.tech>
Diffstat (limited to 'cps-rest/docs/openapi')
-rw-r--r--cps-rest/docs/openapi/components.yml147
-rw-r--r--cps-rest/docs/openapi/cpsAdmin.yml192
-rw-r--r--cps-rest/docs/openapi/cpsData.yml179
-rw-r--r--cps-rest/docs/openapi/cpsQuery.yml24
-rw-r--r--cps-rest/docs/openapi/openapi.yml58
5 files changed, 600 insertions, 0 deletions
diff --git a/cps-rest/docs/openapi/components.yml b/cps-rest/docs/openapi/components.yml
new file mode 100644
index 0000000000..5a21a730ef
--- /dev/null
+++ b/cps-rest/docs/openapi/components.yml
@@ -0,0 +1,147 @@
+components:
+ schemas:
+ ErrorMessage:
+ type: object
+ title: Error
+ properties:
+ status:
+ type: string
+ example: 400
+ message:
+ type: string
+ example: Dataspace not found
+ details:
+ type: string
+ example: Dataspace with name D1 does not exist.
+
+ MultipartFile:
+ required:
+ - file
+ properties:
+ multipartFile:
+ type: string
+ description: multipartFile
+ format: binary
+ example: http://example.com/examples/example.yang
+
+ parameters:
+ dataspaceNameInQuery:
+ name: dataspace-name
+ in: query
+ description: dataspace-name
+ required: true
+ schema:
+ type: string
+ dataspaceNameInPath:
+ name: dataspace-name
+ in: path
+ description: dataspace-name
+ required: true
+ schema:
+ type: string
+ anchorNameInPath:
+ name: anchor-name
+ in: path
+ description: anchor-name
+ required: true
+ schema:
+ type: string
+ schemaSetNameInQuery:
+ name: schema-set-name
+ in: query
+ description: schema-set-name
+ required: true
+ schema:
+ type: string
+ schemaSetNameInPath:
+ name: schema-set-name
+ in: path
+ description: schema-set-name
+ required: true
+ schema:
+ type: string
+ anchorNameInQuery:
+ name: anchor-name
+ in: query
+ description: anchor-name
+ required: true
+ schema:
+ type: string
+ xpathInQuery:
+ name: xpath
+ in: query
+ description: xpath
+ required: false
+ schema:
+ type: string
+ default: /
+ requiredXpathInQuery:
+ name: xpath
+ in: query
+ description: xpath
+ required: true
+ schema:
+ type: string
+ cpsPathInQuery:
+ name: cps-path
+ in: query
+ description: cps-path
+ required: false
+ schema:
+ type: string
+ default: /
+ includeDescendantsOptionInQuery:
+ name: include-descendants
+ in: query
+ description: include-descendants
+ required: false
+ schema:
+ type: boolean
+ default: false
+
+ responses:
+ NotFound:
+ description: The specified resource was not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ Unauthorized:
+ description: Unauthorized
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ Forbidden:
+ description: Forbidden
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ BadRequest:
+ description: Bad Request
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ Conflict:
+ description: Conflict
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ErrorMessage'
+ Ok:
+ description: OK
+ content:
+ application/json:
+ schema:
+ type: object
+ Created:
+ description: Created
+ content:
+ text/plain:
+ schema:
+ type: string
+ NoContent:
+ description: No Content
+ content: {}
diff --git a/cps-rest/docs/openapi/cpsAdmin.yml b/cps-rest/docs/openapi/cpsAdmin.yml
new file mode 100644
index 0000000000..cf26299283
--- /dev/null
+++ b/cps-rest/docs/openapi/cpsAdmin.yml
@@ -0,0 +1,192 @@
+dataspaces:
+ post:
+ description: Create a new dataspace
+ tags:
+ - cps-admin
+ summary: Create a dataspace
+ operationId: createDataspace
+ parameters:
+ - $ref: 'components.yml#/components/parameters/dataspaceNameInQuery'
+ responses:
+ '201':
+ $ref: 'components.yml#/components/responses/Created'
+ '400':
+ $ref: 'components.yml#/components/responses/BadRequest'
+ '401':
+ $ref: 'components.yml#/components/responses/Unauthorized'
+ '403':
+ $ref: 'components.yml#/components/responses/Forbidden'
+
+dataspaceByDataspaceName:
+ delete:
+ description: Delete the given dataspace - DRAFT
+ tags:
+ - cps-admin
+ summary: Delete a dataspace
+ operationId: deleteDataspace
+ parameters:
+ - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
+ responses:
+ '200':
+ $ref: 'components.yml#/components/responses/Ok'
+ '204':
+ $ref: 'components.yml#/components/responses/NoContent'
+ '400':
+ $ref: 'components.yml#/components/responses/BadRequest'
+ '401':
+ $ref: 'components.yml#/components/responses/Unauthorized'
+ '403':
+ $ref: 'components.yml#/components/responses/Forbidden'
+
+
+schemaSet:
+ post:
+ description: Create a new schema set in the given dataspace
+ tags:
+ - cps-admin
+ summary: Create a schema set
+ operationId: createSchemaSet
+ parameters:
+ - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
+ - $ref: 'components.yml#/components/parameters/schemaSetNameInQuery'
+ requestBody:
+ required: true
+ content:
+ multipart/form-data:
+ schema:
+ $ref: 'components.yml#/components/schemas/MultipartFile'
+
+ responses:
+ '201':
+ $ref: 'components.yml#/components/responses/Created'
+ '400':
+ $ref: 'components.yml#/components/responses/BadRequest'
+ '401':
+ $ref: 'components.yml#/components/responses/Unauthorized'
+ '403':
+ $ref: 'components.yml#/components/responses/Forbidden'
+
+schemaSetBySchemaSetName:
+ get:
+ description: Read a schema set given a schema set name and a dataspace
+ tags:
+ - cps-admin
+ summary: Get a schema set
+ operationId: getSchemaSet
+ parameters:
+ - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
+ - $ref: 'components.yml#/components/parameters/schemaSetNameInPath'
+ responses:
+ '200':
+ $ref: 'components.yml#/components/responses/Ok'
+ '400':
+ $ref: 'components.yml#/components/responses/BadRequest'
+ '401':
+ $ref: 'components.yml#/components/responses/Unauthorized'
+ '403':
+ $ref: 'components.yml#/components/responses/Forbidden'
+ '404':
+ $ref: 'components.yml#/components/responses/NotFound'
+
+ delete:
+ description: Delete a schema set given a schema set name and a dataspace
+ tags:
+ - cps-admin
+ summary: Delete a schema set
+ operationId: deleteSchemaSet
+ parameters:
+ - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
+ - $ref: 'components.yml#/components/parameters/schemaSetNameInPath'
+ responses:
+ '204':
+ $ref: 'components.yml#/components/responses/NoContent'
+ '400':
+ $ref: 'components.yml#/components/responses/BadRequest'
+ '401':
+ $ref: 'components.yml#/components/responses/Unauthorized'
+ '403':
+ $ref: 'components.yml#/components/responses/Forbidden'
+ '409':
+ $ref: 'components.yml#/components/responses/Conflict'
+
+anchorsByDataspace:
+ get:
+ description: Read all anchors, given a dataspace
+ tags:
+ - cps-admin
+ summary: Get anchors
+ operationId: getAnchors
+ parameters:
+ - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
+ responses:
+ '200':
+ $ref: 'components.yml#/components/responses/Ok'
+ '400':
+ $ref: 'components.yml#/components/responses/BadRequest'
+ '401':
+ $ref: 'components.yml#/components/responses/Unauthorized'
+ '403':
+ $ref: 'components.yml#/components/responses/Forbidden'
+ '404':
+ $ref: 'components.yml#/components/responses/NotFound'
+
+ post:
+ description: Create a new anchor in the given dataspace
+ tags:
+ - cps-admin
+ summary: Create an anchor
+ operationId: createAnchor
+ parameters:
+ - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
+ - $ref: 'components.yml#/components/parameters/schemaSetNameInQuery'
+ - $ref: 'components.yml#/components/parameters/anchorNameInQuery'
+ responses:
+ '201':
+ $ref: 'components.yml#/components/responses/Created'
+ '400':
+ $ref: 'components.yml#/components/responses/BadRequest'
+ '401':
+ $ref: 'components.yml#/components/responses/Unauthorized'
+ '403':
+ $ref: 'components.yml#/components/responses/Forbidden'
+
+anchorByDataspaceAndAnchorName:
+ get:
+ description: Read an anchor given an anchor name and a dataspace
+ tags:
+ - cps-admin
+ summary: Get an anchor
+ operationId: getAnchor
+ parameters:
+ - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
+ - $ref: 'components.yml#/components/parameters/anchorNameInPath'
+ responses:
+ '200':
+ $ref: 'components.yml#/components/responses/Ok'
+ '400':
+ $ref: 'components.yml#/components/responses/BadRequest'
+ '401':
+ $ref: 'components.yml#/components/responses/Unauthorized'
+ '403':
+ $ref: 'components.yml#/components/responses/Forbidden'
+ '404':
+ $ref: 'components.yml#/components/responses/NotFound'
+
+ delete:
+ description: Delete an anchor given an anchor name and a dataspace
+ tags:
+ - cps-admin
+ summary: Delete an anchor
+ operationId: deleteAnchor
+ parameters:
+ - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
+ - $ref: 'components.yml#/components/parameters/anchorNameInPath'
+ responses:
+ '204':
+ $ref: 'components.yml#/components/responses/NoContent'
+ '400':
+ $ref: 'components.yml#/components/responses/BadRequest'
+ '401':
+ $ref: 'components.yml#/components/responses/Unauthorized'
+ '403':
+ $ref: 'components.yml#/components/responses/Forbidden'
diff --git a/cps-rest/docs/openapi/cpsData.yml b/cps-rest/docs/openapi/cpsData.yml
new file mode 100644
index 0000000000..aa8a31dfcb
--- /dev/null
+++ b/cps-rest/docs/openapi/cpsData.yml
@@ -0,0 +1,179 @@
+nodeByDataspaceAndAnchor:
+ get:
+ description: Get a node with an option to retrieve all the children for a given anchor and dataspace
+ tags:
+ - cps-data
+ summary: Get a node
+ operationId: getNodeByDataspaceAndAnchor
+ parameters:
+ - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
+ - $ref: 'components.yml#/components/parameters/anchorNameInPath'
+ - $ref: 'components.yml#/components/parameters/xpathInQuery'
+ - $ref: 'components.yml#/components/parameters/includeDescendantsOptionInQuery'
+ responses:
+ '200':
+ $ref: 'components.yml#/components/responses/Ok'
+ '400':
+ $ref: 'components.yml#/components/responses/BadRequest'
+ '401':
+ $ref: 'components.yml#/components/responses/Unauthorized'
+ '403':
+ $ref: 'components.yml#/components/responses/Forbidden'
+ '404':
+ $ref: 'components.yml#/components/responses/NotFound'
+ x-codegen-request-body-name: xpath
+
+listNodeByDataspaceAndAnchor:
+ post:
+ description: Add list-node child elements to existing node for a given anchor and dataspace
+ tags:
+ - cps-data
+ summary: Add list-node child element(s) under existing parent node
+ operationId: addListNodeElements
+ parameters:
+ - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
+ - $ref: 'components.yml#/components/parameters/anchorNameInPath'
+ - $ref: 'components.yml#/components/parameters/requiredXpathInQuery'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: string
+ responses:
+ '201':
+ $ref: 'components.yml#/components/responses/Created'
+ '400':
+ $ref: 'components.yml#/components/responses/BadRequest'
+ '401':
+ $ref: 'components.yml#/components/responses/Unauthorized'
+ '403':
+ $ref: 'components.yml#/components/responses/Forbidden'
+
+ patch:
+ description: Replace list-node child elements under existing node for a given anchor and dataspace
+ tags:
+ - cps-data
+ summary: Replace list-node child element(s) under existing parent node
+ operationId: replaceListNodeElements
+ parameters:
+ - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
+ - $ref: 'components.yml#/components/parameters/anchorNameInPath'
+ - $ref: 'components.yml#/components/parameters/requiredXpathInQuery'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: string
+ responses:
+ '200':
+ $ref: 'components.yml#/components/responses/Created'
+ '400':
+ $ref: 'components.yml#/components/responses/BadRequest'
+ '401':
+ $ref: 'components.yml#/components/responses/Unauthorized'
+ '403':
+ $ref: 'components.yml#/components/responses/Forbidden'
+
+nodesByDataspaceAndAnchor:
+ post:
+ description: Create a node for a given anchor and dataspace
+ tags:
+ - cps-data
+ summary: Create a node
+ operationId: createNode
+ parameters:
+ - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
+ - $ref: 'components.yml#/components/parameters/anchorNameInPath'
+ - $ref: 'components.yml#/components/parameters/xpathInQuery'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: string
+ responses:
+ '201':
+ $ref: 'components.yml#/components/responses/Created'
+ '400':
+ $ref: 'components.yml#/components/responses/BadRequest'
+ '401':
+ $ref: 'components.yml#/components/responses/Unauthorized'
+ '403':
+ $ref: 'components.yml#/components/responses/Forbidden'
+
+ patch:
+ description: Update a data node leaves for a given dataspace and anchor and a parent node xpath
+ tags:
+ - cps-data
+ summary: Update node leaves
+ operationId: updateNodeLeaves
+ parameters:
+ - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
+ - $ref: 'components.yml#/components/parameters/anchorNameInPath'
+ - $ref: 'components.yml#/components/parameters/xpathInQuery'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: string
+ responses:
+ '200':
+ $ref: 'components.yml#/components/responses/Ok'
+ '400':
+ $ref: 'components.yml#/components/responses/BadRequest'
+ '401':
+ $ref: 'components.yml#/components/responses/Unauthorized'
+ '403':
+ $ref: 'components.yml#/components/responses/Forbidden'
+
+ put:
+ description: Replace a node with descendants for a given dataspace, anchor and a parent node xpath
+ tags:
+ - cps-data
+ summary: Replace a node with descendants
+ operationId: replaceNode
+ parameters:
+ - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
+ - $ref: 'components.yml#/components/parameters/anchorNameInPath'
+ - $ref: 'components.yml#/components/parameters/xpathInQuery'
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ type: string
+ responses:
+ '200':
+ $ref: 'components.yml#/components/responses/Ok'
+ '400':
+ $ref: 'components.yml#/components/responses/BadRequest'
+ '401':
+ $ref: 'components.yml#/components/responses/Unauthorized'
+ '403':
+ $ref: 'components.yml#/components/responses/Forbidden'
+
+
+nodesByDataspace:
+ get:
+ description: Get all nodes for a given dataspace using an xpath or schema node identifier - DRAFT
+ tags:
+ - cps-data
+ summary: Get nodes
+ operationId: getNodesByDataspace
+ parameters:
+ - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
+ responses:
+ '200':
+ $ref: 'components.yml#/components/responses/Ok'
+ '400':
+ $ref: 'components.yml#/components/responses/BadRequest'
+ '401':
+ $ref: 'components.yml#/components/responses/Unauthorized'
+ '403':
+ $ref: 'components.yml#/components/responses/Forbidden'
+ '404':
+ $ref: 'components.yml#/components/responses/NotFound'
+ x-codegen-request-body-name: requestBody
diff --git a/cps-rest/docs/openapi/cpsQuery.yml b/cps-rest/docs/openapi/cpsQuery.yml
new file mode 100644
index 0000000000..779c9a0948
--- /dev/null
+++ b/cps-rest/docs/openapi/cpsQuery.yml
@@ -0,0 +1,24 @@
+nodesByDataspaceAndAnchorAndCpsPath:
+ get:
+ description: Query data nodes for the given dataspace and anchor using CPS path
+ tags:
+ - cps-query
+ summary: Query data nodes
+ operationId: getNodesByDataspaceAndAnchorAndCpsPath
+ parameters:
+ - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
+ - $ref: 'components.yml#/components/parameters/anchorNameInPath'
+ - $ref: 'components.yml#/components/parameters/cpsPathInQuery'
+ - $ref: 'components.yml#/components/parameters/includeDescendantsOptionInQuery'
+ responses:
+ '200':
+ $ref: 'components.yml#/components/responses/Ok'
+ '400':
+ $ref: 'components.yml#/components/responses/BadRequest'
+ '401':
+ $ref: 'components.yml#/components/responses/Unauthorized'
+ '403':
+ $ref: 'components.yml#/components/responses/Forbidden'
+ '404':
+ $ref: 'components.yml#/components/responses/NotFound'
+ x-codegen-request-body-name: xpath \ No newline at end of file
diff --git a/cps-rest/docs/openapi/openapi.yml b/cps-rest/docs/openapi/openapi.yml
new file mode 100644
index 0000000000..3c0cc09e59
--- /dev/null
+++ b/cps-rest/docs/openapi/openapi.yml
@@ -0,0 +1,58 @@
+openapi: 3.0.1
+info:
+ title: ONAP Open API v3 Configuration Persistence Service
+ description: Configuration Persistence Service is a Model Driven Generic Database
+ version: "1.0.0"
+ contact:
+ name: ONAP
+ url: "https://onap.readthedocs.io"
+ email: "onap-discuss@lists.onap.org"
+ license:
+ name: "Apache 2.0"
+ url: "http://www.apache.org/licenses/LICENSE-2.0"
+ x-planned-retirement-date: "202212"
+ x-component: "Modeling"
+ x-logo:
+ url: "cps_logo.png"
+
+servers:
+ - url: //localhost:8088
+tags:
+ - name: cps-admin
+ description: cps Admin
+ - name: cps-data
+ description: cps Data
+paths:
+
+ /v1/dataspaces:
+ $ref: 'cpsAdmin.yml#/dataspaces'
+
+ /v1/dataspaces/{dataspace-name}:
+ $ref: 'cpsAdmin.yml#/dataspaceByDataspaceName'
+
+ /v1/dataspaces/{dataspace-name}/anchors:
+ $ref: 'cpsAdmin.yml#/anchorsByDataspace'
+
+ /v1/dataspaces/{dataspace-name}/anchors/{anchor-name}:
+ $ref: 'cpsAdmin.yml#/anchorByDataspaceAndAnchorName'
+
+ /v1/dataspaces/{dataspace-name}/schema-sets:
+ $ref: 'cpsAdmin.yml#/schemaSet'
+
+ /v1/dataspaces/{dataspace-name}/schema-sets/{schema-set-name}:
+ $ref: 'cpsAdmin.yml#/schemaSetBySchemaSetName'
+
+ /v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/node:
+ $ref: 'cpsData.yml#/nodeByDataspaceAndAnchor'
+
+ /v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/nodes:
+ $ref: 'cpsData.yml#/nodesByDataspaceAndAnchor'
+
+ /v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/list-node:
+ $ref: 'cpsData.yml#/listNodeByDataspaceAndAnchor'
+
+ /v1/dataspaces/{dataspace-name}/nodes:
+ $ref: 'cpsData.yml#/nodesByDataspace'
+
+ /v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/nodes/query:
+ $ref: 'cpsQuery.yml#/nodesByDataspaceAndAnchorAndCpsPath' \ No newline at end of file