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 <dylan.byrne@est.tech>
Signed-off-by: shivasubedi <shiva.subedi@est.tech>
diff --git a/docs/api/swagger/cps/openapi.yaml b/docs/api/swagger/cps/openapi.yaml
new file mode 100644
index 0000000..fb219eb
--- /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 0000000..0edce20
--- /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 4d64b01..0000000
--- 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 51acf66..b703cfa 100644
--- a/docs/architecture.rst
+++ b/docs/architecture.rst
@@ -6,6 +6,8 @@
 CPS Architecture
 ################
 
+.. warning:: draft
+
 .. toctree::
    :maxdepth: 1
 
@@ -16,10 +18,12 @@
 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.
 
-This page reflects the state for Honolulu-R8 release.
+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 Istanbul-R9 release.
 
 .. image:: _static/cps-r8-arch-diagram.png
 
diff --git a/docs/conf.py b/docs/conf.py
index 1a9a547..3aaddd1 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'
-    ]
-
-linkcheck_ignore = [
-    'http://localhost',
-]
 
 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',
+]
+
+
 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 0271d07..cb26548 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 0000000..d538cbb
--- /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 c7691ae..f9f12de 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 @@
 
 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 57ab3b9..ec2ec5d 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 @@
    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 6b15abc..4e46e71 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 776e179..b1f4755 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 @@
 -------------------
 
 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 f213c7e..797a11c 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 4ac3784..8a89e6c 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>