Create Endpoint For Get Cm Handles By Name
[cps.git] / cps-ncmp-rest / docs / openapi / ncmp.yml
index 52245c3..a267fb4 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:
+getResourceDataForPassthroughOperational:
   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
+    summary: Get resource data from pass-through operational for cm handle
+    description: Get resource data from pass-through operational for given cm handle
+    operationId: getResourceDataOperationalForCmHandle
     parameters:
       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
-      - $ref: 'components.yaml#/components/parameters/xpathInQuery'
-      - $ref: 'components.yaml#/components/parameters/includeDescendantsOptionInQuery'
+      - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
+      - $ref: 'components.yaml#/components/parameters/acceptParamInHeader'
+      - $ref: 'components.yaml#/components/parameters/optionsParamInQuery'
     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'
 
-nodesByCmHandleAndCpsPath:
+resourceDataForPassthroughRunning:
   get:
-    description: Query nodes for the given cps path and cm Handle
-    deprecated: true
     tags:
       - network-cm-proxy
-    summary: Query data nodes
-    operationId: queryNodesByCmHandleAndCpsPath
+    summary: Get resource data from pass-through running for cm handle
+    description: Get resource data from pass-through running for given cm handle
+    operationId: getResourceDataRunningForCmHandle
     parameters:
       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
-      - $ref: 'components.yaml#/components/parameters/cpsPathInQuery'
-      - $ref: 'components.yaml#/components/parameters/includeDescendantsOptionInQuery'
+      - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
+      - $ref: 'components.yaml#/components/parameters/acceptParamInHeader'
+      - $ref: 'components.yaml#/components/parameters/optionsParamInQuery'
     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'
-
-nodesByCmHandleAndXpath:
+      500:
+        $ref: 'components.yaml#/components/responses/InternalServerError'
   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
+    summary: create resource data from pass-through running for cm handle
+    description: create resource data from pass-through running for given cm handle
+    operationId: createResourceDataRunningForCmHandle
     parameters:
       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
-      - $ref: 'components.yaml#/components/parameters/xpathInQuery'
+      - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
+      - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
     requestBody:
       required: true
       content:
         application/json:
           schema:
-            type: string
+            type: object
+          examples:
+            dataSampleRequest:
+              $ref: 'components.yaml#/components/examples/dataSampleRequest'
+        application/yang-data+json:
+          schema:
+            type: object
+          examples:
+            dataSampleRequest:
+              $ref: 'components.yaml#/components/examples/dataSampleRequest'
     responses:
       201:
         $ref: 'components.yaml#/components/responses/Created'
@@ -92,25 +112,34 @@ nodesByCmHandleAndXpath:
         $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'
 
-  patch:
-    description: Update node leaves for the given cps path and cm Handle
-    deprecated: true
+  put:
     tags:
       - network-cm-proxy
-    summary: Update node leaves
-    operationId: updateNodeLeaves
+    summary: Update resource data from pass-through running for a cm handle
+    description: Update resource data from pass-through running for the given cm handle
+    operationId: updateResourceDataRunningForCmHandle
     parameters:
       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
-      - $ref: 'components.yaml#/components/parameters/xpathInQuery'
+      - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
+      - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
     requestBody:
       required: true
       content:
         application/json:
           schema:
-            type: string
+            type: object
+          examples:
+            dataSampleRequest:
+              $ref: 'components.yaml#/components/examples/dataSampleRequest'
+        application/yang-data+json:
+          schema:
+            type: object
+          examples:
+            dataSampleRequest:
+              $ref: 'components.yaml#/components/examples/dataSampleRequest'
     responses:
       200:
         $ref: 'components.yaml#/components/responses/Ok'
@@ -120,25 +149,28 @@ nodesByCmHandleAndXpath:
         $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'
 
-  put:
-    description: Replace a node with descendants for the given cps path and cm Handle
-    deprecated: true
+  patch:
     tags:
       - network-cm-proxy
-    summary: Replace a node with descendants
-    operationId: replaceNode
+    summary: Patch resource data from pass-through running
+    description: Patch resource data from pass-through running for the given cm handle
+    operationId: patchResourceDataRunningForCmHandle
     parameters:
       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
-      - $ref: 'components.yaml#/components/parameters/xpathInQuery'
+      - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
+      - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
     requestBody:
       required: true
       content:
-        application/json:
+        '*/*':
           schema:
-            type: string
+            type: object
+          examples:
+            dataSampleRequest:
+              $ref: 'components.yaml#/components/examples/dataSamplePatchRequest'
     responses:
       200:
         $ref: 'components.yaml#/components/responses/Ok'
@@ -148,53 +180,22 @@ nodesByCmHandleAndXpath:
         $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'
 
-listNodeByCmHandleAndXpath:
-  post:
-    description: Add one or more list-node child elements under existing node for the given CM Handle
-    deprecated: true
+  delete:
     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:
-      - 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
+    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/acceptParamInHeader'
-      - $ref: 'components.yaml#/components/parameters/optionsParamInQuery'
+      - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
     responses:
-      200:
-        $ref: 'components.yaml#/components/responses/Ok'
+      204:
+        $ref: 'components.yaml#/components/responses/NoContent'
       400:
         $ref: 'components.yaml#/components/responses/BadRequest'
       401:
@@ -203,68 +204,72 @@ getResourceDataForPassthroughOperational:
         $ref: 'components.yaml#/components/responses/Forbidden'
       404:
         $ref: 'components.yaml#/components/responses/NotFound'
+      500:
+        $ref: 'components.yaml#/components/responses/InternalServerError'
 
-resourceDataForPassthroughRunning:
+fetchModuleReferencesByCmHandle:
   get:
+    description: fetch all module references (name and revision) 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
+    summary: Fetch all module references (name and revision) for a given cm handle
+    operationId: getModuleReferencesByCmHandle
     parameters:
       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
-      - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
-      - $ref: 'components.yaml#/components/parameters/acceptParamInHeader'
-      - $ref: 'components.yaml#/components/parameters/optionsParamInQuery'
     responses:
       200:
-        $ref: 'components.yaml#/components/responses/Ok'
+        description: OK
+        content:
+          application/json:
+            schema:
+              type: array
+              items:
+                $ref: 'components.yaml#/components/schemas/ModuleReference'
       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:
+    description: Execute cm handle searches using 'hasAllModules' condition to get all cm handles for the given module names
     tags:
       - network-cm-proxy
-    summary: create resource data from pass-through running for cm handle
-    description: create resource data from pass-through running for given cm handle
-    operationId: createResourceDataRunningForCmHandle
-    parameters:
-      - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
-      - $ref: 'components.yaml#/components/parameters/resourceIdentifierInQuery'
-      - $ref: 'components.yaml#/components/parameters/contentParamInHeader'
+    summary: Execute cm handle search using the available conditions
+    operationId: executeCmHandleSearch
     requestBody:
       required: true
       content:
         application/json:
           schema:
-            type: string
-        application/yang-data+json:
-          schema:
-            type: string
+            $ref: 'components.yaml#/components/schemas/Conditions'
     responses:
-      201:
-        $ref: 'components.yaml#/components/responses/Created'
+      200:
+        description: OK
+        content:
+          application/json:
+            schema:
+              $ref: 'components.yaml#/components/schemas/CmHandles'
       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'
 
-fetchModuleReferencesByCmHandle:
+retrieveCmHandleDetailsById:
   get:
-    description: fetch all module references (name and revision) for a given cm handle
+    description: Retrieve CM handle details and properties by cm handle id
     tags:
       - network-cm-proxy
-    summary: Fetch all module references (name and revision) for a given cm handle
-    operationId: getModuleReferencesByCmHandle
+    summary: Retrieve CM handle details
+    operationId: retrieveCmHandleDetailsById
     parameters:
       - $ref: 'components.yaml#/components/parameters/cmHandleInPath'
     responses:
@@ -273,9 +278,7 @@ fetchModuleReferencesByCmHandle:
         content:
           application/json:
             schema:
-              type: string
-            example: [{"moduleName": "nc-notifications", "revision": "2008-07-14"}]
-        $ref: 'components.yaml#/components/responses/Ok'
+              $ref: 'components.yaml#/components/schemas/RestOutputCmHandle'
       400:
         $ref: 'components.yaml#/components/responses/BadRequest'
       401:
@@ -283,4 +286,6 @@ fetchModuleReferencesByCmHandle:
       403:
         $ref: 'components.yaml#/components/responses/Forbidden'
       404:
-        $ref: 'components.yaml#/components/responses/NotFound'
\ No newline at end of file
+        $ref: 'components.yaml#/components/responses/NotFound'
+      500:
+        $ref: 'components.yaml#/components/responses/InternalServerError'
\ No newline at end of file