diff --git a/cps-rest/docs/api/swagger/cpsAdmin.yml b/cps-rest/docs/api/swagger/cpsAdmin.yml
index f1bac8d..5040e2c 100755
--- a/cps-rest/docs/api/swagger/cpsAdmin.yml
+++ b/cps-rest/docs/api/swagger/cpsAdmin.yml
@@ -1,4 +1,4 @@
-dataspace:
+dataspaces:
   post:
     description: Create a new dataspace
     tags:
diff --git a/cps-rest/docs/api/swagger/cpsData.yml b/cps-rest/docs/api/swagger/cpsData.yml
index eabed28..2464489 100755
--- a/cps-rest/docs/api/swagger/cpsData.yml
+++ b/cps-rest/docs/api/swagger/cpsData.yml
@@ -1,4 +1,4 @@
-nodesByDataspaceAndAnchor:
+nodeByDataspaceAndAnchor:
   get:
     description: Get a node with an option to retrieve all the children for a given anchor and dataspace
     tags:
@@ -23,6 +23,7 @@
         $ref: 'components.yml#/components/responses/NotFound'
     x-codegen-request-body-name: xpath
 
+nodesByDataspaceAndAnchor:
   post:
     description: Create a node for a given anchor and dataspace
     tags:
diff --git a/cps-rest/docs/api/swagger/openapi.yml b/cps-rest/docs/api/swagger/openapi.yml
index 5b9e5f4..2ead202 100755
--- a/cps-rest/docs/api/swagger/openapi.yml
+++ b/cps-rest/docs/api/swagger/openapi.yml
@@ -25,7 +25,7 @@
 paths:
 
   /v1/dataspaces:
-    $ref: 'cpsAdmin.yml#/dataspace'
+    $ref: 'cpsAdmin.yml#/dataspaces'
 
   /v1/dataspaces/{dataspace-name}:
     $ref: 'cpsAdmin.yml#/dataspaceByDataspaceName'
@@ -42,6 +42,9 @@
   /v1/dataspaces/{dataspace-name}/schema-sets/{schema-set-name}:
     $ref: 'cpsAdmin.yml#/schemaSetBySchemaSetName'
 
+  /v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/node:
+    $ref: 'cpsData.yml#/nodeByDataspaceAndAnchor'
+
   /v1/dataspaces/{dataspace-name}/anchors/{anchor-name}/nodes:
     $ref: 'cpsData.yml#/nodesByDataspaceAndAnchor'
 
diff --git a/cps-rest/src/test/groovy/org/onap/cps/rest/controller/DataRestControllerSpec.groovy b/cps-rest/src/test/groovy/org/onap/cps/rest/controller/DataRestControllerSpec.groovy
old mode 100644
new mode 100755
index c5fd162..cca94d1
--- a/cps-rest/src/test/groovy/org/onap/cps/rest/controller/DataRestControllerSpec.groovy
+++ b/cps-rest/src/test/groovy/org/onap/cps/rest/controller/DataRestControllerSpec.groovy
@@ -68,7 +68,7 @@
     @Value('${rest.api.cps-base-path}')
     def basePath
 
-    def dataNodeEndpoint
+    def dataNodeBaseEndpoint
     def dataspaceName = 'my_dataspace'
     def anchorName = 'my_anchor'
 
@@ -81,15 +81,16 @@
             .withChildDataNodes([new DataNodeBuilder().withXpath("/parent/child").build()]).build()
 
     def setup() {
-        dataNodeEndpoint = "$basePath/v1/dataspaces/$dataspaceName/anchors/$anchorName/nodes"
+        dataNodeBaseEndpoint = "$basePath/v1/dataspaces/$dataspaceName"
     }
 
     def 'Create a node.'() {
         given: 'some json to create a data node'
+            def endpoint = "$dataNodeBaseEndpoint/anchors/$anchorName/nodes"
             def json = 'some json (this is not validated)'
         when: 'post is invoked with datanode endpoint and json'
             def response = mvc.perform(
-                    post(dataNodeEndpoint).contentType(MediaType.APPLICATION_JSON).content(json)
+                    post(endpoint).contentType(MediaType.APPLICATION_JSON).content(json)
             ).andReturn().response
         then: 'a created response is returned'
             response.status == HttpStatus.CREATED.value()
@@ -101,10 +102,11 @@
     def 'Get data node with leaves'() {
         given: 'the service returns data node leaves'
             def xpath = 'some xPath'
+            def endpoint = "$dataNodeBaseEndpoint/anchors/$anchorName/node"
             mockCpsDataService.getDataNode(dataspaceName, anchorName, xpath, OMIT_DESCENDANTS) >> dataNodeWithLeavesNoChildren
         when: 'get request is performed through REST API'
             def response = mvc.perform(
-                    get(dataNodeEndpoint).param('xpath', xpath)
+                    get(endpoint).param('xpath', xpath)
             ).andReturn().response
         then: 'a success response is returned'
             response.status == HttpStatus.OK.value()
@@ -118,9 +120,10 @@
     def 'Get data node with #scenario.'() {
         given: 'the service returns data node with #scenario'
             def xpath = 'some xPath'
+            def endpoint = "$dataNodeBaseEndpoint/anchors/$anchorName/node"
             mockCpsDataService.getDataNode(dataspaceName, anchorName, xpath, expectedCpsDataServiceOption) >> dataNode
         when: 'get request is performed through REST API'
-            def response = mvc.perform(get(dataNodeEndpoint)
+            def response = mvc.perform(get(endpoint)
                     .param('xpath', xpath)
                     .param('include-descendants', includeDescendantsOption))
                     .andReturn().response
@@ -138,10 +141,11 @@
     @Unroll
     def 'Get data node error scenario: #scenario.'() {
         given: 'the service throws an exception'
+            def endpoint = "$dataNodeBaseEndpoint/anchors/$anchorName/node"
             mockCpsDataService.getDataNode(dataspaceName, anchorName, xpath, _) >> { throw exception }
         when: 'get request is performed through REST API'
             def response = mvc.perform(
-                    get(dataNodeEndpoint).param("xpath", xpath)
+                    get(endpoint).param("xpath", xpath)
             ).andReturn().response
         then: 'a success response is returned'
             response.status == httpStatus.value()
@@ -157,9 +161,10 @@
     def 'Update data node leaves: #scenario.'() {
         given: 'json data'
             def jsonData = 'json data'
+            def endpoint = "$dataNodeBaseEndpoint/anchors/$anchorName/nodes"
         when: 'patch request is performed'
             def response = mvc.perform(
-                    patch(dataNodeEndpoint)
+                    patch(endpoint)
                             .contentType(MediaType.APPLICATION_JSON)
                             .content(jsonData)
                             .param('xpath', xpath)
@@ -178,9 +183,10 @@
     def 'Replace data node tree: #scenario.'() {
         given: 'json data'
             def jsonData = 'json data'
+            def endpoint = "$dataNodeBaseEndpoint/anchors/$anchorName/nodes"
         when: 'put request is performed'
             def response = mvc.perform(
-                    put(dataNodeEndpoint)
+                    put(endpoint)
                             .contentType(MediaType.APPLICATION_JSON)
                             .content(jsonData)
                             .param('xpath', xpath)
diff --git a/pom.xml b/pom.xml
index d8bd8c9..22742a3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,3 +1,22 @@
+<!--
+  ============LICENSE_START=======================================================
+  Copyright (c) 2020 Linux Foundation.
+  Modifications Copyright (C) 2021 Bell Canada.
+  ================================================================================
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  ============LICENSE_END=========================================================
+-->
+
 <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
@@ -39,4 +58,18 @@
         <module>spotbugs</module>
         <module>cps-application</module>
     </modules>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.codehaus.mojo</groupId>
+                <artifactId>versions-maven-plugin</artifactId>
+                <version>2.8.1</version>
+                <configuration>
+                    <processAllModules>true</processAllModules>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
 </project>
