diff --git a/robot/resources/aai/aai_interface.robot b/robot/resources/aai/aai_interface.robot
index 11979f0..49f98f0 100644
--- a/robot/resources/aai/aai_interface.robot
+++ b/robot/resources/aai/aai_interface.robot
@@ -1,7 +1,8 @@
 *** Settings ***
 Documentation     The main interface for interacting with A&AI. It handles low level stuff like managing the http request library and A&AI required fields
 Library 	      RequestsLibrary
-Library	          UUID      
+Library	          UUID
+Library           HTTPUtils
 Resource            ../global_properties.robot
 
 *** Variables ***
@@ -11,12 +12,13 @@
 *** Keywords ***
 Run A&AI Health Check
     [Documentation]    Runs an A&AI health check
-    ${resp}=    Run A&AI Get Request    ${AAI_HEALTH_PATH}    
+    ${resp}=    Run A&AI Get Request    ${AAI_HEALTH_PATH}
     Should Be Equal As Strings 	${resp.status_code} 	200
 
 Run A&AI Get Request
     [Documentation]    Runs an A&AI get request
     [Arguments]    ${data_path}
+    Disable Warnings
     ${auth}=  Create List  ${GLOBAL_AAI_USERNAME}    ${GLOBAL_AAI_PASSWORD}
     ${session}=    Create Session 	aai 	${GLOBAL_AAI_SERVER_URL}    auth=${auth}
     ${uuid}=    Generate UUID
@@ -24,10 +26,11 @@
     ${resp}= 	Get Request 	aai 	${data_path}     headers=${headers}
     Log    Received response from aai ${resp.text}
     [Return]    ${resp}
-    
+
 Run A&AI Put Request
     [Documentation]    Runs an A&AI put request
     [Arguments]    ${data_path}    ${data}
+    Disable Warnings
     ${auth}=  Create List  ${GLOBAL_AAI_USERNAME}    ${GLOBAL_AAI_PASSWORD}
     ${session}=    Create Session 	aai 	${GLOBAL_AAI_SERVER_URL}    auth=${auth}
     ${uuid}=    Generate UUID
@@ -39,6 +42,7 @@
 Run A&AI Post Request
     [Documentation]    Runs an A&AI Post request
     [Arguments]    ${data_path}    ${data}
+    Disable Warnings
     ${auth}=  Create List  ${GLOBAL_AAI_USERNAME}    ${GLOBAL_AAI_PASSWORD}
     ${session}=    Create Session 	aai 	${GLOBAL_AAI_SERVER_URL}    auth=${auth}
     ${uuid}=    Generate UUID
@@ -46,10 +50,11 @@
     ${resp}= 	Post Request 	aai 	${data_path}     data=${data}    headers=${headers}
     Log    Received response from aai ${resp.text}
     [Return]    ${resp}
-    
+
 Run A&AI Delete Request
     [Documentation]    Runs an A&AI delete request
     [Arguments]    ${data_path}    ${resource_version}
+    Disable Warnings
     ${auth}=  Create List  ${GLOBAL_AAI_USERNAME}    ${GLOBAL_AAI_PASSWORD}
     ${session}=    Create Session 	aai 	${GLOBAL_AAI_SERVER_URL}    auth=${auth}
     ${uuid}=    Generate UUID
@@ -59,15 +64,14 @@
     [Return]    ${resp}
 
 Delete A&AI Entity
-    [Documentation]    Deletes an entity in A&AI	
+    [Documentation]    Deletes an entity in A&AI
     [Arguments]    ${uri}
-    ${get_resp}=    Run A&AI Get Request     ${VERSIONED_INDEX PATH}${uri}    
+    ${get_resp}=    Run A&AI Get Request     ${VERSIONED_INDEX PATH}${uri}
 	Run Keyword If    '${get_resp.status_code}' == '200'    Delete A&AI Entity Exists    ${uri}    ${get_resp.json()['resource-version']}
 
 Delete A&AI Entity Exists
     [Documentation]    Deletes an  A&AI	entity
-    [Arguments]    ${uri}    ${resource_version_id}   
+    [Arguments]    ${uri}    ${resource_version_id}
     ${put_resp}=    Run A&AI Delete Request    ${VERSIONED_INDEX PATH}${uri}    ${resource_version_id}
-    Should Be Equal As Strings 	${put_resp.status_code} 	204  
+    Should Be Equal As Strings 	${put_resp.status_code} 	204
 
-    
\ No newline at end of file
