summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--[-rwxr-xr-x]docs/api/swagger/cps/openapi.yaml (renamed from docs/api/swagger/openapi.yml)971
-rw-r--r--docs/api/swagger/ncmp/openapi.yaml659
-rw-r--r--docs/architecture.rst10
-rwxr-xr-xdocs/conf.py87
-rw-r--r--docs/cps-path.rst3
-rw-r--r--docs/deployment.rst15
-rwxr-xr-xdocs/design.rst7
-rwxr-xr-xdocs/index.rst18
-rw-r--r--docs/modeling.rst2
-rw-r--r--docs/overview.rst7
-rwxr-xr-xdocs/release-notes.rst130
-rw-r--r--pom.xml41
12 files changed, 1524 insertions, 426 deletions
diff --git a/docs/api/swagger/openapi.yml b/docs/api/swagger/cps/openapi.yaml
index 4d64b01b85..fb219eb652 100755..100644
--- a/docs/api/swagger/openapi.yml
+++ b/docs/api/swagger/cps/openapi.yaml
@@ -1,822 +1,920 @@
-# ============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'
+ 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'
+ 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: '//localhost:8088'
+- url: /cps/api
tags:
- - name: cps-admin
- description: cps Admin
- - name: cps-data
- description: cps Data
+- name: cps-admin
+ description: cps Admin
+- name: cps-data
+ description: cps Data
paths:
/v1/dataspaces:
post:
- description: Create a new dataspace
tags:
- - cps-admin
+ - 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
+ - name: dataspace-name
+ in: query
+ description: dataspace-name
+ required: true
+ schema:
+ type: string
responses:
- '201':
+ "201":
description: Created
content:
text/plain:
schema:
type: string
- '400':
+ "400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '401':
+ "401":
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '403':
+ "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':
+ /v1/dataspaces/{dataspace-name}/anchors:
get:
- description: 'Read all anchors, given a dataspace'
tags:
- - cps-admin
+ - 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
+ - name: dataspace-name
+ in: path
+ description: dataspace-name
+ required: true
+ schema:
+ type: string
responses:
- '200':
+ "200":
description: OK
content:
application/json:
schema:
- type: object
- '400':
+ type: array
+ items:
+ $ref: '#/components/schemas/AnchorDetails'
+ "400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '401':
+ "401":
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '403':
+ "403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '404':
+ "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
+ - 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
+ - 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':
+ "201":
description: Created
content:
text/plain:
schema:
type: string
- '400':
+ "400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '401':
+ "401":
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '403':
+ "403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '/v1/dataspaces/{dataspace-name}/anchors/{anchor-name}':
+ /v1/dataspaces/{dataspace-name}/anchors/{anchor-name}:
get:
- description: Read an anchor given an anchor name and a dataspace
tags:
- - cps-admin
+ - 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
+ - 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':
+ "200":
description: OK
content:
application/json:
schema:
- type: object
- '400':
+ $ref: '#/components/schemas/AnchorDetails'
+ "400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '401':
+ "401":
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '403':
+ "403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '404':
+ "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
+ - 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
+ - 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':
+ "204":
description: No Content
content: {}
- '400':
+ "400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '401':
+ "401":
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '403':
+ "403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '/v1/dataspaces/{dataspace-name}/schema-sets':
+ /v1/dataspaces/{dataspace-name}/schema-sets:
post:
- description: Create a new schema set in the given dataspace
tags:
- - cps-admin
+ - 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:
+ - 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:
- type: object
- required:
- - file
- properties:
- file:
- type: string
- description: multipartFile
- format: binary
- example: 'http://example.com/examples/example.yang'
+ $ref: '#/components/schemas/MultipartFile'
+ required: true
responses:
- '201':
+ "201":
description: Created
content:
text/plain:
schema:
type: string
- '400':
+ "400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '401':
+ "401":
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '403':
+ "403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '/v1/dataspaces/{dataspace-name}/schema-sets/{schema-set-name}':
+ /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
+ - 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
+ - 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':
+ "200":
description: OK
content:
application/json:
schema:
- type: object
- '400':
+ $ref: '#/components/schemas/SchemaSetDetails'
+ "400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '401':
+ "401":
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '403':
+ "403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '404':
+ "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
+ - 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
+ - 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':
+ "204":
description: No Content
content: {}
- '400':
+ "400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '401':
+ "401":
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '403':
+ "403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '409':
+ "409":
description: Conflict
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '/v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/node':
+ /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
+ - 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
+ - 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':
+ "200":
description: OK
content:
application/json:
schema:
type: object
- '400':
+ example:
+ child: my_child
+ leafList: "leafListElement1, leafListElement2"
+ leaf: my_leaf
+ "400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '401':
+ "401":
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '403':
+ "403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '404':
+ "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':
+ /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:
- description: Create a node for a given anchor and dataspace
tags:
- - cps-data
+ - 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
- requestBody:
+ - 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':
+ "201":
description: Created
content:
text/plain:
schema:
type: string
- '400':
+ "400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '401':
+ "401":
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '403':
+ "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
+ - 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: /
- requestBody:
+ - 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':
+ "200":
description: OK
content:
application/json:
schema:
type: object
- '400':
+ example:
+ key: value
+ "400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '401':
+ "401":
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '403':
+ "403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
+ /v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/list-nodes:
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
+ - 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: false
- schema:
- type: string
- default: /
- requestBody:
+ - 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: OK
+ "200":
+ description: Created
content:
- application/json:
+ text/plain:
schema:
- type: object
- '400':
+ type: string
+ "400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '401':
+ "401":
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '403':
+ "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
+ post:
tags:
- - cps-data
- summary: Get nodes
- operationId: getNodesByDataspace
+ - 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: 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: OK
+ "201":
+ description: Created
content:
- application/json:
+ text/plain:
schema:
- type: object
- '400':
+ type: string
+ "400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '401':
+ "401":
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '403':
+ "403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '404':
- description: The specified resource was not found
+ 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'
- x-codegen-request-body-name: requestBody
- '/v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/nodes/query':
+ /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
+ - 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
+ - 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':
+ "200":
description: OK
content:
application/json:
schema:
type: object
- '400':
+ example:
+ key: value
+ "400":
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '401':
+ "401":
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '403':
+ "403":
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorMessage'
- '404':
+ "404":
description: The specified resource was not found
content:
application/json:
@@ -826,15 +924,64 @@ paths:
components:
schemas:
ErrorMessage:
- type: object
title: Error
+ type: object
properties:
status:
type: string
- example: 400
+ 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 0000000000..0edce20c17
--- /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/architecture.rst b/docs/architecture.rst
index 51acf66f0e..b703cfa535 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 <https://wiki.onap.org/display/DW/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 <https://wiki.onap.org/display/DW/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 1a9a5475aa..3aaddd194f 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 0271d07e1d..cb26548de2 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 0000000000..d538cbbfee
--- /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 c7691ae35c..f9f12de432 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 <api/swagger/openapi.yml>`
+:download:`CPS Rest OpenApi Specification <api/swagger/cps/openapi.yaml>`
+
+:download:`CPS NCMP RestOpenApi Specification <api/swagger/ncmp/openapi.yaml>`
Exposed API
-----------
diff --git a/docs/index.rst b/docs/index.rst
index 57ab3b9b05..ec2ec5dd88 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 6b15abcfa3..4e46e71b7a 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 776e179482..b1f4755b66 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 <https://zoom.us/j/836561560?pwd=TTZNcFhXTWYxMmZ4SlgzcVZZQXluUT09>`_
+`Agenda <https://wiki.onap.org/pages/viewpage.action?pageId=111117075>`_
diff --git a/docs/release-notes.rst b/docs/release-notes.rst
index f213c7e4de..797a11cf5f 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 <https://jira.onap.org/browse/CPS-316>`_ Xpath cannot be created for augmentation data node
+ - `CPS-336 <https://jira.onap.org/browse/CPS-336>`_ Ends-with functionality in cpsPath does not conform with standard xPath behavior
+ - `CPS-367 <https://jira.onap.org/browse/CPS-367>`_ Get descendent does not support xpaths that end in list values
+ - `CPS-377 <https://jira.onap.org/browse/CPS-377>`_ Init ran model validation is failing, error details are not provided
+ - `CPS-422 <https://jira.onap.org/browse/CPS-422>`_ REST 404 response returned instead of 400 for POST/PUT/PATCH request types
+ - `CPS-450 <https://jira.onap.org/browse/CPS-450>`_ Datanode query using full path to node causes NPE
+ - `CPS-466 <https://jira.onap.org/browse/CPS-466>`_ Concurrent requests to create schema sets for the same yang model are not supported
+ - `CPS-479 <https://jira.onap.org/browse/CPS-479>`_ Get Nodes API does not always return the object from the root
+ - `CPS-501 <https://jira.onap.org/browse/CPS-501>`_ Put DataNode API has missing transaction and error handling for concurrency issues
+ - `CPS-504 <https://jira.onap.org/browse/CPS-504>`_ Checkstyle rules are not enforced for cps-ncmp-dmi-plugin
+ - `CPS-515 <https://jira.onap.org/browse/CPS-515>`_ Maven build is not failing when test containers are not able to run
+ - `CPS-520 <https://jira.onap.org/browse/CPS-520>`_ Fix docker profile in cps-temporal and cps-ncmp-dmi-plugin
+ - `CPS-524 <https://jira.onap.org/browse/CPS-524>`_ Issue with CPSData API to add an item to an existing list node
+ - `CPS-560 <https://jira.onap.org/browse/CPS-560>`_ Response from cps query using text() contains escape characters
+ - `CPS-566 <https://jira.onap.org/browse/CPS-566>`_ Can't access grandparent node through ancestor axis
+ - `CPS-586 <https://jira.onap.org/browse/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 <https://jira.onap.org/browse/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 <https://jira.onap.org/browse/CPS-249>`_ Exception stack trace is exposed
+ - `CPS-581 <https://jira.onap.org/browse/CPS-581>`_ Remove security vulnerabilities
+
+*Known Security Issues*
+
+Test Results
+------------
+ * `Integration tests`
.. ========================
.. * * * HONOLULU * * *
diff --git a/pom.xml b/pom.xml
index 4ac37841dd..8a89e6cfe9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -74,6 +74,47 @@
<processAllModules>true</processAllModules>
</configuration>
</plugin>
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-resources-ncmp</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.basedir}/docs/api/swagger/ncmp/</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${project.basedir}/cps-ncmp-rest/target/generated-sources/swagger</directory>
+ <includes>
+ <include>openapi.yaml</include>
+ </includes>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-resources-cps</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.basedir}/docs/api/swagger/cps/</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${project.basedir}/cps-rest/target/generated-sources/swagger/</directory>
+ <includes>
+ <include>openapi.yaml</include>
+ </includes>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>