From eef2e112d1f447b47f2f19d24e9dfd9a76550333 Mon Sep 17 00:00:00 2001 From: JosephKeenan Date: Mon, 24 May 2021 17:42:23 +0100 Subject: Aligning differing openAPI paths (cps-rest & ncmp-rest) Issue-ID: CPS-427 Change-Id: I1d6853419923994feed4d9c38482818f17202e36 Signed-off-by: JosephKeenan --- cps-rest/docs/api/swagger/components.yml | 147 ----------------------- cps-rest/docs/api/swagger/cpsAdmin.yml | 192 ------------------------------- cps-rest/docs/api/swagger/cpsData.yml | 179 ---------------------------- cps-rest/docs/api/swagger/cpsQuery.yml | 24 ---- cps-rest/docs/api/swagger/openapi.yml | 58 ---------- cps-rest/docs/openapi/components.yml | 147 +++++++++++++++++++++++ cps-rest/docs/openapi/cpsAdmin.yml | 192 +++++++++++++++++++++++++++++++ cps-rest/docs/openapi/cpsData.yml | 179 ++++++++++++++++++++++++++++ cps-rest/docs/openapi/cpsQuery.yml | 24 ++++ cps-rest/docs/openapi/openapi.yml | 58 ++++++++++ cps-rest/pom.xml | 2 +- 11 files changed, 601 insertions(+), 601 deletions(-) delete mode 100755 cps-rest/docs/api/swagger/components.yml delete mode 100755 cps-rest/docs/api/swagger/cpsAdmin.yml delete mode 100755 cps-rest/docs/api/swagger/cpsData.yml delete mode 100644 cps-rest/docs/api/swagger/cpsQuery.yml delete mode 100755 cps-rest/docs/api/swagger/openapi.yml create mode 100644 cps-rest/docs/openapi/components.yml create mode 100644 cps-rest/docs/openapi/cpsAdmin.yml create mode 100644 cps-rest/docs/openapi/cpsData.yml create mode 100644 cps-rest/docs/openapi/cpsQuery.yml create mode 100644 cps-rest/docs/openapi/openapi.yml diff --git a/cps-rest/docs/api/swagger/components.yml b/cps-rest/docs/api/swagger/components.yml deleted file mode 100755 index 5a21a730e..000000000 --- a/cps-rest/docs/api/swagger/components.yml +++ /dev/null @@ -1,147 +0,0 @@ -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/api/swagger/cpsAdmin.yml b/cps-rest/docs/api/swagger/cpsAdmin.yml deleted file mode 100755 index cf2629928..000000000 --- a/cps-rest/docs/api/swagger/cpsAdmin.yml +++ /dev/null @@ -1,192 +0,0 @@ -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/api/swagger/cpsData.yml b/cps-rest/docs/api/swagger/cpsData.yml deleted file mode 100755 index aa8a31dfc..000000000 --- a/cps-rest/docs/api/swagger/cpsData.yml +++ /dev/null @@ -1,179 +0,0 @@ -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/api/swagger/cpsQuery.yml b/cps-rest/docs/api/swagger/cpsQuery.yml deleted file mode 100644 index 779c9a094..000000000 --- a/cps-rest/docs/api/swagger/cpsQuery.yml +++ /dev/null @@ -1,24 +0,0 @@ -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/api/swagger/openapi.yml b/cps-rest/docs/api/swagger/openapi.yml deleted file mode 100755 index 3c0cc09e5..000000000 --- a/cps-rest/docs/api/swagger/openapi.yml +++ /dev/null @@ -1,58 +0,0 @@ -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 diff --git a/cps-rest/docs/openapi/components.yml b/cps-rest/docs/openapi/components.yml new file mode 100644 index 000000000..5a21a730e --- /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 000000000..cf2629928 --- /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 000000000..aa8a31dfc --- /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 000000000..779c9a094 --- /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 000000000..3c0cc09e5 --- /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 diff --git a/cps-rest/pom.xml b/cps-rest/pom.xml index 1e535c436..a8ace0eb7 100755 --- a/cps-rest/pom.xml +++ b/cps-rest/pom.xml @@ -124,7 +124,7 @@ generate - ${project.basedir}/docs/api/swagger/openapi.yml + ${project.basedir}/docs/openapi/openapi.yml org.onap.cps.rest.controller org.onap.cps.rest.model org.onap.cps.rest.api -- cgit 1.2.3-korg