Merge "Delete DataNode (xpath) for a given Anchor"
[cps.git] / cps-rest / docs / openapi / cpsData.yml
index aa8a31d..2b65ae4 100644 (file)
@@ -1,3 +1,21 @@
+# ============LICENSE_START=======================================================
+# Copyright (c) 2021 Bell Canada.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
 nodeByDataspaceAndAnchor:
   get:
     description: Get a node with an option to retrieve all the children for a given anchor and dataspace
@@ -12,7 +30,12 @@ nodeByDataspaceAndAnchor:
       - $ref: 'components.yml#/components/parameters/includeDescendantsOptionInQuery'
     responses:
       '200':
-        $ref: 'components.yml#/components/responses/Ok'
+        description: OK
+        content:
+          application/json:
+            schema:
+              type: object
+            example: { "child": my_child,"leafList": "leafListElement1, leafListElement2", "leaf": my_leaf }
       '400':
         $ref: 'components.yml#/components/responses/BadRequest'
       '401':
@@ -23,17 +46,18 @@ nodeByDataspaceAndAnchor:
         $ref: 'components.yml#/components/responses/NotFound'
     x-codegen-request-body-name: xpath
 
-listNodeByDataspaceAndAnchor:
+listElementByDataspaceAndAnchor:
   post:
-    description: Add list-node child elements to existing node for a given anchor and dataspace
+    description: Add list element(s) to a list for a given anchor and dataspace
     tags:
       - cps-data
-    summary: Add list-node child element(s) under existing parent node
-    operationId: addListNodeElements
+    summary: Add list element(s)
+    operationId: addListElements
     parameters:
       - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
       - $ref: 'components.yml#/components/parameters/anchorNameInPath'
       - $ref: 'components.yml#/components/parameters/requiredXpathInQuery'
+      - $ref: 'components.yml#/components/parameters/observedTimestampInQuery'
     requestBody:
       required: true
       content:
@@ -50,16 +74,17 @@ listNodeByDataspaceAndAnchor:
       '403':
         $ref: 'components.yml#/components/responses/Forbidden'
 
-  patch:
-    description: Replace list-node child elements under existing node for a given anchor and dataspace
+  put:
+    description: Replace list content under a given parent, anchor and dataspace
     tags:
       - cps-data
-    summary: Replace list-node child element(s) under existing parent node
-    operationId: replaceListNodeElements
+    summary: Replace list content
+    operationId: replaceListContent
     parameters:
       - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
       - $ref: 'components.yml#/components/parameters/anchorNameInPath'
       - $ref: 'components.yml#/components/parameters/requiredXpathInQuery'
+      - $ref: 'components.yml#/components/parameters/observedTimestampInQuery'
     requestBody:
       required: true
       content:
@@ -76,6 +101,28 @@ listNodeByDataspaceAndAnchor:
       '403':
         $ref: 'components.yml#/components/responses/Forbidden'
 
+  delete:
+    description: Delete one or all list element(s) for a given anchor and dataspace
+    deprecated: true
+    tags:
+      - cps-data
+    summary: Delete one or all list element(s)
+    operationId: deleteListOrListElement
+    parameters:
+      - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
+      - $ref: 'components.yml#/components/parameters/anchorNameInPath'
+      - $ref: 'components.yml#/components/parameters/requiredXpathInQuery'
+      - $ref: 'components.yml#/components/parameters/observedTimestampInQuery'
+    responses:
+      '204':
+        $ref: 'components.yml#/components/responses/NoContent'
+      '400':
+        $ref: 'components.yml#/components/responses/BadRequest'
+      '401':
+        $ref: 'components.yml#/components/responses/Unauthorized'
+      '403':
+        $ref: 'components.yml#/components/responses/Forbidden'
+
 nodesByDataspaceAndAnchor:
   post:
     description: Create a node for a given anchor and dataspace
@@ -87,6 +134,7 @@ nodesByDataspaceAndAnchor:
       - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
       - $ref: 'components.yml#/components/parameters/anchorNameInPath'
       - $ref: 'components.yml#/components/parameters/xpathInQuery'
+      - $ref: 'components.yml#/components/parameters/observedTimestampInQuery'
     requestBody:
       required: true
       content:
@@ -113,6 +161,7 @@ nodesByDataspaceAndAnchor:
       - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
       - $ref: 'components.yml#/components/parameters/anchorNameInPath'
       - $ref: 'components.yml#/components/parameters/xpathInQuery'
+      - $ref: 'components.yml#/components/parameters/observedTimestampInQuery'
     requestBody:
       required: true
       content:
@@ -129,25 +178,20 @@ nodesByDataspaceAndAnchor:
       '403':
         $ref: 'components.yml#/components/responses/Forbidden'
 
-  put:
-    description: Replace a node with descendants for a given dataspace, anchor and a parent node xpath
+  delete:
+    description: Delete a datanode for a given dataspace and anchor given a node xpath.
     tags:
       - cps-data
-    summary: Replace a node with descendants
-    operationId: replaceNode
+    summary: Delete a data node
+    operationId: deleteDataNode
     parameters:
       - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
       - $ref: 'components.yml#/components/parameters/anchorNameInPath'
       - $ref: 'components.yml#/components/parameters/xpathInQuery'
-    requestBody:
-      required: true
-      content:
-        application/json:
-          schema:
-            type: string
+      - $ref: 'components.yml#/components/parameters/observedTimestampInQuery'
     responses:
-      '200':
-        $ref: 'components.yml#/components/responses/Ok'
+      '204':
+        $ref: 'components.yml#/components/responses/NoContent'
       '400':
         $ref: 'components.yml#/components/responses/BadRequest'
       '401':
@@ -156,15 +200,23 @@ nodesByDataspaceAndAnchor:
         $ref: 'components.yml#/components/responses/Forbidden'
 
 
-nodesByDataspace:
-  get:
-    description: Get all nodes for a given dataspace using an xpath or schema node identifier - DRAFT
+  put:
+    description: Replace a node with descendants for a given dataspace, anchor and a parent node xpath
     tags:
       - cps-data
-    summary: Get nodes
-    operationId: getNodesByDataspace
+    summary: Replace a node with descendants
+    operationId: replaceNode
     parameters:
       - $ref: 'components.yml#/components/parameters/dataspaceNameInPath'
+      - $ref: 'components.yml#/components/parameters/anchorNameInPath'
+      - $ref: 'components.yml#/components/parameters/xpathInQuery'
+      - $ref: 'components.yml#/components/parameters/observedTimestampInQuery'
+    requestBody:
+      required: true
+      content:
+        application/json:
+          schema:
+            type: string
     responses:
       '200':
         $ref: 'components.yml#/components/responses/Ok'
@@ -174,6 +226,3 @@ nodesByDataspace:
         $ref: 'components.yml#/components/responses/Unauthorized'
       '403':
         $ref: 'components.yml#/components/responses/Forbidden'
-      '404':
-        $ref: 'components.yml#/components/responses/NotFound'
-    x-codegen-request-body-name: requestBody