--- /dev/null
+*** Settings ***
+Documentation Operations on connectivities in AAI for CCVPN use case,
+... using earliest API version where it is implemented
+... and latest API version where it is not implemented
+
+Resource ../json_templater.robot
+Resource aai_interface.robot
+Resource csit-api-version-properties.robot
+Resource csit-relationship-list.robot
+Resource csit-subobject.robot
+Library OperatingSystem
+Library Collections
+
+
+*** Variables ***
+${AAI_CONN_CONTAINER_PATH}= /connectivities
+${AAI_CONN_SUBOBJECT_PATH}= /connectivity
+${AAI_CONN_UNIQUE_KEY}= connectivity-id
+${AAI_CONN_CSIT_BODY}= robot/assets/templates/aai/csit-connectivity.template
+${AAI_CONN_ROOT_PATH}= ${AAI_NETWORK_PATH}${AAI_CONN_CONTAINER_PATH}${AAI_CONN_SUBOBJECT_PATH}
+${AAI_CONN_API_NA_INDEX_PATH}= ${AAI_BEIJING_INDEX_PATH}
+${AAI_CONN_API_IMPL_INDEX_PATH}= ${AAI_CASABLANCA_INDEX_PATH}
+
+*** Keywords ***
+Create Connectivity If Not Exists
+ [Documentation] Creates Connectivity in AAI if it doesn't exist
+ [Arguments] ${connectivity_id}
+ ${get_resp}= Get SubObject ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_NETWORK_PATH} ${AAI_CONN_CONTAINER_PATH} ${AAI_CONN_SUBOBJECT_PATH} ${AAI_CONN_UNIQUE_KEY} ${connectivity_id}
+ Return From Keyword If '${get_resp.status_code}' == '200'
+ Create Connectivity ${connectivity_id}
+
+Create Connectivity
+ [Documentation] Creates Connectivity in AAI
+ [Arguments] ${connectivity_id}
+ ${arguments}= Create Dictionary connectivity_id=${connectivity_id}
+ ${put_resp}= Create SubObject ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_NETWORK_PATH} ${AAI_CONN_CONTAINER_PATH} ${AAI_CONN_SUBOBJECT_PATH} ${connectivity_id} ${AAI_CONN_CSIT_BODY} ${arguments}
+
+Delete Connectivity If Exists
+ [Documentation] Removes Connectivity from AAI if it exists
+ [Arguments] ${connectivity_id}
+ ${get_resp}= Get SubObject ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_NETWORK_PATH} ${AAI_CONN_CONTAINER_PATH} ${AAI_CONN_SUBOBJECT_PATH} ${AAI_CONN_UNIQUE_KEY} ${connectivity_id}
+ Run Keyword If '${get_resp.status_code}' == '200' Delete Connectivity ${connectivity_id} ${get_resp.json()}
+
+Delete Connectivity
+ [Documentation] Removes Connectivity from AAI
+ [Arguments] ${connectivity_id} ${json}
+ ${del_resp}= Delete SubObject ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_NETWORK_PATH} ${AAI_CONN_CONTAINER_PATH} ${AAI_CONN_SUBOBJECT_PATH} ${connectivity_id} ${json}
+
+Get Connectivity
+ [Documentation] Return Connectivity
+ [Arguments] ${connectivity_id}
+ ${get_resp}= Get SubObject ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_NETWORK_PATH} ${AAI_CONN_CONTAINER_PATH} ${AAI_CONN_SUBOBJECT_PATH} ${AAI_CONN_UNIQUE_KEY} ${connectivity_id}
+ Should Be Equal As Strings ${get_resp.status_code} 200
+ [Return] ${get_resp.json()}
+
+Get Valid Connectivity URL
+ [Documentation] Return Valid Connectivity URL
+ [Arguments] ${connectivity_id}
+ ${resp}= Get Valid SubObject URL ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_NETWORK_PATH} ${AAI_CONN_CONTAINER_PATH} ${AAI_CONN_SUBOBJECT_PATH} ${connectivity_id}
+ [Return] ${resp}
+
+Get Nodes Query Connectivity
+ [Documentation] Return Nodes query Connectivity
+ [Arguments] ${connectivity_id}
+ ${get_resp}= Confirm Nodes Query SubObjects ${AAI_CONN_API_IMPL_INDEX_PATH} ${AAI_CONN_CONTAINER_PATH} ${AAI_CONN_UNIQUE_KEY} ${connectivity_id}
+ [Return] ${get_resp.json()}
+
+Get Example Connectivity
+ [Documentation] Return Example Connectivity
+ ${get_resp}= Confirm Examples Query SubObjects ${AAI_CONN_API_IMPL_INDEX_PATH} ${AAI_CONN_CONTAINER_PATH}
+ [Return] ${get_resp.json()}
+
+Confirm No Connectivity
+ [Documentation] Confirm No Connectivity
+ [Arguments] ${connectivity_id}
+ ${get_resp}= Get SubObject ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_NETWORK_PATH} ${AAI_CONN_CONTAINER_PATH} ${AAI_CONN_SUBOBJECT_PATH} ${AAI_CONN_UNIQUE_KEY} ${connectivity_id}
+ Should Be Equal As Strings ${get_resp.status_code} 404
+
+Confirm API Not Implemented Connectivity
+ [Documentation] Confirm latest API version where Connectivity is not implemented
+ [Arguments] ${connectivity_id}
+ ${resp}= Confirm API Not Implemented SubObject ${AAI_CONN_API_NA_INDEX_PATH}${AAI_NETWORK_PATH} ${AAI_CONN_CONTAINER_PATH} ${AAI_CONN_SUBOBJECT_PATH} ${connectivity_id}
+
+Add Connectivity Relationship
+ [Documentation] Adds Relationship to existing Connectivity in AAI
+ [Arguments] ${connectivity_id} ${related_class_name} ${related_object_url}
+ ${put_resp}= Add Relationship ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id} ${related_class_name} ${related_object_url}
+
+Get Connectivity RelationshipList
+ [Documentation] Return relationship-list from Connectivity
+ [Arguments] ${connectivity_id}
+ ${resp}= Get RelationshipList ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id}
+ [Return] ${resp}
+
+Get Connectivity With RelationshipList
+ [Documentation] Return Connectivity with relationship-list
+ [Arguments] ${connectivity_id}
+ ${resp}= Get Object With Depth ${AAI_CONN_API_IMPL_INDEX_PATH}${AAI_CONN_ROOT_PATH}/${connectivity_id}
+ [Return] ${resp}
+