From 44beaa34486d0624175c42cc3899a0b53befd9a8 Mon Sep 17 00:00:00 2001 From: shivasubedi Date: Mon, 13 Sep 2021 15:16:30 +0100 Subject: Create Preliminary Documentation for CPS-Core & NCMP Create Preliminary documentation for Istanbul release of the CPS-Core. Added new plugins in POM to generate swagger doc for design page. Added latest conf.py file from http://gerrit.onap.org/r/doc Followed template from work done by Chaker here https://wiki.onap.org/display/DW/Component+Documentation+Template Issue-ID: CPS-633 Change-Id: I431776e4d052ec65bf1e1d7709d12d0100592cd5 Signed-off-by: DylanB95EST Signed-off-by: shivasubedi --- docs/api/swagger/cps/openapi.yaml | 987 +++++++++++++++++++++++++++++++++++++ docs/api/swagger/ncmp/openapi.yaml | 659 +++++++++++++++++++++++++ docs/api/swagger/openapi.yml | 840 ------------------------------- docs/architecture.rst | 10 +- docs/conf.py | 87 +++- docs/cps-path.rst | 3 + docs/deployment.rst | 15 + docs/design.rst | 7 +- docs/index.rst | 18 +- docs/modeling.rst | 2 + docs/overview.rst | 7 +- docs/release-notes.rst | 130 +++++ pom.xml | 41 ++ 13 files changed, 1952 insertions(+), 854 deletions(-) create mode 100644 docs/api/swagger/cps/openapi.yaml create mode 100644 docs/api/swagger/ncmp/openapi.yaml delete mode 100755 docs/api/swagger/openapi.yml create mode 100644 docs/deployment.rst diff --git a/docs/api/swagger/cps/openapi.yaml b/docs/api/swagger/cps/openapi.yaml new file mode 100644 index 000000000..fb219eb65 --- /dev/null +++ b/docs/api/swagger/cps/openapi.yaml @@ -0,0 +1,987 @@ +openapi: 3.0.1 +info: + title: ONAP Open API v3 Configuration Persistence Service + description: Configuration Persistence Service is a Model Driven Generic Database + 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 + version: 1.0.0 + x-planned-retirement-date: "202212" + x-component: Modeling + x-logo: + url: cps_logo.png +servers: +- url: /cps/api +tags: +- name: cps-admin + description: cps Admin +- name: cps-data + description: cps Data +paths: + /v1/dataspaces: + post: + tags: + - cps-admin + summary: Create a dataspace + description: Create a new dataspace + operationId: createDataspace + parameters: + - name: dataspace-name + in: query + description: dataspace-name + required: true + schema: + type: string + responses: + "201": + description: Created + content: + text/plain: + schema: + type: string + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + /v1/dataspaces/{dataspace-name}/anchors: + get: + tags: + - cps-admin + summary: Get anchors + description: "Read all anchors, given a dataspace" + operationId: getAnchors + parameters: + - name: dataspace-name + in: path + description: dataspace-name + required: true + schema: + type: string + responses: + "200": + description: OK + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/AnchorDetails' + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "404": + description: The specified resource was not found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + post: + tags: + - cps-admin + summary: Create an anchor + description: Create a new anchor in the given dataspace + operationId: createAnchor + parameters: + - name: dataspace-name + in: path + description: dataspace-name + required: true + schema: + type: string + - name: schema-set-name + in: query + description: schema-set-name + required: true + schema: + type: string + - name: anchor-name + in: query + description: anchor-name + required: true + schema: + type: string + responses: + "201": + description: Created + content: + text/plain: + schema: + type: string + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + /v1/dataspaces/{dataspace-name}/anchors/{anchor-name}: + get: + tags: + - cps-admin + summary: Get an anchor + description: Read an anchor given an anchor name and a dataspace + operationId: getAnchor + parameters: + - name: dataspace-name + in: path + description: dataspace-name + required: true + schema: + type: string + - name: anchor-name + in: path + description: anchor-name + required: true + schema: + type: string + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/AnchorDetails' + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "404": + description: The specified resource was not found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + delete: + tags: + - cps-admin + summary: Delete an anchor + description: Delete an anchor given an anchor name and a dataspace + operationId: deleteAnchor + parameters: + - name: dataspace-name + in: path + description: dataspace-name + required: true + schema: + type: string + - name: anchor-name + in: path + description: anchor-name + required: true + schema: + type: string + responses: + "204": + description: No Content + content: {} + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + /v1/dataspaces/{dataspace-name}/schema-sets: + post: + tags: + - cps-admin + summary: Create a schema set + description: Create a new schema set in the given dataspace + operationId: createSchemaSet + parameters: + - name: dataspace-name + in: path + description: dataspace-name + required: true + schema: + type: string + - name: schema-set-name + in: query + description: schema-set-name + required: true + schema: + type: string + requestBody: + content: + multipart/form-data: + schema: + $ref: '#/components/schemas/MultipartFile' + required: true + responses: + "201": + description: Created + content: + text/plain: + schema: + type: string + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + /v1/dataspaces/{dataspace-name}/schema-sets/{schema-set-name}: + get: + tags: + - cps-admin + summary: Get a schema set + description: Read a schema set given a schema set name and a dataspace + operationId: getSchemaSet + parameters: + - name: dataspace-name + in: path + description: dataspace-name + required: true + schema: + type: string + - name: schema-set-name + in: path + description: schema-set-name + required: true + schema: + type: string + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/SchemaSetDetails' + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "404": + description: The specified resource was not found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + delete: + tags: + - cps-admin + summary: Delete a schema set + description: Delete a schema set given a schema set name and a dataspace + operationId: deleteSchemaSet + parameters: + - name: dataspace-name + in: path + description: dataspace-name + required: true + schema: + type: string + - name: schema-set-name + in: path + description: schema-set-name + required: true + schema: + type: string + responses: + "204": + description: No Content + content: {} + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "409": + description: Conflict + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + /v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/node: + get: + tags: + - cps-data + summary: Get a node + description: Get a node with an option to retrieve all the children for a given + anchor and dataspace + operationId: getNodeByDataspaceAndAnchor + parameters: + - name: dataspace-name + in: path + description: dataspace-name + required: true + schema: + type: string + - name: anchor-name + in: path + description: anchor-name + required: true + schema: + type: string + - name: xpath + in: query + description: xpath + required: false + schema: + type: string + default: / + - name: include-descendants + in: query + description: include-descendants + required: false + schema: + type: boolean + default: false + responses: + "200": + description: OK + content: + application/json: + schema: + type: object + example: + child: my_child + leafList: "leafListElement1, leafListElement2" + leaf: my_leaf + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "404": + description: The specified resource was not found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + x-codegen-request-body-name: xpath + /v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/nodes: + put: + tags: + - cps-data + summary: Replace a node with descendants + description: "Replace a node with descendants for a given dataspace, anchor\ + \ and a parent node xpath" + operationId: replaceNode + parameters: + - name: dataspace-name + in: path + description: dataspace-name + required: true + schema: + type: string + - name: anchor-name + in: path + description: anchor-name + required: true + schema: + type: string + - name: xpath + in: query + description: xpath + required: false + schema: + type: string + default: / + - name: observed-timestamp + in: query + description: observed-timestamp + required: false + schema: + type: string + example: 2021-03-21T00:10:34.030-0100 + requestBody: + content: + application/json: + schema: + type: string + required: true + responses: + "200": + description: OK + content: + application/json: + schema: + type: object + example: + key: value + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + post: + tags: + - cps-data + summary: Create a node + description: Create a node for a given anchor and dataspace + operationId: createNode + parameters: + - name: dataspace-name + in: path + description: dataspace-name + required: true + schema: + type: string + - name: anchor-name + in: path + description: anchor-name + required: true + schema: + type: string + - name: xpath + in: query + description: xpath + required: false + schema: + type: string + default: / + - name: observed-timestamp + in: query + description: observed-timestamp + required: false + schema: + type: string + example: 2021-03-21T00:10:34.030-0100 + requestBody: + content: + application/json: + schema: + type: string + required: true + responses: + "201": + description: Created + content: + text/plain: + schema: + type: string + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + patch: + tags: + - cps-data + summary: Update node leaves + description: Update a data node leaves for a given dataspace and anchor and + a parent node xpath + operationId: updateNodeLeaves + parameters: + - name: dataspace-name + in: path + description: dataspace-name + required: true + schema: + type: string + - name: anchor-name + in: path + description: anchor-name + required: true + schema: + type: string + - name: xpath + in: query + description: xpath + required: false + schema: + type: string + default: / + - name: observed-timestamp + in: query + description: observed-timestamp + required: false + schema: + type: string + example: 2021-03-21T00:10:34.030-0100 + requestBody: + content: + application/json: + schema: + type: string + required: true + responses: + "200": + description: OK + content: + application/json: + schema: + type: object + example: + key: value + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + /v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/list-nodes: + put: + tags: + - cps-data + summary: Replace list-node child element(s) under existing parent node + description: Replace list-node child elements under existing node for a given + anchor and dataspace + operationId: replaceListNodeElements + parameters: + - name: dataspace-name + in: path + description: dataspace-name + required: true + schema: + type: string + - name: anchor-name + in: path + description: anchor-name + required: true + schema: + type: string + - name: xpath + in: query + description: xpath + required: true + schema: + type: string + - name: observed-timestamp + in: query + description: observed-timestamp + required: false + schema: + type: string + example: 2021-03-21T00:10:34.030-0100 + requestBody: + content: + application/json: + schema: + type: string + required: true + responses: + "200": + description: Created + content: + text/plain: + schema: + type: string + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + post: + tags: + - cps-data + summary: Add list-node child element(s) under existing parent node + description: Add list-node child elements to existing node for a given anchor + and dataspace + operationId: addListNodeElements + parameters: + - name: dataspace-name + in: path + description: dataspace-name + required: true + schema: + type: string + - name: anchor-name + in: path + description: anchor-name + required: true + schema: + type: string + - name: xpath + in: query + description: xpath + required: true + schema: + type: string + - name: observed-timestamp + in: query + description: observed-timestamp + required: false + schema: + type: string + example: 2021-03-21T00:10:34.030-0100 + requestBody: + content: + application/json: + schema: + type: string + required: true + responses: + "201": + description: Created + content: + text/plain: + schema: + type: string + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + delete: + tags: + - cps-data + summary: Delete list-node child element(s) under existing parent node + description: Delete list-node child elements under existing node for a given + anchor and dataspace + operationId: deleteListNodeElements + parameters: + - name: dataspace-name + in: path + description: dataspace-name + required: true + schema: + type: string + - name: anchor-name + in: path + description: anchor-name + required: true + schema: + type: string + - name: xpath + in: query + description: xpath + required: true + schema: + type: string + - name: observed-timestamp + in: query + description: observed-timestamp + required: false + schema: + type: string + example: 2021-03-21T00:10:34.030-0100 + responses: + "204": + description: No Content + content: {} + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + /v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/nodes/query: + get: + tags: + - cps-query + summary: Query data nodes + description: Query data nodes for the given dataspace and anchor using CPS path + operationId: getNodesByDataspaceAndAnchorAndCpsPath + parameters: + - name: dataspace-name + in: path + description: dataspace-name + required: true + schema: + type: string + - name: anchor-name + in: path + description: anchor-name + required: true + schema: + type: string + - name: cps-path + in: query + description: cps-path + required: false + schema: + type: string + default: / + - name: include-descendants + in: query + description: include-descendants + required: false + schema: + type: boolean + default: false + responses: + "200": + description: OK + content: + application/json: + schema: + type: object + example: + key: value + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "404": + description: The specified resource was not found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + x-codegen-request-body-name: xpath +components: + schemas: + ErrorMessage: + title: Error + type: object + properties: + status: + type: string + example: "400" + message: + type: string + example: Dataspace not found + details: + type: string + example: Dataspace with name D1 does not exist. + AnchorDetails: + title: Anchor details by anchor Name + type: object + properties: + name: + type: string + example: my_anchor + dataspaceName: + type: string + example: my_dataspace + schemaSetName: + type: string + example: my_schema_set + MultipartFile: + required: + - file + type: object + properties: + file: + type: string + description: multipartFile + format: binary + SchemaSetDetails: + title: Schema set details by dataspace and schemasetName + type: object + properties: + dataspaceName: + type: string + example: my_dataspace + moduleReferences: + type: array + items: + $ref: '#/components/schemas/ModuleReferences' + name: + type: string + example: my_schema_set + ModuleReferences: + title: Module reference object + type: object + properties: + name: + type: string + example: module_reference_name + namespace: + type: string + example: module_reference_namespace + revision: + type: string + example: module_reference_revision diff --git a/docs/api/swagger/ncmp/openapi.yaml b/docs/api/swagger/ncmp/openapi.yaml new file mode 100644 index 000000000..0edce20c1 --- /dev/null +++ b/docs/api/swagger/ncmp/openapi.yaml @@ -0,0 +1,659 @@ +openapi: 3.0.1 +info: + title: NCMP to CPS Proxy API + description: NCMP to CPS Proxy API + version: "1.0" +servers: +- url: /ncmp +paths: + /v1/cm-handles/{cm-handle}/node: + get: + tags: + - network-cm-proxy + summary: Get a node given a cm Handle and xpath + description: Get a node with an option to retrieve all the children for a given + cm Handle + operationId: getNodeByCmHandleAndXpath + parameters: + - name: cm-handle + in: path + description: "The identifier for a network function, network element, subnetwork\ + \ or any other cm object by managed Network CM Proxy" + required: true + schema: + type: string + - name: xpath + in: query + description: xpath + required: false + schema: + type: string + default: / + - name: include-descendants + in: query + description: include-descendants + required: false + schema: + type: boolean + default: false + responses: + "200": + description: OK + content: + application/json: + schema: + type: object + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "404": + description: The specified resource was not found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + deprecated: true + /v1/cm-handles/{cm-handle}/list-node: + post: + tags: + - network-cm-proxy + summary: Add list-node child element(s) + description: Add one or more list-node child elements under existing node for + the given CM Handle + operationId: addListNodeElements + parameters: + - name: cm-handle + in: path + description: "The identifier for a network function, network element, subnetwork\ + \ or any other cm object by managed Network CM Proxy" + required: true + schema: + type: string + - name: xpath + in: query + description: xpath + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: string + required: true + responses: + "201": + description: Created + content: {} + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "404": + description: The specified resource was not found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + deprecated: true + /v1/cm-handles/{cm-handle}/nodes/query: + get: + tags: + - network-cm-proxy + summary: Query data nodes + description: Query nodes for the given cps path and cm Handle + operationId: queryNodesByCmHandleAndCpsPath + parameters: + - name: cm-handle + in: path + description: "The identifier for a network function, network element, subnetwork\ + \ or any other cm object by managed Network CM Proxy" + required: true + schema: + type: string + - name: cps-path + in: query + description: cps-path + required: false + schema: + type: string + default: / + - name: include-descendants + in: query + description: include-descendants + required: false + schema: + type: boolean + default: false + responses: + "200": + description: OK + content: + application/json: + schema: + type: object + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "404": + description: The specified resource was not found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + deprecated: true + /v1/cm-handles/{cm-handle}/nodes: + put: + tags: + - network-cm-proxy + summary: Replace a node with descendants + description: Replace a node with descendants for the given cps path and cm Handle + operationId: replaceNode + parameters: + - name: cm-handle + in: path + description: "The identifier for a network function, network element, subnetwork\ + \ or any other cm object by managed Network CM Proxy" + required: true + schema: + type: string + - name: xpath + in: query + description: xpath + required: false + schema: + type: string + default: / + requestBody: + content: + application/json: + schema: + type: string + required: true + responses: + "200": + description: OK + content: + application/json: + schema: + type: object + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "404": + description: The specified resource was not found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + deprecated: true + post: + tags: + - network-cm-proxy + summary: Create a node with descendants + description: Create a node with descendants for the given CM Handle; top level + or under existing node (requires xpath) + operationId: createNode + parameters: + - name: cm-handle + in: path + description: "The identifier for a network function, network element, subnetwork\ + \ or any other cm object by managed Network CM Proxy" + required: true + schema: + type: string + - name: xpath + in: query + description: xpath + required: false + schema: + type: string + default: / + requestBody: + content: + application/json: + schema: + type: string + required: true + responses: + "201": + description: Created + content: {} + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "404": + description: The specified resource was not found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + deprecated: true + patch: + tags: + - network-cm-proxy + summary: Update node leaves + description: Update node leaves for the given cps path and cm Handle + operationId: updateNodeLeaves + parameters: + - name: cm-handle + in: path + description: "The identifier for a network function, network element, subnetwork\ + \ or any other cm object by managed Network CM Proxy" + required: true + schema: + type: string + - name: xpath + in: query + description: xpath + required: false + schema: + type: string + default: / + requestBody: + content: + application/json: + schema: + type: string + required: true + responses: + "200": + description: OK + content: + application/json: + schema: + type: object + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "404": + description: The specified resource was not found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + deprecated: true + /v1/ch: + post: + tags: + - network-cm-proxy + summary: DMI notifies NCMP of new CM Handles + description: "Register a DMI Plugin with any new, updated or removed CM Handles." + operationId: updateDmiPluginRegistration + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/RestDmiPluginRegistration' + required: true + responses: + "201": + description: Created + content: {} + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + /v1/ch/{cm-handle}/data/ds/ncmp-datastore:passthrough-operational/{resourceIdentifier}: + get: + tags: + - network-cm-proxy + summary: Get resource data from pass-through operational for cm handle + description: Get resource data from pass-through operational for given cm handle + operationId: getResourceDataOperationalForCmHandle + parameters: + - name: cm-handle + in: path + description: "The identifier for a network function, network element, subnetwork\ + \ or any other cm object by managed Network CM Proxy" + required: true + schema: + type: string + - name: resourceIdentifier + in: path + description: Resource identifier to get/set the resource data + required: true + schema: + type: string + - name: Accept + in: header + description: "Accept parameter for response, if accept parameter is null,\ + \ that means client can accept any format." + required: false + schema: + type: string + enum: + - application/json + - application/yang-data+json + - name: fields + in: query + description: Fields parameter to filter resource + required: false + schema: + type: string + - name: depth + in: query + description: Depth parameter for response + required: false + schema: + minimum: 1 + type: integer + responses: + "200": + description: OK + content: + application/json: + schema: + type: object + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "404": + description: The specified resource was not found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + /v1/ch/{cm-handle}/data/ds/ncmp-datastore:passthrough-running/{resourceIdentifier}: + get: + tags: + - network-cm-proxy + summary: Get resource data from pass-through running for cm handle + description: Get resource data from pass-through running for given cm handle + operationId: getResourceDataRunningForCmHandle + parameters: + - name: cm-handle + in: path + description: "The identifier for a network function, network element, subnetwork\ + \ or any other cm object by managed Network CM Proxy" + required: true + schema: + type: string + - name: resourceIdentifier + in: path + description: Resource identifier to get/set the resource data + required: true + schema: + type: string + - name: Accept + in: header + description: "Accept parameter for response, if accept parameter is null,\ + \ that means client can accept any format." + required: false + schema: + type: string + enum: + - application/json + - application/yang-data+json + - name: fields + in: query + description: Fields parameter to filter resource + required: false + schema: + type: string + - name: depth + in: query + description: Depth parameter for response + required: false + schema: + minimum: 1 + type: integer + responses: + "200": + description: OK + content: + application/json: + schema: + type: object + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "404": + description: The specified resource was not found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + post: + tags: + - network-cm-proxy + summary: create resource data from pass-through running for cm handle + description: create resource data from pass-through running for given cm handle + operationId: createResourceDataRunningForCmHandle + parameters: + - name: cm-handle + in: path + description: "The identifier for a network function, network element, subnetwork\ + \ or any other cm object by managed Network CM Proxy" + required: true + schema: + type: string + - name: resourceIdentifier + in: path + description: Resource identifier to get/set the resource data + required: true + schema: + type: string + - name: Content-Type + in: header + description: "Content parameter for request, if content parameter is null,\ + \ default value is application/json." + required: false + schema: + type: string + default: application/json + requestBody: + content: + application/json: + schema: + type: object + application/yang-data+json: + schema: + type: object + required: true + responses: + "201": + description: Created + content: {} + "400": + description: Bad Request + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "401": + description: Unauthorized + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' + "404": + description: The specified resource was not found + content: + application/json: + schema: + $ref: '#/components/schemas/ErrorMessage' +components: + schemas: + ErrorMessage: + title: Error + type: object + properties: + status: + type: string + message: + type: string + details: + type: string + RestDmiPluginRegistration: + type: object + properties: + dmiPlugin: + type: string + example: onap-dmi-plugin + createdCmHandles: + type: array + items: + $ref: '#/components/schemas/RestCmHandle' + updatedCmHandles: + type: array + items: + $ref: '#/components/schemas/RestCmHandle' + removedCmHandles: + type: array + items: + type: string + RestCmHandle: + required: + - cmHandle + type: object + properties: + cmHandle: + type: string + example: cmHandle123 + cmHandleProperties: + $ref: '#/components/schemas/RestCmHandleAdditionalProperties' + RestCmHandleAdditionalProperties: + type: object + additionalProperties: + type: string + example: system-001 diff --git a/docs/api/swagger/openapi.yml b/docs/api/swagger/openapi.yml deleted file mode 100755 index 4d64b01b8..000000000 --- a/docs/api/swagger/openapi.yml +++ /dev/null @@ -1,840 +0,0 @@ -# ============LICENSE_START======================================================= -# Copyright (C) 2021 Nordix Foundation -# Modifications Copyright (C) 2021 Bell Canada. -# ================================================================================ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 -# ============LICENSE_END========================================================= - -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: - post: - description: Create a new dataspace - tags: - - cps-admin - summary: Create a dataspace - operationId: createDataspace - parameters: - - name: dataspace-name - in: query - description: dataspace-name - required: true - schema: - type: string - responses: - '201': - description: Created - content: - text/plain: - schema: - type: string - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '/v1/dataspaces/{dataspace-name}': - delete: - description: Delete the given dataspace - DRAFT - tags: - - cps-admin - summary: Delete a dataspace - operationId: deleteDataspace - parameters: - - name: dataspace-name - in: path - description: dataspace-name - required: true - schema: - type: string - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - '204': - description: No Content - content: {} - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '/v1/dataspaces/{dataspace-name}/anchors': - get: - description: 'Read all anchors, given a dataspace' - tags: - - cps-admin - summary: Get anchors - operationId: getAnchors - parameters: - - name: dataspace-name - in: path - description: dataspace-name - required: true - schema: - type: string - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '404': - description: The specified resource was not found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - post: - description: Create a new anchor in the given dataspace - tags: - - cps-admin - summary: Create an anchor - operationId: createAnchor - parameters: - - name: dataspace-name - in: path - description: dataspace-name - required: true - schema: - type: string - - name: schema-set-name - in: query - description: schema-set-name - required: true - schema: - type: string - - name: anchor-name - in: query - description: anchor-name - required: true - schema: - type: string - responses: - '201': - description: Created - content: - text/plain: - schema: - type: string - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '/v1/dataspaces/{dataspace-name}/anchors/{anchor-name}': - get: - description: Read an anchor given an anchor name and a dataspace - tags: - - cps-admin - summary: Get an anchor - operationId: getAnchor - parameters: - - name: dataspace-name - in: path - description: dataspace-name - required: true - schema: - type: string - - name: anchor-name - in: path - description: anchor-name - required: true - schema: - type: string - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '404': - description: The specified resource was not found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - delete: - description: Delete an anchor given an anchor name and a dataspace - DRAFT - tags: - - cps-admin - summary: Delete an anchor - operationId: deleteAnchor - parameters: - - name: dataspace-name - in: path - description: dataspace-name - required: true - schema: - type: string - - name: anchor-name - in: path - description: anchor-name - required: true - schema: - type: string - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - '204': - description: No Content - content: {} - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '/v1/dataspaces/{dataspace-name}/schema-sets': - post: - description: Create a new schema set in the given dataspace - tags: - - cps-admin - summary: Create a schema set - operationId: createSchemaSet - parameters: - - name: dataspace-name - in: path - description: dataspace-name - required: true - schema: - type: string - - name: schema-set-name - in: query - description: schema-set-name - required: true - schema: - type: string - requestBody: - required: true - content: - multipart/form-data: - schema: - type: object - required: - - file - properties: - file: - type: string - description: multipartFile - format: binary - example: 'http://example.com/examples/example.yang' - responses: - '201': - description: Created - content: - text/plain: - schema: - type: string - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '/v1/dataspaces/{dataspace-name}/schema-sets/{schema-set-name}': - 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: - - name: dataspace-name - in: path - description: dataspace-name - required: true - schema: - type: string - - name: schema-set-name - in: path - description: schema-set-name - required: true - schema: - type: string - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '404': - description: The specified resource was not found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - 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: - - name: dataspace-name - in: path - description: dataspace-name - required: true - schema: - type: string - - name: schema-set-name - in: path - description: schema-set-name - required: true - schema: - type: string - responses: - '204': - description: No Content - content: {} - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '409': - description: Conflict - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '/v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/node': - 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: - - name: dataspace-name - in: path - description: dataspace-name - required: true - schema: - type: string - - name: anchor-name - in: path - description: anchor-name - required: true - schema: - type: string - - name: xpath - in: query - description: xpath - required: false - schema: - type: string - default: / - - name: include-descendants - in: query - description: include-descendants - required: false - schema: - type: boolean - default: false - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '404': - description: The specified resource was not found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - x-codegen-request-body-name: xpath - '/v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/nodes': - post: - description: Create a node for a given anchor and dataspace - tags: - - cps-data - summary: Create a node - operationId: createNode - parameters: - - name: dataspace-name - in: path - description: dataspace-name - required: true - schema: - type: string - - name: anchor-name - in: path - description: anchor-name - required: true - schema: - type: string - requestBody: - required: true - content: - application/json: - schema: - type: string - responses: - '201': - description: Created - content: - text/plain: - schema: - type: string - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - 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: - - name: dataspace-name - in: path - description: dataspace-name - required: true - schema: - type: string - - name: anchor-name - in: path - description: anchor-name - required: true - schema: - type: string - - name: xpath - in: query - description: xpath - required: false - schema: - type: string - default: / - requestBody: - required: true - content: - application/json: - schema: - type: string - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - 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: - - name: dataspace-name - in: path - description: dataspace-name - required: true - schema: - type: string - - name: anchor-name - in: path - description: anchor-name - required: true - schema: - type: string - - name: xpath - in: query - description: xpath - required: false - schema: - type: string - default: / - requestBody: - required: true - content: - application/json: - schema: - type: string - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '/v1/dataspaces/{dataspace-name}/nodes': - 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: - - name: dataspace-name - in: path - description: dataspace-name - required: true - schema: - type: string - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '404': - description: The specified resource was not found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - x-codegen-request-body-name: requestBody - '/v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/nodes/query': - get: - description: Query data nodes for the given dataspace and anchor using CPS path - tags: - - cps-query - summary: Query data nodes - operationId: getNodesByDataspaceAndAnchorAndCpsPath - parameters: - - name: dataspace-name - in: path - description: dataspace-name - required: true - schema: - type: string - - name: anchor-name - in: path - description: anchor-name - required: true - schema: - type: string - - name: cps-path - in: query - description: cps-path - required: false - schema: - type: string - default: / - - name: include-descendants - in: query - description: include-descendants - required: false - schema: - type: boolean - default: false - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - '400': - description: Bad Request - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '401': - description: Unauthorized - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '403': - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - '404': - description: The specified resource was not found - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorMessage' - x-codegen-request-body-name: xpath -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. diff --git a/docs/architecture.rst b/docs/architecture.rst index 51acf66f0..b703cfa53 100644 --- a/docs/architecture.rst +++ b/docs/architecture.rst @@ -6,6 +6,8 @@ CPS Architecture ################ +.. warning:: draft + .. toctree:: :maxdepth: 1 @@ -16,10 +18,12 @@ High Level Component Definition and Architectural Relationships The Configuration Persistence Service (CPS) provides storage for run-time configuration and operational parameters that need to be used by ONAP. -In this release the CPS is a stand-alone component. Project page describing eventual scope and ambition is here: -`Configuration Persistence Service Project `_ +In this release CPS is no longer a stand alone component and is released along with Cps-Temporal and the NCMP-DMI Plugin. + +Project page describing eventual scope and ambition is here: +`Configuration Persistence Service Project `_ -This page reflects the state for Honolulu-R8 release. +This page reflects the state for Istanbul-R9 release. .. image:: _static/cps-r8-arch-diagram.png diff --git a/docs/conf.py b/docs/conf.py index 1a9a5475a..3aaddd194 100755 --- a/docs/conf.py +++ b/docs/conf.py @@ -16,24 +16,97 @@ # SPDX-License-Identifier: Apache-2.0 # ============LICENSE_END========================================================= + +from docutils.parsers.rst import directives from docs_conf.conf import * branch = 'latest' +doc_url = 'https://docs.onap.org/projects' master_doc = 'index' -extensions = [ - 'sphinx.ext.autosectionlabel', - 'sphinxcontrib.swaggerdoc' - ] + +intersphinx_mapping = {} + +# Latest (change to branch) +intersphinx_mapping['onap-cps'] = ('{}/onap-cps/en/%s'.format(doc_url) % branch, None) linkcheck_ignore = [ 'http://localhost', + 'https://example.com', + 'about:config', + # this URL is not directly reachable and must be configured in the system hosts file. + 'https://portal.api.simpledemo.onap.org:30225/ONAPPORTAL/login.htm', + # anchor issues + 'https://docs.onap.org/projects/onap-integration/en/latest/docs_usecases_release.html#.*', + 'https://docs.linuxfoundation.org/docs/communitybridge/easycla/contributors/contribute-to-a-gerrit-project#.*', + 'https://docs.onap.org/projects/onap-integration/en/latest/docs_robot.html#docs-robot', + 'https://docs.onap.org/projects/onap-integration/en/latest/docs_usecases_release.html#docs-usecases-release', + 'https://docs.onap.org/projects/onap-integration/en/latest/docs_usecases.html#docs-usecases', + 'https://docs.onap.org/projects/onap-integration/en/latest/usecases/release_non_functional_requirements.html#release-non-functional-requirements', ] -intersphinx_mapping = {} html_last_updated_fmt = '%d-%b-%y %H:%M' -autosectionlabel_maxdepth = 2 def setup(app): - app.add_stylesheet("css/ribbon.css") + app.add_css_file("css/ribbon.css") + + +needs_extra_options = { + "target": directives.unchanged, + "keyword": directives.unchanged, + "introduced": directives.unchanged, + "updated": directives.unchanged, + "impacts": directives.unchanged, + "validation_mode": directives.unchanged, + "validated_by": directives.unchanged, + "test": directives.unchanged, + "test_case": directives.unchanged, + "test_file": directives.unchanged, + "notes": directives.unchanged, +} + +needs_id_regex = "^[A-Z0-9]+-[A-Z0-9]+" +needs_id_required = True +needs_title_optional = True + +needs_template_collapse = """ +.. _{{id}}: + +{% if hide == false -%} +.. role:: needs_tag +.. role:: needs_status +.. role:: needs_type +.. role:: needs_id +.. role:: needs_title + +.. rst-class:: need +.. rst-class:: need_{{type_name}} + +.. container:: need + + `{{id}}` - {{content|indent(4)}} + + .. container:: toggle + + .. container:: header + + Details + +{% if status and status|upper != "NONE" and not hide_status %} | status: :needs_status:`{{status}}`{% endif %} +{% if tags and not hide_tags %} | tags: :needs_tag:`{{tags|join("` :needs_tag:`")}}`{% endif %} +{% if keyword %} | keyword: `{{keyword}}` {% endif %} +{% if target %} | target: `{{target}}` {% endif %} +{% if introduced %} | introduced: `{{introduced}}` {% endif %} +{% if updated %} | updated: `{{updated}}` {% endif %} +{% if impacts %} | impacts: `{{impacts}}` {% endif %} +{% if validation_mode %} | validation mode: `{{validation_mode}}` {% endif %} +{% if validated_by %} | validated by: `{{validated_by}}` {% endif %} +{% if test %} | test: `{{test}}` {% endif %} +{% if test_case %} | test case: {{test_case}} {% endif %} +{% if test_file %} | test file: `{{test_file}}` {% endif %} +{% if notes %} | notes: `{{notes}}` {% endif %} + | children: :need_incoming:`{{id}}` + | parents: :need_outgoing:`{{id}}` +{% endif -%} +""" diff --git a/docs/cps-path.rst b/docs/cps-path.rst index 0271d07e1..cb26548de 100644 --- a/docs/cps-path.rst +++ b/docs/cps-path.rst @@ -1,5 +1,6 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 +.. Copyright (C) 2021 Nordix Foundation .. DO NOT CHANGE THIS LABEL FOR RELEASE NOTES - EVEN THOUGH IT GIVES A WARNING .. _design: @@ -8,6 +9,8 @@ CPS Path ######## +.. warning:: draft + .. toctree:: :maxdepth: 1 diff --git a/docs/deployment.rst b/docs/deployment.rst new file mode 100644 index 000000000..d538cbbfe --- /dev/null +++ b/docs/deployment.rst @@ -0,0 +1,15 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. Copyright (C) 2021 Nordix Foundation + +.. DO NOT CHANGE THIS LABEL FOR RELEASE NOTES - EVEN THOUGH IT GIVES A WARNING +.. _deployment: + + +CPS Deployment +############## + +.. warning:: draft + +.. toctree:: + :maxdepth: 1 \ No newline at end of file diff --git a/docs/design.rst b/docs/design.rst index c7691ae35..f9f12de43 100755 --- a/docs/design.rst +++ b/docs/design.rst @@ -1,5 +1,6 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 +.. Copyright (C) 2021 Nordix Foundation .. DO NOT CHANGE THIS LABEL FOR RELEASE NOTES - EVEN THOUGH IT GIVES A WARNING .. _design: @@ -8,6 +9,8 @@ CPS Design ########## +.. warning:: draft + .. toctree:: :maxdepth: 1 @@ -16,7 +19,9 @@ Offered APIs CPS supports the public APIs listed in the link below: -:download:`OpenApi Specification ` +:download:`CPS Rest OpenApi Specification ` + +:download:`CPS NCMP RestOpenApi Specification ` Exposed API ----------- diff --git a/docs/index.rst b/docs/index.rst index 57ab3b9b0..ec2ec5dd8 100755 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,5 +1,6 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 +.. Copyright (C) 2021 Nordix Foundation .. DO NOT CHANGE THIS LABEL FOR RELEASE NOTES - EVEN THOUGH IT GIVES A WARNING .. _master_index: @@ -7,8 +8,10 @@ .. THIS IS USED INTERNALLY IN CPS ONLY .. _cps-framework-doc: -CPS Documentation for the Honolulu-R8 Release ---------------------------------------------- +CPS-Core Documentation +---------------------- + +.. warning:: draft .. toctree:: :maxdepth: 1 @@ -17,5 +20,16 @@ CPS Documentation for the Honolulu-R8 Release architecture.rst design.rst modeling.rst + deployment.rst cps-path.rst release-notes.rst + +ONAP DMI Plugin Documentation +----------------------------- + +* `DMI Plugin(placeholder) `_ + +CPS-Temporal Documentation +-------------------------- + +* `CPS Temporal(placeholder) `_ \ No newline at end of file diff --git a/docs/modeling.rst b/docs/modeling.rst index 6b15abcfa..4e46e71b7 100644 --- a/docs/modeling.rst +++ b/docs/modeling.rst @@ -6,6 +6,8 @@ CPS Modeling ############ +.. warning:: draft + .. toctree:: :maxdepth: 1 diff --git a/docs/overview.rst b/docs/overview.rst index 776e17948..b1f4755b6 100644 --- a/docs/overview.rst +++ b/docs/overview.rst @@ -1,11 +1,13 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 -.. Copyright (C) 2021 Pantheon.tech +.. Copyright (C) 2021 Pantheon.tech, Nordix Foundation .. _overview: CPS Overview ============ +.. warning:: draft + The Configuration Persistence Service (CPS) is a platform component that is designed to serve as a data repository for runtime data that needs persistence. @@ -36,3 +38,6 @@ Contact Information ------------------- onap-discuss@lists.onap.org + +Meeting details `Join `_ +`Agenda `_ diff --git a/docs/release-notes.rst b/docs/release-notes.rst index f213c7e4d..797a11cf5 100755 --- a/docs/release-notes.rst +++ b/docs/release-notes.rst @@ -1,5 +1,6 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. .. http://creativecommons.org/licenses/by/4.0 +.. Copyright (C) 2021 Nordix Foundation .. DO NOT CHANGE THIS LABEL FOR RELEASE NOTES - EVEN THOUGH IT GIVES A WARNING .. _release_notes: @@ -10,11 +11,140 @@ CPS Release Notes ================= +.. warning:: draft + .. contents:: :depth: 2 .. +.. ======================== +.. * * * ISTANBUL * * * +.. ======================== + +Version: 2.0.0 +============== + +Abstract +-------- + +This document provides the release notes for Istanbul release. + +Release Data +------------ + ++--------------------------------------+--------------------------------------------------------+ +| **CPS Project** | | +| | | ++--------------------------------------+--------------------------------------------------------+ +| **Docker images** | onap/cps-and-ncmp:2.0.0 | +| | | ++--------------------------------------+--------------------------------------------------------+ +| **Release designation** | 2.0.0 Istanbul | +| | | ++--------------------------------------+--------------------------------------------------------+ +| **Release date** | 2021-14-10 | +| | | ++--------------------------------------+--------------------------------------------------------+ + +Features +-------- +* Register DMI Plugins with NCMP for CM Handle registrations. +* Update, Create and Remove CM Handles. +* Add support for retrieving and writing CM Handle data through NCMP datastores. +* Automatic retrieval and caching of model information for CM Handles within NCMP. + +.. _istanbul_deliverable: + +Deliverables +------------ + +Software Deliverables + +.. csv-table:: + :header: "Repository", "SubModules", "Version & Docker Image (if applicable)" + :widths: auto + + "cps", "", "onap/cps-and-ncmp-proxy:2.0.0" + +Bug Fixes +--------- + + - `CPS-316 `_ Xpath cannot be created for augmentation data node + - `CPS-336 `_ Ends-with functionality in cpsPath does not conform with standard xPath behavior + - `CPS-367 `_ Get descendent does not support xpaths that end in list values + - `CPS-377 `_ Init ran model validation is failing, error details are not provided + - `CPS-422 `_ REST 404 response returned instead of 400 for POST/PUT/PATCH request types + - `CPS-450 `_ Datanode query using full path to node causes NPE + - `CPS-466 `_ Concurrent requests to create schema sets for the same yang model are not supported + - `CPS-479 `_ Get Nodes API does not always return the object from the root + - `CPS-501 `_ Put DataNode API has missing transaction and error handling for concurrency issues + - `CPS-504 `_ Checkstyle rules are not enforced for cps-ncmp-dmi-plugin + - `CPS-515 `_ Maven build is not failing when test containers are not able to run + - `CPS-520 `_ Fix docker profile in cps-temporal and cps-ncmp-dmi-plugin + - `CPS-524 `_ Issue with CPSData API to add an item to an existing list node + - `CPS-560 `_ Response from cps query using text() contains escape characters + - `CPS-566 `_ Can't access grandparent node through ancestor axis + - `CPS-586 `_ App username and password environment variables are missing from temporal docker compose + +This document provides the release notes for Istanbul release. + +Summary +------- + +Following CPS components are available with default ONAP/CPS installation. + + + * Platform components + + - CPS (Helm charts) + + * Service components + + - CPS Core and NCMP + - CPS Temporal + - DMI Plugin + + * Additional resources that CPS utilizes deployed using ONAP common charts + + - Postgres Database + + +Below service components (mS) are available to be deployed on-demand. + - CPS-TBDMT + + +Under OOM (Kubernetes) all CPS component containers are deployed as Kubernetes Pods/Deployments/Services into Kubernetes cluster. + +Known Limitations, Issues and Workarounds +----------------------------------------- + - `CPS-524 `_ Issue with CPSData API to add an item to an existing list node + +*System Limitations* + +Limitations to the amount of child nodes that can be added to the fix above. The current limit is 3. + +*Known Vulnerabilities* + +None + +*Workarounds* + +Add recursive method to save list node data to loop through all corresponding child nodes. + +Security Notes +-------------- + +*Fixed Security Issues* + + - `CPS-249 `_ Exception stack trace is exposed + - `CPS-581 `_ Remove security vulnerabilities + +*Known Security Issues* + +Test Results +------------ + * `Integration tests` .. ======================== .. * * * HONOLULU * * * diff --git a/pom.xml b/pom.xml index 4ac37841d..8a89e6cfe 100644 --- a/pom.xml +++ b/pom.xml @@ -74,6 +74,47 @@ true + + maven-resources-plugin + + + copy-resources-ncmp + compile + + copy-resources + + + ${project.basedir}/docs/api/swagger/ncmp/ + + + ${project.basedir}/cps-ncmp-rest/target/generated-sources/swagger + + openapi.yaml + + + + + + + copy-resources-cps + compile + + copy-resources + + + ${project.basedir}/docs/api/swagger/cps/ + + + ${project.basedir}/cps-rest/target/generated-sources/swagger/ + + openapi.yaml + + + + + + + -- cgit 1.2.3-korg