Structured Exception details for DMI
[cps.git] / cps-ncmp-rest / docs / openapi / ncmp.yml
index fdad1f5..2c9ee24 100755 (executable)
@@ -1,5 +1,5 @@
 #  ============LICENSE_START=======================================================
-#  Copyright (C) 2021 Nordix Foundation
+#  Copyright (C) 2021-2022 Nordix Foundation
 #  Modifications Copyright (C) 2021 Pantheon.tech
 #  Modifications Copyright (C) 2021 Bell Canada
 #  ================================================================================
 #
 #  SPDX-License-Identifier: Apache-2.0
 #  ============LICENSE_END=========================================================
-
-nodeByCmHandleAndXpath:
-  get:
-    description: Get a node with an option to retrieve all the children for a given cm Handle
-    deprecated: true
-    tags:
-      - network-cm-proxy
-    summary: Get a node given a cm Handle and xpath
-    operationId: getNodeByCmHandleAndXpath
-    parameters:
-      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
-      - $ref: 'components.yaml#/components/parameters/xpathInQuery'
-      - $ref: 'components.yaml#/components/parameters/includeDescendantsOptionInQuery'
-    responses:
-      200:
-        $ref: 'components.yaml#/components/responses/Ok'
-      400:
-        $ref: 'components.yaml#/components/responses/BadRequest'
-      401:
-        $ref: 'components.yaml#/components/responses/Unauthorized'
-      403:
-        $ref: 'components.yaml#/components/responses/Forbidden'
-      404:
-        $ref: 'components.yaml#/components/responses/NotFound'
-
-nodesByCmHandleAndCpsPath:
-  get:
-    description: Query nodes for the given cps path and cm Handle
-    deprecated: true
-    tags:
-      - network-cm-proxy
-    summary: Query data nodes
-    operationId: queryNodesByCmHandleAndCpsPath
-    parameters:
-      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
-      - $ref: 'components.yaml#/components/parameters/cpsPathInQuery'
-      - $ref: 'components.yaml#/components/parameters/includeDescendantsOptionInQuery'
-    responses:
-      200:
-        $ref: 'components.yaml#/components/responses/Ok'
-      400:
-        $ref: 'components.yaml#/components/responses/BadRequest'
-      401:
-        $ref: 'components.yaml#/components/responses/Unauthorized'
-      403:
-        $ref: 'components.yaml#/components/responses/Forbidden'
-      404:
-        $ref: 'components.yaml#/components/responses/NotFound'
-
-nodesByCmHandleAndXpath:
-  post:
-    description: Create a node with descendants for the given CM Handle; top level or under existing node (requires xpath)
-    deprecated: true
-    tags:
-      - network-cm-proxy
-    summary: Create a node with descendants
-    operationId: createNode
-    parameters:
-      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
-      - $ref: 'components.yaml#/components/parameters/xpathInQuery'
-    requestBody:
-      required: true
-      content:
-        application/json:
-          schema:
-            type: string
-    responses:
-      201:
-        $ref: 'components.yaml#/components/responses/Created'
-      400:
-        $ref: 'components.yaml#/components/responses/BadRequest'
-      401:
-        $ref: 'components.yaml#/components/responses/Unauthorized'
-      403:
-        $ref: 'components.yaml#/components/responses/Forbidden'
-      404:
-        $ref: 'components.yaml#/components/responses/NotFound'
-
-  patch:
-    description: Update node leaves for the given cps path and cm Handle
-    deprecated: true
-    tags:
-      - network-cm-proxy
-    summary: Update node leaves
-    operationId: updateNodeLeaves
-    parameters:
-      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
-      - $ref: 'components.yaml#/components/parameters/xpathInQuery'
-    requestBody:
-      required: true
-      content:
-        application/json:
-          schema:
-            type: string
-    responses:
-      200:
-        $ref: 'components.yaml#/components/responses/Ok'
-      400:
-        $ref: 'components.yaml#/components/responses/BadRequest'
-      401:
-        $ref: 'components.yaml#/components/responses/Unauthorized'
-      403:
-        $ref: 'components.yaml#/components/responses/Forbidden'
-      404:
-        $ref: 'components.yaml#/components/responses/NotFound'
-
-  put:
-    description: Replace a node with descendants for the given cps path and cm Handle
-    deprecated: true
-    tags:
-      - network-cm-proxy
-    summary: Replace a node with descendants
-    operationId: replaceNode
-    parameters:
-      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
-      - $ref: 'components.yaml#/components/parameters/xpathInQuery'
-    requestBody:
-      required: true
-      content:
-        application/json:
-          schema:
-            type: string
-    responses:
-      200:
-        $ref: 'components.yaml#/components/responses/Ok'
-      400:
-        $ref: 'components.yaml#/components/responses/BadRequest'
-      401:
-        $ref: 'components.yaml#/components/responses/Unauthorized'
-      403:
-        $ref: 'components.yaml#/components/responses/Forbidden'
-      404:
-        $ref: 'components.yaml#/components/responses/NotFound'
-
-listNodeByCmHandleAndXpath:
-  post:
-    description: Add one or more list-node child elements under existing node for the given CM Handle
-    deprecated: true
-    tags:
-      - network-cm-proxy
-    summary: Add list-node child element(s)
-    operationId: addListNodeElements
-    parameters:
-      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
-      - $ref: 'components.yaml#/components/parameters/requiredXpathInQuery'
-    requestBody:
-      required: true
-      content:
-        application/json:
-          schema:
-            type: string
-    responses:
-      201:
-        $ref: 'components.yaml#/components/responses/Created'
-      400:
-        $ref: 'components.yaml#/components/responses/BadRequest'
-      401:
-        $ref: 'components.yaml#/components/responses/Unauthorized'
-      403:
-        $ref: 'components.yaml#/components/responses/Forbidden'
-      404:
-        $ref: 'components.yaml#/components/responses/NotFound'
-
 getResourceDataForPassthroughOperational:
   get:
     tags:
@@ -192,17 +29,27 @@ getResourceDataForPassthroughOperational:
       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
       - $ref: 'components.yaml#/components/parameters/acceptParamInHeader'
       - $ref: 'components.yaml#/components/parameters/optionsParamInQuery'
+      - $ref: 'components.yaml#/components/parameters/topicParamInQuery'
     responses:
       200:
-        $ref: 'components.yaml#/components/responses/Ok'
+        description: OK
+        content:
+          application/json:
+            schema:
+              type: object
+            examples:
+              dataSampleResponse:
+                $ref: 'components.yaml#/components/examples/dataSampleResponse'
       400:
         $ref: 'components.yaml#/components/responses/BadRequest'
       401:
         $ref: 'components.yaml#/components/responses/Unauthorized'
       403:
         $ref: 'components.yaml#/components/responses/Forbidden'
-      404:
-        $ref: 'components.yaml#/components/responses/NotFound'
+      500:
+        $ref: 'components.yaml#/components/responses/InternalServerError'
+      502:
+        $ref: 'components.yaml#/components/responses/BadGateway'
 
 resourceDataForPassthroughRunning:
   get:
@@ -216,17 +63,27 @@ resourceDataForPassthroughRunning:
       - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
       - $ref: 'components.yaml#/components/parameters/acceptParamInHeader'
       - $ref: 'components.yaml#/components/parameters/optionsParamInQuery'
+      - $ref: 'components.yaml#/components/parameters/topicParamInQuery'
     responses:
       200:
-        $ref: 'components.yaml#/components/responses/Ok'
+        description: OK
+        content:
+          application/json:
+            schema:
+              type: object
+            examples:
+              dataSampleResponse:
+                $ref: 'components.yaml#/components/examples/dataSampleResponse'
       400:
         $ref: 'components.yaml#/components/responses/BadRequest'
       401:
         $ref: 'components.yaml#/components/responses/Unauthorized'
       403:
         $ref: 'components.yaml#/components/responses/Forbidden'
-      404:
-        $ref: 'components.yaml#/components/responses/NotFound'
+      500:
+        $ref: 'components.yaml#/components/responses/InternalServerError'
+      502:
+        $ref: 'components.yaml#/components/responses/BadGateway'
   post:
     tags:
       - network-cm-proxy
@@ -242,10 +99,16 @@ resourceDataForPassthroughRunning:
       content:
         application/json:
           schema:
-            type: string
+            type: object
+          examples:
+            dataSampleRequest:
+              $ref: 'components.yaml#/components/examples/dataSampleRequest'
         application/yang-data+json:
           schema:
-            type: string
+            type: object
+          examples:
+            dataSampleRequest:
+              $ref: 'components.yaml#/components/examples/dataSampleRequest'
     responses:
       201:
         $ref: 'components.yaml#/components/responses/Created'
@@ -255,8 +118,10 @@ resourceDataForPassthroughRunning:
         $ref: 'components.yaml#/components/responses/Unauthorized'
       403:
         $ref: 'components.yaml#/components/responses/Forbidden'
-      404:
-        $ref: 'components.yaml#/components/responses/NotFound'
+      500:
+        $ref: 'components.yaml#/components/responses/InternalServerError'
+      502:
+        $ref: 'components.yaml#/components/responses/BadGateway'
 
   put:
     tags:
@@ -273,10 +138,16 @@ resourceDataForPassthroughRunning:
       content:
         application/json:
           schema:
-            type: string
+            type: object
+          examples:
+            dataSampleRequest:
+              $ref: 'components.yaml#/components/examples/dataSampleRequest'
         application/yang-data+json:
           schema:
-            type: string
+            type: object
+          examples:
+            dataSampleRequest:
+              $ref: 'components.yaml#/components/examples/dataSampleRequest'
     responses:
       200:
         $ref: 'components.yaml#/components/responses/Ok'
@@ -286,8 +157,10 @@ resourceDataForPassthroughRunning:
         $ref: 'components.yaml#/components/responses/Unauthorized'
       403:
         $ref: 'components.yaml#/components/responses/Forbidden'
-      404:
-        $ref: 'components.yaml#/components/responses/NotFound'
+      500:
+        $ref: 'components.yaml#/components/responses/InternalServerError'
+      502:
+        $ref: 'components.yaml#/components/responses/BadGateway'
 
   patch:
     tags:
@@ -302,9 +175,12 @@ resourceDataForPassthroughRunning:
     requestBody:
       required: true
       content:
-        application/json:
+        '*/*':
           schema:
             type: object
+          examples:
+            dataSampleRequest:
+              $ref: 'components.yaml#/components/examples/dataSamplePatchRequest'
     responses:
       200:
         $ref: 'components.yaml#/components/responses/Ok'
@@ -314,8 +190,36 @@ resourceDataForPassthroughRunning:
         $ref: 'components.yaml#/components/responses/Unauthorized'
       403:
         $ref: 'components.yaml#/components/responses/Forbidden'
+      500:
+        $ref: 'components.yaml#/components/responses/InternalServerError'
+      502:
+        $ref: 'components.yaml#/components/responses/BadGateway'
+
+  delete:
+    tags:
+      - network-cm-proxy
+    summary: Delete resource data
+    description: Delete resource data from pass-through running for a given cm handle
+    operationId: deleteResourceDataRunningForCmHandle
+    parameters:
+      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
+      - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
+      - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
+    responses:
+      204:
+        $ref: 'components.yaml#/components/responses/NoContent'
+      400:
+        $ref: 'components.yaml#/components/responses/BadRequest'
+      401:
+        $ref: 'components.yaml#/components/responses/Unauthorized'
+      403:
+        $ref: 'components.yaml#/components/responses/Forbidden'
       404:
         $ref: 'components.yaml#/components/responses/NotFound'
+      500:
+        $ref: 'components.yaml#/components/responses/InternalServerError'
+      502:
+        $ref: 'components.yaml#/components/responses/BadGateway'
 
 fetchModuleReferencesByCmHandle:
   get:
@@ -332,17 +236,17 @@ fetchModuleReferencesByCmHandle:
         content:
           application/json:
             schema:
-              type: string
-            example: [{"moduleName": "nc-notifications", "revision": "2008-07-14"}]
-        $ref: 'components.yaml#/components/responses/Ok'
+              type: array
+              items:
+                $ref: 'components.yaml#/components/schemas/RestModuleReference'
       400:
         $ref: 'components.yaml#/components/responses/BadRequest'
       401:
         $ref: 'components.yaml#/components/responses/Unauthorized'
       403:
         $ref: 'components.yaml#/components/responses/Forbidden'
-      404:
-        $ref: 'components.yaml#/components/responses/NotFound'
+      500:
+        $ref: 'components.yaml#/components/responses/InternalServerError'
 
 executeCmHandleSearch:
   post:
@@ -369,4 +273,33 @@ executeCmHandleSearch:
       401:
         $ref: 'components.yaml#/components/responses/Unauthorized'
       403:
-        $ref: 'components.yaml#/components/responses/Forbidden'
\ No newline at end of file
+        $ref: 'components.yaml#/components/responses/Forbidden'
+      500:
+        $ref: 'components.yaml#/components/responses/InternalServerError'
+
+retrieveCmHandleDetailsById:
+  get:
+    description: Retrieve CM handle details and properties by cm handle id
+    tags:
+      - network-cm-proxy
+    summary: Retrieve CM handle details
+    operationId: retrieveCmHandleDetailsById
+    parameters:
+      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
+    responses:
+      200:
+        description: OK
+        content:
+          application/json:
+            schema:
+              $ref: 'components.yaml#/components/schemas/RestOutputCmHandle'
+      400:
+        $ref: 'components.yaml#/components/responses/BadRequest'
+      401:
+        $ref: 'components.yaml#/components/responses/Unauthorized'
+      403:
+        $ref: 'components.yaml#/components/responses/Forbidden'
+      404:
+        $ref: 'components.yaml#/components/responses/NotFound'
+      500:
+        $ref: 'components.yaml#/components/responses/InternalServerError'
\ No newline at end of file