diff --git a/test/csit/plans/dcaegen2/prh_testsuites/setup.sh b/test/csit/plans/dcaegen2/prh_testsuites/setup.sh
index 012d4c5..2796965 100644
--- a/test/csit/plans/dcaegen2/prh_testsuites/setup.sh
+++ b/test/csit/plans/dcaegen2/prh_testsuites/setup.sh
@@ -4,18 +4,20 @@
 
 export PRH_SERVICE="prh"
 export DMAAP_SIMULATOR="dmaap_simulator"
+export AAI_SIMULATOR="aai_simulator"
 
 cd ${WORKSPACE}/test/csit/tests/dcaegen2/prh_testcases/resources/
 
 docker login -u docker -p docker nexus3.onap.org:10003
-docker-compose up -d
+docker-compose up -d --build
 
 # Wait for initialization of Docker containers
 for i in {1..50}; do
 	if [ $(docker inspect --format '{{ .State.Running }}' ${PRH_SERVICE}) ] && \
-	  [ $(docker inspect --format '{{ .State.Running }}' ${DMAAP_SIMULATOR}) ]
+	  [ $(docker inspect --format '{{ .State.Running }}' ${DMAAP_SIMULATOR}) ] && \
+	  [ $(docker inspect --format '{{ .State.Running }}' ${AAI_SIMULATOR}) ]
 	then
-		echo "dmaap_simulator and prh services are running"
+		echo "dmaap_simulator, aai_simulator and prh services are running"
 		break    		
 	else 
 		echo sleep ${i}
@@ -25,26 +27,29 @@
 
 PRH_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${PRH_SERVICE})
 DMAAP_SIMULATOR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${DMAAP_SIMULATOR})
+AAI_SIMULATOR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${AAI_SIMULATOR})
 
 bypass_ip_adress ${PRH_IP}
 bypass_ip_adress ${DMAAP_SIMULATOR_IP}
+bypass_ip_adress ${AAI_SIMULATOR_IP}
 
 echo PRH_IP=${PRH_IP}
 echo DMAAP_SIMULATOR_IP=${DMAAP_SIMULATOR_IP}
+echo AAI_SIMULATOR_IP=${AAI_SIMULATOR_IP}
 
 # Wait for initialization of docker services
 for i in {1..50}; do
     curl -sS -m 1 localhost:2222 && \
+    curl -sS -m 1 localhost:3333 && \
     curl -sS -m 1 localhost:8100/heartbeat && break
     echo sleep ${i}
     sleep ${i}
 done
 
-#
 docker cp prh:/config/prh_endpoints.json ${WORKDIR}
 sed -i -e 's/"dmaapHostName":.*/"dmaapHostName": "'${DMAAP_SIMULATOR_IP}'",/g' ${WORKDIR}/prh_endpoints.json
-sed -i -e 's/"aaiHost":.*/"aaiHost": "'${DMAAP_SIMULATOR_IP}'",/g' ${WORKDIR}/prh_endpoints.json
+sed -i -e 's/"aaiHost":.*/"aaiHost": "'${AAI_SIMULATOR_IP}'",/g' ${WORKDIR}/prh_endpoints.json
 docker cp ${WORKDIR}/prh_endpoints.json prh:/config/
 
 #Pass any variables required by Robot test suites in ROBOT_VARIABLES
-ROBOT_VARIABLES="-v DMAAP_SIMULATOR:localhost:2222 -v PRH:localhost:8100"
+ROBOT_VARIABLES="-v DMAAP_SIMULATOR:localhost:2222 -v AAI_SIMULATOR:localhost:3333 -v PRH:localhost:8100"
diff --git a/test/csit/plans/dcaegen2/prh_testsuites/teardown.sh b/test/csit/plans/dcaegen2/prh_testsuites/teardown.sh
index 5ff3c66..bd1e5ba 100644
--- a/test/csit/plans/dcaegen2/prh_testsuites/teardown.sh
+++ b/test/csit/plans/dcaegen2/prh_testsuites/teardown.sh
@@ -16,4 +16,5 @@
 #
 
 kill-instance.sh prh
-kill-instance.sh dmaap_simulator
\ No newline at end of file
+kill-instance.sh dmaap_simulator
+kill-instance.sh aai_simulator
diff --git a/test/csit/tests/dcaegen2/prh_testcases/assets/json_events/pnf_ready.json b/test/csit/tests/dcaegen2/prh_testcases/assets/json_events/pnf_ready.json
deleted file mode 100644
index d340709..0000000
--- a/test/csit/tests/dcaegen2/prh_testcases/assets/json_events/pnf_ready.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{"event":
-    {"correlationID":"NOKQTFCOC540002E", 
-    "pnfOamIpv4Address":"10.16.123.234", 
-    "pnfOamIpv6Address":"2001:0db8:85a3:0000:0000:8a2e:0370:7334"
-    }
-}
diff --git a/test/csit/tests/dcaegen2/prh_testcases/assets/json_events/response.json b/test/csit/tests/dcaegen2/prh_testcases/assets/json_events/response.json
deleted file mode 100644
index 39c76df..0000000
--- a/test/csit/tests/dcaegen2/prh_testcases/assets/json_events/response.json
+++ /dev/null
@@ -1,33 +0,0 @@
-{"event":
-    {"commonEventHeader":
-        {"sourceId":"QTFCOC540002E",
-        "startEpochMicrosec":1519837825682,
-        "eventId":"QTFCOC540002E-reg",
-        "nfcNamingCode":"5DU",
-        "internalHeaderFields":{"collectorTimeStamp":"Fri, 04 27 2018 09:01:10 GMT"},
-        "eventType":"pnfRegistration",
-        "priority":"Normal",
-        "version":3,
-        "reportingEntityName":"5GRAN_DU",
-        "sequence":0,
-        "domain":"other",
-        "lastEpochMicrosec":1519837825682,
-        "eventName":"pnfRegistration_5GDU",
-        "sourceName":"5GRAN_DU",
-        "nfNamingCode":"5GRAN"
-        },
-    "otherFields":
-        {"pnfLastServiceDate":1517206400,
-        "pnfOamIpv6Address":"2001:0db8:85a3:0000:0000:8a2e:0370:7334",
-        "pnfVendorName":"Nokia",
-        "pnfModelNumber":"AJ02",
-        "pnfFamily":"BBU",
-        "pnfType":"AirScale",
-        "otherFieldsVersion":1,
-        "pnfOamIpv4Address":"10.16.123.234",
-        "pnfSoftwareVersion":"v4.5.0.1",
-        "pnfSerialNumber":"QTFCOC540002E",
-        "pnfManufactureDate":1516406400
-        }
-    }
-}
diff --git a/test/csit/tests/dcaegen2/prh_testcases/prh.robot b/test/csit/tests/dcaegen2/prh_testcases/prh.robot
deleted file mode 100644
index 7c9b953..0000000
--- a/test/csit/tests/dcaegen2/prh_testcases/prh.robot
+++ /dev/null
@@ -1,19 +0,0 @@
-*** Settings ***
-Documentation     Testing PRH with various use scenarios
-Suite Setup       PRH Suite Setup
-Suite Teardown    PRH Suite Shutdown
-Library           Collections
-Library           resources/PrhLibrary.py
-Resource          resources/prh_keywords.robot
-
-*** Variables ***
-${DMaaP_URL}      http://localhost:3904
-${AAI_URL}        http://localhost:3905
-${PNF_READY}      %{WORKSPACE}/test/csit/tests/dcaegen2/prh_testcases/assets/json_events/pnf_ready.json
-
-*** Test Cases ***
-New test
-    [Documentation]    First positive TC
-    [Tags]    PRH
-    #First TC will be added after initial commit
-    Should Be True    True
diff --git a/test/csit/tests/dcaegen2/prh_testcases/prh_tests.robot b/test/csit/tests/dcaegen2/prh_testcases/prh_tests.robot
index ec21b39..764a879 100644
--- a/test/csit/tests/dcaegen2/prh_testcases/prh_tests.robot
+++ b/test/csit/tests/dcaegen2/prh_testcases/prh_tests.robot
@@ -1,48 +1,65 @@
 *** Settings ***
-Library           OperatingSystem
 Library           RequestsLibrary
-Library           requests
-Library           Collections
-Library           String
 
 *** Variables ***
-${PNF_REGISTER_URL}         http://${DMAAP_SIMULATOR}/events/unauthenticated.SEC_OTHER_OUTPUT
-${PNF_READY_URL}            http://${DMAAP_SIMULATOR}/events/pnfReady
-${PRH_START_URL}            http://${PRH}/start
-${PNF_REGISTER_EVENT}       %{WORKSPACE}/test/csit/tests/dcaegen2/prh_testcases/resources/events/pnf_register_event.json
-
+${DMAAP_SIM_URL}    http://${DMAAP_SIMULATOR}
+${AAI_SIM_URL}    http://${AAI_SIMULATOR}
+${PRH_URL}        http://${PRH}
 
 *** Test Cases ***
-Run Posting and Consuming
-    [Documentation]    			  	  Post message to new topic and consume it
-    [Timeout]    			  	  	    1 minute
-    ${req_data}=                  Get Binary File       ${PNF_REGISTER_EVENT}
-    ${resp}=    			  	  	    PostCall      				${PNF_REGISTER_URL}    	${req_data}
-    log    				          	    ${PNF_REGISTER_URL}
-    log    				          	    ${resp.text}
-    Should Be Equal As Strings    ${resp.status_code}   200
-   # ${count}=    	              	Evaluate     					$resp.json().get('count')
-    log    				  			        'JSON Response Code:' ${resp}
-    ${resp}=    			  	  	    GetCall      				  ${PRH_START_URL}
-    log                           ${PRH_START_URL}
-    log    				          	    ${resp.text}
-    Should Be Equal As Strings    ${resp.status_code}   201
-    ${resp}=    			  		      GetCall    						${PNF_READY_URL}
-    log    				  			        ${PNF_READY_URL}
-    log    				          	    ${resp.text}
-    Should Be Equal As Strings    ${resp.status_code}   200
-    log    		                  	'JSON Response Code:' ${resp}
-
+Getting and Consuming Positive Scenario
+    [Documentation]    Get message from new topic and consume it - positive scenarios
+    [Tags]    PRH
+    [Setup]    Start prh
+    [Template]    Run Getting and Consuming
+    [Timeout]
+    {"pnfName":"NOKQTFCOC540002E","ipv4":"10.16.123.234","ipv6":"2001:0db8:85a3:0000:0000:8a2e:0370:7334"}    NOKQTFCOC540002E    {"event": {"commonEventHeader": {"sourceId":"QTFCOC540002E", "startEpochMicrosec":1519837825682, "eventId":"QTFCOC540002E-reg", "nfcNamingCode":"5DU", "internalHeaderFields":{"collectorTimeStamp":"Fri, 04 27 2018 09:01:10 GMT"}, "eventType":"pnfRegistration", "priority":"Normal", "version":3, "reportingEntityName":"5GRAN_DU", "sequence":0, "domain":"other", "lastEpochMicrosec":1519837825682, "eventName":"pnfRegistration_5GDU", "sourceName":"5GRAN_DU", "nfNamingCode":"5GRAN"}, "otherFields": {"pnfLastServiceDate":1517206400, "pnfOamIpv6Address":"2001:0db8:85a3:0000:0000:8a2e:0370:7334", "pnfVendorName":"Nokia", "pnfModelNumber":"AJ02", "pnfFamily":"BBU", "pnfType":"AirScale", "otherFieldsVersion":1, "pnfOamIpv4Address":"10.16.123.234", "pnfSoftwareVersion":"v4.5.0.1", "pnfSerialNumber":"QTFCOC540002E", "pnfManufactureDate":1516406400}}}
+    {"pnfName":"NOKQTFCOC540002F","ipv4":"","ipv6":"2001:0db8:85a3:0000:0000:8a2e:0370:7334"}    NOKQTFCOC540002F    {"event": {"commonEventHeader": {"sourceId":"QTFCOC540002F", "startEpochMicrosec":1519837825682, "eventId":"QTFCOC540002F-reg", "nfcNamingCode":"5DU", "internalHeaderFields":{"collectorTimeStamp":"Fri, 04 27 2018 09:01:10 GMT"}, "eventType":"pnfRegistration", "priority":"Normal", "version":3, "reportingEntityName":"5GRAN_DU", "sequence":0, "domain":"other", "lastEpochMicrosec":1519837825682, "eventName":"pnfRegistration_5GDU", "sourceName":"5GRAN_DU", "nfNamingCode":"5GRAN"}, "otherFields": {"pnfLastServiceDate":1517206400, "pnfOamIpv6Address":"2001:0db8:85a3:0000:0000:8a2e:0370:7334", "pnfVendorName":"Nokia", "pnfModelNumber":"AJ02", "pnfFamily":"BBU", "pnfType":"AirScale", "otherFieldsVersion":1, "pnfOamIpv4Address":"", "pnfSoftwareVersion":"v4.5.0.1", "pnfSerialNumber":"QTFCOC540002F", "pnfManufactureDate":1516406400}}}
+    {"pnfName":"NOKQTFCOC540002G","ipv4":"10.16.123.234","ipv6":""}    NOKQTFCOC540002G    {"event": {"commonEventHeader": {"sourceId":"QTFCOC540002G", "startEpochMicrosec":1519837825682, "eventId":"QTFCOC540002G-reg", "nfcNamingCode":"5DU", "internalHeaderFields":{"collectorTimeStamp":"Fri, 04 27 2018 09:01:10 GMT"}, "eventType":"pnfRegistration", "priority":"Normal", "version":3, "reportingEntityName":"5GRAN_DU", "sequence":0, "domain":"other", "lastEpochMicrosec":1519837825682, "eventName":"pnfRegistration_5GDU", "sourceName":"5GRAN_DU", "nfNamingCode":"5GRAN"}, "otherFields": {"pnfLastServiceDate":1517206400, "pnfOamIpv6Address":"", "pnfVendorName":"Nokia", "pnfModelNumber":"AJ02", "pnfFamily":"BBU", "pnfType":"AirScale", "otherFieldsVersion":1, "pnfOamIpv4Address":"10.16.123.234", "pnfSoftwareVersion":"v4.5.0.1", "pnfSerialNumber":"QTFCOC540002G", "pnfManufactureDate":1516406400}}}
+    {"pnfName":"ERIQTFCOC5400000","ipv4":"10.16.123.23","ipv6":""}    ERIQTFCOC5400000    {"event": {"commonEventHeader": {"sourceId":"QTFCOC5400000", "startEpochMicrosec":1519837825682, "eventId":"QTFCOC5400000-reg", "nfcNamingCode":"5DU", "internalHeaderFields":{"collectorTimeStamp":"Fri, 04 27 2018 09:01:10 GMT"}, "eventType":"pnfRegistration", "priority":"Normal", "version":3, "reportingEntityName":"5GRAN_DU", "sequence":0, "domain":"other", "lastEpochMicrosec":1519837825682, "eventName":"pnfRegistration_5GDU", "sourceName":"5GRAN_DU", "nfNamingCode":"5GRAN"}, "otherFields": {"pnfLastServiceDate":1517206400, "pnfOamIpv6Address":"", "pnfVendorName":"Ericsson", "pnfModelNumber":"AJ02", "pnfFamily":"BBU", "pnfType":"AirScale", "otherFieldsVersion":1, "pnfOamIpv4Address":"10.16.123.23", "pnfSoftwareVersion":"v4.5.0.1", "pnfSerialNumber":"QTFCOC5400000", "pnfManufactureDate":1516406400}}}
+    [Teardown]    Stop prh
 
 *** Keywords ***
-PostCall
-    [Arguments]    ${url}    	 ${data}
+Run Getting and Consuming
+    [Arguments]    ${posted_event_to_dmaap}    ${pnfs_name}    ${event_in_dmaap}
+    [Timeout]    1 minutes
     ${headers}=    Create Dictionary    Accept=application/json    Content-Type=application/json
-    ${resp}=       Evaluate    requests.post('${url}',data='${data}', headers=${headers},verify=False)    requests
-    [Return]       ${resp}
+    Set pnfs name in AAI    ${pnfs_name}
+    Set get event in DMAAP    ${event_in_dmaap}    ${headers}
+    : FOR    ${Index}    IN RANGE    1    30
+    \    Create Session    prh_ready    ${DMAAP_SIM_URL}
+    \    ${resp}=    Get Request    prh_ready    /events/pnfReady    headers=${headers}
+    \    Exit For Loop If    '${resp.text}' == '${posted_event_to_dmaap}'
+    \    Sleep    1s
+    Should Be Equal    ${resp.text}    ${posted_event_to_dmaap}
 
-GetCall
-    [Arguments]    ${url}
+Start prh
+    [Timeout]    1 minute
     ${headers}=    Create Dictionary    Accept=application/json    Content-Type=application/json
-    ${resp}=    	 Evaluate    requests.get('${url}', headers=${headers}, verify=False)    requests
-    [Return]    	 ${resp}
+    Create Session    prh_start    ${PRH_URL}
+    ${resp}=    Get Request    prh_start    /start    headers=${headers}
+    Should Be Equal    ${resp.text}    "PRH Service has been started!"
+
+Stop prh
+    [Timeout]    1 minute
+    ${headers}=    Create Dictionary    Accept=application/json    Content-Type=application/json
+    Create Session    prh_stop    ${PRH_URL}
+    ${resp}=    Get Request    prh_stop    /stopPrh    headers=${headers}
+    Should Be Equal    ${resp.text}    "PRH Service has already been stopped!"
+
+Set pnfs name in AAI
+    [Arguments]    ${pnfs_name}
+    [Timeout]    1 minute
+    ${headers}=    Create Dictionary    Accept=application/json    Content-Type=text/html
+    Create Session    set_pnfs_in_aai    ${AAI_SIM_URL}
+    ${resp}=    Put Request    set_pnfs_in_aai    /set_pnfs    headers=${headers}    data=${pnfs_name}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Log To Console    ${resp.text}
+
+Set get event in DMAAP
+    [Arguments]    ${event_in_dmaap}    ${headers}
+    [Timeout]    1 minute
+    Create Session    set_get_event    ${DMAAP_SIM_URL}
+    ${resp}=    Put Request    set_get_event    /set_get_event    headers=${headers}    data=${event_in_dmaap}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Log To Console    ${resp.text}
diff --git a/test/csit/tests/dcaegen2/prh_testcases/resources/CommonEventFormat_28.3.json b/test/csit/tests/dcaegen2/prh_testcases/resources/CommonEventFormat_28.3.json
deleted file mode 100644
index 90f6d81..0000000
--- a/test/csit/tests/dcaegen2/prh_testcases/resources/CommonEventFormat_28.3.json
+++ /dev/null
@@ -1,1866 +0,0 @@
-{
-    "$schema": "http://json-schema.org/draft-04/schema#",
-	
-	"definitions": {
-	"attCopyrightNotice": {
-			"description": "Copyright (c) <2017>, AT&T Intellectual Property. All rights reserved. Licensed under the Apache License, Version 2.0 (the License)",
-			"type": "object",
-			"properties": {
-				"useAndRedistribution": {
-					"description": "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",
-					"type": "string"
-				},
-				"licenseLink": {
-				 "description": "http://www.apache.org/licenses/LICENSE-2.0",
-				 "type":"string"
-				},
-				"condition1": {
-					"description": "Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an AS IS BASIS,",
-					"type": "string"
-				},
-				"condition2": {
-					"description": "Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.",
-					"type": "string"
-				},
-				"condition3": {
-					"description": "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.",
-					"type": "string"
-				},
-				"condition4": {
-					"description": "See the License for the specific language governing permissions and limitations under the License.",
-					"type": "string"
-				},
-				"Trademarks": {
-					"description": "ECOMP and OpenECOMP are trademarks and service marks of AT&T Intellectual Property.",
-					"type": "string"
-				}
-			}
-		},
-	
- 		"codecsInUse": {
-			"description": "number of times an identified codec was used over the measurementInterval",
-			"type": "object",
-			"properties": {
-				"codecIdentifier": { "type": "string" },
-				"numberInUse": { "type": "integer" }
-			},
-			"required": [ "codecIdentifier", "numberInUse" ]
-		},
- 		"command": {
-			"description": "command from an event collector toward an event source",
-			"type": "object",
-			"properties": {
-				"commandType": {
-					"type": "string",
-					"enum": [
-						"heartbeatIntervalChange",
-						"measurementIntervalChange",
-						"provideThrottlingState",
-						"throttlingSpecification"
-					]
-				},
-				"eventDomainThrottleSpecification": { "$ref": "#/definitions/eventDomainThrottleSpecification" },
-				"heartbeatInterval": { "type": "integer" },
-				"measurementInterval": { "type": "integer" }
-			},
-			"required": [ "commandType" ]
-		},
-		"commandList": {
-			"description": "array of commands from an event collector toward an event source",
-			"type": "array",
-			"items": {
-			    "$ref": "#/definitions/command"
-			},
-			"minItems": 0
-		},
-		"commonEventHeader": {
-			"description": "fields common to all events",
-			"type": "object",
-			"properties": {
-				"domain": {
-					"description": "the eventing domain associated with the event",
-					"type": "string",
-					"enum": [
-						"fault",
-						"heartbeat",
-						"measurementsForVfScaling",
-						"mobileFlow",
-						"other",
-						"sipSignaling",
-						"stateChange",
-						"syslog",
-						"thresholdCrossingAlert",
-						"voiceQuality"
-					]
-				},
-				"eventId": {
-					"description": "event key that is unique to the event source",
-					"type": "string"
-				},
-				"eventName": {
-					"description": "unique event name",
-					"type": "string"
-				},
-				"eventType": {
-					"description": "for example - applicationVnf, guestOS, hostOS, platform",
-					"type": "string"
-				},
-				"internalHeaderFields": { "$ref": "#/definitions/internalHeaderFields" },
-				"lastEpochMicrosec": {
-					"description": "the latest unix time aka epoch time associated with the event from any component--as microseconds elapsed since 1 Jan 1970 not including leap seconds",
-					"type": "number"
-				},
-				"nfcNamingCode": {
-					"description": "3 character network function component type, aligned with vfc naming standards",
-					"type": "string"
-				},
-				"nfNamingCode": {
-					"description": "4 character network function type, aligned with vnf naming standards",
-					"type": "string"
-				},
-				"priority": {
-					"description": "processing priority",
-					"type": "string",
-					"enum": [
-						"High",
-						"Medium",
-						"Normal",
-						"Low"
-					]
-				},
-				"reportingEntityId": {
-					"description": "UUID identifying the entity reporting the event, for example an OAM VM; must be populated by the ATT enrichment process",
-					"type": "string"
-				},
-				"reportingEntityName": {
-					"description": "name of the entity reporting the event, for example, an EMS name; may be the same as sourceName",
-					"type": "string"
-				},
-				"sequence": {
-					"description": "ordering of events communicated by an event source instance or 0 if not needed",
-					"type": "integer"
-				},
-				"sourceId": {
-					"description": "UUID identifying the entity experiencing the event issue; must be populated by the ATT enrichment process",
-					"type": "string"
-				},
-				"sourceName": {
-					"description": "name of the entity experiencing the event issue",
-					"type": "string"
-				},
-				"startEpochMicrosec": {
-					"description": "the earliest unix time aka epoch time associated with the event from any component--as microseconds elapsed since 1 Jan 1970 not including leap seconds",
-					"type": "number"
-				},
-				"version": {
-					"description": "version of the event header",
-					"type": "number"
-				}
-			},
-			"required": [ "domain", "eventId", "eventName", "lastEpochMicrosec", 
-						  "priority", "reportingEntityName", "sequence", "sourceName",
-			              "startEpochMicrosec", "version" ]
-		},
-		"counter": {
-			"description": "performance counter",
-			"type": "object",
-			"properties": {
-				"criticality": { "type": "string", "enum": [ "CRIT", "MAJ" ] },
-				"name":  { "type": "string" },
-				"thresholdCrossed": { "type": "string" },
-				"value": { "type": "string"}
-			},
-			"required": [ "criticality", "name", "thresholdCrossed", "value" ]
-		},
-		"cpuUsage": {
-			"description": "usage of an identified CPU",
-			"type": "object",
-			"properties": {
-				"cpuIdentifier": { 
-                    "description": "cpu identifer",
-                    "type": "string" 
-                },
-				"cpuIdle": { 
-                    "description": "percentage of CPU time spent in the idle task",
-                    "type": "number" 
-                },
-				"cpuUsageInterrupt": { 
-                    "description": "percentage of time spent servicing interrupts",
-                    "type": "number" 
-                },
-				"cpuUsageNice": { 
-                    "description": "percentage of time spent running user space processes that have been niced",
-                    "type": "number" 
-                },
-				"cpuUsageSoftIrq": { 
-                    "description": "percentage of time spent handling soft irq interrupts",
-                    "type": "number" 
-                },
-				"cpuUsageSteal": { 
-                    "description": "percentage of time spent in involuntary wait which is neither user, system or idle time and is effectively time that went missing",
-                    "type": "number" 
-                },
-				"cpuUsageSystem": { 
-                    "description": "percentage of time spent on system tasks running the kernel",
-                    "type": "number" 
-                },
-				"cpuUsageUser": { 
-                    "description": "percentage of time spent running un-niced user space processes",
-                    "type": "number" 
-                },
-				"cpuWait": { 
-                    "description": "percentage of CPU time spent waiting for I/O operations to complete",
-                    "type": "number" 
-                },
-				"percentUsage": { 
-                    "description": "aggregate cpu usage of the virtual machine on which the VNFC reporting the event is running",
-                    "type": "number" 
-                }
-			},
-			"required": [ "cpuIdentifier", "percentUsage" ]
-		},
-		"diskUsage": {
-			"description": "usage of an identified disk",
-			"type": "object",
-			"properties": {
-				"diskIdentifier": { 
-                    "description": "disk identifier", 
-                    "type": "string" 
-                },
-                "diskIoTimeAvg": {
-                    "description": "milliseconds spent doing input/output operations over 1 sec; treat this metric as a device load percentage where 1000ms  matches 100% load; provide the average over the measurement interval",
-                    "type": "number"
-                },
-                "diskIoTimeLast": {
-                    "description": "milliseconds spent doing input/output operations over 1 sec; treat this metric as a device load percentage where 1000ms  matches 100% load; provide the last value measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskIoTimeMax": {
-                    "description": "milliseconds spent doing input/output operations over 1 sec; treat this metric as a device load percentage where 1000ms  matches 100% load; provide the maximum value measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskIoTimeMin": {
-                    "description": "milliseconds spent doing input/output operations over 1 sec; treat this metric as a device load percentage where 1000ms  matches 100% load; provide the minimum value measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskMergedReadAvg": {
-                    "description": "number of logical read operations that were merged into physical read operations, e.g., two logical reads were served by one physical disk access; provide the average measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskMergedReadLast": {
-                    "description": "number of logical read operations that were merged into physical read operations, e.g., two logical reads were served by one physical disk access; provide the last value measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskMergedReadMax": {
-                    "description": "number of logical read operations that were merged into physical read operations, e.g., two logical reads were served by one physical disk access; provide the maximum value measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskMergedReadMin": {
-                    "description": "number of logical read operations that were merged into physical read operations, e.g., two logical reads were served by one physical disk access; provide the minimum value measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskMergedWriteAvg": {
-                    "description": "number of logical write operations that were merged into physical write operations, e.g., two logical writes were served by one physical disk access; provide the average measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskMergedWriteLast": {
-                    "description": "number of logical write operations that were merged into physical write operations, e.g., two logical writes were served by one physical disk access; provide the last value measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskMergedWriteMax": {
-                    "description": "number of logical write operations that were merged into physical write operations, e.g., two logical writes were served by one physical disk access; provide the maximum value measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskMergedWriteMin": {
-                    "description": "number of logical write operations that were merged into physical write operations, e.g., two logical writes were served by one physical disk access; provide the minimum value measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskOctetsReadAvg": {
-                    "description": "number of octets per second read from a disk or partition; provide the average measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskOctetsReadLast": {
-                    "description": "number of octets per second read from a disk or partition; provide the last measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskOctetsReadMax": {
-                    "description": "number of octets per second read from a disk or partition; provide the maximum measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskOctetsReadMin": {
-                    "description": "number of octets per second read from a disk or partition; provide the minimum measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskOctetsWriteAvg": {
-                    "description": "number of octets per second written to a disk or partition; provide the average measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskOctetsWriteLast": {
-                    "description": "number of octets per second written to a disk or partition; provide the last measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskOctetsWriteMax": {
-                    "description": "number of octets per second written to a disk or partition; provide the maximum measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskOctetsWriteMin": {
-                    "description": "number of octets per second written to a disk or partition; provide the minimum measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskOpsReadAvg": {
-                    "description": "number of read operations per second issued to the disk; provide the average measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskOpsReadLast": {
-                    "description": "number of read operations per second issued to the disk; provide the last measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskOpsReadMax": {
-                    "description": "number of read operations per second issued to the disk; provide the maximum measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskOpsReadMin": {
-                    "description": "number of read operations per second issued to the disk; provide the minimum measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskOpsWriteAvg": {
-                    "description": "number of write operations per second issued to the disk; provide the average measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskOpsWriteLast": {
-                    "description": "number of write operations per second issued to the disk; provide the last measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskOpsWriteMax": {
-                    "description": "number of write operations per second issued to the disk; provide the maximum measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskOpsWriteMin": {
-                    "description": "number of write operations per second issued to the disk; provide the minimum measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskPendingOperationsAvg": {
-                    "description": "queue size of pending I/O operations per second; provide the average measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskPendingOperationsLast": {
-                    "description": "queue size of pending I/O operations per second; provide the last measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskPendingOperationsMax": {
-                    "description": "queue size of pending I/O operations per second; provide the maximum measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskPendingOperationsMin": {
-                    "description": "queue size of pending I/O operations per second; provide the minimum measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskTimeReadAvg": {
-                    "description": "milliseconds a read operation took to complete; provide the average measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskTimeReadLast": {
-                    "description": "milliseconds a read operation took to complete; provide the last measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskTimeReadMax": {
-                    "description": "milliseconds a read operation took to complete; provide the maximum measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskTimeReadMin": {
-                    "description": "milliseconds a read operation took to complete; provide the minimum measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskTimeWriteAvg": {
-                    "description": "milliseconds a write operation took to complete; provide the average measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskTimeWriteLast": {
-                    "description": "milliseconds a write operation took to complete; provide the last measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskTimeWriteMax": {
-                    "description": "milliseconds a write operation took to complete; provide the maximum measurement within the measurement interval",
-                    "type": "number"
-                },
-                "diskTimeWriteMin": {
-                    "description": "milliseconds a write operation took to complete; provide the minimum measurement within the measurement interval",
-                    "type": "number"
-                }
-			},
-			"required": [ "diskIdentifier" ]
-		},
-        "endOfCallVqmSummaries": {
-            "description": "provides end of call voice quality metrics",
-			"type": "object",
-			"properties": {
-                "adjacencyName": {
-                    "description": " adjacency name",
-                    "type": "string"
-                },
-                "endpointDescription": {
-                    "description": "Either Caller or Callee",
-                    "type": "string",
-                    "enum": ["Caller", "Callee"]
-                },
-                "endpointJitter": {
-                    "description": "",
-                    "type": "number"
-                },
-                "endpointRtpOctetsDiscarded": {
-                    "description": "",
-                    "type": "number"
-                },
-                "endpointRtpOctetsReceived": {
-                    "description": "",
-                    "type": "number"
-                },
-                "endpointRtpOctetsSent": {
-                    "description": "",
-                    "type": "number"
-                },
-                "endpointRtpPacketsDiscarded": {
-                    "description": "",
-                    "type": "number"
-                },
-                "endpointRtpPacketsReceived": {
-                    "description": "",
-                    "type": "number"
-                },
-                "endpointRtpPacketsSent": {
-                    "description": "",
-                    "type": "number"
-                },
-                "localJitter": {
-                    "description": "",
-                    "type": "number"
-                },
-                "localRtpOctetsDiscarded": {
-                    "description": "",
-                    "type": "number"
-                },
-                "localRtpOctetsReceived": {
-                    "description": "",
-                    "type": "number"
-                },
-                "localRtpOctetsSent": {
-                    "description": "",
-                    "type": "number"
-                },
-                "localRtpPacketsDiscarded": {
-                    "description": "",
-                    "type": "number"
-                },
-                "localRtpPacketsReceived": {
-                    "description": "",
-                    "type": "number"
-                },
-                "localRtpPacketsSent": {
-                    "description": "",
-                    "type": "number"
-                },
-                "mosCqe": {
-                    "description": "1-5 1dp",
-                    "type": "number"
-                },
-                "packetsLost": {
-                    "description": "",
-                    "type": "number"
-                },
-                "packetLossPercent": {
-                    "description" : "Calculated percentage packet loss based on Endpoint RTP packets lost (as reported in RTCP) and Local RTP packets sent. Direction is based on Endpoint description (Caller, Callee). Decimal (2 dp)",
-                    "type": "number"
-                },
-                "rFactor": {
-                    "description": "0-100",
-                    "type": "number"
-                },
-                "roundTripDelay": {
-                    "description": "millisecs",
-                    "type": "number"
-                }
-            },
-            "required": [ "adjacencyName", "endpointDescription" ]
-        },
-        "event": {
-            "description": "the root level of the common event format",
-	        "type": "object",
-	        "properties": {
-		        "commonEventHeader": { "$ref": "#/definitions/commonEventHeader" },
-		        "faultFields": { "$ref": "#/definitions/faultFields" },
-		        "heartbeatFields": { "$ref": "#/definitions/heartbeatFields" },
-		        "measurementsForVfScalingFields": { "$ref": "#/definitions/measurementsForVfScalingFields" },
-				"mobileFlowFields": { "$ref": "#/definitions/mobileFlowFields" },
-		        "otherFields": { "$ref": "#/definitions/otherFields" },
-		        "sipSignalingFields": { "$ref": "#/definitions/sipSignalingFields" },
-		        "stateChangeFields": { "$ref": "#/definitions/stateChangeFields" },
-				"syslogFields": { "$ref": "#/definitions/syslogFields" },
-		        "thresholdCrossingAlertFields": { "$ref": "#/definitions/thresholdCrossingAlertFields" },
-		        "voiceQualityFields": { "$ref": "#/definitions/voiceQualityFields" }
-        	},
-            "required": [ "commonEventHeader" ]
-        },
-		"eventDomainThrottleSpecification": {
-			"description": "specification of what information to suppress within an event domain",
-			"type": "object",
-			"properties": {
-		        "eventDomain": {
-			        "description": "Event domain enum from the commonEventHeader domain field",
-			        "type": "string"
-		        },
-		        "suppressedFieldNames": {
-			        "description": "List of optional field names in the event block that should not be sent to the Event Listener",
-			        "type": "array",
-					"items": {
-					    "type": "string"
-					}
-		        },
-				"suppressedNvPairsList": {
-					"description": "Optional list of specific NvPairsNames to suppress within a given Name-Value Field",
-			        "type": "array",
-					"items": {
-					    "$ref": "#/definitions/suppressedNvPairs"
-					}
-		        }
-			},
-			"required": [ "eventDomain" ]
-		},
-		"eventDomainThrottleSpecificationList": {
-			"description": "array of eventDomainThrottleSpecifications",
-			"type": "array",
-			"items": {
-			    "$ref": "#/definitions/eventDomainThrottleSpecification"
-			},
-			"minItems": 0
-		},
-		"eventList": {
-			"description": "array of events",
-			"type": "array",
-			"items": {
-				"$ref": "#/definitions/event"
-			}
-		},
-		"eventThrottlingState": {
-			"description": "reports the throttling in force at the event source",
-			"type": "object",
-			"properties": {
-		        "eventThrottlingMode": {
-			        "description": "Mode the event manager is in",
-			        "type": "string",
-					"enum": [
-						"normal",
-						"throttled"
-					]
-		        },
-				"eventDomainThrottleSpecificationList": { "$ref": "#/definitions/eventDomainThrottleSpecificationList" }
-			},
-			"required": [ "eventThrottlingMode" ]
-		},
-		"faultFields": {
-			"description": "fields specific to fault events",
-			"type": "object",
-			"properties": {
-				"alarmAdditionalInformation": {
-					"description": "additional alarm information",
-					"type": "array",
-					"items": {
-						"$ref": "#/definitions/field"
-					}
-				},
-				"alarmCondition": {
-					"description": "alarm condition reported by the device",
-					"type": "string"
-				},
-				"alarmInterfaceA": {
-					"description": "card, port, channel or interface name of the device generating the alarm",
-					"type": "string"
-				},
-				"eventCategory": {
-					"description": "Event category, for example: license, link, routing, security, signaling",
-					"type": "string"
-				},
-				"eventSeverity": {
-					"description": "event severity",
-					"type": "string",
-					"enum": [
-						"CRITICAL",
-						"MAJOR",
-						"MINOR",
-						"WARNING",
-						"NORMAL"
-					]
-				},
-				"eventSourceType": {
-					"description": "type of event source; examples: card, host, other, port, portThreshold, router, slotThreshold, switch, virtualMachine, virtualNetworkFunction",
-					"type": "string"
-				},
-				"faultFieldsVersion": {
-					"description": "version of the faultFields block",
-					"type": "number"
-				},
-				"specificProblem": {
-					"description": "short description of the alarm or problem",
-					"type": "string"
-				},
-				"vfStatus": {
-					"description": "virtual function status enumeration",
-					"type": "string",
-					"enum": [
-						"Active",
-						"Idle",
-						"Preparing to terminate",
-						"Ready to terminate",
-						"Requesting termination"
-					]
-				}
-			},
-			"required": [ "alarmCondition", "eventSeverity", "eventSourceType",
-			              "faultFieldsVersion", "specificProblem", "vfStatus" ]
-		},
-		"featuresInUse": {
-			"description": "number of times an identified feature was used over the measurementInterval",
-			"type": "object",
-			"properties": {
-				"featureIdentifier": { "type": "string" },
-				"featureUtilization": { "type": "integer" }
-			},
-			"required": [ "featureIdentifier", "featureUtilization" ]
-		},
-		"field": {
-			"description": "name value pair",
-			"type": "object",
-			"properties": {
-				"name":  { "type": "string" },
-				"value": { "type": "string" }
-			},
-			"required": [ "name", "value" ]
-		},
-		"filesystemUsage": {
-			"description": "disk usage of an identified virtual machine in gigabytes and/or gigabytes per second",
-			"type": "object",
-			"properties": {
-				"blockConfigured": { "type": "number" },
-				"blockIops": { "type": "number" },
-				"blockUsed": { "type": "number" },
-				"ephemeralConfigured": { "type": "number" },
-				"ephemeralIops": { "type": "number" },
-				"ephemeralUsed": { "type": "number" },
-				"filesystemName": { "type": "string" }
-			},
-			"required": [ "blockConfigured", "blockIops", "blockUsed", "ephemeralConfigured",
-			              "ephemeralIops", "ephemeralUsed", "filesystemName" ]
-		},
-		"gtpPerFlowMetrics": {
-			"description": "Mobility GTP Protocol per flow metrics",
-			"type": "object",
-			"properties": {
-				"avgBitErrorRate": {
-					"description": "average bit error rate",
-					"type": "number"
-				},
-				"avgPacketDelayVariation": {
-					"description": "Average packet delay variation or jitter in milliseconds for received packets: Average difference between the packet timestamp and time received for all pairs of consecutive packets",
-					"type": "number"
-				},
-				"avgPacketLatency": {
-					"description": "average delivery latency",
-					"type": "number"
-				},
-				"avgReceiveThroughput": {
-					"description": "average receive throughput",
-					"type": "number"
-				},
-				"avgTransmitThroughput": {
-					"description": "average transmit throughput",
-					"type": "number"
-				},
-				"durConnectionFailedStatus": {
-					"description": "duration of failed state in milliseconds, computed as the cumulative time between a failed echo request and the next following successful error request, over this reporting interval",
-					"type": "number"
-				},
-				"durTunnelFailedStatus": {
-					"description": "Duration of errored state, computed as the cumulative time between a tunnel error indicator and the next following non-errored indicator, over this reporting interval",
-					"type": "number"
-				},
-				"flowActivatedBy": {
-					"description": "Endpoint activating the flow",
-					"type": "string"
-				},
-				"flowActivationEpoch": {
-					"description": "Time the connection is activated in the flow (connection) being reported on, or transmission time of the first packet if activation time is not available",
-					"type": "number"
-				},
-				"flowActivationMicrosec": {
-					"description": "Integer microseconds for the start of the flow connection",
-					"type": "number"
-				},
-				"flowActivationTime": {
-					"description": "time the connection is activated in the flow being reported on, or transmission time of the first packet if activation time is not available; with RFC 2822 compliant format: Sat, 13 Mar 2010 11:29:05 -0800",
-					"type": "string"
-				},
-				"flowDeactivatedBy": {
-					"description": "Endpoint deactivating the flow",
-					"type": "string"
-				},
-				"flowDeactivationEpoch": {
-					"description": "Time for the start of the flow connection, in integer UTC epoch time aka UNIX time",
-					"type": "number"
-				},
-				"flowDeactivationMicrosec": {
-					"description": "Integer microseconds for the start of the flow connection",
-					"type": "number"
-				},
-				"flowDeactivationTime": {
-					"description": "Transmission time of the first packet in the flow connection being reported on; with RFC 2822 compliant format: Sat, 13 Mar 2010 11:29:05 -0800",
-					"type": "string"
-				},
-				"flowStatus": {
-					"description": "connection status at reporting time as a working / inactive / failed indicator value",
-					"type": "string"
-				},
-				"gtpConnectionStatus": {
-					"description": "Current connection state at reporting time",
-					"type": "string"
-				},
-				"gtpTunnelStatus": {
-					"description": "Current tunnel state  at reporting time",
-					"type": "string"
-				},
-				"ipTosCountList": {
-					"description": "array of key: value pairs where the keys are drawn from the IP Type-of-Service identifiers which range from '0' to '255', and the values are the count of packets that had those ToS identifiers in the flow",
-                    "type": "array",
-                    "items": {
-						"type": "array",
-						"items": [
-							{ "type": "string" },
-							{ "type": "number" }
-						]
-					}
-				},
-				"ipTosList": {
-					"description": "Array of unique IP Type-of-Service values observed in the flow where values range from '0' to '255'",
-					"type": "array",
-					"items": {
-						"type": "string"
-					}
-				},
-				"largePacketRtt": {
-					"description": "large packet round trip time",
-					"type": "number"
-				},
-				"largePacketThreshold": {
-					"description": "large packet threshold being applied",
-					"type": "number"
-				},
-				"maxPacketDelayVariation": {
-					"description": "Maximum packet delay variation or jitter in milliseconds for received packets: Maximum of the difference between the packet timestamp and time received for all pairs of consecutive packets",
-					"type": "number"
-				},
-				"maxReceiveBitRate": {
-					"description": "maximum receive bit rate",
-					"type": "number"
-				},
-				"maxTransmitBitRate": {
-					"description": "maximum transmit bit rate",
-					"type": "number"
-				},
-				"mobileQciCosCountList": {
-					"description": "array of key: value pairs where the keys are drawn from LTE QCI or UMTS class of service strings, and the values are the count of packets that had those strings in the flow",
-                    "type": "array",
-                    "items": {
-						"type": "array",
-						"items": [
-							{ "type": "string" },
-							{ "type": "number" }
-						]
-					}
-				},
-				"mobileQciCosList": {
-					"description": "Array of unique LTE QCI or UMTS class-of-service values observed in the flow",
-					"type": "array",
-					"items": {
-						"type": "string"
-					}
-				},
-				"numActivationFailures": {
-					"description": "Number of failed activation requests, as observed by the reporting node",
-					"type": "number"
-				},
-				"numBitErrors": {
-					"description": "number of errored bits",
-					"type": "number"
-				},
-				"numBytesReceived": {
-					"description": "number of bytes received, including retransmissions",
-					"type": "number"
-				},
-				"numBytesTransmitted": {
-					"description": "number of bytes transmitted, including retransmissions",
-					"type": "number"
-				},
-				"numDroppedPackets": {
-					"description": "number of received packets dropped due to errors per virtual interface",
-					"type": "number"
-				},
-				"numGtpEchoFailures": {
-					"description": "Number of Echo request path failures where failed paths are defined in 3GPP TS 29.281 sec 7.2.1 and 3GPP TS 29.060 sec. 11.2",
-					"type": "number"
-				},
-				"numGtpTunnelErrors": {
-					"description": "Number of tunnel error indications where errors are defined in 3GPP TS 29.281 sec 7.3.1 and 3GPP TS 29.060 sec. 11.1",
-					"type": "number"
-				},
-				"numHttpErrors": {
-					"description": "Http error count",
-					"type": "number"
-				},
-				"numL7BytesReceived": {
-					"description": "number of tunneled layer 7 bytes received, including retransmissions",
-					"type": "number"
-				},
-				"numL7BytesTransmitted": {
-					"description": "number of tunneled layer 7 bytes transmitted, excluding retransmissions",
-					"type": "number"
-				},
-				"numLostPackets": {
-					"description": "number of lost packets",
-					"type": "number"
-				},
-				"numOutOfOrderPackets": {
-					"description": "number of out-of-order packets",
-					"type": "number"
-				},
-				"numPacketErrors": {
-					"description": "number of errored packets",
-					"type": "number"
-				},
-				"numPacketsReceivedExclRetrans": {
-					"description": "number of packets received, excluding retransmission",
-					"type": "number"
-				},
-				"numPacketsReceivedInclRetrans": {
-					"description": "number of packets received, including retransmission",
-					"type": "number"
-				},
-				"numPacketsTransmittedInclRetrans": {
-					"description": "number of packets transmitted, including retransmissions",
-					"type": "number"
-				},
-				"numRetries": {
-					"description": "number of packet retries",
-					"type": "number"
-				},
-				"numTimeouts": {
-					"description": "number of packet timeouts",
-					"type": "number"
-				},
-				"numTunneledL7BytesReceived": {
-					"description": "number of tunneled layer 7 bytes received, excluding retransmissions",
-					"type": "number"
-				},
-				"roundTripTime": {
-					"description": "round trip time",
-					"type": "number"
-				},
-				"tcpFlagCountList": {
-					"description": "array of key: value pairs where the keys are drawn from TCP Flags and the values are the count of packets that had that TCP Flag in the flow",
-                    "type": "array",
-                    "items": {
-						"type": "array",
-						"items": [
-							{ "type": "string" },
-							{ "type": "number" }
-						]
-					}
-				},
-				"tcpFlagList": {
-					"description": "Array of unique TCP Flags observed in the flow",
-					"type": "array",
-					"items": {
-						"type": "string"
-					}
-				},
-				"timeToFirstByte": {
-					"description": "Time in milliseconds between the connection activation and first byte received",
-					"type": "number"
-				}
-			},
-			"required": [ "avgBitErrorRate", "avgPacketDelayVariation", "avgPacketLatency",
-                          "avgReceiveThroughput", "avgTransmitThroughput",
-						  "flowActivationEpoch", "flowActivationMicrosec",
- 						  "flowDeactivationEpoch", "flowDeactivationMicrosec",
-                          "flowDeactivationTime", "flowStatus",
-						  "maxPacketDelayVariation", "numActivationFailures",
- 						  "numBitErrors", "numBytesReceived", "numBytesTransmitted",
-						  "numDroppedPackets", "numL7BytesReceived",
-						  "numL7BytesTransmitted", "numLostPackets",
-						  "numOutOfOrderPackets", "numPacketErrors",
-						  "numPacketsReceivedExclRetrans",
-						  "numPacketsReceivedInclRetrans",
-						  "numPacketsTransmittedInclRetrans",
-						  "numRetries", "numTimeouts", "numTunneledL7BytesReceived",
-						  "roundTripTime", "timeToFirstByte"
-			]
-		},
-		"heartbeatFields": {
-			"description": "optional field block for fields specific to heartbeat events",
-			"type": "object",
-			"properties": {
-				"additionalFields": {
-					"description": "additional heartbeat fields if needed",
-					"type": "array",
-					"items": {
-						"$ref": "#/definitions/field"
-					}
-				},
-				"heartbeatFieldsVersion": {
-					"description": "version of the heartbeatFields block",
-					"type": "number"
-				},
-				"heartbeatInterval": {
-					"description": "current heartbeat interval in seconds",
-					"type": "integer"
-				}
-			},
-			"required": [ "heartbeatFieldsVersion", "heartbeatInterval" ]
-		},
-		"internalHeaderFields": {
-			"description": "enrichment fields for internal VES Event Listener service use only, not supplied by event sources",
-			"type": "object"
-		},
-		"jsonObject": {
-			"description": "json object schema, name and other meta-information along with one or more object instances",
-			"type": "object",
-			"properties": {
-				"objectInstances":  {
-                    "description": "one or more instances of the jsonObject", 
-                    "type": "array",
-                    "items": {
-                        "$ref": "#/definitions/jsonObjectInstance"	
-                    }					
-                },
-				"objectName":  {
-                    "description": "name of the JSON Object", 
-                    "type": "string" 
-                },
-				"objectSchema":  {
-                    "description": "json schema for the object", 
-                    "type": "string" 
-                },
-				"objectSchemaUrl":  {
-                    "description": "Url to the json schema for the object", 
-                    "type": "string" 
-                },
-				"nfSubscribedObjectName":  {
-                    "description": "name of the object associated with the nfSubscriptonId", 
-                    "type": "string" 
-                },
-				"nfSubscriptionId":  {
-                    "description": "identifies an openConfig telemetry subscription on a network function, which configures the network function to send complex object data associated with the jsonObject", 
-                    "type": "string" 
-                }
-			},
-			"required": [ "objectInstances", "objectName" ]
-		},
-		"jsonObjectInstance": {
-			"description": "meta-information about an instance of a jsonObject along with the actual object instance",
-			"type": "object",
-			"properties": {
-				"objectInstance":  {
-                    "description": "an instance conforming to the jsonObject schema", 
-                    "type": "object" 
-                },
-				"objectInstanceEpochMicrosec":  {
-                    "description": "the unix time aka epoch time associated with this objectInstance--as microseconds elapsed since 1 Jan 1970 not including leap seconds", 
-                    "type": "number" 
-                },
-				"objectKeys":  {
-                    "description": "an ordered set of keys that identifies this particular instance of jsonObject", 
-                    "type": "array",
-                    "items": {
-                        "$ref": "#/definitions/key"
-                    }					
-                }
-			},
-			"required": [ "objectInstance" ]
-		},
-		"key": {
-			"description": "tuple which provides the name of a key along with its value and relative order",
-			"type": "object",
-			"properties": {
-				"keyName": { 
-                    "description": "name of the key", 
-				    "type": "string" 
-				},
-				"keyOrder": { 
-                    "description": "relative sequence or order of the key with respect to other keys", 
-				    "type": "integer" 
-				},
-				"keyValue": { 
-                    "description": "value of the key", 
-				    "type": "string" 
-				}
-			},
-			"required": [ "keyName" ]
-		},
-		"latencyBucketMeasure": {
-			"description": "number of counts falling within a defined latency bucket",
-			"type": "object",
-			"properties": {
-				"countsInTheBucket": { "type": "number" },
-				"highEndOfLatencyBucket": { "type": "number" },
-				"lowEndOfLatencyBucket":  { "type": "number" }
-			},
-			"required": [ "countsInTheBucket" ]
-		},
-		"measurementsForVfScalingFields": {
-			"description": "measurementsForVfScaling fields",
-			"type": "object",
-			"properties": {
-				"additionalFields": {
-					"description": "additional name-value-pair fields",
-					"type": "array",
-					"items": {
-						"$ref": "#/definitions/field"
-					}
-				},
-				"additionalMeasurements": {
-					"description": "array of named name-value-pair arrays",
-					"type": "array",
-					"items": {
-						"$ref": "#/definitions/namedArrayOfFields"
-					}
-				},
-                "additionalObjects": {
-                    "description": "array of JSON objects described by name, schema and other meta-information",
-					"type": "array",
-					"items": {
-                        "$ref": "#/definitions/jsonObject"
-					}
-                },
-				"codecUsageArray": {
-					"description": "array of codecs in use",
-					"type": "array",
-					"items": {
-						"$ref": "#/definitions/codecsInUse"
-					}
-				},
-				"concurrentSessions": {
-					"description": "peak concurrent sessions for the VM or VNF over the measurementInterval",
-					"type": "integer"
-				},
-				"configuredEntities": {
-					"description": "over the measurementInterval, peak total number of: users, subscribers, devices, adjacencies, etc., for the VM, or subscribers, devices, etc., for the VNF",
-					"type": "integer"
-				},
-				"cpuUsageArray": {
-					"description": "usage of an array of CPUs",
-					"type": "array",
-					"items": {
-						"$ref": "#/definitions/cpuUsage"
-					}
-				},
-                "diskUsageArray": {
-					"description": "usage of an array of disks",
-					"type": "array",
-					"items": {
-						"$ref": "#/definitions/diskUsage"
-					}
-				},
-				"featureUsageArray": {
-					"description": "array of features in use",
-					"type": "array",
-					"items": {
-						"$ref": "#/definitions/featuresInUse"
-					}
-				},
-				"filesystemUsageArray": {
-					"description": "filesystem usage of the VM on which the VNFC reporting the event is running",
-					"type": "array",
-					"items": {
-						"$ref": "#/definitions/filesystemUsage"
-					}
-				},
-				"latencyDistribution": {
-					"description": "array of integers representing counts of requests whose latency in milliseconds falls within per-VNF configured ranges",
-					"type": "array",
-					"items": {
-						"$ref": "#/definitions/latencyBucketMeasure"
-					}
-				},
-				"meanRequestLatency": {
-					"description": "mean seconds required to respond to each request for the VM on which the VNFC reporting the event is running",
-					"type": "number"
-				},
-				"measurementInterval": {
-					"description": "interval over which measurements are being reported in seconds",
-					"type": "number"
-				},
-				"measurementsForVfScalingVersion": {
-					"description": "version of the measurementsForVfScaling block",
-					"type": "number"
-				},
-				"memoryUsageArray": {
-					"description": "memory usage of an array of VMs",
-					"type": "array",
-					"items": {
-						"$ref": "#/definitions/memoryUsage"
-					}
-				},
-				"numberOfMediaPortsInUse": {
-					"description": "number of media ports in use",
-					"type": "integer"
-				},
-				"requestRate": {
-					"description": "peak rate of service requests per second to the VNF over the measurementInterval",
-					"type": "number"
-				},
-				"vnfcScalingMetric": {
-					"description": "represents busy-ness of the VNF from 0 to 100 as reported by the VNFC",
-					"type": "integer"
-				},
-				"vNicPerformanceArray": {
-					"description": "usage of an array of virtual network interface cards",
-					"type": "array",
-					"items": {
-						"$ref": "#/definitions/vNicPerformance"
-					}
-				}
-			},
-			"required": [ "measurementInterval", "measurementsForVfScalingVersion" ]
-		},
-		"memoryUsage": {
-			"description": "memory usage of an identified virtual machine",
-			"type": "object",
-			"properties": {
-				"memoryBuffered": { 
-                    "description": "kibibytes of temporary storage for raw disk blocks", 
-                    "type": "number" 
-                },
-				"memoryCached": { 
-                    "description": "kibibytes of memory used for cache", 
-                    "type": "number" 
-                },
-				"memoryConfigured": { 
-                    "description": "kibibytes of memory configured in the virtual machine on which the VNFC reporting the event is running", 
-                    "type": "number" 
-                },
-				"memoryFree": { 
-                    "description": "kibibytes of physical RAM left unused by the system", 
-                    "type": "number" 
-                },
-				"memorySlabRecl": { 
-                    "description": "the part of the slab that can be reclaimed such as caches measured in kibibytes", 
-                    "type": "number" 
-                },
-				"memorySlabUnrecl": { 
-                    "description": "the part of the slab that cannot be reclaimed even when lacking memory measured in kibibytes", 
-                    "type": "number" 
-                },
-				"memoryUsed": { 
-                    "description": "total memory minus the sum of free, buffered, cached and slab memory measured in kibibytes", 
-                    "type": "number" 
-                },
-				"vmIdentifier": { 
-                    "description": "virtual machine identifier associated with the memory metrics", 
-                    "type": "string" 
-                }
-			},
-			"required": [ "memoryFree", "memoryUsed", "vmIdentifier" ]
-		},
-		"mobileFlowFields": {
-			"description": "mobileFlow fields",
-			"type": "object",
-			"properties": {
-				"additionalFields": {
-					"description": "additional mobileFlow fields if needed",
-					"type": "array",
-					"items": {
-						"$ref": "#/definitions/field"
-					}
-				},
-				"applicationType": {
-					"description": "Application type inferred",
-					"type": "string"
-				},
-				"appProtocolType": {
-					"description": "application protocol",
-					"type": "string"
-				},
-				"appProtocolVersion": {
-					"description": "application protocol version",
-					"type": "string"
-				},
-				"cid": {
-					"description": "cell id",
-					"type": "string"
-				},
-				"connectionType": {
-					"description": "Abbreviation referencing a 3GPP reference point e.g., S1-U, S11, etc",
-					"type": "string"
-				},
-				"ecgi": {
-					"description": "Evolved Cell Global Id",
-					"type": "string"
-				},
-				"flowDirection": {
-					"description": "Flow direction, indicating if the reporting node is the source of the flow or destination for the flow",
-					"type": "string"
-				},
-				"gtpPerFlowMetrics": { "$ref": "#/definitions/gtpPerFlowMetrics" },
-				"gtpProtocolType": {
-					"description": "GTP protocol",
-					"type": "string"
-				},
-				"gtpVersion": {
-					"description": "GTP protocol version",
-					"type": "string"
-				},
-				"httpHeader": {
-					"description": "HTTP request header, if the flow connects to a node referenced by HTTP",
-					"type": "string"
-				},
-				"imei": {
-					"description": "IMEI for the subscriber UE used in this flow, if the flow connects to a mobile device",
-					"type": "string"
-				},
-				"imsi": {
-					"description": "IMSI for the subscriber UE used in this flow, if the flow connects to a mobile device",
-					"type": "string"
-				},
-				"ipProtocolType": {
-					"description": "IP protocol type e.g., TCP, UDP, RTP...",
-					"type": "string"
-				},
-				"ipVersion": {
-					"description": "IP protocol version e.g., IPv4, IPv6",
-					"type": "string"
-				},
-				"lac": {
-					"description": "location area code",
-					"type": "string"
-				},
-				"mcc": {
-					"description": "mobile country code",
-					"type": "string"
-				},
-				"mnc": {
-					"description": "mobile network code",
-					"type": "string"
-				},
-                "mobileFlowFieldsVersion": {
-                    "description": "version of the mobileFlowFields block",
-                    "type": "number"
-                },
-				"msisdn": {
-					"description": "MSISDN for the subscriber UE used in this flow, as an integer, if the flow connects to a mobile device",
-					"type": "string"
-				},
-				"otherEndpointIpAddress": {
-					"description": "IP address for the other endpoint, as used for the flow being reported on",
-					"type": "string"
-				},
-				"otherEndpointPort": {
-					"description": "IP Port for the reporting entity, as used for the flow being reported on",
-					"type": "integer"
-				},
-				"otherFunctionalRole": {
-					"description": "Functional role of the other endpoint for the flow being reported on e.g., MME, S-GW, P-GW, PCRF...",
-					"type": "string"
-				},
-				"rac": {
-					"description": "routing area code",
-					"type": "string"
-				},
-				"radioAccessTechnology": {
-					"description": "Radio Access Technology e.g., 2G, 3G, LTE",
-					"type": "string"
-				},
-				"reportingEndpointIpAddr": {
-					"description": "IP address for the reporting entity, as used for the flow being reported on",
-					"type": "string"
-				},
-				"reportingEndpointPort": {
-					"description": "IP port for the reporting entity, as used for the flow being reported on",
-					"type": "integer"
-				},
-				"sac": {
-					"description": "service area code",
-					"type": "string"
-				},
-				"samplingAlgorithm": {
-					"description": "Integer identifier for the sampling algorithm or rule being applied in calculating the flow metrics if metrics are calculated based on a sample of packets, or 0 if no sampling is applied",
-					"type": "integer"
-				},
-				"tac": {
-					"description": "transport area code",
-					"type": "string"
-				},
-				"tunnelId": {
-					"description": "tunnel identifier",
-					"type": "string"
-				},
-				"vlanId": {
-					"description": "VLAN identifier used by this flow",
-					"type": "string"
-				}
-			},
-			"required": [ "flowDirection", "gtpPerFlowMetrics", "ipProtocolType", "ipVersion",
-			              "mobileFlowFieldsVersion", "otherEndpointIpAddress", "otherEndpointPort",
-			              "reportingEndpointIpAddr", "reportingEndpointPort" ]
-		},
-		"namedArrayOfFields": {
-			"description": "an array of name value pairs along with a name for the array",
-			"type": "object",
-			"properties": {
-				"name":  { "type": "string" },
-				"arrayOfFields": {
-					"description": "array of name value pairs",
-					"type": "array",
-					"items": {  
-						"$ref": "#/definitions/field" 
-					}
-				}
-			},
-			"required": [ "name", "arrayOfFields" ]
-		},
-		"otherFields": {
-			"description": "fields for events belonging to the 'other' domain of the commonEventHeader domain enumeration",
-			"type": "object",
-			"properties": {
-				"hashOfNameValuePairArrays": {
-					"description": "array of named name-value-pair arrays",
-					"type": "array",
-					"items": {
-						"$ref": "#/definitions/namedArrayOfFields"
-					}
-				},
-                "jsonObjects": {
-                    "description": "array of JSON objects described by name, schema and other meta-information",
-					"type": "array",
-					"items": {
-                        "$ref": "#/definitions/jsonObject"
-					}
-                },
-				"nameValuePairs": {
-					"description": "array of name-value pairs",
-					"type": "array",
-					"items": {
-						"$ref": "#/definitions/field"
-					}
-				},				
-                "otherFieldsVersion": {
-                    "description": "version of the otherFields block",
-                    "type": "number"
-                }
-            },
-            "required": [ "otherFieldsVersion" ]
-		},
-		"requestError": {
-			"description": "standard request error data structure",
-			"type": "object",
-			"properties": {
-			    "messageId": {
-					"description": "Unique message identifier of the format ABCnnnn where ABC is either SVC for Service Exceptions or POL for Policy Exception",
-					"type": "string"
-				},
-				"text": {
-					"description": "Message text, with replacement variables marked with %n, where n is an index into the list of <variables> elements, starting at 1",
-					"type": "string"
-				},
-				"url": {
-					"description": "Hyperlink to a detailed error resource e.g., an HTML page for browser user agents",
-					"type": "string"
-				},
-				"variables": {
-					"description": "List of zero or more strings that represent the contents of the variables used by the message text",
-					"type": "string"
-				}
-			},
-			"required": [ "messageId", "text" ]
-		},
-        "sipSignalingFields": {
-            "description": "sip signaling fields",
-            "type": "object",
-            "properties": {
-                "additionalInformation": {
-					"description": "additional sip signaling fields if needed",
-					"type": "array",
-					"items": {  
-						"$ref": "#/definitions/field" 
-					}
-                },
-                "compressedSip": {
-                    "description": "the full SIP request/response including headers and bodies",
-                    "type": "string"
-                },
-                "correlator": {
-                    "description": "this is the same for all events on this call",
-                    "type": "string"
-                },
-                "localIpAddress": {
-                    "description": "IP address on VNF",
-                    "type": "string"
-                },
-                "localPort": {
-                    "description": "port on VNF",
-                    "type": "string"
-                },
-                "remoteIpAddress": {
-                    "description": "IP address of peer endpoint",
-                    "type": "string"
-                },
-                "remotePort": {
-                    "description": "port of peer endpoint",
-                    "type": "string"
-                },
-                "sipSignalingFieldsVersion": {
-                    "description": "version of the sipSignalingFields block",
-                    "type": "number"
-                },
-                "summarySip": {
-                    "description": "the SIP Method or Response (â€˜INVITEâ€™, â€˜200 OKâ€™, â€˜BYEâ€™, etc)",
-                    "type": "string"
-                },
-                "vendorVnfNameFields": {
-                    "$ref": "#/definitions/vendorVnfNameFields"
-                }
-            },
-            "required": [ "correlator", "localIpAddress", "localPort", "remoteIpAddress", 
-			              "remotePort", "sipSignalingFieldsVersion", "vendorVnfNameFields" ]
-        },
-		"stateChangeFields": {
-			"description": "stateChange fields",
-			"type": "object",
-			"properties": {
-				"additionalFields": {
-					"description": "additional stateChange fields if needed",
-					"type": "array",
-					"items": {
-						"$ref": "#/definitions/field"
-					}
-				},
-				"newState": {
-					"description": "new state of the entity",
-					"type": "string",
-					"enum": [
-						"inService",
-						"maintenance",
-						"outOfService"
-					]
-				},
-				"oldState": {
-					"description": "previous state of the entity",
-					"type": "string",
-					"enum": [
-						"inService",
-						"maintenance",
-						"outOfService"
-					]
-				},
-				"stateChangeFieldsVersion": {
-					"description": "version of the stateChangeFields block",
-					"type": "number"
-				},
-				"stateInterface": {
-					"description": "card or port name of the entity that changed state",
-					"type": "string"
-				}
-			},
-			"required": [ "newState", "oldState", "stateChangeFieldsVersion", "stateInterface" ]
-		},
-		"suppressedNvPairs": {
-			"description": "List of specific NvPairsNames to suppress within a given Name-Value Field for event Throttling",
-			"type": "object",
-			"properties": {
-				"nvPairFieldName": {
-					"description": "Name of the field within which are the nvpair names to suppress",
-					"type": "string"
-				},
-				"suppressedNvPairNames": {
-					"description": "Array of nvpair names to suppress within the nvpairFieldName",
-			        "type": "array",
-					"items": {
-					    "type": "string"
-					}
-				}
-			},
-			"required": [ "nvPairFieldName", "suppressedNvPairNames" ]
-		},
-		"syslogFields": {
-			"description": "sysLog fields",
-			"type": "object",
-			"properties": {
-				"additionalFields": {
-					"description": "additional syslog fields if needed provided as name=value delimited by a pipe â€˜|â€™ symbol, for example: 'name1=value1|name2=value2|â€¦'",
-					"type": "string"
-				},
-				"eventSourceHost": {
-					"description": "hostname of the device",
-					"type": "string"
-				},
-				"eventSourceType": {
-					"description": "type of event source; examples: other, router, switch, host, card, port, slotThreshold, portThreshold, virtualMachine, virtualNetworkFunction",
-					"type": "string"
-				},
-				"syslogFacility": {
-					"description": "numeric code from 0 to 23 for facility--see table in documentation",
-					"type": "integer"
-				},
-				"syslogFieldsVersion": {
-					"description": "version of the syslogFields block",
-					"type": "number"
-				},
-				"syslogMsg": {
-					"description": "syslog message",
-					"type": "string"
-				},
-				"syslogPri": {
-					"description": "0-192 combined severity and facility",
-					"type": "integer"
-				},
-				"syslogProc": {
-					"description": "identifies the application that originated the message",
-					"type": "string"
-				},
-				"syslogProcId": {
-					"description": "a change in the value of this field indicates a discontinuity in syslog reporting",
-					"type": "number"
-				},
-				"syslogSData": {
-					"description": "syslog structured data consisting of a structured data Id followed by a set of key value pairs",
-					"type": "string"
-				},
-				"syslogSdId": {
-					"description": "0-32 char in format name@number for example ourSDID@32473",
-					"type": "string"
-				},
-				"syslogSev": {
-					"description": "numerical Code for  severity derived from syslogPri as remaider of syslogPri / 8",
-					"type": "string",
-					"enum": [
-						"Alert",
-						"Critical",
-						"Debug",
-						"Emergency",
-						"Error",
-						"Info",
-						"Notice",
-						"Warning"
-					]
-				},
-				"syslogTag": {
-					"description": "msgId indicating the type of message such as TCPOUT or TCPIN; NILVALUE should be used when no other value can be provided",
-					"type": "string"
-				},
-				"syslogVer": {
-					"description": "IANA assigned version of the syslog protocol specification - typically 1",
-					"type": "number"
-				}
-			},
-			"required": [ "eventSourceType", "syslogFieldsVersion", "syslogMsg", "syslogTag" ]
-		},
-		"thresholdCrossingAlertFields": {
-			"description": "fields specific to threshold crossing alert events",
-			"type": "object",
-			"properties": {
-				"additionalFields": {
-					"description": "additional threshold crossing alert fields if needed",
-					"type": "array",
-					"items": {  
-						"$ref": "#/definitions/field" 
-					}
-				},
-				"additionalParameters": {
-					"description": "performance counters",
-					"type": "array",
-					"items": {
-						"$ref": "#/definitions/counter"
-					}
-				},
-				"alertAction": {
-					"description": "Event action",
-					"type": "string",
-					"enum": [
-						"CLEAR",
-						"CONT",
-						"SET"
-					]
-				},
-				"alertDescription": {
-					"description": "Unique short alert description such as IF-SHUB-ERRDROP",
-					"type": "string"
-				},
-				"alertType": {
-					"description": "Event type",
-					"type": "string",
-					"enum": [
-						"CARD-ANOMALY",
-						"ELEMENT-ANOMALY",
-						"INTERFACE-ANOMALY",
-						"SERVICE-ANOMALY"
-					]
-				},
-				"alertValue": {
-					"description": "Calculated API value (if applicable)",
-					"type": "string"
-				},
-				"associatedAlertIdList": {
-					"description": "List of eventIds associated with the event being reported",
-					"type": "array",
-					"items": { "type": "string" }
-				},
-				"collectionTimestamp": {
-					"description": "Time when the performance collector picked up the data; with RFC 2822 compliant format: Sat, 13 Mar 2010 11:29:05 -0800",
-					"type": "string"
-				},
-				"dataCollector": {
-					"description": "Specific performance collector instance used",
-					"type": "string"
-				},
-				"elementType": {
-					"description": "type of network element - internal ATT field",
-					"type": "string"
-				},
-				"eventSeverity": {
-					"description": "event severity or priority",
-					"type": "string",
-					"enum": [
-						"CRITICAL",
-						"MAJOR",
-						"MINOR",
-						"WARNING",
-						"NORMAL"
-					]
-				},
-				"eventStartTimestamp": {
-					"description": "Time closest to when the measurement was made; with RFC 2822 compliant format: Sat, 13 Mar 2010 11:29:05 -0800",
-					"type": "string"
-				},
-				"interfaceName": {
-					"description": "Physical or logical port or card (if applicable)",
-					"type": "string"
-				},
-				"networkService": {
-					"description": "network name - internal ATT field",
-					"type": "string"
-				},
-				"possibleRootCause": {
-					"description": "Reserved for future use",
-					"type": "string"
-				},
-				"thresholdCrossingFieldsVersion": {
-					"description": "version of the thresholdCrossingAlertFields block",
-					"type": "number"
-				}
-			},
-			"required": [
-				"additionalParameters",
-				"alertAction",
-				"alertDescription",
-				"alertType",
-				"collectionTimestamp",
-				"eventSeverity",
-				"eventStartTimestamp",
-				"thresholdCrossingFieldsVersion"
-			]
-		},
-		"vendorVnfNameFields": {
-			"description": "provides vendor, vnf and vfModule identifying information",
-			"type": "object",
-			"properties": {
-				"vendorName": {
-					"description": "VNF vendor name",
-					"type": "string"
-				},
-				"vfModuleName": {
-					"description": "ASDC vfModuleName for the vfModule generating the event",
-					"type": "string"
-				},
-				"vnfName": {
-					"description": "ASDC modelName for the VNF generating the event",
-					"type": "string"
-				}
-			},
-			"required": [ "vendorName" ]
-		},
-		"vNicPerformance": {
-			"description": "describes the performance and errors of an identified virtual network interface card",
-			"type": "object",
-			"properties": {
-				"receivedBroadcastPacketsAccumulated": {
-					"description": "Cumulative count of broadcast packets received as read at the end of the measurement interval",
-					"type": "number"
-				},
-				"receivedBroadcastPacketsDelta": {
-					"description": "Count of broadcast packets received within the measurement interval",
-					"type": "number"
-				},
-				"receivedDiscardedPacketsAccumulated": {
-					"description": "Cumulative count of discarded packets received as read at the end of the measurement interval",
-					"type": "number"
-				},
-				"receivedDiscardedPacketsDelta": {
-					"description": "Count of discarded packets received within the measurement interval",
-					"type": "number"
-				},
-				"receivedErrorPacketsAccumulated": {
-					"description": "Cumulative count of error packets received as read at the end of the measurement interval",
-					"type": "number"
-				},
-				"receivedErrorPacketsDelta": {
-					"description": "Count of error packets received within the measurement interval",
-					"type": "number"
-				},
-				"receivedMulticastPacketsAccumulated": {
-					"description": "Cumulative count of multicast packets received as read at the end of the measurement interval",
-					"type": "number"
-				},
-				"receivedMulticastPacketsDelta": {
-					"description": "Count of multicast packets received within the measurement interval",
-					"type": "number"
-				},
-				"receivedOctetsAccumulated": {
-					"description": "Cumulative count of octets received as read at the end of the measurement interval",
-					"type": "number"
-				},
-				"receivedOctetsDelta": {
-					"description": "Count of octets received within the measurement interval",
-					"type": "number"
-				},
-				"receivedTotalPacketsAccumulated": {
-					"description": "Cumulative count of all packets received as read at the end of the measurement interval",
-					"type": "number"
-				},
-				"receivedTotalPacketsDelta": {
-					"description": "Count of all packets received within the measurement interval",
-					"type": "number"
-				},
-				"receivedUnicastPacketsAccumulated": {
-					"description": "Cumulative count of unicast packets received as read at the end of the measurement interval",
-					"type": "number"
-				},
-				"receivedUnicastPacketsDelta": {
-					"description": "Count of unicast packets received within the measurement interval",
-					"type": "number"
-				},
-				"transmittedBroadcastPacketsAccumulated": {
-					"description": "Cumulative count of broadcast packets transmitted as read at the end of the measurement interval",
-					"type": "number"
-				},
-				"transmittedBroadcastPacketsDelta": {
-					"description": "Count of broadcast packets transmitted within the measurement interval",
-					"type": "number"
-				},
-				"transmittedDiscardedPacketsAccumulated": {
-					"description": "Cumulative count of discarded packets transmitted as read at the end of the measurement interval",
-					"type": "number"
-				},
-				"transmittedDiscardedPacketsDelta": {
-					"description": "Count of discarded packets transmitted within the measurement interval",
-					"type": "number"
-				},
-				"transmittedErrorPacketsAccumulated": {
-					"description": "Cumulative count of error packets transmitted as read at the end of the measurement interval",
-					"type": "number"
-				},
-				"transmittedErrorPacketsDelta": {
-					"description": "Count of error packets transmitted within the measurement interval",
-					"type": "number"
-				},
-				"transmittedMulticastPacketsAccumulated": {
-					"description": "Cumulative count of multicast packets transmitted as read at the end of the measurement interval",
-					"type": "number"
-				},
-				"transmittedMulticastPacketsDelta": {
-					"description": "Count of multicast packets transmitted within the measurement interval",
-					"type": "number"
-				},
-				"transmittedOctetsAccumulated": {
-					"description": "Cumulative count of octets transmitted as read at the end of the measurement interval",
-					"type": "number"
-				},
-				"transmittedOctetsDelta": {
-					"description": "Count of octets transmitted within the measurement interval",
-					"type": "number"
-				},
-				"transmittedTotalPacketsAccumulated": {
-					"description": "Cumulative count of all packets transmitted as read at the end of the measurement interval",
-					"type": "number"
-				},
-				"transmittedTotalPacketsDelta": {
-					"description": "Count of all packets transmitted within the measurement interval",
-					"type": "number"
-				},
-				"transmittedUnicastPacketsAccumulated": {
-					"description": "Cumulative count of unicast packets transmitted as read at the end of the measurement interval",
-					"type": "number"
-				},
-				"transmittedUnicastPacketsDelta": {
-					"description": "Count of unicast packets transmitted within the measurement interval",
-					"type": "number"
-				},
-				"valuesAreSuspect": {
-					"description": "Indicates whether vNicPerformance values are likely inaccurate due to counter overflow or other condtions",
-					"type": "string",
-					"enum": [ "true", "false" ]
-				},
-				"vNicIdentifier": {
-					"description": "vNic identification",
-					"type": "string"
-				}
-			},
-			"required": [ "valuesAreSuspect", "vNicIdentifier" ]
-		},
-        "voiceQualityFields": {
-            "description": "provides statistics related to customer facing voice products",
-            "type": "object",
-            "properties": {
-                "additionalInformation": {
-					"description": "additional voice quality fields if needed",
-					"type": "array",
-					"items": {  
-						"$ref": "#/definitions/field" 
-					}
-                },
-                "calleeSideCodec": {
-                    "description": "callee codec for the call",
-                    "type": "string"
-                },
-                "callerSideCodec": {
-                    "description": "caller codec for the call",
-                    "type": "string"
-                },
-                "correlator": {
-                    "description": "this is the same for all events on this call",
-                    "type": "string"
-                },
-                "endOfCallVqmSummaries": {
-                    "$ref": "#/definitions/endOfCallVqmSummaries"
-                },
-                "phoneNumber": {
-                    "description": "phone number associated with the correlator",
-                    "type": "string"
-                },
-                "midCallRtcp": {
-                    "description": "Base64 encoding of the binary RTCP data excluding Eth/IP/UDP headers",
-                    "type": "string"
-                },
-                "vendorVnfNameFields": {
-                    "$ref": "#/definitions/vendorVnfNameFields"
-                },
-                "voiceQualityFieldsVersion": {
-                    "description": "version of the voiceQualityFields block",
-                    "type": "number"
-                }
-            },
-            "required": [ "calleeSideCodec", "callerSideCodec", "correlator", "midCallRtcp",
-			              "vendorVnfNameFields", "voiceQualityFieldsVersion" ]
-        }
-	},
-	"title": "Event Listener",
-	"type": "object",
-	"properties": {
-        "event": {"$ref": "#/definitions/event"}
-    }
-}
diff --git a/test/csit/tests/dcaegen2/prh_testcases/resources/DMaaP.py b/test/csit/tests/dcaegen2/prh_testcases/resources/DMaaP.py
deleted file mode 100644
index 6daf59b..0000000
--- a/test/csit/tests/dcaegen2/prh_testcases/resources/DMaaP.py
+++ /dev/null
@@ -1,157 +0,0 @@
-import BaseHTTPServer
-import json
-import posixpath
-import sys
-import urllib
-from Queue import Queue
-
-import jsonschema
-from robot.api import logger
-
-try:
-    from cStringIO import StringIO
-except ImportError:
-    from StringIO import StringIO
-
-CommonEventSchemaV5 = "./CommonEventFormat_28.3.json"
-EvtSchema = None
-EventQueue = {"defaultTopic": Queue()}
-
-
-def cleanUpEvent(topic="defaultTopic"):
-    try:
-        EventQueue.get(topic).empty()
-    except Exception as e:
-        logger.console(str(e))
-        logger.console("DMaaP Event enqueue failed")
-
-
-def enqueEvent(evt, topic="defaultTopic"):
-    if topic not in EventQueue.keys():
-        EventQueue.update({topic: Queue()})
-
-    try:
-        EventQueue.get(topic).put(evt)
-        logger.console("DMaaP Event enqued - size=" + str(len(evt)))
-        return True
-    except Exception as e:
-        logger.console(str(e))
-        logger.console("DMaaP Event enqueue failed")
-        return False
-
-
-def dequeEvent(topic="defaultTopic", waitSec=10):
-    try:
-        evt = EventQueue.get(topic).get(True, waitSec)
-        logger.console("DMaaP Event dequeued - size=" + str(len(evt)))
-        return evt
-    except Exception as e:
-        logger.console(str(e))
-        logger.console("DMaaP Event dequeue failed")
-        return None
-
-
-class DMaaPHandler(BaseHTTPServer.BaseHTTPRequestHandler):
-
-    def do_PUT(self):
-        self.send_response(405)
-        return
-
-    def do_PATCH(self):
-        self.send_response(200)
-        return
-        
-    def do_POST(self):
-        
-        respCode = 0
-
-        if 'POST' not in self.requestline:
-            respCode = 405
-        
-        if respCode == 0:
-            content_len = int(self.headers.getheader('content-length', 0))
-            post_body = self.rfile.read(content_len)
-
-            logger.console("DMaaP Receive Event:\n" + post_body)
-            
-            indx = post_body.index("{")
-            if indx != 0:
-                post_body = post_body[indx:]
-
-            topic = self.getTopicName(self.path)
-
-            if topic is not None:
-                logger.console("DMaaP Topic Name: " + topic)
-                if enqueEvent(post_body, topic) == False:
-                    print "enque event fails"
-                   
-            global EvtSchema
-            try:
-                if EvtSchema is None:
-                    with open(CommonEventSchemaV5) as file:
-                        EvtSchema = json.load(file)
-                decoded_body = json.loads(post_body)
-                jsonschema.validate(decoded_body, EvtSchema)
-            except:
-                respCode = 400
-        
-        if respCode == 0:
-            if 'clientThrottlingState' in self.requestline:
-                self.send_response(204)
-            else:
-                self.send_response(200)
-                self.send_header('Content-Type', 'application/json')
-                self.end_headers()
-                self.wfile.write("{\"count\": 1, \"serverTimeMs\": 3}")
-                self.wfile.close()
-        else:
-            self.send_response(respCode)
-
-        return
-
-    def do_GET(self):
-        self.send_response(200)
-        self.send_header('Content-Type', 'application/json')
-        self.end_headers()
-        self.wfile.write(dequeEvent(self.getTopicName(self.path)))
-        self.wfile.close()
-
-        return
-
-    def getTopicName(self, path):
-        # abandon query parameters
-        path = path.split('?',1)[0]
-        path = path.split('#',1)[0]
-
-        path = posixpath.normpath(urllib.unquote(path))
-        parts = filter(None, path.split('/'))
-
-        if len(parts) > 1 and parts[0] == "events":
-            return str(parts[1])
-        else:
-            return None
-
-def _main_ (HandlerClass = DMaaPHandler,
-         ServerClass = BaseHTTPServer.HTTPServer, protocol="HTTP/1.0"):
-    
-    if sys.argv[1:]:
-        port = int(sys.argv[1])
-    else:
-        port = 2222
-    
-    print "Load event schema file: " + CommonEventSchemaV5
-    with open(CommonEventSchemaV5) as file:
-        global EvtSchema
-        EvtSchema = json.load(file)
-        
-    server_address = ('', port)
-
-    HandlerClass.protocol_version = protocol
-    httpd = ServerClass(server_address, HandlerClass)
-
-    sa = httpd.socket.getsockname()
-    print "Serving HTTP on", sa[0], "port", sa[1], "..."
-    httpd.serve_forever()
-    
-if __name__ == '__main__':
-    _main_()
\ No newline at end of file
diff --git a/test/csit/tests/dcaegen2/prh_testcases/resources/Dockerfile b/test/csit/tests/dcaegen2/prh_testcases/resources/Dockerfile
deleted file mode 100644
index e8d1cc1..0000000
--- a/test/csit/tests/dcaegen2/prh_testcases/resources/Dockerfile
+++ /dev/null
@@ -1,13 +0,0 @@
-FROM python:2
-
-ENV https_proxy "$https_proxy"
-#ENV TZ=Europe/Warsaw
-
-ADD DMaaP.py /
-ADD CommonEventFormat_28.3.json / 
-
-RUN pip install jsonschema robotframework
-
-EXPOSE 2222
-
-CMD [ "python", "./DMaaP.py" ]
\ No newline at end of file
diff --git a/test/csit/tests/dcaegen2/prh_testcases/resources/PrhLibrary.py b/test/csit/tests/dcaegen2/prh_testcases/resources/PrhLibrary.py
deleted file mode 100644
index 893ed94..0000000
--- a/test/csit/tests/dcaegen2/prh_testcases/resources/PrhLibrary.py
+++ /dev/null
@@ -1,95 +0,0 @@
-'''
-Created on Apr 27, 2018
-
-@author: mwagner9
-'''
-
-import threading
-import time
-
-from robot.api import logger
-
-import PrhVariables
-import Simulator
-
-st = '{"event":{"correlationID":"NOKQTFCOC540002E", "pnfOamIpv4Address":"10.16.123.234", "pnfOamIpv6Address":"2001:0db8:85a3:0000:0000:8a2e:0370:7334"}}'
-
-class PrhLibrary(object):
-    def __init__(self):
-        pass
-
-    def setup_dmaap_server(self):
-        return _setup(PrhVariables.DMaaPHttpServerThread, 'DMaaP', PrhVariables.DMaaPIsRobotRun, Simulator, 3904)
-
-    def setup_aai_server(self):
-        return _setup(PrhVariables.AAIHttpServerThread, 'AAI', PrhVariables.AAIIsRobotRun, Simulator, 3905)
-
-    def shutdown_dmaap_server(self):
-        return _shutdown(PrhVariables.DMaaPHTTPD, 'DMaaP')
-
-    def shutdown_aai_server(self):
-        return _shutdown(PrhVariables.AAIHTTPD, 'AAI')
-
-    def is_json_empty(self, response):
-        logger.info("Enter is_json_empty: response.text: " + response.text)
-        if response.text is None or len(response.text) < 2:
-            return 'True'
-        return 'False'
-
-    def dmaap_collectorTimeStamp_receive(self, search, response):
-        return _find_element(search, response)
-
-    def AAI_Ipv4_receive(self, search, response):
-        return _find_element(search, response)
-
-    def AAI_Ipv6_receive(self, search, response):
-        return _find_element(search, response)
-
-    def check_pnf_ready(self):
-        if st in Simulator.prh_ready:
-            return 'true'
-        return 'false'
-
-def _setup(serverthread, servername, isrobotrun, module, portNum):
-    if serverthread is not None:
-        logger.console('{} Mockup Sever started'.format(servername))
-        return "true"
-
-    isrobotrun = True
-
-    module_handler = module.AAIHandler if servername is 'AAI' else module.DMaaPHandler 
-
-    module.run_server(module_handler, portNum)
-    try:
-        serverthread = threading.Thread(name='{}_HTTPServer'.format(servername), target=module.Httpd.serve_forever)
-        serverthread.start()
-        logger.console('{}  Mockup Sever started'.format(servername))
-        time.sleep(2)
-        return "true"
-    except Exception as e:
-        print (str(e))
-        return "false"
-
-def _shutdown(server, name):
-    if server is not None:
-        server.shutdown()
-        logger.console("{} Server shut down".format(name))
-        time.sleep(3)
-        return "true"
-    else:
-        return "false"
-
-def _find_element(search, response):
-    while response is not None:
-        json_data = str(response)
-        if search in json_data:
-            return 'true'
-    return 'false'
-
-if __name__ == '__main__':
-    lib = PrhLibrary()
-    ret = lib.setup_dmaap_server()
-    print ret
-    ret = lib.setup_aai_server()
-    print ret
-    time.sleep(10)
diff --git a/test/csit/tests/dcaegen2/prh_testcases/resources/PrhVariables.py b/test/csit/tests/dcaegen2/prh_testcases/resources/PrhVariables.py
deleted file mode 100644
index 882a4b9..0000000
--- a/test/csit/tests/dcaegen2/prh_testcases/resources/PrhVariables.py
+++ /dev/null
@@ -1,18 +0,0 @@
-'''
-Created on Apr 27, 2018
-
-@author: mwagner9
-'''
-
-import os
-
-def GetEnvironmentVariable(envVarstr):
-    return os.environ.get(envVarstr)
-
-DMaaPHttpServerThread = None
-DMaaPHTTPD = None
-DMaaPIsRobotRun = False
-
-AAIHttpServerThread = None
-AAIHTTPD = None
-AAIIsRobotRun = False
diff --git a/test/csit/tests/dcaegen2/prh_testcases/resources/Simulator.py b/test/csit/tests/dcaegen2/prh_testcases/resources/Simulator.py
deleted file mode 100644
index e746d5a..0000000
--- a/test/csit/tests/dcaegen2/prh_testcases/resources/Simulator.py
+++ /dev/null
@@ -1,91 +0,0 @@
-'''
-Created on May 10, 2018
-
-@author: mwagner9
-'''
-
-import BaseHTTPServer
-import re
-import sys
-
-from robot.api import logger
-
-import PrhVariables
-
-Httpd = None
-prh_ready = ''
-
-class BaseHandler(BaseHTTPServer.BaseHTTPRequestHandler, object):
-    def do_GET(self, param1, param2):
-        """Serve a GET request."""
-        #prepare GET response
-        logger.console(self.raw_requestlinel)
-        json_string = param1
-        if re.search(param2, self.path) is not None:
-            self.send_response(200)
-            self.send_header("Content-type", "application/json")
-            self.end_headers()
-            self.wfile.write(json_string)
-
-class AAIHandler(BaseHandler):
-    def do_PATCH(self):
-        #prepare PATCH response
-        logger.console('========')
-        logger.console(self.raw_requestline)
-        logger.console('========')
-        if re.search('/aai/v12/network/pnfs/pnf/NOKQTFCOC540002E', self.path)is not None:
-            st = '{"ipaddress-v6-oam": "2001:0db8:85a3:0000:0000:8a2e:0370:7334","ipaddress-v4-oam": "11.22.33.156"}'
-            logger.console('========')
-            logger.console(self.raw_requestline)
-            logger.console('========')
-            self.send_response(200)
-
-    def do_GET(self):
-        param1 = '{"pnf-name":"NOKQTFCOC540002E", "pnf-id":"NOKQTFCOC540002E","ipaddress-v4-oam":"10.16.123.234","ipaddress-v6-oam":"2001:0db8:85a3:0000:0000:8a2e:0370:7334"}'
-        param2 = '/aai/v12/network/pnfs/pnf/NOKQTFCOC540002E'
-        super(self.__class__, self).do_GET(param1, param2)
-
-class DMaaPHandler(BaseHandler):
-    def do_GET(self): 
-        param1 = '{"event": {"commonEventHeader": {"sourceId":"QTFCOC540002E", "startEpochMicrosec":1519837825682, "eventId":"QTFCOC540002E-reg", "nfcNamingCode":"5DU", "internalHeaderFields":{"collectorTimeStamp":"Fri, 04 27 2018 09:01:10 GMT"}, "eventType":"pnfRegistration", "priority":"Normal", "version":3, "reportingEntityName":"5GRAN_DU", "sequence":0, "domain":"other", "lastEpochMicrosec":1519837825682, "eventName":"pnfRegistration_5GDU", "sourceName":"5GRAN_DU", "nfNamingCode":"5GRAN"}, "otherFields": {"pnfLastServiceDate":1517206400, "pnfOamIpv6Address":"2001:0db8:85a3:0000:0000:8a2e:0370:7334", "pnfVendorName":"Nokia", "pnfModelNumber":"AJ02", "pnfFamily":"BBU", "pnfType":"AirScale", "otherFieldsVersion":1, "pnfOamIpv4Address":"10.16.123.234", "pnfSoftwareVersion":"v4.5.0.1", "pnfSerialNumber":"QTFCOC540002E", "pnfManufactureDate":1516406400}}}'
-        param2 = '/events/unauthenticated.SEC_OTHER_OUTPUT/OpenDCAE-c12/c12'
-        super(self.__class__, self).do_GET(param1, param2)
-
-    def do_POST(self):
-        #Prepare POST response
-        logger.console('========')
-        logger.console(self.raw_requestline)
-        logger.console('========')
-        if re.search('/events/unauthenticated.PNF_READY', self.path) is not None:
-            global prh_ready
-            prh_ready = '{"event":{"correlationID":"NOKQTFCOC540002E", "pnfOamIpv4Address":"10.16.123.234", "pnfOamIpv6Address":"2001:0db8:85a3:0000:0000:8a2e:0370:7334"}}'
-            self.send_response(200)
-
-def run_server(HandlerClass, port, ServerClass = BaseHTTPServer.HTTPServer, protocol="HTTP/1.0"):
-    server_address = ('', port)
-
-    HandlerClass.protocol_version = protocol
-    httpd = ServerClass(server_address, HandlerClass)
-    
-    global Httpd
-    Httpd = httpd  
-    if HandlerClass is DMaaPHandler:
-        PrhVariables.DMaaPHTTPD = httpd
-    else:
-        PrhVariables.AAIHTTPD = httpd
-
-    sa = httpd.socket.getsockname()
-    print "Serving HTTP on", sa[0], "port", sa[1], "..."
-
-def _main_ (HandlerClass, port, ServerClass = BaseHTTPServer.HTTPServer, protocol="HTTP/1.0"):
-    server_address = ('', port)
-
-    HandlerClass.protocol_version = protocol
-    httpd = ServerClass(server_address, HandlerClass)
-
-    sa = httpd.socket.getsockname()
-    print "Serving HTTP on", sa[0], "port", sa[1], "..."
-    httpd.serve_forever()
-    
-if __name__ == '__main__':
-    _main_(DMaaPHandler, 3904)
diff --git a/test/csit/tests/dcaegen2/prh_testcases/resources/docker-compose.yml b/test/csit/tests/dcaegen2/prh_testcases/resources/docker-compose.yml
index 7d1fcd5..e27d845 100644
--- a/test/csit/tests/dcaegen2/prh_testcases/resources/docker-compose.yml
+++ b/test/csit/tests/dcaegen2/prh_testcases/resources/docker-compose.yml
@@ -1,11 +1,11 @@
-version: '2'
+version: '3'
 services:
   prh:
     image: nexus3.onap.org:10003/onap/org.onap.dcaegen2.services.prh.prh-app-server
     command: >
           --dmaap.dmaapConsumerConfiguration.dmaapPortNumber=2222
           --dmaap.dmaapProducerConfiguration.dmaapPortNumber=2222
-          --aai.aaiClientConfiguration.aaiHostPortNumber=2222
+          --aai.aaiClientConfiguration.aaiHostPortNumber=3333
           --aai.aaiClientConfiguration.aaiProtocol=http
     entrypoint:
       - java
@@ -17,13 +17,28 @@
       - "8100:8100"
       - "8433:8433"
     container_name: prh
+   
   dmaap_simulator:
     build:
-      context: .
+      context: simulator
+      dockerfile: DMaaP_simulator
       args:
         - https_proxy=${HTTPS_PROXY}
     ports:
       - "2222:2222"
     container_name: dmaap_simulator
     depends_on:
-      - prh
\ No newline at end of file
+      - prh
+      
+  aai_simulator:
+     build:
+       context: simulator
+       dockerfile: AAI_simulator
+       args:
+         - https_proxy=${HTTPS_PROXY}
+     ports:
+      - "3333:3333"
+     container_name: aai_simulator
+     depends_on:
+       - prh
+   
\ No newline at end of file
diff --git a/test/csit/tests/dcaegen2/prh_testcases/resources/events/pnf_register_event.json b/test/csit/tests/dcaegen2/prh_testcases/resources/events/pnf_register_event.json
deleted file mode 100644
index 2351fa4..0000000
--- a/test/csit/tests/dcaegen2/prh_testcases/resources/events/pnf_register_event.json
+++ /dev/null
@@ -1 +0,0 @@
-{"event": {"commonEventHeader": {"sourceId":"QTFCOC540002E", "startEpochMicrosec":1519837825682, "eventId":"QTFCOC540002E-reg", "nfcNamingCode":"5DU", "internalHeaderFields":{"collectorTimeStamp":"Fri, 04 27 2018 09:01:10 GMT"}, "eventType":"pnfRegistration", "priority":"Normal", "version":3, "reportingEntityName":"5GRAN_DU", "sequence":0, "domain":"other", "lastEpochMicrosec":1519837825682, "eventName":"pnfRegistration_5GDU", "sourceName":"5GRAN_DU", "nfNamingCode":"5GRAN"}, "otherFields": {"pnfLastServiceDate":1517206400, "pnfOamIpv6Address":"2001:0db8:85a3:0000:0000:8a2e:0370:7334", "pnfVendorName":"Nokia", "pnfModelNumber":"AJ02", "pnfFamily":"BBU", "pnfType":"AirScale", "otherFieldsVersion":1, "pnfOamIpv4Address":"10.16.123.234", "pnfSoftwareVersion":"v4.5.0.1", "pnfSerialNumber":"QTFCOC540002E", "pnfManufactureDate":1516406400}}}
\ No newline at end of file
diff --git a/test/csit/tests/dcaegen2/prh_testcases/resources/prh_keywords.robot b/test/csit/tests/dcaegen2/prh_testcases/resources/prh_keywords.robot
deleted file mode 100644
index 1595cd4..0000000
--- a/test/csit/tests/dcaegen2/prh_testcases/resources/prh_keywords.robot
+++ /dev/null
@@ -1,61 +0,0 @@
-*** Settings ***
-Documentation     The main interface for interacting with PRH. It handles low level stuff like managing the http request library
-Library           PrhLibrary.py
-Library           RequestsLibrary
-
-*** Variables ***
-
-*** Keywords ***
-PRH Suite Setup
-    [Documentation]    Start DMaaP and AAI Mockup Server
-    ${ret}=    Setup DMaaP Server
-    Should Be Equal As Strings    ${ret}    true
-    ${ret}=    Setup AAI Server
-    Should Be Equal As Strings    ${ret}    true
-
-PRH Suite Shutdown
-    [Documentation]    Shutdown DMaaP and AAI Mockup Server
-    ${ret}=    Shutdown DMaap Server
-    Should Be Equal As Strings    ${ret}    true
-    ${ret}=    Shutdown AAI Server
-    Should Be Equal As Strings    ${ret}    true
-
-Get event from DMaaP
-    [Arguments]    ${ip}    ${endpoint}
-    [Documentation]    Get an event from DMaaP
-    ${url}=    Catenate    SEPARATOR=    ${ip}    ${endpoint}
-    Log    Creating session ${url}
-    Create Session    prh-d1    ${url}
-    ${resp}=    Get Request    prh-d1    ${url}
-    Log    Received response from dcae ${resp.json()}
-    [Return]    ${resp}
-
-Send patch from AAI
-    [Arguments]    ${ip}    ${endpoint}
-    [Documentation]    Get patch from AAI
-    ${url}=    Catenate    SEPARATOR=    ${ip}    ${endpoint}
-    Log    Creating session ${url}
-    Create Session    prh-d1    ${url}
-    ${resp}=    Patch Request    prh-d1    ${url}
-    Log    ${resp}
-    [Return]    ${resp}
-
-Get json from AAI
-    [Arguments]    ${ip}    ${endpoint}
-    [Documentation]    Get json from AAI
-    ${url}=    Catenate    SEPARATOR=    ${ip}    ${endpoint}
-    Log    Creating session ${url}
-    Create Session    prh-d1    ${url}
-    ${resp}=    Get Request    prh-d1    ${url}
-    Log    Received response from dcae ${resp.json()}
-    [Return]    ${resp}
-
-Post json to DMaaP
-    [Arguments]    ${ip}    ${endpoint}    ${PNF_READY}
-    [Documentation]    Get json from AAI
-    ${url}=    Catenate    SEPARATOR=    ${ip}    ${endpoint}
-    Log    Creating session ${url}
-    Create Session    prh-d1    ${url}
-    ${resp}=    Post Request    prh-d1    ${url}    data=${PNF_READY}
-    Log    ${resp}
-    [Return]    ${resp}
diff --git a/test/csit/tests/dcaegen2/prh_testcases/resources/simulator/AAI.py b/test/csit/tests/dcaegen2/prh_testcases/resources/simulator/AAI.py
new file mode 100644
index 0000000..f9d0ee0
--- /dev/null
+++ b/test/csit/tests/dcaegen2/prh_testcases/resources/simulator/AAI.py
@@ -0,0 +1,56 @@
+import BaseHTTPServer
+import re
+import sys
+
+from robot.api import logger
+
+pnfs = 'Empty'
+
+class AAIHandler(BaseHTTPServer.BaseHTTPRequestHandler):
+    def do_PUT(self):
+        if re.search('/set_pnfs', self.path):
+            global pnfs
+            content_length = int(self.headers['Content-Length'])
+            pnfs = self.rfile.read(content_length)
+            self.send_response(200)
+            self.send_header('Content-Type', 'application/json')
+            self.end_headers()
+            
+        return
+        
+    def do_PATCH(self):
+        pnfs_name = '/aai/v12/network/pnfs/pnf/' + pnfs 
+        if re.search(pnfs_name, self.path):
+            self.send_response(200)
+            self.end_headers()
+            
+        return
+  
+    def do_GET(self):
+        self.send_response(200)
+        self.send_header('Content-Type', 'application/json')
+        self.end_headers()
+        self.wfile.write('GET')
+        self.wfile.close()
+            
+        return
+
+def _main_ (HandlerClass = AAIHandler,
+         ServerClass = BaseHTTPServer.HTTPServer, protocol="HTTP/1.0"):
+      
+    if sys.argv[1:]:
+        port = int(sys.argv[1])
+    else:
+        port = 3333
+       
+    server_address = ('', port)
+   
+    HandlerClass.protocol_version = protocol
+    httpd = ServerClass(server_address, HandlerClass)
+   
+    sa = httpd.socket.getsockname()
+    print "Serving HTTP on", sa[0], "port", sa[1], "..."
+    httpd.serve_forever()
+      
+if __name__ == '__main__':
+    _main_()
diff --git a/test/csit/tests/dcaegen2/prh_testcases/resources/simulator/AAI_simulator b/test/csit/tests/dcaegen2/prh_testcases/resources/simulator/AAI_simulator
new file mode 100644
index 0000000..2d96d89
--- /dev/null
+++ b/test/csit/tests/dcaegen2/prh_testcases/resources/simulator/AAI_simulator
@@ -0,0 +1,11 @@
+FROM python:2
+
+ENV https_proxy "$https_proxy"
+
+ADD AAI.py /
+
+RUN pip install robotframework 
+
+EXPOSE 3333
+
+CMD [ "python", "./AAI.py" ]
diff --git a/test/csit/tests/dcaegen2/prh_testcases/resources/simulator/DMaaP.py b/test/csit/tests/dcaegen2/prh_testcases/resources/simulator/DMaaP.py
new file mode 100644
index 0000000..af716fd
--- /dev/null
+++ b/test/csit/tests/dcaegen2/prh_testcases/resources/simulator/DMaaP.py
@@ -0,0 +1,75 @@
+import BaseHTTPServer
+import re
+import sys
+
+from robot.api import logger
+
+posted_event_from_prh = 'Empty'
+received_event_to_get_method = 'Empty'
+
+class DMaaPHandler(BaseHTTPServer.BaseHTTPRequestHandler):    
+    def do_PUT(self):
+        if re.search('/set_get_event', self.path):
+            global received_event_to_get_method
+            content_length = int(self.headers['Content-Length'])
+            received_event_to_get_method = self.rfile.read(content_length)
+            self.send_response(200)
+            self.send_header('Content-Type', 'application/json')
+            self.end_headers()
+            
+        return
+        
+    def do_POST(self):
+        if re.search('/events/pnfReady', self.path):
+            global posted_event_from_prh
+            content_length = int(self.headers['Content-Length'])
+            posted_event_from_prh = self.rfile.read(content_length)
+            self.send_response(200)
+            self.send_header('Content-Type', 'application/json')
+            self.end_headers()
+
+        return
+  
+    def do_GET(self):
+        if re.search('/events/unauthenticated.SEC_OTHER_OUTPUT', self.path):
+            self.send_response(200)
+            self.send_header('Content-Type', 'application/json')
+            self.end_headers()
+            self.wfile.write(received_event_to_get_method)
+            self.wfile.close()
+        elif re.search('/events/pnfReady', self.path):
+            self.send_response(200)
+            self.send_header('Content-Type', 'application/json')
+            self.end_headers()
+            self.wfile.write(posted_event_from_prh)
+            global posted_event_from_prh
+            posted_event_from_prh = 'Empty'
+            self.wfile.close()
+        else:
+            self.send_response(200)
+            self.send_header('Content-Type', 'application/json')
+            self.end_headers()
+            self.wfile.write('GET else')
+            self.wfile.close()
+            
+        return
+
+def _main_ (HandlerClass = DMaaPHandler,
+         ServerClass = BaseHTTPServer.HTTPServer, protocol="HTTP/1.0"):
+      
+    if sys.argv[1:]:
+        port = int(sys.argv[1])
+    else:
+        port = 2222
+         
+    server_address = ('', port)
+   
+    HandlerClass.protocol_version = protocol
+    httpd = ServerClass(server_address, HandlerClass)
+   
+    sa = httpd.socket.getsockname()
+    print "Serving HTTP on", sa[0], "port", sa[1], "..."
+    httpd.serve_forever()
+      
+if __name__ == '__main__':
+    _main_()
diff --git a/test/csit/tests/dcaegen2/prh_testcases/resources/simulator/DMaaP_simulator b/test/csit/tests/dcaegen2/prh_testcases/resources/simulator/DMaaP_simulator
new file mode 100644
index 0000000..4de6539
--- /dev/null
+++ b/test/csit/tests/dcaegen2/prh_testcases/resources/simulator/DMaaP_simulator
@@ -0,0 +1,11 @@
+FROM python:2
+
+ENV https_proxy "$https_proxy"
+
+ADD DMaaP.py /
+
+RUN pip install robotframework 
+
+EXPOSE 2222
+
+CMD [ "python", "./DMaaP.py" ]
