diff --git a/src/test/cord-api/Framework/restApi.py b/src/test/cord-api/Framework/restApi.py
index 5c22097..a14d196 100644
--- a/src/test/cord-api/Framework/restApi.py
+++ b/src/test/cord-api/Framework/restApi.py
@@ -90,11 +90,23 @@
         data = json.dumps(jsonData)
         print "url, data..", url, data
         resp = requests.post(url, data=data, headers=self.jsonHeader, auth=(self.user, self.password))
-        passed = self.checkResult(resp, requests.codes.created)
+        print "requests.codes.....",requests.codes.created
+        passed = self.checkResult(resp, requests.codes.created) or self.checkResult(resp, requests.codes.ok)
         return passed
 
     def ApiGet(self, key, urlSuffix=""):
         url = self.getURL(key) + str(urlSuffix)
+        print "get url...",url
+        resp = requests.get(url, auth=(self.user, self.password))
+        passed = self.checkResult(resp, requests.codes.ok)
+        if not passed:
+            return None
+        else:
+            return resp.json()
+
+    def ApiChameleonGet(self, key, urlSuffix=""):
+        url = self.getURL(key) + "/" + str(urlSuffix)
+        print "get url...",url
         resp = requests.get(url, auth=(self.user, self.password))
         passed = self.checkResult(resp, requests.codes.ok)
         if not passed:
@@ -110,11 +122,29 @@
         passed = self.checkResult(resp, requests.codes.ok)
         return passed
 
+    def ApiChameleonPut(self, key, jsonData, urlSuffix=""):
+        print "urlSuffix....",type(urlSuffix)
+        url = self.getURL(key) + "/" + str(urlSuffix)
+        print "url", url
+        data = json.dumps(jsonData)
+        resp = requests.put(url, data=data, headers=self.jsonHeader, auth=(self.user, self.password))
+        passed = self.checkResult(resp, requests.codes.ok)
+        return passed
+
     def ApiDelete(self, key, urlSuffix=""):
         url = self.getURL(key) + str(urlSuffix)
         print "url",url
         resp = requests.delete(url, auth=(self.user, self.password))
-        passed = self.checkResult(resp, requests.codes.no_content)
+        #passed = self.checkResult(resp, requests.codes.no_content)
+        passed = self.checkResult(resp, requests.codes.created) or self.checkResult(resp, requests.codes.ok)
+        return passed
+
+    def ApiChameleonDelete(self, key, urlSuffix=""):
+        url = self.getURL(key) + "/" + str(urlSuffix)
+        print "url",url
+        resp = requests.delete(url, auth=(self.user, self.password))
+        #passed = self.checkResult(resp, requests.codes.no_content)
+        passed = self.checkResult(resp, requests.codes.created) or self.checkResult(resp, requests.codes.ok)
         return passed
 
 #test
@@ -142,30 +172,40 @@
 #jsonGetData = test.ApiGet(key)
 #jsonResponse = test.ApiPost(key,{"identity":{"name":"My House 22"}})
 #jsonResponse = test.ApiPost(key,{"firstname":"Test002","lastname":"User002","email":"test002@onlab.us","password":"TestUser002","site": "http://localhost:8000/api/core/sites/1/"})
-#jsonResponse = test.ApiDelete(key,15)
+key = "VOLT_TENANT"
+key = "VOLT_SUBSCRIBER"
+#jsonResponse = test.ApiDelete(key,204)
 #jsonResponse = test.ApiPut(key,{"firstname":"Test002","lastname":"User002","email":"test002update@onlab.us","password":"TestUser002","site": "http://localhost:8000/api/core/sites/1/"},14)
 #jsonResponse = test.ApiPost(key2,{"username":"test002update@onlab.us","password":"TestUser002"})
 #jsonResponse = test.ApiPost(key2,{"username":"padmin@vicci.org","password":"letmein"})
 #jsonResponse = test.ApiPut(key,{"username":"testuser","password":"TestUser001"},"9")
-#key = "UTILS_SYNCHRONIZER"
-key = "CORE_SANITY_INSTANCES"
-key1 = "CORE_SANITY_SLICES"
-key2 = "CORE_SLICES"
+#key = "CORE_INSTANCES"
+#key1 = "CORE_SANITY_SLICES"
+#key2 = "CORE_SLICES"
 #input_dict = { "s_tag" : "111", "c_tag" : "222", "subscriber" : 23}
 input_dict = {
-           "name": "test-instance",
-           "image": 1,
-           "slice": 1,
-           "deployment": 1,
-           "node": 1
-           }
-input_dict1 = { "name" : "mysite_Test1", "site" : 1 , "creator" : 1}
-jsonResponse = test.ApiPost(key1,input_dict1)
-#jsonGetData = test.ApiGet(key)
-print "========="
+         "s_tag" : 117,
+         "c_tag" : 227
+        }
+
+#input_dict1 = { "name" : "mysite_Test1", "site" : 1 , "creator" : 1}
+input_dict2 = {
+ 
+            "cdn_enable": "true",
+            "uplink_speed": 1000000000,
+            "downlink_speed": 1000000000,
+            "enable_uverse": "true",
+            "status": "enabled",
+            "service_specific_id": "100",
+            "name": "My House"
+    }
+#jsonResponse = test.ApiPost(key,input_dict)
+#jsonResponse = test.ApiChameleonPut(key,input_dict,12)
+#jsonGetData = test.ApiGet(key,"/12")
+#print "========="
 #print jsonGetData
 #jsonEdit = test.ApiPut(key,{"c_tag" : "666","s_tag" : "123"},"30")
-#jsonO = test.ApiDelete(key2,"1")
+jsonO = test.ApiDelete(key,"/7")
 #jsonResponse = test.ApiPut(key,{"identity":{"name":"My House 22"}},"71")
 #jsonResponse = test.ApiPost(key,{"name":"test-2"})
 #jsonResponse = test.ApiPut(key,{"name":"test1-changed"},"9")
diff --git a/src/test/cord-api/Framework/utils/utils.py b/src/test/cord-api/Framework/utils/utils.py
index fb1a797..832bee2 100644
--- a/src/test/cord-api/Framework/utils/utils.py
+++ b/src/test/cord-api/Framework/utils/utils.py
@@ -128,10 +128,12 @@
         return_dict = {}
         result = ''
         for data in getJsonDataList:
+            print "data..",data
             return_dict = {}
             found = False
             input_keys = data.keys()
             for key in input_keys:
+                print "key in input_keys...",key
                 if key == searchKey and str(data[key]) == str(searchKeyValue):
                    found = True
                    return_dict = data
@@ -220,19 +222,251 @@
 '''
 #Test
 dict_list = {
- "humanReadableName": "cordSubscriber-17",
-        "id": 17,
-        "features": {
-            "uplink_speed": 1000000000,
-            "downlink_speed": 1000000000,
-            "status": "enabled"
+[
+    {
+        "humanReadableName": "mysite_vsg-1",
+        "validators": {
+            "policed": [],
+            "creator": [],
+            "ip": [],
+            "image": [
+                "notBlank"
+            ],
+            "backend_register": [
+                "notBlank"
+            ],
+            "flavor": [
+                "notBlank"
+            ],
+            "backend_status": [
+                "notBlank"
+            ],
+            "id": [],
+            "instance_name": [],
+            "slice": [
+                "notBlank"
+            ],
+            "backend_need_delete": [],
+            "enacted": [],
+            "no_sync": [],
+            "node": [
+                "notBlank"
+            ],
+            "userData": [],
+            "updated": [
+                "notBlank"
+            ],
+            "parent": [],
+            "deleted": [],
+            "lazy_blocked": [],
+            "deployment": [
+                "notBlank"
+            ],
+            "backend_need_reap": [],
+            "instance_uuid": [],
+            "numberCores": [
+                "notBlank"
+            ],
+            "name": [
+                "notBlank"
+            ],
+            "created": [],
+            "write_protect": [],
+            "isolation": [
+                "notBlank"
+            ],
+            "no_policy": [],
+            "instance_id": [],
+            "volumes": []
         },
-        "identity": {
-            "account_num": "20",
-            "name": "My House"
+        "id": 1,
+        "created": "2017-03-13T22:23:48.805109Z",
+        "updated": "2017-03-13T22:38:06.084074Z",
+        "enacted": "2017-03-13T22:38:43.894253Z",
+        "policed": "2017-03-13T22:38:08.086489Z",
+        "backend_register": "{\"next_run\": 0, \"last_success\": 1489444729.019414, \"exponent\": 0}",
+        "backend_status": "1 - OK",
+        "instance_id": "instance-00000001",
+        "instance_uuid": "a46d716f-e82c-4088-a042-72c3a97ed3ff",
+        "name": "mysite_vsg",
+        "instance_name": "mysite_vsg-1",
+        "ip": "10.1.0.17",
+        "image": "http://ms1333.utah.cloudlab.us:8080/api/core/images/1/",
+        "creator": "http://ms1333.utah.cloudlab.us:8080/api/core/users/1/",
+        "slice": "http://ms1333.utah.cloudlab.us:8080/api/core/slices/2/",
+        "deployment": "http://ms1333.utah.cloudlab.us:8080/api/core/deployments/1/",
+        "node": "http://ms1333.utah.cloudlab.us:8080/api/core/nodes/1/",
+        "numberCores": 0,
+        "flavor": "http://ms1333.utah.cloudlab.us:8080/api/core/flavors/1/",
+        "isolation": "vm",
+        "volumes": "/etc/dnsmasq.d,/etc/ufw",
+        "networks": [
+            "http://ms1333.utah.cloudlab.us:8080/api/core/networks/1/",
+            "http://ms1333.utah.cloudlab.us:8080/api/core/networks/2/"
+        ]
+    },
+    {
+        "humanReadableName": "mysite_exampleservice-2",
+        "validators": {
+            "policed": [],
+            "creator": [],
+            "ip": [],
+            "image": [
+                "notBlank"
+            ],
+            "backend_register": [
+                "notBlank"
+            ],
+            "flavor": [
+                "notBlank"
+            ],
+            "backend_status": [
+                "notBlank"
+            ],
+            "id": [],
+            "instance_name": [],
+            "slice": [
+                "notBlank"
+            ],
+            "backend_need_delete": [],
+            "enacted": [],
+            "no_sync": [],
+            "node": [
+                "notBlank"
+            ],
+            "userData": [],
+            "updated": [
+                "notBlank"
+            ],
+            "parent": [],
+            "deleted": [],
+            "lazy_blocked": [],
+            "deployment": [
+                "notBlank"
+            ],
+            "backend_need_reap": [],
+            "instance_uuid": [],
+            "numberCores": [
+                "notBlank"
+            ],
+            "name": [
+                "notBlank"
+            ],
+            "created": [],
+            "write_protect": [],
+            "isolation": [
+                "notBlank"
+            ],
+            "no_policy": [],
+            "instance_id": [],
+            "volumes": []
         },
-        "related": {}
+        "id": 2,
+        "created": "2017-03-13T22:38:03.872267Z",
+        "updated": "2017-03-13T22:38:06.047153Z",
+        "enacted": "2017-03-13T22:39:07.002800Z",
+        "policed": "2017-03-13T22:38:07.895147Z",
+        "backend_register": "{\"next_run\": 0, \"last_success\": 1489444774.726988, \"exponent\": 0}",
+        "backend_status": "1 - OK",
+        "instance_id": "instance-00000002",
+        "instance_uuid": "cb219739-0d11-48a2-9f19-1e2aba1f004e",
+        "name": "mysite_exampleservice",
+        "instance_name": "mysite_exampleservice-2",
+        "ip": "10.1.0.17",
+        "image": "http://ms1333.utah.cloudlab.us:8080/api/core/images/3/",
+        "creator": "http://ms1333.utah.cloudlab.us:8080/api/core/users/1/",
+        "slice": "http://ms1333.utah.cloudlab.us:8080/api/core/slices/4/",
+        "deployment": "http://ms1333.utah.cloudlab.us:8080/api/core/deployments/1/",
+        "node": "http://ms1333.utah.cloudlab.us:8080/api/core/nodes/1/",
+        "numberCores": 0,
+        "flavor": "http://ms1333.utah.cloudlab.us:8080/api/core/flavors/1/",
+        "isolation": "vm",
+        "networks": [
+            "http://ms1333.utah.cloudlab.us:8080/api/core/networks/3/",
+            "http://ms1333.utah.cloudlab.us:8080/api/core/networks/1/",
+            "http://ms1333.utah.cloudlab.us:8080/api/core/networks/4/"
+        ]
+    },
+    {
+        "humanReadableName": "mysite_vsg-3",
+        "validators": {
+            "policed": [],
+            "creator": [],
+            "ip": [],
+            "image": [
+                "notBlank"
+            ],
+            "backend_register": [
+                "notBlank"
+            ],
+            "flavor": [
+                "notBlank"
+            ],
+            "backend_status": [
+                "notBlank"
+            ],
+            "id": [],
+            "instance_name": [],
+            "slice": [
+                "notBlank"
+            ],
+            "backend_need_delete": [],
+            "enacted": [],
+            "no_sync": [],
+            "node": [
+                "notBlank"
+            ],
+            "userData": [],
+            "updated": [
+                "notBlank"
+            ],
+            "parent": [],
+            "deleted": [],
+            "lazy_blocked": [],
+            "deployment": [
+                "notBlank"
+            ],
+            "backend_need_reap": [],
+            "instance_uuid": [],
+            "numberCores": [
+                "notBlank"
+            ],
+            "name": [
+                "notBlank"
+            ],
+            "created": [],
+            "write_protect": [],
+            "isolation": [
+                "notBlank"
+            ],
+            "no_policy": [],
+            "instance_id": [],
+            "volumes": []
+        },
+        "id": 3,
+        "created": "2017-03-17T23:15:13.556863Z",
+        "updated": "2017-03-17T23:15:13.555271Z",
+        "enacted": "2017-03-17T23:15:24.376854Z",
+        "policed": "2017-03-17T23:15:14.991037Z",
+        "backend_register": "{\"next_run\": 0, \"last_success\": 1489792538.996003, \"exponent\": 0}",
+        "backend_status": "1 - OK",
+        "instance_id": "instance-00000003",
+        "instance_uuid": "ec5ece6d-bebe-4165-98c5-3a026a41c63c",
+        "name": "mysite_vsg",
+        "instance_name": "mysite_vsg-3",
+        "ip": "10.1.0.17",
+        "image": "http://ms1333.utah.cloudlab.us:8080/api/core/images/1/",
+        "creator": "http://ms1333.utah.cloudlab.us:8080/api/core/users/1/",
+        "slice": "http://ms1333.utah.cloudlab.us:8080/api/core/slices/2/",
+        "deployment": "http://ms1333.utah.cloudlab.us:8080/api/core/deployments/1/",
+        "node": "http://ms1333.utah.cloudlab.us:8080/api/core/nodes/1/",
+        "numberCores": 0,
+        "flavor": "http://ms1333.utah.cloudlab.us:8080/api/core/flavors/1/",
+        "isolation": "vm",
+        "volumes": "/etc/dnsmasq.d,/etc/ufw"
     }
+   ]
+  }
 input_dict = {
  "s_tag" : "111",
  "c_tag" : "222",
@@ -243,10 +477,10 @@
 #data=test.jsonToList("Subscribers.json","SubscriberInfo")
 #print  test.jsonToList("Subscribers.json","SubscriberInfo")
 #print "index 1...",test.listToDict(data,1)
-#result = test.getDictFromListOfDict(dict_list,"email",21)
+result = test.getDictFromListOfDict(dict_list,"instance_name","mysite_vsg-3")
 #result = test.getFieldValueFromDict(dict_list,"id")
 #result = test.getDictFromListOfDict(dict_list,"account_num",21)
 #result = test.setFieldValueInDict(input_dict,"subscriber",new_value)
-result = test.getAllFieldValues(list1,"instance_name")
+#result = test.getAllFieldValues(list1,"instance_name")
 print "finalllllll result....", result
 '''
diff --git a/src/test/cord-api/Properties/RestApiProperties.py b/src/test/cord-api/Properties/RestApiProperties.py
index fc96dc5..f3f7418 100644
--- a/src/test/cord-api/Properties/RestApiProperties.py
+++ b/src/test/cord-api/Properties/RestApiProperties.py
@@ -1,22 +1,34 @@
 #!/usr/bin/env python
-SERVER_IP = '10.128.100.9'
+SERVER_IP = 'ms0903.utah.cloudlab.us'
 SERVER_PORT = '8080'
-USER = 'padmin@vicci.org'
-PASSWD = 'letmein'
+USER = 'xosadmin@opencord.org'
+PASSWD = 'AwHMOBEa9hhDMH4SuSUN'
+VOLT_SUBSCRIBER = '/xosapi/v1/rcord/cordsubscriberroots'
+VOLT_TENANT = '/xosapi/v1/volt/volttenants'
 TENANT_SUBSCRIBER = '/api/tenant/cord/subscriber/'
 TENANT_VOLT = '/api/tenant/cord/volt/'
 UTILS_SYNCHRONIZER = '/api/utility/synchronizer/'
 UTILS_LOGIN = '/api/utility/login/'
 CORE_USERS = '/api/core/users/'
+CH_CORE_USERS = '/xosapi/v1/core/users'
 CORE_SERVICES = '/api/core/services/'
+CH_CORE_SERVICES = '/xosapi/v1/core/services'
 CORE_INSTANCES = '/api/core/instances/'
+CH_CORE_INSTANCES = '/xosapi/v1/core/instances'
 CORE_DEPLOYMENTS = '/api/core/deployments/'
+CH_CORE_DEPLOYMENTS = '/xosapi//v1/core/deployments'
 CORE_SANITY_INSTANCES = '/api/core/instances/?no_hyperlinks=1'
 CORE_SANITY_SLICES = '/api/core/slices/?no_hyperlinks=1'
 CORE_SLICES = '/api/core/slices/'
+CH_CORE_SLICES = '/xosapi/v1/core/slices'
 CORE_SANITY_NODES = '/api/core/nodes/?no_hyperlinks=1'
 CORE_NODES = '/api/core/nodes/'
+CH_CORE_NODES = '/xosapi/v1/core/nodes'
 CORE_FLAVORS = '/api/core/flavors/'
+CH_CORE_FLAVORS = '/xosapi/v1/core/flavors'
 CORE_SITES = '/api/core/sites/'
+CH_CORE_SITES = '/xosapi/v1/core/sites'
 CORE_IMAGES = '/api/core/images/'
+CH_CORE_IMAGES = '/xosapi/v1/core/images'
 CORE_SITEDEPLOYMENTS = '/api/core/sitedeployments'
+CH_CORE_SITEDEPLOYMENTS = '/xosapi/v1/core/sitedeployments'
diff --git a/src/test/cord-api/Tests/.gitignore b/src/test/cord-api/Tests/.gitignore
new file mode 100644
index 0000000..633ea0f
--- /dev/null
+++ b/src/test/cord-api/Tests/.gitignore
@@ -0,0 +1,3 @@
+log.html
+report.html
+output.xml
diff --git a/src/test/cord-api/Tests/Ch_DefaultServiceCheck.txt b/src/test/cord-api/Tests/Ch_DefaultServiceCheck.txt
new file mode 100644
index 0000000..2d9b5f2
--- /dev/null
+++ b/src/test/cord-api/Tests/Ch_DefaultServiceCheck.txt
@@ -0,0 +1,37 @@
+*** Settings ***
+Documentation     Test suite for checking default services
+Suite Setup       Read InputFile
+Test Template     Verify Service Sanity
+Library           Collections
+Library           String
+Library           OperatingSystem
+Library           XML
+Library           RequestsLibrary
+Library           ../Framework/utils/utils.py
+Library           ../Framework/restApi.py
+
+*** Variables ***
+${USER}           admin
+${PASSWORD}       admin
+${PATHFILE}       ${CURDIR}/data/Ch_defaultServices.json
+
+*** Test Cases ***    TYPE
+Test Service Sanity
+                      SANITY
+
+*** Keywords ***
+Read InputFile
+    ${serviceList}=    utils.jsonToList    ${PATHFILE}    ServiceInfo
+    Set Suite Variable    ${slist}    ${serviceList}
+
+Verify Service Sanity
+    [Arguments]    ${type}
+    Run Keyword If    "${type}" == "SANITY"    Test Service Sanity
+
+Test Service Sanity
+    ${json_result}=    restApi.ApiGet    CH_CORE_SERVICES
+    ${json_result_list}=    Get From Dictionary    ${json_result}    items
+    Log    ${json_result_list}
+    ${serviceList}=    Get Variable Value    ${slist}
+    ${test_result}=    utils.compare_list_of_dicts    ${serviceList}    ${json_result_list}
+    Should Be True    ${test_result}
diff --git a/src/test/cord-api/Tests/Ch_DeploymentTest.txt b/src/test/cord-api/Tests/Ch_DeploymentTest.txt
new file mode 100644
index 0000000..7a3de5d
--- /dev/null
+++ b/src/test/cord-api/Tests/Ch_DeploymentTest.txt
@@ -0,0 +1,100 @@
+*** Settings ***
+Documentation     Test suite for Deployment verification
+Suite Setup       Read InputFile
+Test Template     Verify Deployment functionality
+Library           Collections
+Library           String
+Library           OperatingSystem
+Library           XML
+Library           RequestsLibrary
+Library           ../Framework/utils/utils.py
+Library           ../Framework/restApi.py
+
+*** Variables ***
+${USER}           admin
+${PASSWORD}       admin
+${PATHFILE}       ${CURDIR}/data/Ch_Deployment.json
+${PATHFILE2}      ${CURDIR}/data/putDeployment.json
+
+*** Test Cases ***    TYPE                       LISTINDEX
+Test Post Deployment-1
+                      CREATE                     0
+
+Test Get Deployment-1
+                      RETRIEVE                   0
+                      #Test Edit Deployment-1    PUT          0
+
+Test Delete Deployment-1
+                      DELETE                     0
+
+Test Post Deployment-2
+                      CREATE                     1
+
+Test Get Deployment-2
+                      RETRIEVE                   1
+                      #Test Edit Deployment-2    PUT          1
+
+Test Delete Deployment-2
+                      DELETE                     1
+
+*** Keywords ***
+Read InputFile
+    ${deploymentList}=    utils.jsonToList    ${PATHFILE}    DeploymentInfo
+    Set Suite Variable    ${dlist}    ${deploymentList}
+    ${putDeploymentList}=    utils.jsonToList    ${PATHFILE2}    DeploymentInfo
+    Set Suite Variable    ${putList}    ${putDeploymentList}
+
+Verify Deployment functionality
+    [Arguments]    ${type}    ${listIndex}
+    Run Keyword If    "${type}" == "CREATE"    Test Post Deployment API    ${listIndex}
+    Run Keyword If    "${type}" == "RETRIEVE"    Test Get Deployment API    ${listIndex}
+    Run Keyword If    "${type}" == "PUT"    Test Edit Deployment API    ${listIndex}
+    Run Keyword If    "${type}" == "DELETE"    Test Delete Deployment API    ${listIndex}
+
+Test Post Deployment API
+    [Arguments]    ${listIndex}
+    ${deploymentList} =    Get Variable Value    ${dlist}
+    ${deploymentDict}=    utils.listToDict    ${deploymentList}    ${listIndex}
+    ${api_result}=    restApi.ApiPost    CH_CORE_DEPLOYMENTS    ${deploymentDict}
+    Should Be True    ${api_result}
+
+Test Get Deployment API
+    [Arguments]    ${listIndex}
+    ${json_result}=    restApi.ApiGet    CH_CORE_DEPLOYMENTS
+    ${json_result_list}=    Get From Dictionary    ${json_result}    items
+    Log    ${json_result_list}
+    ${deploymentList}=    Get Variable Value    ${dlist}
+    ${deploymentDict}=    utils.listToDict    ${deploymentList}    ${listIndex}
+    ${name}=    utils.getFieldValueFromDict    ${deploymentDict}    name
+    ${getJsonDict}=    utils.getDictFromListOfDict    ${json_result_list}    name    ${name}
+    ${test_result}=    utils.compare_dict    ${deploymentDict}    ${getJsonDict}
+    Should Be True    ${test_result}
+
+Test Edit Deployment API
+    [Arguments]    ${listIndex}
+    ${get_result}=    restApi.ApiGet    CH_CORE_DEPLOYMENTS
+    ${putDeploymentList}=    Get Variable Value    ${putList}
+    ${putDeploymentDict}=    utils.listToDict    ${putDeploymentList}    ${listIndex}
+    ${name}=    utils.getFieldValueFromDict    ${putDeploymentDict}    name
+    ${deploymentDict}=    utils.getDictFromListofDict    ${get_result}    name    ${name}
+    ${deploymentID}=    utils.getFieldValueFromDict    ${deploymentDict}    id
+    ${api_result}=    restApi.ApiPut    CH_CORE_DEPLOYMENTS    ${putDeploymentDict}    ${deploymentID}
+    Should Be True    ${api_result}
+    ${getResultAfterPut}=    restApi.ApiGet    CH_CORE_DEPLOYMENTS    ${deploymentID}
+    ${test_result}=    utils.compare_dict    ${putDeploymentDict}    ${getResultAfterPut}
+    Should Be True    ${test_result}
+
+Test Delete Deployment API
+    [Arguments]    ${listIndex}
+    ${json_result}=    restApi.ApiGet    CH_CORE_DEPLOYMENTS
+    ${json_result_list}=    Get From Dictionary    ${json_result}    items
+    ${deploymentList}=    Get Variable Value    ${dlist}
+    ${deploymentDict}=    utils.listToDict    ${deploymentList}    ${listIndex}
+    ${name}=    utils.getFieldValueFromDict    ${deploymentDict}    name
+    Log    ${name}
+    ${deploymentDict}=    utils.getDictFromListofDict    ${json_result_list}    name    ${name}
+    Log    ${deploymentDict}
+    ${deploymentId}=    utils.getFieldValueFromDict    ${deploymentDict}    id
+    Log    ${deploymentId}
+    ${test_result}=    restApi.ApiChameleonDelete    CH_CORE_DEPLOYMENTS    ${deploymentId}
+    Should Be True    ${test_result}
diff --git a/src/test/cord-api/Tests/Ch_NodeTest.txt b/src/test/cord-api/Tests/Ch_NodeTest.txt
new file mode 100644
index 0000000..b777dea
--- /dev/null
+++ b/src/test/cord-api/Tests/Ch_NodeTest.txt
@@ -0,0 +1,81 @@
+*** Settings ***
+Documentation     Test suite for Node API verification
+Suite Setup       Read InputFile
+Test Template     Verify Node API functionality
+Library           Collections
+Library           String
+Library           OperatingSystem
+Library           XML
+Library           RequestsLibrary
+Library           ../Framework/utils/utils.py
+Library           ../Framework/restApi.py
+Variables         ../Properties/RestApiProperties.py
+
+*** Variables ***
+${USER}           admin
+${PASSWORD}       admin
+${PATHFILE}       ${CURDIR}/data/Ch_Node.json
+${IP}             ${SERVER_IP}
+${PORT}           ${SERVER_PORT}
+
+*** Test Cases ***    TYPE        LISTINDEX
+Test Post Node-1      CREATE      0
+
+Test Get Node-1       RETRIEVE    0
+
+Test Delete Node-1    DELETE      0
+
+Test Post Node-2      CREATE      1
+
+Test Get Node-2       RETRIEVE    1
+
+Test Delete Node-2    DELETE      1
+
+*** Keywords ***
+Read InputFile
+    ${nodeList}=    utils.jsonToList    ${PATHFILE}    NodeInfo
+    Set Suite Variable    ${nlist}    ${nodeList}
+    ${siteDeployment}=    Catenate    SEPARATOR=    http://    ${IP}    :    ${PORT}
+    ...    /api/core/sitedeployments/1/
+    Set Suite Variable    ${siteDeployment}    ${siteDeployment}
+
+Verify Node API functionality
+    [Arguments]    ${type}    ${listIndex}
+    Run Keyword If    "${type}" == "CREATE"    Test Post Node API    ${listIndex}
+    Run Keyword If    "${type}" == "RETRIEVE"    Test Get Node API    ${listIndex}
+    Run Keyword If    "${type}" == "DELETE"    Test Delete Node API    ${listIndex}
+
+Test Post Node API
+    [Arguments]    ${listIndex}
+    ${nodeList}=    Get Variable Value    ${nlist}
+    ${nodeDict}=    utils.listToDict    ${nodeList}    ${listIndex}
+    ${api_result}=    restApi.ApiPost    CH_CORE_NODES    ${nodeDict}
+    Should Be True    ${api_result}
+
+Test Get Node API
+    [Arguments]    ${listIndex}
+    ${json_result}=    restApi.ApiGet    CH_CORE_NODES
+    ${json_result_list}=    Get From Dictionary    ${json_result}    items
+    Log    ${json_result_list}
+    ${nodeList}=    Get Variable Value    ${nlist}
+    ${nodeDict}=    utils.listToDict    ${nodeList}    ${listIndex}
+    ${name}=    utils.getFieldValueFromDict    ${nodeDict}    name
+    Log    ${name}
+    ${getJsonDict}=    utils.getDictFromListOfDict    ${json_result_list}    name    ${name}
+    ${test_result}=    utils.compare_dict    ${nodeDict}    ${getJsonDict}
+    Should Be True    ${test_result}
+
+Test Delete Node API
+    [Arguments]    ${listIndex}
+    ${json_result}=    restApi.ApiGet    CH_CORE_NODES
+    ${json_result_list}=    Get From Dictionary    ${json_result}    items
+    ${nodeList}=    Get Variable Value    ${nlist}
+    ${nodeDict}=    utils.listToDict    ${nodeList}    ${listIndex}
+    ${name}=    utils.getFieldValueFromDict    ${nodeDict}    name
+    Log    ${name}
+    ${nodeDict}=    utils.getDictFromListofDict    ${json_result_list}    name    ${name}
+    Log    ${nodeDict}
+    ${nodeId}=    utils.getFieldValueFromDict    ${nodeDict}    id
+    Log    ${nodeId}
+    ${test_result}=    restApi.ApiChameleonDelete    CH_CORE_NODES    ${nodeId}
+    Should Be True    ${test_result}
diff --git a/src/test/cord-api/Tests/Ch_SanityFlavors.txt b/src/test/cord-api/Tests/Ch_SanityFlavors.txt
new file mode 100644
index 0000000..72ced6e
--- /dev/null
+++ b/src/test/cord-api/Tests/Ch_SanityFlavors.txt
@@ -0,0 +1,76 @@
+*** Settings ***
+Documentation     Test suite for Sanity Test of Flavors API
+Suite Setup       Read InputFile
+Test Template     Verify Flavor API functionality
+Library           Collections
+Library           String
+Library           OperatingSystem
+Library           XML
+Library           RequestsLibrary
+Library           ../Framework/utils/utils.py
+Library           ../Framework/restApi.py
+
+*** Variables ***
+${USER}           admin
+${PASSWORD}       admin
+${PATHFILE}       ${CURDIR}/data/Ch_Flavors.json
+
+*** Test Cases ***    TYPE        LISTINDEX
+Test Add Flavor-1     CREATE      0
+
+Test Get Flavor-1     RETRIEVE    0
+
+Test Delete Flavor-1
+                      DELETE      0
+
+Test Add Flavor-2     CREATE      1
+
+Test Get Flavor-2     RETRIEVE    1
+
+Test Delete Flavor-2
+                      DELETE      1
+
+*** Keywords ***
+Read InputFile
+    ${flavorList} =    utils.jsonToList    ${PATHFILE}    flavorsInfo
+    Set Suite Variable    ${vList}    ${flavorList}
+
+Verify Flavor API functionality
+    [Arguments]    ${type}    ${listIndex}
+    Run Keyword If    "${type}" == "CREATE"    Test Post Flavors    ${listIndex}
+    Run Keyword If    "${type}" == "RETRIEVE"    Test Get Flavors    ${listIndex}
+    Run Keyword If    "${type}" == "DELETE"    Test Delete Flavors    ${listIndex}
+
+Test Post Flavors
+    [Arguments]    ${listIndex}
+    ${flavorList} =    Get Variable Value    ${vList}
+    ${flavorDict}=    utils.listToDict    ${flavorList}    ${listIndex}
+    ${api_result}=    restApi.ApiPost    CH_CORE_FLAVORS    ${flavorDict}
+    Should Be True    ${api_result}
+
+Test Get Flavors
+    [Arguments]    ${listIndex}
+    ${json_result}=    restApi.ApiGet    CH_CORE_FLAVORS
+    ${json_result_list}=    Get From Dictionary    ${json_result}    items
+    Log    ${json_result_list}
+    ${flavorList}=    Get Variable Value    ${vList}
+    ${inputDict}=    utils.listToDict    ${flavorList}    ${listIndex}
+    ${flavorName}=    utils.getFieldValueFromDict    ${inputDict}    name
+    ${getJsonDict}=    utils.getDictFromListOfDict    ${json_result_list}    name    ${flavorName}
+    ${test_result}=    utils.compare_dict    ${inputDict}    ${getJsonDict}
+    Should Be True    ${json_result}
+
+Test Delete Flavors
+    [Arguments]    ${listIndex}
+    ${json_getresult}=    restApi.ApiGet    CH_CORE_FLAVORS
+    ${json_getresult_list}=    Get From Dictionary    ${json_getresult}    items
+    ${flavorList}=    Get Variable Value    ${vList}
+    ${flavorDict}=    utils.listToDict    ${vList}    ${listIndex}
+    ${flavorName}=    utils.getFieldValueFromDict    ${flavorDict}    name
+    Log    ${flavorName}
+    ${getFlavorDict}=    utils.getDictFromListofDict    ${json_getresult_list}    name    ${flavorName}
+    Log    ${getFlavorDict}
+    ${flavorID}=    utils.getFieldValueFromDict    ${getFlavorDict}    id
+    Log    ${flavorID}
+    ${test_result}=    restApi.ApiChameleonDelete    CH_CORE_FLAVORS    ${flavorID}
+    Should be True    ${test_result}
diff --git a/src/test/cord-api/Tests/Ch_SanityInstance.txt b/src/test/cord-api/Tests/Ch_SanityInstance.txt
new file mode 100644
index 0000000..01a972d
--- /dev/null
+++ b/src/test/cord-api/Tests/Ch_SanityInstance.txt
@@ -0,0 +1,81 @@
+*** Settings ***
+Documentation     Test suite for Sanity Test of Instance API
+Suite Setup       Read InputFile
+Test Template     Verify Instance API functionality
+Library           Collections
+Library           String
+Library           OperatingSystem
+Library           XML
+Library           RequestsLibrary
+Library           ../Framework/utils/utils.py
+Library           ../Framework/restApi.py
+
+*** Variables ***
+${USER}           admin
+${PASSWORD}       admin
+${PATHFILE}       ${CURDIR}/data/Ch_SanityInstance.json
+
+*** Test Cases ***    TYPE        LISTINDEX
+Test Add Instance-1
+                      CREATE      0
+
+Test Get Instance-1
+                      RETRIEVE    0
+
+Test Delete Instance-1
+                      DELETE      0
+
+Test Add Instance-2
+                      CREATE      1
+
+Test Get Instance-2
+                      RETRIEVE    1
+
+Test Delete Instance-2
+                      DELETE      1
+
+*** Keywords ***
+Read InputFile
+    ${instanceList} =    utils.jsonToList    ${PATHFILE}    InstanceInfo
+    Set Suite Variable    ${iList}    ${instanceList}
+
+Verify Instance API functionality
+    [Arguments]    ${type}    ${listIndex}
+    Run Keyword If    "${type}" == "CREATE"    Test Post Instances    ${listIndex}
+    Run Keyword If    "${type}" == "RETRIEVE"    Test Get Instances    ${listIndex}
+    Run Keyword If    "${type}" == "DELETE"    Test Delete Instances    ${listIndex}
+
+Test Post Instances
+    [Arguments]    ${listIndex}
+    ${instanceList} =    Get Variable Value    ${iList}
+    ${instanceDict}=    utils.listToDict    ${instanceList}    ${listIndex}
+    ${api_result}=    restApi.ApiPost    CH_CORE_INSTANCES    ${instanceDict}
+    Should Be True    ${api_result}
+
+Test Get Instances
+    [Arguments]    ${listIndex}
+    ${json_result}=    restApi.ApiGet    CH_CORE_INSTANCES
+    Log    ${json_result}
+    ${json_result_list}=    Get From Dictionary    ${json_result}    items
+    Log    ${json_result_list}
+    ${instanceList}=    Get Variable Value    ${iList}
+    ${inputDict}=    utils.listToDict    ${instanceList}    ${listIndex}
+    ${instanceName}=    utils.getFieldValueFromDict    ${inputDict}    name
+    ${getJsonDict}=    utils.getDictFromListOfDict    ${json_result_list}    name    ${instanceName}
+    ${test_result}=    utils.compare_dict    ${inputDict}    ${getJsonDict}
+    Should Be True    ${json_result}
+
+Test Delete Instances
+    [Arguments]    ${listIndex}
+    ${json_getresult}=    restApi.ApiGet    CH_CORE_INSTANCES
+    ${json_getresult_list}=    Get From Dictionary    ${json_getresult}    items
+    ${instanceList}=    Get Variable Value    ${iList}
+    ${instanceDict}=    utils.listToDict    ${iList}    ${listIndex}
+    ${instanceName}=    utils.getFieldValueFromDict    ${instanceDict}    name
+    Log    ${instanceName}
+    ${getInstanceDict}=    utils.getDictFromListofDict    ${json_getresult_list}    name    ${instanceName}
+    Log    ${getInstanceDict}
+    ${instanceID}=    utils.getFieldValueFromDict    ${getInstanceDict}    id
+    Log    ${instanceID}
+    ${test_result}=    restApi.ApiChameleonDelete    CH_CORE_INSTANCES    ${instanceID}
+    Should be True    ${test_result}
diff --git a/src/test/cord-api/Tests/Ch_ServiceTest.txt b/src/test/cord-api/Tests/Ch_ServiceTest.txt
new file mode 100644
index 0000000..9f06ad1
--- /dev/null
+++ b/src/test/cord-api/Tests/Ch_ServiceTest.txt
@@ -0,0 +1,104 @@
+*** Settings ***
+Documentation     Test suite for Service verification
+Suite Setup       Read InputFile
+Test Template     Verify Service functionality
+Library           Collections
+Library           String
+Library           OperatingSystem
+Library           XML
+Library           RequestsLibrary
+Library           ../Framework/utils/utils.py
+Library           ../Framework/restApi.py
+
+*** Variables ***
+${USER}           admin
+${PASSWORD}       admin
+${PATHFILE}       ${CURDIR}/data/Ch_Service.json
+${PATHFILE2}      ${CURDIR}/data/Ch_putService.json
+
+*** Test Cases ***    TYPE        LISTINDEX
+Test Post Service-1
+                      CREATE      0
+
+Test Get Service-1    RETRIEVE    0
+
+Test Edit Service-1
+                      PUT         0
+
+Test Delete Service-1
+                      DELETE      0
+
+Test Post Service-2
+                      CREATE      1
+
+Test Get Service-2    RETRIEVE    1
+
+Test Edit Service-2
+                      PUT         1
+
+Test Delete Service-2
+                      DELETE      1
+
+*** Keywords ***
+Read InputFile
+    ${serviceList}=    utils.jsonToList    ${PATHFILE}    ServiceInfo
+    Set Suite Variable    ${slist}    ${serviceList}
+    ${putServiceList}=    utils.jsonToList    ${PATHFILE2}    ServiceInfo
+    Set Suite Variable    ${putList}    ${putServiceList}
+
+Verify Service functionality
+    [Arguments]    ${type}    ${listIndex}
+    Run Keyword If    "${type}" == "CREATE"    Test Post Service API    ${listIndex}
+    Run Keyword If    "${type}" == "RETRIEVE"    Test Get Service API    ${listIndex}
+    Run Keyword If    "${type}" == "PUT"    Test Edit Service API    ${listIndex}
+    Run Keyword If    "${type}" == "DELETE"    Test Delete Service API    ${listIndex}
+
+Test Post Service API
+    [Arguments]    ${listIndex}
+    ${serviceList} =    Get Variable Value    ${slist}
+    ${serviceDict}=    utils.listToDict    ${serviceList}    ${listIndex}
+    ${api_result}=    restApi.ApiPost    CH_CORE_SERVICES    ${serviceDict}
+    Should Be True    ${api_result}
+
+Test Get Service API
+    [Arguments]    ${listIndex}
+    ${json_result}=    restApi.ApiGet    CH_CORE_SERVICES
+    ${json_result_list}=    Get From Dictionary    ${json_result}    items
+    Log    ${json_result_list}
+    Log    ${json_result}
+    ${serviceList}=    Get Variable Value    ${slist}
+    ${serviceDict}=    utils.listToDict    ${serviceList}    ${listIndex}
+    ${name}=    utils.getFieldValueFromDict    ${serviceDict}    name
+    ${getJsonDict}=    utils.getDictFromListOfDict    ${json_result_list}    name    ${name}
+    ${test_result}=    utils.compare_dict    ${serviceDict}    ${getJsonDict}
+    Should Be True    ${test_result}
+
+Test Edit Service API
+    [Arguments]    ${listIndex}
+    ${get_result}=    restApi.ApiGet    CH_CORE_SERVICES
+    ${get_result_list}=    Get From Dictionary    ${get_result}    items
+    ${putServiceList}=    Get Variable Value    ${putList}
+    ${putServiceDict}=    utils.listToDict    ${putServiceList}    ${listIndex}
+    ${name}=    utils.getFieldValueFromDict    ${putServiceDict}    name
+    ${serviceDict}=    utils.getDictFromListofDict    ${get_result_list}    name    ${name}
+    ${serviceID}=    utils.getFieldValueFromDict    ${serviceDict}    id
+    ${api_result}=    restApi.ApiChameleonPut    CH_CORE_SERVICES    ${putServiceDict}    ${serviceID}
+    Should Be True    ${api_result}
+    ${getResultAfterPut}=    restApi.ApiChameleonGet    CH_CORE_SERVICES    ${serviceID}
+    ${test_result}=    utils.compare_dict    ${putServiceDict}    ${getResultAfterPut}
+    Should Be True    ${test_result}
+
+Test Delete Service API
+    [Arguments]    ${listIndex}
+    ${json_result}=    restApi.ApiGet    CH_CORE_SERVICES
+    ${json_result_list}=    Get From Dictionary    ${json_result}    items
+    ${serviceList}=    Get Variable Value    ${slist}
+    ${serviceDict}=    utils.listToDict    ${serviceList}    ${listIndex}
+    ${name}=    utils.getFieldValueFromDict    ${serviceDict}    name
+    Log    ${name}
+    ${serviceDict}=    utils.getDictFromListofDict    ${json_result_list}    name    ${name}
+    Log    ${serviceDict}
+    ${serviceId}=    utils.getFieldValueFromDict    ${serviceDict}    id
+    Log    ${serviceId}
+    ${test_result}=    restApi.ApiChameleonDelete    CH_CORE_SERVICES    ${serviceId}
+    Should Be True    ${test_result}
diff --git a/src/test/cord-api/Tests/Ch_SiteTest.txt b/src/test/cord-api/Tests/Ch_SiteTest.txt
new file mode 100644
index 0000000..0748d18
--- /dev/null
+++ b/src/test/cord-api/Tests/Ch_SiteTest.txt
@@ -0,0 +1,97 @@
+*** Settings ***
+Documentation     Test suite for Site verification
+Suite Setup       Read InputFile
+Test Template     Verify Site functionality
+Library           Collections
+Library           String
+Library           OperatingSystem
+Library           XML
+Library           RequestsLibrary
+Library           ../Framework/utils/utils.py
+Library           ../Framework/restApi.py
+
+*** Variables ***
+${USER}           admin
+${PASSWORD}       admin
+${PATHFILE}       ${CURDIR}/data/Ch_Site.json
+${PATHFILE2}      ${CURDIR}/data/Ch_putSite.json
+
+*** Test Cases ***    TYPE        LISTINDEX
+Test Post Site-1      CREATE      0
+
+Test Get Site-1       RETRIEVE    0
+
+Test Edit Site-1      PUT         0
+
+Test Delete Site-1    DELETE      0
+
+Test Post Site-2      CREATE      1
+
+Test Get Site-2       RETRIEVE    1
+
+Test Edit Site-2      PUT         1
+
+Test Delete Site-2    DELETE      1
+
+*** Keywords ***
+Read InputFile
+    ${siteList}=    utils.jsonToList    ${PATHFILE}    SiteInfo
+    Set Suite Variable    ${slist}    ${siteList}
+    ${putSiteList}=    utils.jsonToList    ${PATHFILE2}    SiteInfo
+    Set Suite Variable    ${putList}    ${putSiteList}
+
+Verify Site functionality
+    [Arguments]    ${type}    ${listIndex}
+    Run Keyword If    "${type}" == "CREATE"    Test Post Site API    ${listIndex}
+    Run Keyword If    "${type}" == "RETRIEVE"    Test Get Site API    ${listIndex}
+    Run Keyword If    "${type}" == "PUT"    Test Edit Site API    ${listIndex}
+    Run Keyword If    "${type}" == "DELETE"    Test Delete Site API    ${listIndex}
+
+Test Post Site API
+    [Arguments]    ${listIndex}
+    ${siteList} =    Get Variable Value    ${slist}
+    ${siteDict}=    utils.listToDict    ${siteList}    ${listIndex}
+    ${api_result}=    restApi.ApiPost    CH_CORE_SITES    ${siteDict}
+    Should Be True    ${api_result}
+
+Test Get Site API
+    [Arguments]    ${listIndex}
+    ${json_result}=    restApi.ApiGet    CH_CORE_SITES
+    ${json_result_list}=    Get From Dictionary    ${json_result}    items
+    Log    ${json_result_list}
+    ${siteList}=    Get Variable Value    ${slist}
+    ${siteDict}=    utils.listToDict    ${siteList}    ${listIndex}
+    ${name}=    utils.getFieldValueFromDict    ${siteDict}    name
+    ${getJsonDict}=    utils.getDictFromListOfDict    ${json_result_list}    name    ${name}
+    ${test_result}=    utils.compare_dict    ${siteDict}    ${getJsonDict}
+    Should Be True    ${test_result}
+
+Test Edit Site API
+    [Arguments]    ${listIndex}
+    ${get_result}=    restApi.ApiGet    CH_CORE_SITES
+    ${get_result_list}=    Get From Dictionary    ${get_result}    items
+    ${putSiteList}=    Get Variable Value    ${putList}
+    ${putSiteDict}=    utils.listToDict    ${putSiteList}    ${listIndex}
+    ${name}=    utils.getFieldValueFromDict    ${putSiteDict}    name
+    ${siteDict}=    utils.getDictFromListofDict    ${get_result_list}    name    ${name}
+    ${siteID}=    utils.getFieldValueFromDict    ${siteDict}    id
+    ${api_result}=    restApi.ApiChameleonPut    CH_CORE_SITES    ${putSiteDict}    ${siteID}
+    Should Be True    ${api_result}
+    ${getResultAfterPut}=    restApi.ApiChameleonGet    CH_CORE_SITES    ${siteID}
+    ${test_result}=    utils.compare_dict    ${putSiteDict}    ${getResultAfterPut}
+    Should Be True    ${test_result}
+
+Test Delete Site API
+    [Arguments]    ${listIndex}
+    ${json_result}=    restApi.ApiGet    CH_CORE_SITES
+    ${json_result_list}=    Get From Dictionary    ${json_result}    items
+    ${siteList}=    Get Variable Value    ${slist}
+    ${siteDict}=    utils.listToDict    ${siteList}    ${listIndex}
+    ${name}=    utils.getFieldValueFromDict    ${siteDict}    name
+    Log    ${name}
+    ${siteDict}=    utils.getDictFromListofDict    ${json_result_list}    name    ${name}
+    Log    ${siteDict}
+    ${siteId}=    utils.getFieldValueFromDict    ${siteDict}    id
+    Log    ${siteId}
+    ${test_result}=    restApi.ApiChameleonDelete    CH_CORE_SITES    ${siteId}
+    Should Be True    ${test_result}
diff --git a/src/test/cord-api/Tests/Ch_SliceTest.txt b/src/test/cord-api/Tests/Ch_SliceTest.txt
new file mode 100644
index 0000000..565e1cb
--- /dev/null
+++ b/src/test/cord-api/Tests/Ch_SliceTest.txt
@@ -0,0 +1,72 @@
+*** Settings ***
+Documentation     Test suite for Slice API verification
+Suite Setup       Read InputFile
+Test Template     Verify Slice API functionality
+Library           Collections
+Library           String
+Library           OperatingSystem
+Library           XML
+Library           RequestsLibrary
+Library           ../Framework/utils/utils.py
+Library           ../Framework/restApi.py
+Variables         ../Properties/RestApiProperties.py
+
+*** Variables ***
+${USER}           admin
+${PASSWORD}       admin
+${PATHFILE}       ${CURDIR}/data/Ch_Slice.json
+${IP}             ${SERVER_IP}
+${PORT}           ${SERVER_PORT}
+
+*** Test Cases ***    TYPE        LISTINDEX
+Test Add Slice-1      CREATE      0
+
+Test Get Slice-1      RETRIEVE    0
+
+Test Delete Slice-1
+                      DELETE      0
+
+*** Keywords ***
+Read InputFile
+    ${sliceList} =    utils.jsonToList    ${PATHFILE}    SliceInfo
+    Set Suite Variable    ${sList}    ${sliceList}
+
+Verify Slice API functionality
+    [Arguments]    ${type}    ${listIndex}
+    Run Keyword If    "${type}" == "CREATE"    Test Post Slice API    ${listIndex}
+    Run Keyword If    "${type}" == "RETRIEVE"    Test Get Slice API    ${listIndex}
+    Run Keyword If    "${type}" == "DELETE"    Test Delete Slice API    ${listIndex}
+
+Test Post Slice API
+    [Arguments]    ${listIndex}
+    ${sliceList} =    Get Variable Value    ${sList}
+    ${sliceDict}=    utils.listToDict    ${sliceList}    ${listIndex}
+    ${api_result}=    restApi.ApiPost    CH_CORE_SLICES    ${sliceDict}
+    Should Be True    ${api_result}
+
+Test Get Slice API
+    [Arguments]    ${listIndex}
+    ${json_result}=    restApi.ApiGet    CH_CORE_SLICES
+    ${json_result_list}=    Get From Dictionary    ${json_result}    items
+    Log    ${json_result_list}
+    ${sliceList}=    Get Variable Value    ${sList}
+    ${sliceDict}=    utils.listToDict    ${sliceList}    ${listIndex}
+    ${sliceName}=    Get From Dictionary    ${sliceDict}    name
+    ${getJsonDict}=    utils.getDictFromListOfDict    ${json_result_list}    name    ${sliceName}
+    ${test_result}=    utils.compare_dict    ${sliceDict}    ${getJsonDict}
+    Should Be True    ${json_result}
+
+Test Delete Slice API
+    [Arguments]    ${listIndex}
+    ${json_getresult}=    restApi.ApiGet    CH_CORE_SLICES
+    ${json_getresult_list}=    Get From Dictionary    ${json_getresult}    items
+    ${sliceList}=    Get Variable Value    ${sList}
+    ${sliceDict}=    utils.listToDict    ${sList}    ${listIndex}
+    ${sliceName}=    utils.getFieldValueFromDict    ${sliceDict}    name
+    Log    ${sliceName}
+    ${getSliceDict}=    utils.getDictFromListofDict    ${json_getresult_list}    name    ${sliceName}
+    Log    ${getSliceDict}
+    ${sliceID}=    utils.getFieldValueFromDict    ${getSliceDict}    id
+    Log    ${sliceID}
+    ${test_result}=    restApi.ApiChameleonDelete    CH_CORE_SLICES    ${sliceID}
+    Should be True    ${test_result}
diff --git a/src/test/cord-api/Tests/Ch_SubscriberTest.txt b/src/test/cord-api/Tests/Ch_SubscriberTest.txt
new file mode 100644
index 0000000..0d0e2e3
--- /dev/null
+++ b/src/test/cord-api/Tests/Ch_SubscriberTest.txt
@@ -0,0 +1,113 @@
+*** Settings ***
+Documentation     Test suite for Subscriber verification
+Suite Setup       Read InputFile
+Test Template     Verify Subscriber functionality
+Library           Collections
+Library           String
+Library           OperatingSystem
+Library           XML
+Library           RequestsLibrary
+Library           ../Framework/utils/utils.py
+Library           ../Framework/restApi.py
+
+*** Variables ***
+${USER}           admin
+${PASSWORD}       admin
+${PATHFILE}       ${CURDIR}/data/Ch_Subscriber.json
+${PATHFILE2}      ${CURDIR}/data/Ch_putSubscriber.json
+
+*** Test Cases ***    TYPE        LISTINDEX
+Test Create Subscriber-1
+                      CREATE      0
+
+Test Get_Subscriber-1
+                      RETRIEVE    0
+
+Test Edit Subscriber-1
+                      PUT         0
+
+Test Create Subscriber-2
+                      CREATE      1
+
+Test Get_Subscriber-2
+                      RETRIEVE    1
+
+Test Edit Subscriber-2
+                      PUT         1
+
+Test Create Subscriber-3
+                      CREATE      2
+
+Test Get_Subcriber-3
+                      RETRIEVE    2
+
+Test Edit Subscriber-3
+                      PUT         2
+
+*** Keywords ***
+Read InputFile
+    ${subscriberList} =    utils.jsonToList    ${PATHFILE}    SubscriberInfo
+    Set Suite Variable    ${slist}    ${subscriberList}
+    ${putSubscriberList}=    utils.jsonToList    ${PATHFILE2}    SubscriberInfo
+    Set Suite Variable    ${putList}    ${putSubscriberList}
+
+Verify Subscriber functionality
+    [Arguments]    ${type}    ${listIndex}
+    Run Keyword If    "${type}" == "CREATE"    Test Post Subscriber API    ${listIndex}
+    Run Keyword If    "${type}" == "RETRIEVE"    Test Get Subscriber API    ${listIndex}
+    Run Keyword If    "${type}" == "DELETE"    Test Delete Subscriber API    ${listIndex}
+    Run Keyword If    "${type}" == "PUT"    Test Edit Subscriber API    ${listIndex}
+
+Test Post Subscriber API
+    [Arguments]    ${listIndex}
+    ${subscriberList} =    Get Variable Value    ${slist}
+    ${subscriberDict}=    utils.listToDict    ${subscriberList}    ${listIndex}
+    ${api_result}=    restApi.ApiPost    VOLT_SUBSCRIBER    ${subscriberDict}
+    Should Be True    ${api_result}
+
+Test Get Subscriber API
+    [Arguments]    ${listIndex}
+    ${json_result}=    restApi.ApiGet    VOLT_SUBSCRIBER
+    Log    ${json_result}
+    ${subscriberList}=    Get Variable Value    ${slist}
+    ${subscriberDict}=    utils.listToDict    ${subscriberList}    ${listIndex}
+    ${AccountNum}=    utils.getFieldValueFromDict    ${subscriberDict}    service_specific_id
+    Log    ${AccountNum}
+    ${json_result_list}=    Get From dictionary    ${json_result}    items
+    ${getJsonDict}=    utils.getDictFromListOfDict    ${json_result_list}    service_specific_id    ${AccountNum}
+    Log    ${getJsonDict}
+    Log    ${subscriberDict}
+    ${test_result}=    utils.compare_dict    ${subscriberDict}    ${getJsonDict}
+    Should Be True    ${test_result}
+
+Test Edit Subscriber API
+    [Arguments]    ${listIndex}
+    ${get_result}=    restApi.ApiGet    VOLT_SUBSCRIBER
+    ${get_result_list}=    Get From Dictionary    ${get_result}    items
+    ${putSubscriberList}=    Get Variable Value    ${putList}
+    ${putSubscriberDict}=    utils.listToDict    ${putSubscriberList}    ${listIndex}
+    ${AcctNum}=    utils.getFieldValueFromDict    ${putSubscriberDict}    service_specific_id
+    Log    ${AcctNum}
+    ${subscriberDict}=    utils.getDictFromListofDict    ${get_result_list}    service_specific_id    ${AcctNum}
+    ${subscriberID}=    utils.getFieldValueFromDict    ${subscriberDict}    id
+    ${api_result}=    restApi.ApiChameleonPut    VOLT_SUBSCRIBER    ${putSubscriberDict}    ${subscriberID}
+    Should Be True    ${api_result}
+    ${getResultAfterPut}=    restApi.ApiGet    VOLT_SUBSCRIBER
+    ${getResultList_AfterPut}=    Get From Dictionary    ${getResultAfterPut}    items
+    ${getResultDict}=    utils.getDictFromListOfDict    ${getResultList_AfterPut}    service_specific_id    ${AcctNum}
+    ${test_result}=    utils.compare_dict    ${putSubscriberDict}    ${getResultDict}
+    Should Be True    ${test_result}
+
+Test Delete Subscriber API
+    [Arguments]    ${listIndex}
+    ${json_result}=    restApi.ApiGet    VOLT_SUBSCRIBER
+    ${subscriberList}=    Get Variable Value    ${slist}
+    ${subscriberDict}=    utils.listToDict    ${subscriberList}    ${listIndex}
+    ${AcctNum}=    utils.getFieldValueFromDict    ${subscriberDict}    service_specific_id
+    Log    ${AcctNum}
+    ${subscriberDict}=    utils.getDictFromListofDict    ${json_result}    service_specific_id    ${AcctNum}
+    Log    ${subscriberDict}
+    ${subscriberId}=    utils.getFieldValueFromDict    ${subscriberDict}    id
+    Log    ${subscriberId}
+    ${test_result}=    restApi.ApiDelete    VOLT_SUBSCRIBER    ${subscriberId}
+    Should Be True    ${test_result}
diff --git a/src/test/cord-api/Tests/Ch_UsersTest.txt b/src/test/cord-api/Tests/Ch_UsersTest.txt
new file mode 100644
index 0000000..cda8899
--- /dev/null
+++ b/src/test/cord-api/Tests/Ch_UsersTest.txt
@@ -0,0 +1,80 @@
+*** Settings ***
+Documentation     Test suite for Users API
+Suite Setup       Read InputFile
+Test Template     Verify User functionality
+Library           Collections
+Library           String
+Library           OperatingSystem
+Library           XML
+Library           RequestsLibrary
+Library           ../Framework/utils/utils.py
+Library           ../Framework/restApi.py
+
+*** Variables ***
+${USER}           admin
+${PASSWORD}       admin
+${PATHFILE}       ${CURDIR}/data/Ch_Users.json
+
+*** Test Cases ***    TYPE        LISTINDEX
+Test Add User-1       CREATE      0
+
+Test Get User-1       RETRIEVE    0
+
+Test Delete User-1    DELETE      0
+
+Test Add User-2       CREATE      1
+
+Test Get User-2       RETRIEVE    1
+
+Test Delete User-2    DELETE      1
+
+Test Add User-3       CREATE      2
+
+Test Get User-3       RETRIEVE    2
+
+Test Delete User-3    DELETE      2
+
+*** Keywords ***
+Read InputFile
+    ${userList} =    utils.jsonToList    ${PATHFILE}    UserInfo
+    Set Suite Variable    ${uList}    ${userList}
+
+Verify User functionality
+    [Arguments]    ${type}    ${listIndex}
+    Run Keyword If    "${type}" == "CREATE"    Test Post Users API    ${listIndex}
+    Run Keyword If    "${type}" == "RETRIEVE"    Test Get Users API    ${listIndex}
+    Run Keyword If    "${type}" == "DELETE"    Test Delete Users API    ${listIndex}
+
+Test Post Users API
+    [Arguments]    ${listIndex}
+    ${userList} =    Get Variable Value    ${uList}
+    ${userDict}=    utils.listToDict    ${userList}    ${listIndex}
+    ${api_result}=    restApi.ApiPost    CH_CORE_USERS    ${userDict}
+    Should Be True    ${api_result}
+
+Test Get Users API
+    [Arguments]    ${listIndex}
+    ${json_result}=    restApi.ApiGet    CH_CORE_USERS
+    ${json_result_list}=    Get From Dictionary    ${json_result}    items
+    Log    ${json_result_list}
+    ${userList}=    Get Variable Value    ${uList}
+    ${inputDict}=    utils.listToDict    ${userList}    ${listIndex}
+    ${email}=    utils.getFieldValueFromDict    ${inputDict}    email
+    ${getJsonDict}=    utils.getDictFromListOfDict    ${json_result_list}    email    ${email}
+    ${test_result}=    utils.compare_dict    ${inputDict}    ${getJsonDict}
+    Should Be True    ${json_result}
+
+Test Delete Users API
+    [Arguments]    ${listIndex}
+    ${json_getresult}=    restApi.ApiGet    CH_CORE_USERS
+    ${json_getresult_list}=    Get From Dictionary    ${json_getresult}    items
+    ${userList}=    Get Variable Value    ${uList}
+    ${userDict}=    utils.listToDict    ${uList}    ${listIndex}
+    ${email}=    utils.getFieldValueFromDict    ${userDict}    email
+    Log    ${email}
+    ${getUserDict}=    utils.getDictFromListofDict    ${json_getresult_list}    email    ${email}
+    Log    ${getUserDict}
+    ${userID}=    utils.getFieldValueFromDict    ${getUserDict}    id
+    Log    ${userID}
+    ${test_result}=    restApi.ApiChameleonDelete    CH_CORE_USERS    ${userID}
+    Should be True    ${test_result}
diff --git a/src/test/cord-api/Tests/Ch_VoltTenant.txt b/src/test/cord-api/Tests/Ch_VoltTenant.txt
new file mode 100644
index 0000000..60b4a41
--- /dev/null
+++ b/src/test/cord-api/Tests/Ch_VoltTenant.txt
@@ -0,0 +1,69 @@
+*** Settings ***
+Documentation     Test suite for volt Tenant Verification - Chameleon API
+Suite Setup       Read InputFile
+Test Template     Verify volt Tenant Functionality
+Library           Collections
+Library           String
+Library           OperatingSystem
+Library           XML
+Library           RequestsLibrary
+Library           ../Framework/utils/utils.py
+Library           ../Framework/restApi.py
+
+*** Variables ***
+${USER}           admin
+${PASSWORD}       admin
+${PATHFILE}       ${CURDIR}/data/Ch_VoltTenant.json
+${PATHFILE2}      ${CURDIR}/data/Ch_putVoltTenant.json
+
+*** Test Cases ***    TYPE      LISTINDEX
+Test volt Tenant-1    CREATE    0
+
+Test volt Tenant-2    CREATE    1
+
+Test volt Tenant-3    CREATE    2
+
+*** Keywords ***
+Read InputFile
+    ${voltList} =    utils.jsonToList    ${PATHFILE}    voltSubscriberInfo
+    Set Suite Variable    ${vlist}    ${voltList}
+    ${putvoltList}=    utils.jsonToList    ${PATHFILE2}    voltSubscriberInfo
+    Set Suite Variable    ${putList}    ${putvoltList}
+
+Verify volt Tenant Functionality
+    [Arguments]    ${type}    ${listIndex}
+    Run Keyword If    "${type}" == "CREATE"    Test Post volt Tenant API    ${listIndex}
+
+Test Post volt Tenant API
+    [Arguments]    ${listIndex}
+    ${voltTenantList} =    Get Variable Value    ${vlist}
+    ${voltTenantDict}=    utils.listToDict    ${voltTenantList}    ${listIndex}
+    ${voltDict}=    Get From Dictionary    ${voltTenantDict}    voltTenant
+    ${service_specific_id}=    Get From Dictionary    ${voltTenantDict}    service_specific_id
+    ${get_result}=    restApi.ApiGet    VOLT_SUBSCRIBER
+    ${get_result_list}=    Get From Dictionary    ${get_result}    items
+    ${subscriberDict}=    utils.getDictFromListofDict    ${get_result_list}    service_specific_id    ${service_specific_id}
+    ${subscriberID}=    utils.getFieldValueFromDict    ${subscriberDict}    id
+    Log    ${subscriberID}
+    ${updatedVoltDict}=    utils.setFieldValueInDict    ${voltDict}    subscriber_root_id    ${subscriberID}
+    ${api_result}=    restApi.ApiPost    VOLT_TENANT    ${updatedVoltDict}
+    Should Be True    ${api_result}
+    # Verifying Get operation after POST
+    ${getVolt_result}=    restApi.ApiGet    VOLT_TENANT
+    ${getVolt_result_list}=    Get From Dictionary    ${getVolt_result}    items
+    ${getJsonDict}=    utils.getDictFromListOfDict    ${getVolt_result_list}    subscriber_root_id    ${subscriberID}
+    ${test_result}=    utils.compare_dict    ${voltDict}    ${getJsonDict}
+    Should Be True    ${test_result}
+    # Verifying PUT operation
+    ${putvoltList}=    Get Variable Value    ${putList}
+    ${putVoltDict}=    utils.listToDict    ${putvoltList}    ${listIndex}
+    ${putvoltTenantDict}=    Get From Dictionary    ${putVoltDict}    voltTenant
+    ${voltID}=    utils.getFieldValueFromDict    ${getJsonDict}    id
+    ${put_result}=    restApi.ApiChameleonPut    VOLT_TENANT    ${putvoltTenantDict}    ${voltID}
+    Should Be True    ${put_result}
+    # Verifying Get after PUT operation
+    #${getVolt_afterPut}=    restApi.ApiGet    VOLT_TENANT
+    #${getVoltDict}=    utils.getDictFromListofDict    ${getVolt_afterPut}    id    ${voltID}
+    ${getVoltDict}=    utils.ApiChemeleonGet    VOLT_TENANT    ${voltID}
+    ${result_afterPut}=    utils.compare_dict    ${putvoltTenantDict}    ${getVoltDict}
+    Should Be True    ${result_afterPut}
diff --git a/src/test/cord-api/Tests/Ch_defaultImagesCheck.txt b/src/test/cord-api/Tests/Ch_defaultImagesCheck.txt
new file mode 100644
index 0000000..541cf80
--- /dev/null
+++ b/src/test/cord-api/Tests/Ch_defaultImagesCheck.txt
@@ -0,0 +1,37 @@
+*** Settings ***
+Documentation     Test suite for checking default images for R-CORD
+Suite Setup       Read InputFile
+Test Template     Verify Image Check
+Library           Collections
+Library           String
+Library           OperatingSystem
+Library           XML
+Library           RequestsLibrary
+Library           ../Framework/utils/utils.py
+Library           ../Framework/restApi.py
+
+*** Variables ***
+${USER}           admin
+${PASSWORD}       admin
+${PATHFILE}       ${CURDIR}/data/defaultImages.json
+
+*** Test Cases ***    TYPE
+Test Default Images on R-CORD
+                      IMAGE
+
+*** Keywords ***
+Read InputFile
+    ${imageList}=    utils.jsonToList    ${PATHFILE}    imagesInfo
+    Set Suite Variable    ${ilist}    ${imageList}
+
+Verify Image Check
+    [Arguments]    ${type}
+    Run Keyword If    "${type}" == "IMAGE"    Test Image Check
+
+Test Image Check
+    ${json_result}=    restApi.ApiGet    CH_CORE_IMAGES
+    ${json_result_list}=    Get From Dictionary    ${json_result}    items
+    Log    ${json_result_list}
+    ${imageList}=    Get Variable Value    ${ilist}
+    ${test_result}=    utils.compare_list_of_dicts    ${imageList}    ${json_result_list}
+    Should Be True    ${test_result}
diff --git a/src/test/cord-api/Tests/UISliceTest.txt b/src/test/cord-api/Tests/UISliceTest.txt
new file mode 100644
index 0000000..d1cd2e9
--- /dev/null
+++ b/src/test/cord-api/Tests/UISliceTest.txt
@@ -0,0 +1,87 @@
+*** Settings ***
+Documentation     Test suite for Slice API verification
+Suite Setup       Read InputFile
+Test Template     Verify Slice API functionality
+Library           Collections
+Library           String
+Library           OperatingSystem
+Library           XML
+Library           RequestsLibrary
+Library           ../Framework/utils/utils.py
+Library           ../Framework/restApi.py
+| Variables |     ../Properties/RestApiProperties.py
+
+*** Variables ***
+${USER}           admin
+${PASSWORD}       admin
+${PATHFILE}       ${CURDIR}/data/Slice.json
+| ${IP} |         ${SERVER_IP}
+| ${PORT} |       ${SERVER_PORT}
+
+*** Test Cases ***    TYPE        LISTINDEX
+Test Add Slice-1      CREATE      0
+
+Test Get Slice-1      RETRIEVE    0
+
+Test Delete Slice-1   DELETE      0
+
+Test Add Slice-2      CREATE      1
+
+Test Get Slice-2      RETRIEVE    1
+
+Test Delete Slice-2   DELETE      1
+
+*** Keywords ***
+Read InputFile
+    ${sliceList} =    utils.jsonToList    ${PATHFILE}    SliceInfo
+    Set Suite Variable    ${sList}    ${sliceList}
+    ${site}=    Catenate    SEPARATOR=    http://    ${IP}    :    ${PORT}    /api/core/sites/1/
+    Set Suite Variable    ${site}    ${site}
+    ${creator}=    Catenate    SEPARATOR=    http://    ${IP}    :    ${PORT}    /api/core/users/1/
+    Set Suite Variable    ${creator}    ${creator}
+
+Verify Slice API functionality
+    [Arguments]    ${type}    ${listIndex}
+    Run Keyword If    "${type}" == "CREATE"    Test Post Slice API    ${listIndex}
+    Run Keyword If    "${type}" == "RETRIEVE"    Test Get Slice API    ${listIndex}
+    Run Keyword If    "${type}" == "DELETE"    Test Delete Slice API    ${listIndex}
+
+Test Post Slice API
+    [Arguments]    ${listIndex}
+    ${sliceList} =    Get Variable Value    ${sList}
+    ${sliceDict}=    utils.listToDict    ${sliceList}    ${listIndex}
+    ${site}=    Get Variable Value    ${site}
+    ${sliceDict}=     utils.setFieldValueInDict   ${sliceDict}   site   ${site}
+    ${creator}=    Get Variable Value    ${creator}
+    ${sliceDict}=     utils.setFieldValueInDict   ${sliceDict}   creator   ${creator}
+    ${api_result}=    restApi.ApiPost    CORE_SLICES    ${sliceDict}
+    Should Be True    ${api_result}
+
+Test Get Slice API
+    [Arguments]    ${listIndex}
+    ${json_result}=    restApi.ApiGet    CORE_SLICES
+    Log    ${json_result}
+    ${sliceList}=    Get Variable Value    ${sList}
+    ${sliceDict}=    utils.listToDict    ${sliceList}    ${listIndex}
+    ${site}=    Get Variable Value    ${site}
+    ${sliceDict}=     utils.setFieldValueInDict   ${sliceDict}   site   ${site}
+    ${creator}=    Get Variable Value    ${creator}
+    ${sliceDict}=     utils.setFieldValueInDict   ${sliceDict}   creator   ${creator}
+    ${ID}=    utils.getFieldValueFromDict    ${sliceDict}    id
+    ${getJsonDict}=    utils.getDictFromListOfDict    ${json_result}    id    ${ID}
+    ${test_result}=    utils.compare_dict    ${sliceDict}    ${getJsonDict}
+    Should Be True    ${json_result}
+
+Test Delete Slice API
+    [Arguments]    ${listIndex}
+    ${json_getresult}=    restApi.ApiGet    CORE_SLICES
+    ${sliceList}=    Get Variable Value    ${sList}
+    ${sliceDict}=    utils.listToDict    ${sList}    ${listIndex}
+    ${sliceName}=    utils.getFieldValueFromDict    ${sliceDict}    name
+    Log    ${sliceName}
+    ${getSliceDict}=    utils.getDictFromListofDict    ${json_getresult}    name    ${sliceName}
+    Log    ${getSliceDict}
+    ${sliceID}=    utils.getFieldValueFromDict    ${getSliceDict}    id
+    Log    ${sliceID}
+    ${test_result}=    restApi.ApiDelete    CORE_SLICES    ${sliceID}
+    Should be True    ${test_result}
diff --git a/src/test/cord-api/Tests/data/Ch_Deployment.json b/src/test/cord-api/Tests/data/Ch_Deployment.json
new file mode 100644
index 0000000..07f0f56
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_Deployment.json
@@ -0,0 +1,11 @@
+{
+    "DeploymentInfo":
+    [
+        {
+            "name": "test-deployment-1"
+        },
+        {
+            "name": "test-deployment-2"
+        }
+    ]
+}
diff --git a/src/test/cord-api/Tests/data/Ch_Flavors.json b/src/test/cord-api/Tests/data/Ch_Flavors.json
new file mode 100644
index 0000000..0437db2
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_Flavors.json
@@ -0,0 +1,12 @@
+{
+     "flavorsInfo": [
+            {
+            "flavor": "mq.test",
+            "name": "mq.test"
+            },
+            {
+            "flavor": "mq.test2",
+            "name": "mq.test2"
+             }
+    ]
+}
diff --git a/src/test/cord-api/Tests/data/Ch_Node.json b/src/test/cord-api/Tests/data/Ch_Node.json
new file mode 100644
index 0000000..245bcf3
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_Node.json
@@ -0,0 +1,13 @@
+{
+    "NodeInfo":
+    [
+        {
+            "name": "test-node-1",
+            "site_deployment_id": 1
+        },
+        {
+            "name": "test-node-2",
+            "site_deployment_id": 1
+        }
+    ]
+}
diff --git a/src/test/cord-api/Tests/data/Ch_SanityInstance.json b/src/test/cord-api/Tests/data/Ch_SanityInstance.json
new file mode 100644
index 0000000..d707b52
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_SanityInstance.json
@@ -0,0 +1,20 @@
+{
+     "InstanceInfo": [
+            {
+            "name": "test-instance1",
+            "image_id": 1,
+            "slice_id": 1,
+            "deployment_id": 1,
+            "node_id": 1,
+            "creator_id" : 1
+            },
+            {
+            "name": "test-instance",
+            "image_id": 1,
+            "slice_id": 1,
+            "deployment_id": 1,
+            "node_id": 1,
+            "creator_id" : 1
+             }
+    ]
+}
diff --git a/src/test/cord-api/Tests/data/Ch_Service.json b/src/test/cord-api/Tests/data/Ch_Service.json
new file mode 100644
index 0000000..0dd5193
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_Service.json
@@ -0,0 +1,13 @@
+{
+    "ServiceInfo":
+    [
+        {
+            "name": "test-service-1",
+            "description": "Test service No.1"
+        },
+        {
+            "name": "test-service-2",
+            "description": "Test service No.2"
+        }
+    ]
+}
diff --git a/src/test/cord-api/Tests/data/Ch_Site.json b/src/test/cord-api/Tests/data/Ch_Site.json
new file mode 100644
index 0000000..feffe3b
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_Site.json
@@ -0,0 +1,15 @@
+{
+    "SiteInfo":
+    [
+        {
+            "name": "test-site-1",
+            "login_base":"testsite1",
+            "abbreviated_name":"ts1"
+        },
+        {
+            "name": "test-site-2",
+            "login_base":"testsite2",
+            "abbreviated_name":"ts2"
+        }
+    ]
+}
diff --git a/src/test/cord-api/Tests/data/Ch_Slice.json b/src/test/cord-api/Tests/data/Ch_Slice.json
new file mode 100644
index 0000000..ee795b7
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_Slice.json
@@ -0,0 +1,14 @@
+{
+    "SliceInfo": [
+        {
+            "name": "mysite_test-slice-1",
+            "site_id": 1,
+            "creator_id": 1
+        },
+        {
+            "name": "mysite_test-slice-2",
+            "site_id": 2,
+            "creator_id": 2
+        }
+    ]
+}
diff --git a/src/test/cord-api/Tests/data/Ch_Subscriber.json b/src/test/cord-api/Tests/data/Ch_Subscriber.json
new file mode 100644
index 0000000..d5e81a1
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_Subscriber.json
@@ -0,0 +1,28 @@
+{
+    "SubscriberInfo" : [
+    {
+            "cdn_enable": true,
+            "uplink_speed": 1000000000,
+            "downlink_speed": 1000000000,
+            "enable_uverse": true,
+            "status": "enabled",
+            "service_specific_id": "304",
+            "name": "My House"
+    },
+    {
+            "cdn_enable": false,
+            "uplink_speed": 500000000,
+            "downlink_speed": 500000000,
+            "enable_uverse": false,
+            "status": "enabled",
+            "service_specific_id": "305",
+            "name": "My House-305"
+    },
+    {
+            "cdn_enable": true,
+            "uplink_speed": 500000000,
+            "service_specific_id": "306",
+            "name": "My House-306"
+    }
+  ]
+}
diff --git a/src/test/cord-api/Tests/data/Ch_Users.json b/src/test/cord-api/Tests/data/Ch_Users.json
new file mode 100644
index 0000000..0d8b415
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_Users.json
@@ -0,0 +1,26 @@
+{
+  "UserInfo": [
+  {
+   "firstname" : "TestUser001",
+   "lastname" : "User001",
+   "password" : "TestUser001",
+   "email" : "TestUser001@onlab.us",
+   "site_id": 1
+   },
+  {
+   "firstname" : "TestUser002",
+   "lastname" : "User002",
+   "password" : "TestUser002",
+   "email" : "TestUser002@onlab.us",
+   "site_id": 1
+   },
+  {
+   "firstname" : "TestUser003",
+   "lastname" : "User003",
+   "password" : "TestUser003",
+   "email" : "TestUser003@onlab.us",
+   "site_id": 1
+   }
+ ]
+}
+
diff --git a/src/test/cord-api/Tests/data/Ch_VoltTenant.json b/src/test/cord-api/Tests/data/Ch_VoltTenant.json
new file mode 100644
index 0000000..305ba90
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_VoltTenant.json
@@ -0,0 +1,31 @@
+{
+    "voltSubscriberInfo" : [
+    {
+      "voltTenant" : 
+       {
+         "s_tag" : 114,
+         "c_tag" : 224,
+         "subscriber_root_id" : ""
+       },
+       "service_specific_id" : "304"
+    },
+    {
+     "voltTenant" : 
+      {
+        "s_tag" : "121",
+        "c_tag" : "333",
+        "subscriber_root_id" : ""
+      },
+      "service_specific_id" : "305"
+    },
+    {
+     "voltTenant" :
+      {
+        "s_tag" : "131",
+        "c_tag" : "444",
+        "subscriber_root_id" : ""
+      },
+     "service_specific_id" : "306"
+    }
+ ]
+} 
diff --git a/src/test/cord-api/Tests/data/Ch_defaultServices.json b/src/test/cord-api/Tests/data/Ch_defaultServices.json
new file mode 100644
index 0000000..4128481
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_defaultServices.json
@@ -0,0 +1,13 @@
+{
+    "ServiceInfo":
+    [
+        {"name": "ONOS_CORD"},
+        {"name": "vtn"},
+        {"name": "fabric"},
+        {"name": "ONOS_Fabric"},
+        {"name": "vrouter"},
+        {"name": "vsg"},
+        {"name": "volt"},
+        {"name": "vtr"}
+    ]
+}
diff --git a/src/test/cord-api/Tests/data/Ch_putService.json b/src/test/cord-api/Tests/data/Ch_putService.json
new file mode 100644
index 0000000..8a962a7
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_putService.json
@@ -0,0 +1,13 @@
+{
+    "ServiceInfo":
+    [
+        {
+            "name": "test-service-1",
+            "description": "Test service No.1 - Edited"
+        },
+        {
+            "name": "test-service-2",
+            "description": "Test service No.2 - Edited"
+        }
+    ]
+}
diff --git a/src/test/cord-api/Tests/data/Ch_putSite.json b/src/test/cord-api/Tests/data/Ch_putSite.json
new file mode 100644
index 0000000..6e1e4b3
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_putSite.json
@@ -0,0 +1,15 @@
+{
+    "SiteInfo":
+    [
+        {
+            "name": "test-site-1",
+            "login_base":"testsite1",
+            "abbreviated_name":"ts1 - edited"
+        },
+        {
+            "name": "test-site-2",
+            "login_base":"testsite2",
+            "abbreviated_name":"ts2 - edited"
+        }
+    ]
+}
diff --git a/src/test/cord-api/Tests/data/Ch_putSubscriber.json b/src/test/cord-api/Tests/data/Ch_putSubscriber.json
new file mode 100644
index 0000000..32f3607
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_putSubscriber.json
@@ -0,0 +1,23 @@
+{
+    "SubscriberInfo" : [
+    {
+            "cdn_enable": true,
+            "downlink_speed": 2000000000,
+            "service_specific_id": "304",
+            "name": "My House-Edited"
+    },
+    {
+            "uplink_speed": 100000000,
+            "enable_uverse": true,
+            "status": "disabled",
+            "service_specific_id": "305",
+            "name": "My House-305-Edited"
+    },
+    {
+            "cdn_enable": false,
+            "uplink_speed": 600000000,
+            "service_specific_id": "306",
+            "name": "My House-306-Edited"
+    }
+  ]
+}
diff --git a/src/test/cord-api/Tests/data/Ch_putVoltTenant.json b/src/test/cord-api/Tests/data/Ch_putVoltTenant.json
new file mode 100644
index 0000000..d3f4440
--- /dev/null
+++ b/src/test/cord-api/Tests/data/Ch_putVoltTenant.json
@@ -0,0 +1,28 @@
+{
+    "voltSubscriberInfo" : [
+    {
+      "voltTenant" : 
+       {
+         "s_tag" : 118,
+         "c_tag" : 228
+       },
+       "service_specific_id" : "204"
+    },
+    {
+     "voltTenant" : 
+      {
+        "s_tag" : "112",
+        "c_tag" : "331"
+      },
+      "service_specific_id" : "305"
+    },
+    {
+     "voltTenant" :
+      {
+        "s_tag" : "112",
+        "c_tag" : "442"
+      },
+      "service_specific_id" : "306"
+    }
+ ]
+} 
