CM SUBSCRIPTION: Update schemas
[cps.git] / docs / api / swagger / ncmp / openapi.yaml
index 0edce20..7b33fa1 100644 (file)
-openapi: 3.0.1
+openapi: 3.0.3
 info:
-  title: NCMP to CPS Proxy API
   description: NCMP to CPS Proxy API
+  title: NCMP to CPS Proxy API
   version: "1.0"
 servers:
 - url: /ncmp
+security:
+- basicAuth: []
 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
+  /v1/ch/{cm-handle}/data/ds/{datastore-name}:
+    delete:
+      description: Delete resource data from pass-through running for a given cm handle
+      operationId: deleteResourceDataRunningForCmHandle
       parameters:
-      - name: cm-handle
+      - description: The type of the requested data
         in: path
-        description: "The identifier for a network function, network element, subnetwork\
+        name: datastore-name
+        required: true
+        schema:
+          example: ncmp-datastore:running
+          type: string
+      - description: "The identifier for a network function, network element, subnetwork\
           \ or any other cm object by managed Network CM Proxy"
+        in: path
+        name: cm-handle
         required: true
         schema:
+          example: my-cm-handle
           type: string
-      - name: xpath
+      - description: The format of resource identifier depend on the associated DMI
+          Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but
+          it can really be anything.
+        examples:
+          sample 1:
+            value:
+              resourceIdentifier: \shops\bookstore
+          sample 2:
+            value:
+              resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]"
+          sample 3:
+            value:
+              resourceIdentifier: "parent=shops,child=bookstore"
         in: query
-        description: xpath
+        name: resourceIdentifier
+        required: true
+        schema:
+          type: string
+      - description: "Content parameter for request, if content parameter is null,\
+          \ default value is application/json."
+        in: header
+        name: Content-Type
         required: false
         schema:
+          default: application/json
+          example: application/yang-data+json
           type: string
-          default: /
-      - name: include-descendants
-        in: query
-        description: include-descendants
+      - description: Authorization parameter for request.
+        in: header
+        name: Authorization
         required: false
         schema:
-          type: boolean
-          default: false
+          type: string
       responses:
-        "200":
-          description: OK
-          content:
-            application/json:
-              schema:
-                type: object
+        "204":
+          content: {}
+          description: No Content
         "400":
-          description: Bad Request
           content:
             application/json:
+              example:
+                status: 400
+                message: Bad request error message
+                details: Bad request error details
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-        "401":
-          description: Unauthorized
+          description: Bad Request
+        "403":
           content:
             application/json:
+              example:
+                status: 403
+                message: Forbidden error message
+                details: Forbidden error details
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-        "403":
           description: Forbidden
+        "404":
           content:
             application/json:
+              example:
+                status: 400
+                message: Not found error message
+                details: Not found error details
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-        "404":
           description: The specified resource was not found
+        "500":
           content:
             application/json:
+              example:
+                status: 500
+                message: Internal Server Error
+                details: Internal Server Error occurred
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-      deprecated: true
-  /v1/cm-handles/{cm-handle}/list-node:
-    post:
+          description: Internal Server Error
+        "502":
+          content:
+            application/json:
+              example:
+                message: Bad Gateway Error Message NCMP
+                dmi-response:
+                  http-code: 400
+                  body: Bad Request
+              schema:
+                $ref: '#/components/schemas/DmiErrorMessage'
+          description: Bad Gateway
+      summary: Delete resource data
       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
+    get:
+      description: Get resource data for given cm handle
+      operationId: getResourceDataForCmHandle
       parameters:
-      - name: cm-handle
+      - description: The type of the requested data
         in: path
-        description: "The identifier for a network function, network element, subnetwork\
+        name: datastore-name
+        required: true
+        schema:
+          example: ncmp-datastore:running
+          type: string
+      - description: "The identifier for a network function, network element, subnetwork\
           \ or any other cm object by managed Network CM Proxy"
+        in: path
+        name: cm-handle
         required: true
         schema:
+          example: my-cm-handle
           type: string
-      - name: xpath
+      - description: The format of resource identifier depend on the associated DMI
+          Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but
+          it can really be anything.
+        examples:
+          sample 1:
+            value:
+              resourceIdentifier: \shops\bookstore
+          sample 2:
+            value:
+              resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]"
+          sample 3:
+            value:
+              resourceIdentifier: "parent=shops,child=bookstore"
         in: query
-        description: xpath
+        name: resourceIdentifier
         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
+      - description: "options parameter in query, it is mandatory to wrap key(s)=value(s)\
+          \ in parenthesis'()'. The format of options parameter depend on the associated\
+          \ DMI Plugin implementation."
+        examples:
+          sample 1:
+            value:
+              options: (depth=3)
+          sample 2:
+            value:
+              options: (fields=book)
+          sample 3:
+            value:
+              options: "(depth=2,fields=book/authors)"
+        in: query
+        name: options
+        required: false
         schema:
           type: string
-      - name: cps-path
+      - description: topic parameter in query.
+        examples:
+          sample 1:
+            value:
+              topic: my-topic-name
         in: query
-        description: cps-path
+        name: topic
         required: false
         schema:
           type: string
-          default: /
-      - name: include-descendants
+      - description: Determines if descendants are included in response
         in: query
-        description: include-descendants
+        name: include-descendants
         required: false
         schema:
-          type: boolean
           default: false
+          type: boolean
+      - description: Authorization parameter for request.
+        in: header
+        name: Authorization
+        required: false
+        schema:
+          type: string
       responses:
         "200":
-          description: OK
           content:
             application/json:
+              examples:
+                dataSampleResponse:
+                  $ref: '#/components/examples/dataSampleResponse'
+                  value: null
               schema:
                 type: object
+          description: OK
         "400":
-          description: Bad Request
           content:
             application/json:
+              example:
+                status: 400
+                message: Bad request error message
+                details: Bad request error details
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-        "401":
-          description: Unauthorized
+          description: Bad Request
+        "403":
           content:
             application/json:
+              example:
+                status: 403
+                message: Forbidden error message
+                details: Forbidden error details
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-        "403":
           description: Forbidden
+        "500":
           content:
             application/json:
+              example:
+                status: 500
+                message: Internal Server Error
+                details: Internal Server Error occurred
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-        "404":
-          description: The specified resource was not found
+          description: Internal Server Error
+        "502":
           content:
             application/json:
+              example:
+                message: Bad Gateway Error Message NCMP
+                dmi-response:
+                  http-code: 400
+                  body: Bad Request
               schema:
-                $ref: '#/components/schemas/ErrorMessage'
-      deprecated: true
-  /v1/cm-handles/{cm-handle}/nodes:
-    put:
+                $ref: '#/components/schemas/DmiErrorMessage'
+          description: Bad Gateway
+      summary: Get resource data for cm handle
       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
+    patch:
+      description: Patch resource data from pass-through running for the given cm
+        handle
+      operationId: patchResourceDataRunningForCmHandle
       parameters:
-      - name: cm-handle
+      - description: The type of the requested data
         in: path
-        description: "The identifier for a network function, network element, subnetwork\
+        name: datastore-name
+        required: true
+        schema:
+          example: ncmp-datastore:running
+          type: string
+      - description: "The identifier for a network function, network element, subnetwork\
           \ or any other cm object by managed Network CM Proxy"
+        in: path
+        name: cm-handle
         required: true
         schema:
+          example: my-cm-handle
           type: string
-      - name: xpath
+      - description: The format of resource identifier depend on the associated DMI
+          Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but
+          it can really be anything.
+        examples:
+          sample 1:
+            value:
+              resourceIdentifier: \shops\bookstore
+          sample 2:
+            value:
+              resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]"
+          sample 3:
+            value:
+              resourceIdentifier: "parent=shops,child=bookstore"
         in: query
-        description: xpath
+        name: resourceIdentifier
+        required: true
+        schema:
+          type: string
+      - description: "Content parameter for request, if content parameter is null,\
+          \ default value is application/json."
+        in: header
+        name: Content-Type
+        required: false
+        schema:
+          default: application/json
+          example: application/yang-data+json
+          type: string
+      - description: Authorization parameter for request.
+        in: header
+        name: Authorization
         required: false
         schema:
           type: string
-          default: /
       requestBody:
         content:
-          application/json:
+          '*/*':
+            examples:
+              dataSampleRequest:
+                $ref: '#/components/examples/dataSamplePatchRequest'
+                value: null
             schema:
-              type: string
+              type: object
         required: true
       responses:
         "200":
-          description: OK
           content:
             application/json:
               schema:
                 type: object
+          description: OK
         "400":
-          description: Bad Request
           content:
             application/json:
+              example:
+                status: 400
+                message: Bad request error message
+                details: Bad request error details
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-        "401":
-          description: Unauthorized
+          description: Bad Request
+        "403":
           content:
             application/json:
+              example:
+                status: 403
+                message: Forbidden error message
+                details: Forbidden error details
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-        "403":
           description: Forbidden
+        "500":
           content:
             application/json:
+              example:
+                status: 500
+                message: Internal Server Error
+                details: Internal Server Error occurred
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-        "404":
-          description: The specified resource was not found
+          description: Internal Server Error
+        "502":
           content:
             application/json:
+              example:
+                message: Bad Gateway Error Message NCMP
+                dmi-response:
+                  http-code: 400
+                  body: Bad Request
               schema:
-                $ref: '#/components/schemas/ErrorMessage'
-      deprecated: true
-    post:
+                $ref: '#/components/schemas/DmiErrorMessage'
+          description: Bad Gateway
+      summary: Patch resource data from pass-through running
       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
+    post:
+      description: create resource data from pass-through running for given cm handle
+      operationId: createResourceDataRunningForCmHandle
       parameters:
-      - name: cm-handle
+      - description: The type of the requested data
         in: path
-        description: "The identifier for a network function, network element, subnetwork\
+        name: datastore-name
+        required: true
+        schema:
+          example: ncmp-datastore:running
+          type: string
+      - description: "The identifier for a network function, network element, subnetwork\
           \ or any other cm object by managed Network CM Proxy"
+        in: path
+        name: cm-handle
         required: true
         schema:
+          example: my-cm-handle
           type: string
-      - name: xpath
+      - description: The format of resource identifier depend on the associated DMI
+          Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but
+          it can really be anything.
+        examples:
+          sample 1:
+            value:
+              resourceIdentifier: \shops\bookstore
+          sample 2:
+            value:
+              resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]"
+          sample 3:
+            value:
+              resourceIdentifier: "parent=shops,child=bookstore"
         in: query
-        description: xpath
+        name: resourceIdentifier
+        required: true
+        schema:
+          type: string
+      - description: "Content parameter for request, if content parameter is null,\
+          \ default value is application/json."
+        in: header
+        name: Content-Type
+        required: false
+        schema:
+          default: application/json
+          example: application/yang-data+json
+          type: string
+      - description: Authorization parameter for request.
+        in: header
+        name: Authorization
         required: false
         schema:
           type: string
-          default: /
       requestBody:
         content:
           application/json:
+            examples:
+              dataSampleRequest:
+                $ref: '#/components/examples/dataSampleRequest'
+                value: null
             schema:
-              type: string
+              type: object
+          application/yang-data+json:
+            examples:
+              dataSampleRequest:
+                $ref: '#/components/examples/dataSampleRequest'
+                value: null
+            schema:
+              type: object
         required: true
       responses:
         "201":
-          description: Created
           content: {}
+          description: Created
         "400":
-          description: Bad Request
           content:
             application/json:
+              example:
+                status: 400
+                message: Bad request error message
+                details: Bad request error details
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-        "401":
-          description: Unauthorized
+          description: Bad Request
+        "403":
           content:
             application/json:
+              example:
+                status: 403
+                message: Forbidden error message
+                details: Forbidden error details
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-        "403":
           description: Forbidden
+        "500":
           content:
             application/json:
+              example:
+                status: 500
+                message: Internal Server Error
+                details: Internal Server Error occurred
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-        "404":
-          description: The specified resource was not found
+          description: Internal Server Error
+        "502":
           content:
             application/json:
+              example:
+                message: Bad Gateway Error Message NCMP
+                dmi-response:
+                  http-code: 400
+                  body: Bad Request
               schema:
-                $ref: '#/components/schemas/ErrorMessage'
-      deprecated: true
-    patch:
+                $ref: '#/components/schemas/DmiErrorMessage'
+          description: Bad Gateway
+      summary: create resource data from pass-through running for cm handle
       tags:
       - network-cm-proxy
-      summary: Update node leaves
-      description: Update node leaves for the given cps path and cm Handle
-      operationId: updateNodeLeaves
+    put:
+      description: Update resource data from pass-through running for the given cm
+        handle
+      operationId: updateResourceDataRunningForCmHandle
       parameters:
-      - name: cm-handle
+      - description: The type of the requested data
         in: path
-        description: "The identifier for a network function, network element, subnetwork\
+        name: datastore-name
+        required: true
+        schema:
+          example: ncmp-datastore:running
+          type: string
+      - description: "The identifier for a network function, network element, subnetwork\
           \ or any other cm object by managed Network CM Proxy"
+        in: path
+        name: cm-handle
         required: true
         schema:
+          example: my-cm-handle
           type: string
-      - name: xpath
+      - description: The format of resource identifier depend on the associated DMI
+          Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but
+          it can really be anything.
+        examples:
+          sample 1:
+            value:
+              resourceIdentifier: \shops\bookstore
+          sample 2:
+            value:
+              resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]"
+          sample 3:
+            value:
+              resourceIdentifier: "parent=shops,child=bookstore"
         in: query
-        description: xpath
+        name: resourceIdentifier
+        required: true
+        schema:
+          type: string
+      - description: "Content parameter for request, if content parameter is null,\
+          \ default value is application/json."
+        in: header
+        name: Content-Type
+        required: false
+        schema:
+          default: application/json
+          example: application/yang-data+json
+          type: string
+      - description: Authorization parameter for request.
+        in: header
+        name: Authorization
         required: false
         schema:
           type: string
-          default: /
       requestBody:
         content:
           application/json:
+            examples:
+              dataSampleRequest:
+                $ref: '#/components/examples/dataSampleRequest'
+                value: null
             schema:
-              type: string
+              type: object
+          application/yang-data+json:
+            examples:
+              dataSampleRequest:
+                $ref: '#/components/examples/dataSampleRequest'
+                value: null
+            schema:
+              type: object
         required: true
       responses:
         "200":
-          description: OK
           content:
             application/json:
               schema:
                 type: object
+          description: OK
         "400":
-          description: Bad Request
           content:
             application/json:
+              example:
+                status: 400
+                message: Bad request error message
+                details: Bad request error details
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-        "401":
-          description: Unauthorized
+          description: Bad Request
+        "403":
           content:
             application/json:
+              example:
+                status: 403
+                message: Forbidden error message
+                details: Forbidden error details
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-        "403":
           description: Forbidden
+        "500":
           content:
             application/json:
+              example:
+                status: 500
+                message: Internal Server Error
+                details: Internal Server Error occurred
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-        "404":
-          description: The specified resource was not found
+          description: Internal Server Error
+        "502":
           content:
             application/json:
+              example:
+                message: Bad Gateway Error Message NCMP
+                dmi-response:
+                  http-code: 400
+                  body: Bad Request
               schema:
-                $ref: '#/components/schemas/ErrorMessage'
-      deprecated: true
-  /v1/ch:
-    post:
+                $ref: '#/components/schemas/DmiErrorMessage'
+          description: Bad Gateway
+      summary: Update resource data from pass-through running for a cm handle
       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
+  /v1/data:
+    post:
+      description: This request will be handled asynchronously using messaging to
+        the supplied topic. The rest response will be an acknowledge with a requestId
+        to identify the relevant messages. A maximum of 50 cm handles per operation
+        is supported.
+      operationId: executeDataOperationForCmHandles
+      parameters:
+      - description: mandatory topic parameter in query.
+        examples:
+          sample 1:
+            value:
+              topic: my-topic-name
+        in: query
+        name: topic
+        required: true
+        schema:
+          type: string
+      - description: Authorization parameter for request.
+        in: header
+        name: Authorization
+        required: false
+        schema:
+          type: string
       requestBody:
         content:
           application/json:
             schema:
-              $ref: '#/components/schemas/RestDmiPluginRegistration'
+              $ref: '#/components/schemas/DataOperationRequest'
         required: true
       responses:
-        "201":
-          description: Created
-          content: {}
+        "200":
+          content:
+            application/json:
+              schema:
+                type: object
+          description: OK
         "400":
-          description: Bad Request
           content:
             application/json:
+              example:
+                status: 400
+                message: Bad request error message
+                details: Bad request error details
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-        "401":
-          description: Unauthorized
+          description: Bad Request
+        "403":
           content:
             application/json:
+              example:
+                status: 403
+                message: Forbidden error message
+                details: Forbidden error details
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-        "403":
           description: Forbidden
+        "413":
           content:
             application/json:
+              example:
+                status: 413
+                message: Payload Too Large error message
+                details: Payload Too Large error details
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-  /v1/ch/{cm-handle}/data/ds/ncmp-datastore:passthrough-operational/{resourceIdentifier}:
-    get:
+          description: The request is larger than the server is willing or able to
+            process
+        "500":
+          content:
+            application/json:
+              example:
+                status: 500
+                message: Internal Server Error
+                details: Internal Server Error occurred
+              schema:
+                $ref: '#/components/schemas/ErrorMessage'
+          description: Internal Server Error
+        "502":
+          content:
+            application/json:
+              example:
+                message: Bad Gateway Error Message NCMP
+                dmi-response:
+                  http-code: 400
+                  body: Bad Request
+              schema:
+                $ref: '#/components/schemas/DmiErrorMessage'
+          description: Bad Gateway
+      summary: Execute a data operation for group of cm handle ids
       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
+  /v1/ch/{cm-handle}/data/ds/{datastore-name}/query:
+    get:
+      description: Query resource data for a given cm handle
+      operationId: queryResourceDataForCmHandle
       parameters:
-      - name: cm-handle
+      - description: The type of the requested data
         in: path
-        description: "The identifier for a network function, network element, subnetwork\
-          \ or any other cm object by managed Network CM Proxy"
+        name: datastore-name
         required: true
         schema:
+          example: ncmp-datastore:running
           type: string
-      - name: resourceIdentifier
+      - description: "The identifier for a network function, network element, subnetwork\
+          \ or any other cm object by managed Network CM Proxy"
         in: path
-        description: Resource identifier to get/set the resource data
+        name: cm-handle
         required: true
         schema:
+          example: my-cm-handle
           type: string
-      - name: Accept
-        in: header
-        description: "Accept parameter for response, if accept parameter is null,\
-          \ that means client can accept any format."
+      - description: "For more details on cps path, please refer https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html"
+        examples:
+          container cps path:
+            value: //bookstore
+          list attributes cps path:
+            value: "//categories[@code=1]"
+        in: query
+        name: cps-path
         required: false
         schema:
+          default: /
           type: string
-          enum:
-          - application/json
-          - application/yang-data+json
-      - name: fields
+      - description: "options parameter in query, it is mandatory to wrap key(s)=value(s)\
+          \ in parenthesis'()'. The format of options parameter depend on the associated\
+          \ DMI Plugin implementation."
+        examples:
+          sample 1:
+            value:
+              options: (depth=3)
+          sample 2:
+            value:
+              options: (fields=book)
+          sample 3:
+            value:
+              options: "(depth=2,fields=book/authors)"
         in: query
-        description: Fields parameter to filter resource
+        name: options
         required: false
         schema:
           type: string
-      - name: depth
+      - description: topic parameter in query.
+        examples:
+          sample 1:
+            value:
+              topic: my-topic-name
         in: query
-        description: Depth parameter for response
+        name: topic
         required: false
         schema:
-          minimum: 1
-          type: integer
+          type: string
+      - description: Determines if descendants are included in response
+        in: query
+        name: include-descendants
+        required: false
+        schema:
+          default: false
+          type: boolean
       responses:
         "200":
-          description: OK
           content:
             application/json:
+              examples:
+                dataSampleResponse:
+                  $ref: '#/components/examples/dataSampleResponse'
+                  value: null
               schema:
                 type: object
+          description: OK
         "400":
-          description: Bad Request
           content:
             application/json:
+              example:
+                status: 400
+                message: Bad request error message
+                details: Bad request error details
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-        "401":
-          description: Unauthorized
+          description: Bad Request
+        "403":
           content:
             application/json:
+              example:
+                status: 403
+                message: Forbidden error message
+                details: Forbidden error details
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-        "403":
           description: Forbidden
+        "500":
           content:
             application/json:
+              example:
+                status: 500
+                message: Internal Server Error
+                details: Internal Server Error occurred
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-        "404":
-          description: The specified resource was not found
+          description: Internal Server Error
+        "502":
           content:
             application/json:
+              example:
+                message: Bad Gateway Error Message NCMP
+                dmi-response:
+                  http-code: 400
+                  body: Bad Request
               schema:
-                $ref: '#/components/schemas/ErrorMessage'
-  /v1/ch/{cm-handle}/data/ds/ncmp-datastore:passthrough-running/{resourceIdentifier}:
-    get:
+                $ref: '#/components/schemas/DmiErrorMessage'
+          description: Bad Gateway
+      summary: Query resource data for a given cm handle
       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
+  /v1/ch/{cm-handle}/modules:
+    get:
+      description: fetch all module references (name and revision) for a given cm
+        handle
+      operationId: getModuleReferencesByCmHandle
       parameters:
-      - name: cm-handle
-        in: path
-        description: "The identifier for a network function, network element, subnetwork\
+      - description: "The identifier for a network function, network element, subnetwork\
           \ or any other cm object by managed Network CM Proxy"
+        in: path
+        name: cm-handle
         required: true
         schema:
+          example: my-cm-handle
           type: string
-      - name: resourceIdentifier
+      responses:
+        "200":
+          content:
+            application/json:
+              schema:
+                items:
+                  $ref: '#/components/schemas/RestModuleReference'
+                type: array
+          description: OK
+        "400":
+          content:
+            application/json:
+              example:
+                status: 400
+                message: Bad request error message
+                details: Bad request error details
+              schema:
+                $ref: '#/components/schemas/ErrorMessage'
+          description: Bad Request
+        "403":
+          content:
+            application/json:
+              example:
+                status: 403
+                message: Forbidden error message
+                details: Forbidden error details
+              schema:
+                $ref: '#/components/schemas/ErrorMessage'
+          description: Forbidden
+        "500":
+          content:
+            application/json:
+              example:
+                status: 500
+                message: Internal Server Error
+                details: Internal Server Error occurred
+              schema:
+                $ref: '#/components/schemas/ErrorMessage'
+          description: Internal Server Error
+      summary: Fetch all module references (name and revision) for a given cm handle
+      tags:
+      - network-cm-proxy
+  /v1/ch/{cm-handle}/modules/definitions:
+    get:
+      description: "Get module definitions (module name, revision, yang resource)\
+        \ with options to filter on module name and revision"
+      operationId: getModuleDefinitions
+      parameters:
+      - description: "The identifier for a network function, network element, subnetwork\
+          \ or any other cm object by managed Network CM Proxy"
         in: path
-        description: Resource identifier to get/set the resource data
+        name: cm-handle
         required: true
         schema:
+          example: my-cm-handle
           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
+      - description: Filter for a module name.This is an optional parameter
         in: query
-        description: Fields parameter to filter resource
+        name: module-name
         required: false
         schema:
+          example: my-module
           type: string
-      - name: depth
+      - description: Filter for a module revision.This is an optional parameter and
+          ignored when no module name is supplied
         in: query
-        description: Depth parameter for response
+        name: revision
         required: false
         schema:
-          minimum: 1
-          type: integer
+          example: 2024-01-22
+          type: string
       responses:
         "200":
+          content:
+            application/json:
+              schema:
+                items:
+                  $ref: '#/components/schemas/RestModuleDefinition'
+                type: array
           description: OK
+        "403":
           content:
             application/json:
+              example:
+                status: 403
+                message: Forbidden error message
+                details: Forbidden error details
               schema:
-                type: object
-        "400":
-          description: Bad Request
+                $ref: '#/components/schemas/ErrorMessage'
+          description: Forbidden
+        "500":
           content:
             application/json:
+              example:
+                status: 500
+                message: Internal Server Error
+                details: Internal Server Error occurred
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-        "401":
-          description: Unauthorized
+          description: Internal Server Error
+      summary: Get module definitions
+      tags:
+      - network-cm-proxy
+  /v1/ch/searches:
+    post:
+      description: Execute cm handle query search and return a list of cm handle details.
+        Any number of conditions can be applied. To be included in the result a cm-handle
+        must fulfill ALL the conditions. An empty collection will be returned in the
+        case that the cm handle does not match a condition. For more on cm handle
+        query search please refer to <a href="https://docs.onap.org/projects/onap-cps/en/latest/ncmp-cmhandle-querying.html">cm
+        handle query search Read the Docs</a>.<br/>By supplying a CPS Path it is possible
+        to query on any data related to the cm handle. For more on CPS Path please
+        refer to <a href="https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html">CPS
+        Path Read the Docs</a>. The cm handle ancestor is automatically returned for
+        this query.
+      operationId: searchCmHandles
+      requestBody:
+        content:
+          application/json:
+            examples:
+              Cm handle properties query:
+                $ref: '#/components/examples/pubPropCmHandleQueryParameters'
+                value: null
+              Cm handle modules query:
+                $ref: '#/components/examples/modulesCmHandleQueryParameters'
+                value: null
+              All cm handle query parameters:
+                $ref: '#/components/examples/allCmHandleQueryParameters'
+                value: null
+              Cm handle with CPS path state query:
+                $ref: '#/components/examples/cpsPathCmHandleStateQueryParameters'
+                value: null
+              Cm handle with data sync flag query:
+                $ref: '#/components/examples/cpsPathCmHandleDataSyncQueryParameters'
+                value: null
+            schema:
+              $ref: '#/components/schemas/CmHandleQueryParameters'
+        required: true
+      responses:
+        "200":
+          content:
+            application/json:
+              schema:
+                items:
+                  $ref: '#/components/schemas/RestOutputCmHandle'
+                type: array
+          description: OK
+        "400":
           content:
             application/json:
+              example:
+                status: 400
+                message: Bad request error message
+                details: Bad request error details
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
+          description: Bad Request
         "403":
-          description: Forbidden
           content:
             application/json:
+              example:
+                status: 403
+                message: Forbidden error message
+                details: Forbidden error details
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-        "404":
-          description: The specified resource was not found
+          description: Forbidden
+        "500":
           content:
             application/json:
+              example:
+                status: 500
+                message: Internal Server Error
+                details: Internal Server Error occurred
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-    post:
+          description: Internal Server Error
+      summary: Execute cm handle search using the available conditions
       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
+  /v1/ch/{cm-handle}:
+    get:
+      description: Retrieve CM handle details and properties by cm handle id
+      operationId: retrieveCmHandleDetailsById
       parameters:
-      - name: cm-handle
-        in: path
-        description: "The identifier for a network function, network element, subnetwork\
+      - description: "The identifier for a network function, network element, subnetwork\
           \ or any other cm object by managed Network CM Proxy"
+        in: path
+        name: cm-handle
         required: true
         schema:
+          example: my-cm-handle
           type: string
-      - name: resourceIdentifier
+      responses:
+        "200":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/RestOutputCmHandle'
+          description: OK
+        "400":
+          content:
+            application/json:
+              example:
+                status: 400
+                message: Bad request error message
+                details: Bad request error details
+              schema:
+                $ref: '#/components/schemas/ErrorMessage'
+          description: Bad Request
+        "404":
+          content:
+            application/json:
+              example:
+                status: 400
+                message: Not found error message
+                details: Not found error details
+              schema:
+                $ref: '#/components/schemas/ErrorMessage'
+          description: The specified resource was not found
+        "500":
+          content:
+            application/json:
+              example:
+                status: 500
+                message: Internal Server Error
+                details: Internal Server Error occurred
+              schema:
+                $ref: '#/components/schemas/ErrorMessage'
+          description: Internal Server Error
+      summary: Retrieve CM handle details
+      tags:
+      - network-cm-proxy
+  /v1/ch/{cm-handle}/properties:
+    get:
+      description: Get CM handle properties by cm handle id
+      operationId: getCmHandlePublicPropertiesByCmHandleId
+      parameters:
+      - description: "The identifier for a network function, network element, subnetwork\
+          \ or any other cm object by managed Network CM Proxy"
         in: path
-        description: Resource identifier to get/set the resource data
+        name: cm-handle
         required: true
         schema:
+          example: my-cm-handle
           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
+      responses:
+        "200":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/RestOutputCmHandlePublicProperties'
+          description: OK
+        "400":
+          content:
+            application/json:
+              example:
+                status: 400
+                message: Bad request error message
+                details: Bad request error details
+              schema:
+                $ref: '#/components/schemas/ErrorMessage'
+          description: Bad Request
+        "404":
+          content:
+            application/json:
+              example:
+                status: 400
+                message: Not found error message
+                details: Not found error details
+              schema:
+                $ref: '#/components/schemas/ErrorMessage'
+          description: The specified resource was not found
+        "500":
+          content:
+            application/json:
+              example:
+                status: 500
+                message: Internal Server Error
+                details: Internal Server Error occurred
+              schema:
+                $ref: '#/components/schemas/ErrorMessage'
+          description: Internal Server Error
+      summary: Get CM handle properties
+      tags:
+      - network-cm-proxy
+  /v1/ch/id-searches:
+    post:
+      description: Execute cm handle query search and return a list of cm handle ids.
+        Any number of conditions can be applied. To be included in the result a cm-handle
+        must fulfill ALL the conditions. An empty collection will be returned in the
+        case that the cm handle does not match a condition. For more on cm handle
+        query search please refer to <a href="https://docs.onap.org/projects/onap-cps/en/latest/ncmp-cmhandle-querying.html">cm
+        handle query search Read the Docs</a>.<br/>By supplying a CPS Path it is possible
+        to query on any data related to the cm handle. For more on CPS Path please
+        refer to <a href="https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html">CPS
+        Path Read the Docs</a>. The cm handle ancestor is automatically returned for
+        this query.
+      operationId: searchCmHandleIds
       requestBody:
         content:
           application/json:
+            examples:
+              Cm handle properties query:
+                $ref: '#/components/examples/pubPropCmHandleQueryParameters'
+                value: null
+              Cm handle modules query:
+                $ref: '#/components/examples/modulesCmHandleQueryParameters'
+                value: null
+              All cm handle query parameters:
+                $ref: '#/components/examples/allCmHandleQueryParameters'
+                value: null
+              Cm handle with CPS path state query:
+                $ref: '#/components/examples/cpsPathCmHandleStateQueryParameters'
+                value: null
+              Cm handle with data sync flag query:
+                $ref: '#/components/examples/cpsPathCmHandleDataSyncQueryParameters'
+                value: null
             schema:
-              type: object
-          application/yang-data+json:
-            schema:
-              type: object
+              $ref: '#/components/schemas/CmHandleQueryParameters'
         required: true
       responses:
-        "201":
-          description: Created
-          content: {}
+        "200":
+          content:
+            application/json:
+              schema:
+                items:
+                  type: string
+                type: array
+          description: OK
         "400":
-          description: Bad Request
           content:
             application/json:
+              example:
+                status: 400
+                message: Bad request error message
+                details: Bad request error details
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-        "401":
-          description: Unauthorized
+          description: Bad Request
+        "403":
           content:
             application/json:
+              example:
+                status: 403
+                message: Forbidden error message
+                details: Forbidden error details
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
-        "403":
           description: Forbidden
+        "404":
+          content:
+            application/json:
+              example:
+                status: 400
+                message: Not found error message
+                details: Not found error details
+              schema:
+                $ref: '#/components/schemas/ErrorMessage'
+          description: The specified resource was not found
+        "500":
+          content:
+            application/json:
+              example:
+                status: 500
+                message: Internal Server Error
+                details: Internal Server Error occurred
+              schema:
+                $ref: '#/components/schemas/ErrorMessage'
+          description: Internal Server Error
+      summary: Execute cm handle query upon a given set of query parameters
+      tags:
+      - network-cm-proxy
+  /v1/ch/{cm-handle}/state:
+    get:
+      description: Get CM handle state by cm handle id
+      operationId: getCmHandleStateByCmHandleId
+      parameters:
+      - description: "The identifier for a network function, network element, subnetwork\
+          \ or any other cm object by managed Network CM Proxy"
+        in: path
+        name: cm-handle
+        required: true
+        schema:
+          example: my-cm-handle
+          type: string
+      responses:
+        "200":
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/RestOutputCmHandleCompositeState'
+          description: OK
+        "400":
           content:
             application/json:
+              example:
+                status: 400
+                message: Bad request error message
+                details: Bad request error details
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
+          description: Bad Request
         "404":
+          content:
+            application/json:
+              example:
+                status: 400
+                message: Not found error message
+                details: Not found error details
+              schema:
+                $ref: '#/components/schemas/ErrorMessage'
           description: The specified resource was not found
+        "500":
           content:
             application/json:
+              example:
+                status: 500
+                message: Internal Server Error
+                details: Internal Server Error occurred
               schema:
                 $ref: '#/components/schemas/ErrorMessage'
+          description: Internal Server Error
+      summary: Get CM handle state
+      tags:
+      - network-cm-proxy
+  /v1/ch/{cm-handle}/data-sync:
+    put:
+      description: Set the data sync enabled flag to true or false for a specified
+        Cm-Handle. This will in turn set the data sync state to UNSYNCHRONIZED and
+        NONE_REQUESTED respectfully.
+      operationId: setDataSyncEnabledFlagForCmHandle
+      parameters:
+      - description: "The identifier for a network function, network element, subnetwork\
+          \ or any other cm object by managed Network CM Proxy"
+        in: path
+        name: cm-handle
+        required: true
+        schema:
+          example: my-cm-handle
+          type: string
+      - description: Is used to enable or disable the data synchronization flag
+        in: query
+        name: dataSyncEnabled
+        required: true
+        schema:
+          example: true
+          type: boolean
+      responses:
+        "200":
+          content:
+            application/json:
+              schema:
+                type: object
+          description: OK
+        "400":
+          content:
+            application/json:
+              example:
+                status: 400
+                message: Bad request error message
+                details: Bad request error details
+              schema:
+                $ref: '#/components/schemas/ErrorMessage'
+          description: Bad Request
+        "403":
+          content:
+            application/json:
+              example:
+                status: 403
+                message: Forbidden error message
+                details: Forbidden error details
+              schema:
+                $ref: '#/components/schemas/ErrorMessage'
+          description: Forbidden
+        "500":
+          content:
+            application/json:
+              example:
+                status: 500
+                message: Internal Server Error
+                details: Internal Server Error occurred
+              schema:
+                $ref: '#/components/schemas/ErrorMessage'
+          description: Internal Server Error
+        "502":
+          content:
+            application/json:
+              example:
+                message: Bad Gateway Error Message NCMP
+                dmi-response:
+                  http-code: 400
+                  body: Bad Request
+              schema:
+                $ref: '#/components/schemas/DmiErrorMessage'
+          description: Bad Gateway
+      summary: Set the Data Sync Enabled Flag
+      tags:
+      - network-cm-proxy
 components:
+  examples:
+    dataSampleResponse:
+      description: Sample response for selecting 'sample 1'.
+      summary: Sample response
+      value:
+        bookstore:
+          categories:
+          - code: "01"
+            books:
+            - authors:
+              - Iain M. Banks
+              - Ursula K. Le Guin
+            name: SciFi
+          - code: "02"
+            books:
+            - authors:
+              - Philip Pullman
+            name: kids
+    dataSampleRequest:
+      description: Sample request body
+      summary: Sample request
+      value:
+        test:bookstore:
+          bookstore-name: Chapters
+          categories:
+          - code: "01"
+            name: SciFi
+            books:
+            - authors:
+              - Iain M. Banks
+              - Ursula K. Le Guin
+          - code: "02"
+            name: kids
+            books:
+            - authors:
+              - Philip Pullman
+    dataSamplePatchRequest:
+      description: Sample patch request body
+      summary: Sample patch request
+      value:
+        ietf-restconf:yang-patch:
+          patch-id: patch-1
+          edit:
+          - edit-id: edit1
+            operation: merge
+            target: /
+            value:
+              test:bookstore:
+                bookstore-name: Chapters
+                categories:
+                - code: "01"
+                  name: Science
+                  books:
+                  - authors:
+                    - Author1
+                    - Author2
+                - code: "02"
+                  name: Arts
+                  books:
+                  - authors:
+                    - Author3
+          - edit-id: edit2
+            operation: merge
+            target: /
+            value:
+              test:bookstore:
+                bookstore-name: Novels
+                categories:
+                - code: "03"
+                  name: History
+                  books:
+                  - authors:
+                    - Iain M. Banks
+                    - Ursula K. Le Guin
+                - code: "04"
+                  name: Fiction
+                  books:
+                  - authors:
+                    - Philip Pullman
+    pubPropCmHandleQueryParameters:
+      value:
+        cmHandleQueryParameters:
+        - conditionName: hasAllProperties
+          conditionParameters:
+          - Color: yellow
+          - Shape: circle
+          - Size: small
+    modulesCmHandleQueryParameters:
+      value:
+        cmHandleQueryParameters:
+        - conditionName: hasAllModules
+          conditionParameters:
+          - moduleName: my-module-1
+          - moduleName: my-module-2
+          - moduleName: my-module-3
+    allCmHandleQueryParameters:
+      value:
+        cmHandleQueryParameters:
+        - conditionName: hasAllModules
+          conditionParameters:
+          - moduleName: my-module-1
+          - moduleName: my-module-2
+          - moduleName: my-module-3
+        - conditionName: hasAllProperties
+          conditionParameters:
+          - Color: yellow
+          - Shape: circle
+          - Size: small
+        - conditionName: cmHandleWithCpsPath
+          conditionParameters:
+          - cpsPath: "//state[@cm-handle-state='ADVISED']"
+    cpsPathCmHandleStateQueryParameters:
+      value:
+        cmHandleQueryParameters:
+        - conditionName: cmHandleWithCpsPath
+          conditionParameters:
+          - cpsPath: "//state[@cm-handle-state='LOCKED']"
+    cpsPathCmHandleDataSyncQueryParameters:
+      value:
+        cmHandleQueryParameters:
+        - conditionName: cmHandleWithCpsPath
+          conditionParameters:
+          - cpsPath: "//state[@data-sync-enabled='true']"
+  parameters:
+    datastoreName:
+      description: The type of the requested data
+      in: path
+      name: datastore-name
+      required: true
+      schema:
+        example: ncmp-datastore:running
+        type: string
+    cmHandleInPath:
+      description: "The identifier for a network function, network element, subnetwork\
+        \ or any other cm object by managed Network CM Proxy"
+      in: path
+      name: cm-handle
+      required: true
+      schema:
+        example: my-cm-handle
+        type: string
+    resourceIdentifierInQuery:
+      description: The format of resource identifier depend on the associated DMI
+        Plugin implementation. For ONAP DMI Plugin it will be RESTConf paths but it
+        can really be anything.
+      examples:
+        sample 1:
+          value:
+            resourceIdentifier: \shops\bookstore
+        sample 2:
+          value:
+            resourceIdentifier: "\\shops\\bookstore\\categories[@code=1]"
+        sample 3:
+          value:
+            resourceIdentifier: "parent=shops,child=bookstore"
+      in: query
+      name: resourceIdentifier
+      required: true
+      schema:
+        type: string
+    optionsParamInQuery:
+      description: "options parameter in query, it is mandatory to wrap key(s)=value(s)\
+        \ in parenthesis'()'. The format of options parameter depend on the associated\
+        \ DMI Plugin implementation."
+      examples:
+        sample 1:
+          value:
+            options: (depth=3)
+        sample 2:
+          value:
+            options: (fields=book)
+        sample 3:
+          value:
+            options: "(depth=2,fields=book/authors)"
+      in: query
+      name: options
+      required: false
+      schema:
+        type: string
+    topicParamInQuery:
+      description: topic parameter in query.
+      examples:
+        sample 1:
+          value:
+            topic: my-topic-name
+      in: query
+      name: topic
+      required: false
+      schema:
+        type: string
+    includeDescendantsOptionInQuery:
+      description: Determines if descendants are included in response
+      in: query
+      name: include-descendants
+      required: false
+      schema:
+        default: false
+        type: boolean
+    authorizationParamInHeader:
+      description: Authorization parameter for request.
+      in: header
+      name: Authorization
+      required: false
+      schema:
+        type: string
+    contentParamInHeader:
+      description: "Content parameter for request, if content parameter is null, default\
+        \ value is application/json."
+      in: header
+      name: Content-Type
+      required: false
+      schema:
+        default: application/json
+        example: application/yang-data+json
+        type: string
+    requiredTopicParamInQuery:
+      description: mandatory topic parameter in query.
+      examples:
+        sample 1:
+          value:
+            topic: my-topic-name
+      in: query
+      name: topic
+      required: true
+      schema:
+        type: string
+    cpsPathInQuery:
+      description: "For more details on cps path, please refer https://docs.onap.org/projects/onap-cps/en/latest/cps-path.html"
+      examples:
+        container cps path:
+          value: //bookstore
+        list attributes cps path:
+          value: "//categories[@code=1]"
+      in: query
+      name: cps-path
+      required: false
+      schema:
+        default: /
+        type: string
+    moduleNameInQuery:
+      description: Filter for a module name.This is an optional parameter
+      in: query
+      name: module-name
+      required: false
+      schema:
+        example: my-module
+        type: string
+    revisionInQuery:
+      description: Filter for a module revision.This is an optional parameter and
+        ignored when no module name is supplied
+      in: query
+      name: revision
+      required: false
+      schema:
+        example: 2024-01-22
+        type: string
+    dataSyncEnabled:
+      description: Is used to enable or disable the data synchronization flag
+      in: query
+      name: dataSyncEnabled
+      required: true
+      schema:
+        example: true
+        type: boolean
+  responses:
+    BadRequest:
+      content:
+        application/json:
+          example:
+            status: 400
+            message: Bad request error message
+            details: Bad request error details
+          schema:
+            $ref: '#/components/schemas/ErrorMessage'
+      description: Bad Request
+    Forbidden:
+      content:
+        application/json:
+          example:
+            status: 403
+            message: Forbidden error message
+            details: Forbidden error details
+          schema:
+            $ref: '#/components/schemas/ErrorMessage'
+      description: Forbidden
+    InternalServerError:
+      content:
+        application/json:
+          example:
+            status: 500
+            message: Internal Server Error
+            details: Internal Server Error occurred
+          schema:
+            $ref: '#/components/schemas/ErrorMessage'
+      description: Internal Server Error
+    BadGateway:
+      content:
+        application/json:
+          example:
+            message: Bad Gateway Error Message NCMP
+            dmi-response:
+              http-code: 400
+              body: Bad Request
+          schema:
+            $ref: '#/components/schemas/DmiErrorMessage'
+      description: Bad Gateway
+    Ok:
+      content:
+        application/json:
+          schema:
+            type: object
+      description: OK
+    Created:
+      content: {}
+      description: Created
+    NoContent:
+      content: {}
+      description: No Content
+    NotFound:
+      content:
+        application/json:
+          example:
+            status: 400
+            message: Not found error message
+            details: Not found error details
+          schema:
+            $ref: '#/components/schemas/ErrorMessage'
+      description: The specified resource was not found
+    PayloadTooLarge:
+      content:
+        application/json:
+          example:
+            status: 413
+            message: Payload Too Large error message
+            details: Payload Too Large error details
+          schema:
+            $ref: '#/components/schemas/ErrorMessage'
+      description: The request is larger than the server is willing or able to process
   schemas:
     ErrorMessage:
-      title: Error
-      type: object
       properties:
         status:
           type: string
@@ -624,36 +1679,380 @@ components:
           type: string
         details:
           type: string
-    RestDmiPluginRegistration:
+      title: Error
       type: object
+    DmiErrorMessage:
       properties:
-        dmiPlugin:
+        message:
+          example: Bad Gateway Error Message NCMP
           type: string
-          example: onap-dmi-plugin
-        createdCmHandles:
+        dmi-response:
+          $ref: '#/components/schemas/DmiErrorMessage_dmi_response'
+      title: DMI Error Message
+      type: object
+    DataOperationRequest:
+      example:
+        operations:
+        - resourceIdentifier: parent/child
+          targetIds:
+          - "[\"da310eecdb8d44c2acc0ddaae01174b1\",\"c748c58f8e0b438f9fd1f28370b17d47\"\
+            ]"
+          - "[\"da310eecdb8d44c2acc0ddaae01174b1\",\"c748c58f8e0b438f9fd1f28370b17d47\"\
+            ]"
+          datastore: ncmp-datastore:passthrough-operational
+          options: (fields=schemas/schema)
+          operationId: "12"
+          operation: read
+        - resourceIdentifier: parent/child
+          targetIds:
+          - "[\"da310eecdb8d44c2acc0ddaae01174b1\",\"c748c58f8e0b438f9fd1f28370b17d47\"\
+            ]"
+          - "[\"da310eecdb8d44c2acc0ddaae01174b1\",\"c748c58f8e0b438f9fd1f28370b17d47\"\
+            ]"
+          datastore: ncmp-datastore:passthrough-operational
+          options: (fields=schemas/schema)
+          operationId: "12"
+          operation: read
+      properties:
+        operations:
+          description: contains group of data operation requests
+          items:
+            $ref: '#/components/schemas/DataOperationDefinition'
           type: array
+      title: execute data operation for given array of operations
+      type: object
+    DataOperationDefinition:
+      example:
+        resourceIdentifier: parent/child
+        targetIds:
+        - "[\"da310eecdb8d44c2acc0ddaae01174b1\",\"c748c58f8e0b438f9fd1f28370b17d47\"\
+          ]"
+        - "[\"da310eecdb8d44c2acc0ddaae01174b1\",\"c748c58f8e0b438f9fd1f28370b17d47\"\
+          ]"
+        datastore: ncmp-datastore:passthrough-operational
+        options: (fields=schemas/schema)
+        operationId: "12"
+        operation: read
+      properties:
+        operation:
+          example: read
+          type: string
+        operationId:
+          example: "12"
+          type: string
+        datastore:
+          example: ncmp-datastore:passthrough-operational
+          type: string
+        options:
+          example: (fields=schemas/schema)
+          type: string
+        resourceIdentifier:
+          example: parent/child
+          type: string
+        targetIds:
           items:
-            $ref: '#/components/schemas/RestCmHandle'
-        updatedCmHandles:
+            description: "targeted cm handles, maximum of 50 supported. If this limit\
+              \ is exceeded the request wil be refused."
+            example: "[\"da310eecdb8d44c2acc0ddaae01174b1\",\"c748c58f8e0b438f9fd1f28370b17d47\"\
+              ]"
+            type: string
           type: array
+      required:
+      - datastore
+      - operation
+      - operationId
+    RestModuleReference:
+      example:
+        moduleName: my-module-name
+        revision: my-module-revision
+      properties:
+        moduleName:
+          example: my-module-name
+          type: string
+        revision:
+          example: my-module-revision
+          type: string
+      title: Module reference details
+      type: object
+    RestModuleDefinition:
+      example:
+        moduleName: my-module-name
+        content: |
+          module stores {
+            yang-version 1.1;
+            namespace 'org:onap:ccsdk:sample';
+            prefix book-store;
+            revision '2020-09-15' {
+              description
+              'Sample Model';
+            }
+          }
+        revision: 2020-09-15
+      properties:
+        moduleName:
+          example: my-module-name
+          type: string
+        revision:
+          example: 2020-09-15
+          type: string
+        content:
+          example: |
+            module stores {
+              yang-version 1.1;
+              namespace 'org:onap:ccsdk:sample';
+              prefix book-store;
+              revision '2020-09-15' {
+                description
+                'Sample Model';
+              }
+            }
+          type: string
+      title: Module definitions
+      type: object
+    CmHandleQueryParameters:
+      example:
+        cmHandleQueryParameters:
+        - conditionParameters:
+          - key: conditionParameters
+          - key: conditionParameters
+          conditionName: conditionName
+        - conditionParameters:
+          - key: conditionParameters
+          - key: conditionParameters
+          conditionName: conditionName
+        conditions:
+        - name: name
+          conditionParameters:
+          - moduleName: my-module
+          - moduleName: my-module
+        - name: name
+          conditionParameters:
+          - moduleName: my-module
+          - moduleName: my-module
+      properties:
+        cmHandleQueryParameters:
           items:
-            $ref: '#/components/schemas/RestCmHandle'
-        removedCmHandles:
+            $ref: '#/components/schemas/ConditionProperties'
           type: array
+        conditions:
+          deprecated: true
+          description: "not necessary, it is just for backward compatibility"
           items:
-            type: string
-    RestCmHandle:
-      required:
-      - cmHandle
+            $ref: '#/components/schemas/OldConditionProperties'
+          type: array
+      title: Cm Handle query parameters for executing cm handle search
       type: object
+    ConditionProperties:
+      example:
+        conditionParameters:
+        - key: conditionParameters
+        - key: conditionParameters
+        conditionName: conditionName
+      properties:
+        conditionName:
+          type: string
+        conditionParameters:
+          items:
+            additionalProperties:
+              type: string
+            type: object
+          type: array
+    OldConditionProperties:
+      deprecated: true
+      example:
+        name: name
+        conditionParameters:
+        - moduleName: my-module
+        - moduleName: my-module
+      properties:
+        name:
+          type: string
+        conditionParameters:
+          items:
+            $ref: '#/components/schemas/ModuleNameAsJsonObject'
+          type: array
+    ModuleNameAsJsonObject:
+      example:
+        moduleName: my-module
+      properties:
+        moduleName:
+          example: my-module
+          type: string
+    RestOutputCmHandle:
+      example:
+        cmHandle: my-cm-handle1
+        alternateId: my-alternate-id
+        dataProducerIdentifier: my-data-producer-identifier
+        publicCmHandleProperties:
+        - key: Book Type
+        - key: Book Type
+        state:
+          dataSyncEnabled: false
+          dataSyncState:
+            running:
+              lastSyncTime: 2022-12-31T20:30:40.000+0000
+              syncState: NONE_REQUESTED
+            operational:
+              lastSyncTime: 2022-12-31T20:30:40.000+0000
+              syncState: NONE_REQUESTED
+          cmHandleState: ADVISED
+          lockReason:
+            reason: LOCKED_MISBEHAVING
+            details: locked due to failure in module sync
+          lastUpdateTime: 2022-12-31T20:30:40.000+0000
+        trustLevel: COMPLETE
+        moduleSetTag: my-module-set-tag
       properties:
         cmHandle:
+          example: my-cm-handle1
+          type: string
+        publicCmHandleProperties:
+          items:
+            additionalProperties:
+              example: Book Type
+              type: string
+            type: object
+          type: array
+        state:
+          $ref: '#/components/schemas/CmHandleCompositeState'
+        trustLevel:
+          description: Current trust level of the relevant CM handle ID.
+          example: COMPLETE
+          type: string
+        moduleSetTag:
+          example: my-module-set-tag
+          type: string
+        alternateId:
+          example: my-alternate-id
           type: string
-          example: cmHandle123
-        cmHandleProperties:
-          $ref: '#/components/schemas/RestCmHandleAdditionalProperties'
-    RestCmHandleAdditionalProperties:
+        dataProducerIdentifier:
+          example: my-data-producer-identifier
+          type: string
+      title: CM handle Details
       type: object
-      additionalProperties:
-        type: string
-        example: system-001
+    CmHandlePublicProperties:
+      items:
+        additionalProperties:
+          example: Book Type
+          type: string
+        type: object
+      type: array
+    CmHandleCompositeState:
+      example:
+        dataSyncEnabled: false
+        dataSyncState:
+          running:
+            lastSyncTime: 2022-12-31T20:30:40.000+0000
+            syncState: NONE_REQUESTED
+          operational:
+            lastSyncTime: 2022-12-31T20:30:40.000+0000
+            syncState: NONE_REQUESTED
+        cmHandleState: ADVISED
+        lockReason:
+          reason: LOCKED_MISBEHAVING
+          details: locked due to failure in module sync
+        lastUpdateTime: 2022-12-31T20:30:40.000+0000
+      properties:
+        cmHandleState:
+          example: ADVISED
+          type: string
+        lockReason:
+          $ref: '#/components/schemas/lock-reason'
+        lastUpdateTime:
+          example: 2022-12-31T20:30:40.000+0000
+          type: string
+        dataSyncEnabled:
+          example: false
+          type: boolean
+        dataSyncState:
+          $ref: '#/components/schemas/dataStores'
+      type: object
+    lock-reason:
+      example:
+        reason: LOCKED_MISBEHAVING
+        details: locked due to failure in module sync
+      properties:
+        reason:
+          example: LOCKED_MISBEHAVING
+          type: string
+        details:
+          example: locked due to failure in module sync
+          type: string
+      type: object
+    dataStores:
+      example:
+        running:
+          lastSyncTime: 2022-12-31T20:30:40.000+0000
+          syncState: NONE_REQUESTED
+        operational:
+          lastSyncTime: 2022-12-31T20:30:40.000+0000
+          syncState: NONE_REQUESTED
+      properties:
+        operational:
+          $ref: '#/components/schemas/sync-state'
+        running:
+          $ref: '#/components/schemas/sync-state'
+      type: object
+    sync-state:
+      example:
+        lastSyncTime: 2022-12-31T20:30:40.000+0000
+        syncState: NONE_REQUESTED
+      properties:
+        syncState:
+          example: NONE_REQUESTED
+          type: string
+        lastSyncTime:
+          example: 2022-12-31T20:30:40.000+0000
+          type: string
+      type: object
+    CmHandleTrustLevel:
+      description: Current trust level of the relevant CM handle ID.
+      example: COMPLETE
+      type: string
+    RestOutputCmHandlePublicProperties:
+      example:
+        publicCmHandleProperties:
+        - key: Book Type
+        - key: Book Type
+      properties:
+        publicCmHandleProperties:
+          items:
+            additionalProperties:
+              example: Book Type
+              type: string
+            type: object
+          type: array
+      type: object
+    RestOutputCmHandleCompositeState:
+      example:
+        state:
+          dataSyncEnabled: false
+          dataSyncState:
+            running:
+              lastSyncTime: 2022-12-31T20:30:40.000+0000
+              syncState: NONE_REQUESTED
+            operational:
+              lastSyncTime: 2022-12-31T20:30:40.000+0000
+              syncState: NONE_REQUESTED
+          cmHandleState: ADVISED
+          lockReason:
+            reason: LOCKED_MISBEHAVING
+            details: locked due to failure in module sync
+          lastUpdateTime: 2022-12-31T20:30:40.000+0000
+      properties:
+        state:
+          $ref: '#/components/schemas/CmHandleCompositeState'
+      type: object
+    DmiErrorMessage_dmi_response:
+      properties:
+        http-code:
+          example: 400
+          type: integer
+        body:
+          example: Bad Request
+          type: string
+      type: object
+  securitySchemes:
+    basicAuth:
+      scheme: basic
+      type: http