aboutsummaryrefslogtreecommitdiffstats
path: root/aai-resources/src/test/resources
diff options
context:
space:
mode:
Diffstat (limited to 'aai-resources/src/test/resources')
-rw-r--r--aai-resources/src/test/resources/application-test.properties64
-rw-r--r--aai-resources/src/test/resources/bundleconfig-local/etc/appprops/aaiconfig.properties148
-rw-r--r--aai-resources/src/test/resources/bundleconfig-local/etc/queryformats/graphson/resource.graphson2
-rw-r--r--aai-resources/src/test/resources/bundleconfig-local/etc/queryformats/resource-format.json13
-rw-r--r--aai-resources/src/test/resources/bundleconfig-local/etc/queryformats/resource_and_url-format.json16
-rw-r--r--aai-resources/src/test/resources/bundleconfig-local/etc/queryformats/simple-format.json43
-rw-r--r--aai-resources/src/test/resources/edgeLabelMigration.csv212
-rw-r--r--aai-resources/src/test/resources/edgeMigrationTestRules.json12
-rw-r--r--aai-resources/src/test/resources/etc/appprops/aaiconfig.properties56
-rw-r--r--aai-resources/src/test/resources/etc/appprops/error.properties (renamed from aai-resources/src/test/resources/bundleconfig-local/etc/appprops/error.properties)3
-rw-r--r--aai-resources/src/test/resources/etc/appprops/janusgraph-cached.properties (renamed from aai-resources/src/test/resources/bundleconfig-local/etc/appprops/janusgraph-cached.properties)6
-rw-r--r--aai-resources/src/test/resources/etc/appprops/janusgraph-realtime.properties (renamed from aai-resources/src/test/resources/bundleconfig-local/etc/appprops/janusgraph-realtime.properties)4
-rw-r--r--aai-resources/src/test/resources/etc/auth/aai_policy.json (renamed from aai-resources/src/test/resources/bundleconfig-local/etc/auth/aai_policy.json)0
-rw-r--r--aai-resources/src/test/resources/etc/scriptdata/dependencies/vRouterServiceInstanceFile.txt (renamed from aai-resources/src/test/resources/bundleconfig-local/etc/scriptdata/dependencies/vRouterServiceInstanceFile.txt)0
-rw-r--r--aai-resources/src/test/resources/inmemory_titan.properties23
-rw-r--r--aai-resources/src/test/resources/maputils/testcases/TestCase1.json32
-rw-r--r--aai-resources/src/test/resources/maputils/testcases/TestCase2.json40
-rw-r--r--aai-resources/src/test/resources/payloads/bulk/complex-bulk-process-delete-transactions.json38
-rw-r--r--aai-resources/src/test/resources/payloads/bulk/pserver-bulk-process-transactions-with-patch.json25
-rw-r--r--aai-resources/src/test/resources/payloads/bulk/single-transaction/invalid-action.json19
-rw-r--r--aai-resources/src/test/resources/payloads/bulk/single-transaction/missing-fields.json20
-rw-r--r--aai-resources/src/test/resources/payloads/bulk/single-transaction/pserver-bulk-limit-exceed.json308
-rw-r--r--aai-resources/src/test/resources/payloads/bulk/single-transaction/put-patch-same-pserver-put-another-pserver.json27
-rw-r--r--aai-resources/src/test/resources/payloads/bulk/single-transaction/put-patch-same-pserver.json19
-rw-r--r--aai-resources/src/test/resources/payloads/bulk/single-transaction/put-pserver-complex-rel-between-del-existing-gvnf-fail.json43
-rw-r--r--aai-resources/src/test/resources/payloads/bulk/single-transaction/put-pserver-complex-rel-between-del-existing-gvnf.json43
-rw-r--r--aai-resources/src/test/resources/payloads/bulk/single-transaction/put-pserver-complex-rel-between.json38
-rw-r--r--aai-resources/src/test/resources/payloads/relationship/complex-bugfix.json30
-rw-r--r--aai-resources/src/test/resources/payloads/relationship/pserver-bugfix.json6
-rw-r--r--aai-resources/src/test/resources/payloads/relationship/pserver-complex-relationship-for-bulk.json14
-rw-r--r--aai-resources/src/test/resources/payloads/resource/customer.json15
-rw-r--r--aai-resources/src/test/resources/payloads/templates/pserver-to-cloud-region.json12
-rw-r--r--aai-resources/src/test/resources/payloads/templates/pserver-uriencoded.json4
-rw-r--r--aai-resources/src/test/resources/payloads/templates/pserver-with-data.json4
-rw-r--r--aai-resources/src/test/resources/payloads/templates/pserver.json3
-rw-r--r--aai-resources/src/test/resources/payloads/templates/pserver.xml6
-rw-r--r--aai-resources/src/test/resources/test_aaiconfig.properties116
-rw-r--r--aai-resources/src/test/resources/updateEdgeTestRules.json60
38 files changed, 719 insertions, 805 deletions
diff --git a/aai-resources/src/test/resources/application-test.properties b/aai-resources/src/test/resources/application-test.properties
index e6edb6d..ade55fb 100644
--- a/aai-resources/src/test/resources/application-test.properties
+++ b/aai-resources/src/test/resources/application-test.properties
@@ -8,9 +8,12 @@ spring.application.name=aai-resources
spring.jersey.type=filter
server.contextPath=/
+
+spring.jersey.application-path=${schema.uri.base.path}
+
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration
-spring.profiles.active=production
+spring.profiles.active=production,one-way-ssl
#The max number of active threads in this pool
server.tomcat.max-threads=200
#The minimum number of threads always kept alive
@@ -18,17 +21,6 @@ server.tomcat.min-Spare-Threads=25
#The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads
server.tomcat.max-idle-time=60000
-
-#Add this properties only if you want to change the URL, AJSC Framework interceptors will intercept
-#com.att.ajsc.common.interceptors.PreInterceptor.url=/**
-#com.att.ajsc.common.interceptors.PostInterceptor.url=/**
-
-#Servlet context parameters
-server.context_parameters.p-name=value #context parameter with p-name as key and value as value.
-kubernetes.namespace=org-onap-aai
-
-# If you get an application startup failure that the port is already taken
-# If thats not it, please check if the key-store file path makes sense
server.local.startpath=src/main/resources/
server.basic.auth.location=${server.local.startpath}etc/auth/realm.properties
@@ -43,28 +35,32 @@ server.ssl.key-store-type=JKS
# JMS bind address host port
jms.bind.address=tcp://localhost:61647
-dmaap.ribbon.eureka.enabled=false
+
dmaap.ribbon.listOfServers=localhost:3904
-# Number of milliseconds to wait before making ping requests again
-dmaap.ribbon.ServerListRefreshInterval=75000
-dmaap.ribbon.NFLoadBalancerPingInterval=75000
-dmaap.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.AvailabilityFilteringRule
-dmaap.ribbon.NFLoadBalancerPingClassName=org.onap.aai.config.HttpPingImpl
-dmaap.ribbon.EnableMarkingServerDownOnReachingFailureLimit=true
-dmaap.ribbon.ServerDownFailureLimit=1
-# This needs to be verified but it seems that adding this property should automatically
-# Make the dmaap client change the url from http to https depending on the server
-dmaap.ribbon.securePorts=3905
+# Schema related attributes for the oxm and edges
+# Any additional schema related attributes should start with prefix schema
+schema.configuration.location=N/A
+# Choose if the oxm schema is onap or other system
+schema.source.name=onap
+schema.nodes.location=${server.local.startpath}/schema/${schema.source.name}/oxm/
+schema.edges.location=${server.local.startpath}/schema/${schema.source.name}/dbedgerules/
-# Custom Dmaap Specific Configuration
-dmaap.ribbon.health.endpoint=/topics/AAI-EVENT
-# Number of seconds to wait for the ping to work and might need to increase this if the pings are all failing
-dmaap.ribbon.pingport.timeout=3
+schema.ingest.file=${server.local.startpath}/application.properties
-niws.loadbalancer.dmaap.filterCircuitTripped=true
-niws.loadbalancer.dmaap.connectionFailureCountThreshold=3
-niws.loadbalancer.dmaap.circuitTripMaxTimeoutSeconds=180
-#dmaap.ribbon.retryableStatusCodes=404,503
-#dmaap.ribbon.retryableStatusCodes.MaxAutoRetriesNextServer=2
-#dmaap.ribbon.retryableStatusCodes.MaxAutoRetries=2
-#dmaap.ribbon.retryableStatusCodes.OkToRetryOnAllOperations=true
+# Schema Version Related Attributes
+schema.uri.base.path=/aai
+# Lists all of the versions in the schema
+schema.version.list=v8,v9,v10,v11,v12,v13,v14
+# Specifies from which version should the depth parameter to default to zero
+schema.version.depth.start=v9
+# Specifies from which version should the related link be displayed in response payload
+schema.version.related.link.start=v10
+# Specifies from which version should the client see only the uri excluding host info
+# Before this version server base will also be included
+schema.version.app.root.start=v11
+# Specifies from which version should the namespace be changed
+schema.version.namespace.change.start=v12
+# Specifies from which version should the client start seeing the edge label in payload
+schema.version.edge.label.start=v12
+# Specifies the version that the application should default to
+schema.version.api.default=v14
diff --git a/aai-resources/src/test/resources/bundleconfig-local/etc/appprops/aaiconfig.properties b/aai-resources/src/test/resources/bundleconfig-local/etc/appprops/aaiconfig.properties
deleted file mode 100644
index d406c04..0000000
--- a/aai-resources/src/test/resources/bundleconfig-local/etc/appprops/aaiconfig.properties
+++ /dev/null
@@ -1,148 +0,0 @@
-#
-# ============LICENSE_START=======================================================
-# org.onap.aai
-# ================================================================================
-# Copyright © 2017 AT&T Intellectual Property. All rights reserved.
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END=========================================================
-#
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
-#
-
-####################################################################
-# REMEMBER TO THINK ABOUT ENVIRONMENTAL DIFFERENCES AND CHANGE THE
-# TEMPLATE AND *ALL* DATAFILES
-####################################################################
-
-aai.config.checktime=1000
-
-# this could come from siteconfig.pl?
-aai.config.nodename=AutomaticallyOverwritten
-
-aai.logging.hbase.interceptor=true
-aai.logging.hbase.enabled=true
-aai.logging.hbase.logrequest=true
-aai.logging.hbase.logresponse=true
-
-aai.logging.trace.enabled=true
-aai.logging.trace.logrequest=false
-aai.logging.trace.logresponse=false
-
-aai.transaction.logging=true
-aai.transaction.logging.get=true
-aai.transaction.logging.post=true
-
-
-ecm.openstack.tenantid=b0a529aba48440a39e0caf1aea9b27e3
-# This is a fake one just for test so please ignore
-ecm.auth.password.x=OBF:1igd1i9a1jnb1yte1vv11vu91yt81jk71i6o1idt
-
-aai.avpn.interim.laginterface=ae0
-
-aai.server.url.base=https://localhost:8443/aai/
-aai.server.url=https://localhost:8443/aai/v12/
-aai.global.callback.url=https://localhost:8443/aai/
-
-aai.auth.cspcookies_on=false
-aai.dbmodel.filename=ex5.json
-aai.truststore.filename=aai_keystore
-aai.truststore.passwd.x=
-aai.keystore.filename=aai-client-cert.p12
-aai.keystore.passwd.x=
-
-# for transaction log
-hbase.table.name=aailogging-dev1.dev
-hbase.notificationTable.name=aainotification-dev1.dev
-hbase.table.timestamp.format=YYYYMMdd-HH:mm:ss:SSS
-hbase.zookeeper.quorum=ONAPserverTBD
-hbase.zookeeper.property.clientPort=2181
-hbase.zookeeper.znode.parent=/hbase-unsecure
-
-aai.precheck.cloudinfrastructure.complex.defaults.physicalLocationType=AAIDefault
-aai.precheck.cloudinfrastructure.complex.defaults.street1=AAIDefault
-aai.precheck.cloudinfrastructure.complex.defaults.city=AAIDefault
-aai.precheck.cloudinfrastructure.complex.defaults.state=NJ
-aai.precheck.cloudinfrastructure.complex.defaults.postalCode=07748
-aai.precheck.cloudinfrastructure.complex.defaults.country=USA
-aai.precheck.cloudinfrastructure.complex.defaults.region=US
-
-# single primary server
-aai.primary.filetransfer.serverlist=ONAPserverTBD
-aai.primary.filetransfer.primarycheck=echo:8443/aai/util/echo
-aai.primary.filetransfer.pingtimeout=5000
-aai.primary.filetransfer.pingcount=5
-
-#rsync properties
-aai.rsync.command=rsync
-aai.rsync.options.list=-v|-t
-aai.rsync.remote.user=aaiadmin
-aai.rsync.enabled=y
-
-#Service Specific Data Values
-aai.servicedescription.hostedcomm=HOSTED COMMUNICATIONS
-aai.servicedescription.mobility=MOBILITY
-aai.servicedescription.vusp=VIRTUAL USP
-aai.servicedescription.vvig=vVIGaaS
-aai.servicedescription.lrsi=LRSI-OSPF
-
-aai.notification.current.version=v12
-aai.notificationEvent.default.status=UNPROCESSED
-aai.notificationEvent.default.eventType=AAI-EVENT
-aai.notificationEvent.default.domain=devINT1
-aai.notificationEvent.default.sourceName=aai
-aai.notificationEvent.default.sequenceNumber=0
-aai.notificationEvent.default.severity=NORMAL
-aai.notificationEvent.default.version=v12
-# This one lets us enable/disable resource-version checking on updates/deletes
-aai.resourceversion.enableflag=true
-aai.logging.maxStackTraceEntries=10
-aai.default.api.version=v12
-
-# Used by Model-processing code
-aai.model.delete.sleep.per.vtx.msec=500
-aai.model.query.resultset.maxcount=50
-aai.model.query.timeout.sec=90
-
-# Used by Data Grooming
-aai.grooming.default.max.fix=150
-aai.grooming.default.sleep.minutes=7
-
-# Used by DupeTool
-aai.dupeTool.default.max.fix=25
-aai.dupeTool.default.sleep.minutes=7
-
-aai.model.proc.max.levels=50
-aai.edgeTag.proc.max.levels=50
-
-# Used by the ForceDelete tool
-aai.forceDel.protected.nt.list=cloud-region
-aai.forceDel.protected.edge.count=10
-aai.forceDel.protected.descendant.count=10
-
-# Used for CTAG-Pool generation
-aai.ctagPool.rangeString.vplsPe1=2001-2500
-aai.ctagPool.rangeString.vplsPe2=2501-3000
-aai.ctagPool.rangeString.vpe=3001-3500
-
-aai.dmaap.workload.enableEventProcessing=true
-
-aai.realtime.clients=RO,SDNC,MSO
-
-aai.server.rebind=g
-aai.run.migrations=false
-ecm.auth.password.x=OBF:1igd1i9a1jnb1yte1vv11vu91yt81jk71i6o1idt
-
-aai.jms.enable=false
-#limit set for bulk consumer APIS
-aai.bulkconsumer.payloadlimit=30
diff --git a/aai-resources/src/test/resources/bundleconfig-local/etc/queryformats/graphson/resource.graphson b/aai-resources/src/test/resources/bundleconfig-local/etc/queryformats/graphson/resource.graphson
deleted file mode 100644
index 257916a..0000000
--- a/aai-resources/src/test/resources/bundleconfig-local/etc/queryformats/graphson/resource.graphson
+++ /dev/null
@@ -1,2 +0,0 @@
-{"id": 386506928,"label": "vertex","properties": {"aai-last-mod-ts": [{"id": "ob632u-6e46nk-5j45","value": 1488308500413}],"aai-uri": [{"id": "ob6712-6e46nk-5lhh","value": "/cloud-infrastructure/cloud-regions/cloud-region/cloud-owner-987654321-9922/cloud-region-id-987654320-9922/tenants/tenant/tenant-987654321-9999/vservers/vserver/vserver-987654321-9999"}],"prov-status": [{"id": "ob651y-6e46nk-1kw5","value": "example-prov-status-val-7367"}],"aai-created-ts": [{"id": "ob62ae-6e46nk-5gqt","value": 1488308500413}],"source-of-truth": [{"id": "ob61w6-6e46nk-5jwl","value": "FitNesse-Test"}],"vserver-selflink": [{"id": "ob65g6-6e46nk-3xfp","value": "example-vserver-selflink-val-7367"}],"aai-node-type": [{"id": "ob61hy-6e46nk-5f5x","value": "vserver"}],"in-maint": [{"id": "ob65ue-6e46nk-20p1","value": false}],"resource-version": [{"id": "ob62om-6e46nk-23ut","value": "1488308500413"}],"vserver-name": [{"id": "ob649i-6e46nk-3u9x","value": "example-vserver-name-val-7367vserver-987654321-9999"}],"vserver-id": [{"id": "ob63va-6e46nk-3sp1","value": "vserver-987654321-9999"}],"last-mod-source-of-truth": [{"id": "ob63h2-6e46nk-5edh","value": "FitNesse-Test"}],"vserver-name2": [{"id": "ob64nq-6e46nk-3vut","value": "example-vserver-name2-val-7367"}],"is-closed-loop-disabled": [{"id": "ob668m-6e46nk-229x","value": false}]}}
-{"id": 2461872,"label": "vertex","properties": {"aai-last-mod-ts": [{"id": "21hqu-1grlc-5j45","value": 1467901600}],"in-maint": [{"id": "21i52-1grlc-20p1","value": false}],"resource-version": [{"id": "21ija-1grlc-23ut","value": "1467901600"}],"vserver-name": [{"id": "21ixi-1grlc-3u9x","value": "PerfTest_VServerFix0027TenantPez002701611467901587187Name"}],"aai-created-ts": [{"id": "21jbq-1grlc-5gqt","value": 1467901600}],"vserver-id": [{"id": "21jpy-1grlc-3sp1","value": "PerfTest_VServerFix0027TenantPez002701611467901587187"}],"last-mod-source-of-truth": [{"id": "21k46-1grlc-5edh","value": "MSO"}],"vserver-name2": [{"id": "21kie-1grlc-3vut","value": "PerfTest_VServerFix0027TenantPez002701611467901587187-VM Name2 optional"}],"source-of-truth": [{"id": "21kwm-1grlc-5jwl","value": "MSO"}],"vserver-selflink": [{"id": "21lau-1grlc-3xfp","value": "http://testvserverLink.com/.html?vserv=VserverLink"}],"is-closed-loop-disabled": [{"id": "21lp2-1grlc-229x","value": false}],"aai-node-type": [{"id": "21m3a-1grlc-5f5x","value": "vserver"}],"aai-uri": [{"id": "21m3a-1grlc-5a5x","value": "/vservers/vserver/test1"}]}}
diff --git a/aai-resources/src/test/resources/bundleconfig-local/etc/queryformats/resource-format.json b/aai-resources/src/test/resources/bundleconfig-local/etc/queryformats/resource-format.json
deleted file mode 100644
index c7e4255..0000000
--- a/aai-resources/src/test/resources/bundleconfig-local/etc/queryformats/resource-format.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "results": [
- {
- "vserver": {
-
- }
- },
- {
- "vserver": {
- }
- }
- ]
-} \ No newline at end of file
diff --git a/aai-resources/src/test/resources/bundleconfig-local/etc/queryformats/resource_and_url-format.json b/aai-resources/src/test/resources/bundleconfig-local/etc/queryformats/resource_and_url-format.json
deleted file mode 100644
index 80d6560..0000000
--- a/aai-resources/src/test/resources/bundleconfig-local/etc/queryformats/resource_and_url-format.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "results": [
- {
- "url" : "/cloud-infrastructure/cloud-regions/cloud-region/cloud-owner-987654321-9922/cloud-region-id-987654321-9922/tenants/tenant/tenant-987654321-9999/vservers/vserver/vserver-987654321-9999",
- "vserver": {
-
- }
- },
- {
- "url" : "/vservers/vserver/test1",
- "vserver": {
-
- }
- }
- ]
-}
diff --git a/aai-resources/src/test/resources/bundleconfig-local/etc/queryformats/simple-format.json b/aai-resources/src/test/resources/bundleconfig-local/etc/queryformats/simple-format.json
deleted file mode 100644
index dd34261..0000000
--- a/aai-resources/src/test/resources/bundleconfig-local/etc/queryformats/simple-format.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "results" : [{
- "id" : "0",
- "node-type" : "generic-vnf",
- "url" : "urimissing",
- "properties" : {
- "vnf-name" : "myVnf"
- },
- "related-to" : [{
- "node-type" : "vserver",
- "id" : "1",
- "url" : "urimissing"
- }]
- } , {
- "id" : "1",
- "node-type" : "vserver",
- "url" : "urimissing",
- "properties" : {
- "vserver-name" : "myVserver"
- },
- "related-to" : [{
- "node-type" : "generic-vnf",
- "id" : "0",
- "url" : "urimissing"
- },{
- "node-type" : "pserver",
- "id" : "2",
- "url" : "/pservers/pserver/key1"
- }]
- },{
- "id" : "2",
- "node-type" : "pserver",
- "url" : "/pservers/pserver/key1",
- "properties" : {
- "hostname" : "myPserver"
- },
- "related-to" : [{
- "node-type" : "vserver",
- "id" : "1",
- "url" : "urimissing"
- }]
- }]
-} \ No newline at end of file
diff --git a/aai-resources/src/test/resources/edgeLabelMigration.csv b/aai-resources/src/test/resources/edgeLabelMigration.csv
deleted file mode 100644
index 53639e5..0000000
--- a/aai-resources/src/test/resources/edgeLabelMigration.csv
+++ /dev/null
@@ -1,212 +0,0 @@
-from,to,label,direction,multiplicity,contains-other-v,delete-other-v,SVC-INFRA,prevent-delete,new from,new to,new label,new direction,new multiplicity,new contains-other-v,new delete-other-v,new SVC-INFRA,new prevent-delete,new default
-allotted-resource,allotted-resource,bindsTo,OUT,ONE2ONE,NONE,NONE,NONE,NONE,allotted-resource,allotted-resource,tosca.relationships.network.BindsTo,OUT,ONE2ONE,NONE,NONE,NONE,NONE,T
-allotted-resource,generic-vnf,isPartOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,allotted-resource,generic-vnf,org.onap.relationships.inventory.PartOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-allotted-resource,instance-group,isMemberOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,allotted-resource,instance-group,org.onap.relationships.inventory.MemberOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-allotted-resource,l3-network,isPartOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,allotted-resource,l3-network,org.onap.relationships.inventory.PartOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-allotted-resource,l-interface,uses,OUT,ONE2MANY,NONE,NONE,NONE,NONE,allotted-resource,l-interface,org.onap.relationships.inventory.Uses,OUT,ONE2MANY,NONE,NONE,NONE,NONE,T
-allotted-resource,network-policy,uses,OUT,ONE2ONE,NONE,NONE,NONE,NONE,allotted-resource,network-policy,org.onap.relationships.inventory.Uses,OUT,ONE2ONE,NONE,NONE,NONE,NONE,T
-allotted-resource,vlan,isPartOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,allotted-resource,vlan,org.onap.relationships.inventory.PartOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-allotted-resource,vpn-binding,belongsTo,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},allotted-resource,vpn-binding,org.onap.relationships.inventory.BelongsTo,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},T
-allotted-resource,tunnel-xconnect,has,OUT,ONE2ONE,${direction},${direction},NONE,NONE,tunnel-xconnect,allotted-resource,org.onap.relationships.inventory.BelongsTo,OUT,ONE2ONE,!${direction},!${direction},NONE,NONE,T
-availability-zone,complex,groupsResourcesIn,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},availability-zone,complex,org.onap.relationships.inventory.LocatedIn,OUT,MANY2ONE,NONE,NONE,NONE,!${direction},T
-availability-zone,service-capability,supportsServiceCapability,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},availability-zone,service-capability,org.onap.relationships.inventory.AppliesTo,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},T
-cloud-region,availability-zone,has,OUT,ONE2MANY,${direction},${direction},NONE,${direction},availability-zone,cloud-region,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-cloud-region,complex,locatedIn,OUT,MANY2ONE,NONE,NONE,NONE,!${direction},cloud-region,complex,org.onap.relationships.inventory.LocatedIn,OUT,MANY2ONE,NONE,NONE,NONE,!${direction},T
-cloud-region,l3-network,uses,OUT,MANY2MANY,NONE,NONE,NONE,NONE,cloud-region,l3-network,org.onap.relationships.inventory.Uses,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-cloud-region,zone,isMemberOf,OUT,MANY2ONE,NONE,NONE,NONE,NONE,cloud-region,zone,org.onap.relationships.inventory.LocatedIn,OUT,MANY2ONE,NONE,NONE,NONE,NONE,T
-cloud-region,dvs-switch,has,OUT,ONE2MANY,${direction},${direction},NONE,${direction},dvs-switch,cloud-region,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},NONE,NONE,!${direction},T
-cloud-region,flavor,has,OUT,ONE2MANY,${direction},${direction},NONE,${direction},flavor,cloud-region,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},NONE,NONE,!${direction},T
-cloud-region,group-assignment,has,OUT,ONE2MANY,${direction},${direction},NONE,${direction},group-assignment,cloud-region,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},NONE,NONE,!${direction},T
-cloud-region,image,has,OUT,ONE2MANY,${direction},${direction},NONE,${direction},image,cloud-region,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},NONE,NONE,!${direction},T
-cloud-region,oam-network,has,OUT,ONE2MANY,${direction},${direction},NONE,${direction},oam-network,cloud-region,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},NONE,NONE,!${direction},T
-cloud-region,snapshot,has,OUT,ONE2MANY,${direction},${direction},NONE,${direction},snapshot,cloud-region,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},NONE,NONE,!${direction},T
-cloud-region,tenant,has,OUT,ONE2MANY,${direction},${direction},!${direction},${direction},tenant,cloud-region,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},NONE,${direction},!${direction},T
-cloud-region,vip-ipv4-address-list,hasIpAddress,OUT,ONE2MANY,${direction},${direction},${direction},NONE,vip-ipv4-address-list,cloud-region,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},NONE,NONE,!${direction},T
-cloud-region,vip-ipv6-address-list,hasIpAddress,OUT,ONE2MANY,${direction},${direction},${direction},NONE,vip-ipv6-address-list,cloud-region,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},NONE,NONE,!${direction},T
-cloud-region,volume-group,has,OUT,ONE2MANY,${direction},${direction},NONE,${direction},volume-group,cloud-region,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},NONE,NONE,!${direction},T
-complex,l3-network,usesL3Network,OUT,MANY2MANY,NONE,NONE,${direction},NONE,complex,l3-network,org.onap.relationships.inventory.Uses,OUT,MANY2MANY,NONE,NONE,${direction},NONE,T
-complex,ctag-pool,hasCtagPool,OUT,MANY2MANY,${direction},${direction},NONE,NONE,ctag-pool,complex,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-configuration,allotted-resource,uses,OUT,ONE2ONE,NONE,${direction},NONE,NONE,configuration,allotted-resource,org.onap.relationships.inventory.Uses,OUT,ONE2ONE,NONE,${direction},NONE,NONE,T
-configuration,logical-link,has,OUT,ONE2MANY,NONE,${direction},NONE,NONE,configuration,logical-link,org.onap.relationships.inventory.Uses,OUT,ONE2MANY,NONE,${direction},NONE,NONE,T
-configuration,metadatum,owns,OUT,ONE2MANY,${direction},${direction},NONE,NONE,metadatum,configuration,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-connector,virtual-data-center,contains,OUT,MANY2MANY,NONE,NONE,NONE,NONE,connector,virtual-data-center,org.onap.relationships.inventory.LocatedIn,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-connector,metadatum,hasMetaData,OUT,MANY2MANY,${direction},${direction},NONE,NONE,metadatum,connector,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-constrained-element-set,element-choice-set,uses,OUT,ONE2MANY,${direction},${direction},NONE,NONE,element-choice-set,constrained-element-set,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-ctag-pool,availability-zone,supportsAvailabilityZone,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},ctag-pool,availability-zone,org.onap.relationships.inventory.AppliesTo,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},T
-customer,service-subscription,subscribesTo,OUT,MANY2MANY,${direction},${direction},!${direction},NONE,service-subscription,customer,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},${direction},NONE,T
-dvs-switch,availability-zone,existsIn,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},dvs-switch,availability-zone,org.onap.relationships.inventory.AppliesTo,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},T
-element-choice-set,model-element,has,OUT,ONE2MANY,${direction},${direction},NONE,NONE,model-element,element-choice-set,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-generic-vnf,entitlement,has,OUT,ONE2MANY,${direction},${direction},NONE,NONE,entitlement,generic-vnf,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-generic-vnf,availability-zone,hasAvailabilityZone,OUT,MANY2MANY,NONE,NONE,${direction},!${direction},generic-vnf,availability-zone,org.onap.relationships.inventory.Uses,OUT,MANY2MANY,NONE,NONE,${direction},!${direction},T
-generic-vnf,complex,locatedIn,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},generic-vnf,complex,org.onap.relationships.inventory.LocatedIn,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},T
-generic-vnf,configuration,uses,OUT,ONE2MANY,NONE,${direction},NONE,NONE,generic-vnf,configuration,org.onap.relationships.inventory.Uses,OUT,ONE2MANY,NONE,${direction},NONE,NONE,T
-generic-vnf,ctag-pool,usesCtagPool,OUT,MANY2MANY,NONE,NONE,NONE,NONE,generic-vnf,ctag-pool,org.onap.relationships.inventory.Uses,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-generic-vnf,instance-group,isMemberOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,generic-vnf,instance-group,org.onap.relationships.inventory.MemberOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-generic-vnf,ipsec-configuration,uses,OUT,MANY2ONE,NONE,NONE,NONE,NONE,generic-vnf,ipsec-configuration,org.onap.relationships.inventory.Uses,OUT,MANY2ONE,NONE,NONE,NONE,NONE,T
-generic-vnf,l3-network,usesL3Network,OUT,MANY2MANY,NONE,NONE,${direction},NONE,generic-vnf,l3-network,org.onap.relationships.inventory.Uses,OUT,MANY2MANY,NONE,NONE,${direction},NONE,T
-generic-vnf,license-key-resource,uses,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},generic-vnf,license-key-resource,org.onap.relationships.inventory.Uses,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},T
-generic-vnf,pnf,hostedOn,OUT,MANY2MANY,NONE,NONE,NONE,NONE,generic-vnf,pnf,tosca.relationships.HostedOn,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-generic-vnf,pserver,runsOnPserver,OUT,MANY2MANY,NONE,NONE,${direction},!${direction},generic-vnf,pserver,tosca.relationships.HostedOn,OUT,MANY2MANY,NONE,NONE,${direction},!${direction},T
-generic-vnf,vnfc,uses,OUT,ONE2MANY,NONE,${direction},${direction},NONE,vnfc,generic-vnf,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,NONE,!${direction},!${direction},NONE,T
-generic-vnf,vnf-image,usesVnfImage,OUT,MANY2ONE,NONE,NONE,${direction},!${direction},generic-vnf,vnf-image,org.onap.relationships.inventory.Uses,OUT,MANY2ONE,NONE,NONE,${direction},!${direction},T
-generic-vnf,volume-group,uses,OUT,ONE2MANY,NONE,NONE,${direction},NONE,generic-vnf,volume-group,org.onap.relationships.inventory.DependsOn,OUT,ONE2MANY,NONE,NONE,${direction},NONE,T
-generic-vnf,vserver,runsOnVserver,OUT,ONE2MANY,NONE,NONE,${direction},NONE,generic-vnf,vserver,tosca.relationships.HostedOn,OUT,ONE2MANY,NONE,NONE,${direction},NONE,T
-generic-vnf,lag-interface,hasLAGInterface,OUT,MANY2MANY,${direction},${direction},${direction},NONE,lag-interface,generic-vnf,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},!${direction},NONE,T
-generic-vnf,license,has,OUT,ONE2MANY,${direction},${direction},NONE,NONE,license,generic-vnf,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-generic-vnf,l-interface,hasLInterface,OUT,MANY2MANY,${direction},${direction},${direction},NONE,l-interface,generic-vnf,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},!${direction},NONE,T
-generic-vnf,network-profile,hasNetworkProfile,OUT,MANY2MANY,NONE,NONE,NONE,NONE,network-profile,generic-vnf,org.onap.relationships.inventory.AppliesTo,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-generic-vnf,service-instance,hasInstance,OUT,MANY2MANY,NONE,NONE,${direction},NONE,service-instance,generic-vnf,org.onap.relationships.inventory.ComposedOf,OUT,ONE2MANY,NONE,NONE,!${direction},NONE,T
-generic-vnf,site-pair-set,hasSitePairSet,OUT,MANY2MANY,NONE,NONE,NONE,NONE,site-pair-set,generic-vnf,org.onap.relationships.inventory.AppliesTo,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-generic-vnf,vf-module,has,OUT,ONE2MANY,${direction},${direction},${direction},NONE,vf-module,generic-vnf,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},!${direction},NONE,T
-group-assignment,pserver,has,OUT,ONE2MANY,NONE,NONE,NONE,!${direction},pserver,group-assignment,org.onap.relationships.inventory.MemberOf,OUT,MANY2ONE,NONE,NONE,NONE,${direction},T
-group-assignment,tenant,has,OUT,MANY2MANY,NONE,NONE,NONE,NONE,tenant,group-assignment,org.onap.relationships.inventory.MemberOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-image,metadatum,hasMetaDatum,OUT,MANY2MANY,${direction},${direction},NONE,NONE,metadatum,image,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-instance-group,model,targets,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},instance-group,model,org.onap.relationships.inventory.Targets,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},T
-ipsec-configuration,vig-server,hasVigServer,OUT,ONE2MANY,${direction},${direction},NONE,NONE,vig-server,ipsec-configuration,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-l3-interface-ipv4-address-list,instance-group,isMemberOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,l3-interface-ipv4-address-list,instance-group,org.onap.relationships.inventory.network.MemberOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-l3-interface-ipv4-address-list,l3-network,isMemberOf,OUT,MANY2MANY,NONE,NONE,${direction},NONE,l3-interface-ipv4-address-list,l3-network,org.onap.relationships.inventory.network.MemberOf,OUT,MANY2MANY,NONE,NONE,${direction},NONE,T
-l3-interface-ipv4-address-list,subnet,isMemberOf,OUT,MANY2MANY,NONE,NONE,${direction},!${direction},l3-interface-ipv4-address-list,subnet,org.onap.relationships.inventory.network.MemberOf,OUT,MANY2MANY,NONE,NONE,${direction},!${direction},T
-l3-interface-ipv6-address-list,instance-group,isMemberOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,l3-interface-ipv6-address-list,instance-group,org.onap.relationships.inventory.network.MemberOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-l3-interface-ipv6-address-list,l3-network,isMemberOf,OUT,MANY2MANY,NONE,NONE,${direction},NONE,l3-interface-ipv6-address-list,l3-network,org.onap.relationships.inventory.network.MemberOf,OUT,MANY2MANY,NONE,NONE,${direction},NONE,T
-l3-interface-ipv6-address-list,subnet,isMemberOf,OUT,MANY2MANY,NONE,NONE,${direction},!${direction},l3-interface-ipv6-address-list,subnet,org.onap.relationships.inventory.network.MemberOf,OUT,MANY2MANY,NONE,NONE,${direction},!${direction},T
-l3-network,ctag-assignment,hasCtagAssignment,OUT,MANY2MANY,${direction},${direction},${direction},NONE,ctag-assignment,l3-network,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},!${direction},NONE,T
-l3-network,instance-group,memberOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,l3-network,instance-group,org.onap.relationships.inventory.MemberOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-l3-network,network-policy,uses,OUT,MANY2MANY,NONE,NONE,${direction},NONE,l3-network,network-policy,org.onap.relationships.inventory.Uses,OUT,MANY2MANY,NONE,NONE,${direction},NONE,T
-l3-network,route-table-reference,uses,OUT,MANY2MANY,NONE,NONE,NONE,NONE,l3-network,route-table-reference,org.onap.relationships.inventory.Uses,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-l3-network,vpn-binding,usesVpnBinding,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},l3-network,vpn-binding,org.onap.relationships.inventory.Uses,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},T
-l3-network,segmentation-assignment,has,OUT,ONE2MANY,${direction},${direction},NONE,NONE,segmentation-assignment,l3-network,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-l3-network,service-instance,hasInstance,OUT,MANY2MANY,NONE,NONE,!${direction},NONE,service-instance,l3-network,org.onap.relationships.inventory.ComposedOf,OUT,ONE2MANY,NONE,NONE,${direction},NONE,T
-l3-network,subnet,hasSubnet,OUT,MANY2MANY,${direction},${direction},!${direction},NONE,subnet,l3-network,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},${direction},NONE,T
-lag-interface,lag-link,usesLAGLink,OUT,MANY2MANY,NONE,${direction},${direction},NONE,lag-interface,lag-link,tosca.relationships.network.LinksTo,OUT,MANY2MANY,NONE,${direction},${direction},NONE,T
-lag-interface,logical-link,uses,OUT,MANY2MANY,NONE,${direction},${direction},NONE,lag-interface,logical-link,org.onap.relationships.inventory.Uses,OUT,MANY2MANY,NONE,${direction},${direction},NONE,T
-lag-interface,p-interface,usesPInterface,OUT,MANY2MANY,NONE,NONE,${direction},NONE,lag-interface,p-interface,org.onap.relationships.inventory.Uses,OUT,MANY2MANY,NONE,NONE,${direction},NONE,T
-lag-interface,l-interface,hasLInterface,OUT,MANY2MANY,${direction},${direction},${direction},NONE,l-interface,lag-interface,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},!${direction},NONE,T
-line-of-business,generic-vnf,realizedBy,OUT,MANY2MANY,NONE,NONE,NONE,NONE,line-of-business,generic-vnf,org.onap.relationships.inventory.Uses,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-l-interface,l3-interface-ipv4-address-list,hasIpAddress,OUT,MANY2MANY,${direction},${direction},${direction},NONE,l3-interface-ipv4-address-list,l-interface,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},!${direction},NONE,T
-l-interface,l3-interface-ipv6-address-list,hasIpAddress,OUT,MANY2MANY,${direction},${direction},${direction},NONE,l3-interface-ipv6-address-list,l-interface,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},!${direction},NONE,T
-l-interface,instance-group,isMemberOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,l-interface,instance-group,org.onap.relationships.inventory.MemberOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-l-interface,l-interface,has,OUT,ONE2MANY,${direction},${direction},${direction},NONE,l-interface,l-interface,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},!${direction},NONE,T
-l-interface,logical-link,usesLogicalLink,OUT,MANY2MANY,NONE,${direction},${direction},NONE,l-interface,logical-link,tosca.relationships.network.LinksTo,OUT,MANY2ONE,NONE,${direction},${direction},NONE,T
-l-interface,logical-link,sourceLInterface,OUT,MANY2MANY,NONE,${direction},${direction},NONE,logical-link,l-interface,org.onap.relationships.inventory.Source,OUT,ONE2MANY,NONE,!${direction},!${direction},NONE,F
-l-interface,logical-link,targetLInterface,OUT,MANY2MANY,NONE,${direction},${direction},NONE,logical-link,l-interface,org.onap.relationships.inventory.Destination,OUT,ONE2MANY,NONE,!${direction},!${direction},NONE,F
-l-interface,sriov-vf,has,OUT,ONE2ONE,${direction},${direction},NONE,NONE,sriov-vf,l-interface,org.onap.relationships.inventory.BelongsTo,OUT,ONE2ONE,!${direction},!${direction},NONE,NONE,T
-l-interface,vlan,hasVlan,OUT,MANY2MANY,${direction},${direction},NONE,NONE,vlan,l-interface,tosca.relationships.network.LinksTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-logical-link,cloud-region,existsIn,OUT,MANY2MANY,NONE,NONE,NONE,NONE,logical-link,cloud-region,org.onap.relationships.inventory.LocatedIn,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-logical-link,generic-vnf,bridgedTo,OUT,MANY2MANY,NONE,NONE,NONE,NONE,logical-link,generic-vnf,org.onap.relationships.inventory.BridgedTo,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-logical-link,lag-link,usesLAGLink,OUT,MANY2MANY,NONE,NONE,${direction},NONE,logical-link,lag-link,org.onap.relationships.inventory.Uses,OUT,MANY2MANY,NONE,NONE,${direction},NONE,T
-logical-link,logical-link,uses,OUT,ONE2MANY,NONE,NONE,${direction},NONE,logical-link,logical-link,org.onap.relationships.inventory.Uses,OUT,ONE2MANY,NONE,NONE,${direction},NONE,T
-logical-link,pnf,bridgedTo,OUT,MANY2MANY,NONE,NONE,NONE,NONE,logical-link,pnf,org.onap.relationships.inventory.BridgedTo,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-logical-link,pserver,bridgedTo,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},logical-link,pserver,org.onap.relationships.inventory.BridgedTo,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},T
-logical-link,vpn-binding,uses,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},logical-link,vpn-binding,org.onap.relationships.inventory.Uses,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},T
-model,model-ver,has,OUT,ONE2MANY,${direction},${direction},NONE,NONE,model-ver,model,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-model-constraint,constrained-element-set,uses,OUT,ONE2MANY,${direction},${direction},NONE,NONE,constrained-element-set,model-constraint,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-model-element,constrained-element-set,connectsTo,OUT,ONE2MANY,${direction},${direction},NONE,NONE,constrained-element-set,model-element,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-model-element,model-constraint,uses,OUT,ONE2MANY,${direction},${direction},NONE,NONE,model-constraint,model-element,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-model-element,model-element,connectsTo,OUT,ONE2MANY,${direction},${direction},NONE,NONE,model-element,model-element,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-model-element,model-ver,isA,OUT,MANY2ONE,NONE,NONE,NONE,!${direction},model-element,model-ver,org.onap.relationships.inventory.IsA,OUT,MANY2ONE,NONE,NONE,NONE,!${direction},T
-model-ver,metadatum,hasMetaDatum,OUT,ONE2MANY,${direction},${direction},NONE,NONE,metadatum,model-ver,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-model-ver,model-element,startsWith,OUT,ONE2MANY,${direction},${direction},NONE,NONE,model-element,model-ver,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-named-query,model,relatedTo,OUT,ONE2MANY,NONE,NONE,NONE,!${direction},named-query,model,org.onap.relationships.inventory.AppliesTo,OUT,ONE2MANY,NONE,NONE,NONE,!${direction},T
-named-query,named-query-element,startsWith,OUT,ONE2ONE,${direction},${direction},NONE,NONE,named-query-element,named-query,org.onap.relationships.inventory.BelongsTo,OUT,ONE2ONE,!${direction},!${direction},NONE,NONE,T
-named-query-element,model,isA,OUT,MANY2ONE,NONE,NONE,NONE,!${direction},named-query-element,model,org.onap.relationships.inventory.IsA,OUT,MANY2ONE,NONE,NONE,NONE,!${direction},T
-named-query-element,named-query-element,connectsTo,OUT,MANY2MANY,${direction},${direction},NONE,NONE,named-query-element,named-query-element,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-named-query-element,property-constraint,uses,OUT,ONE2MANY,${direction},${direction},NONE,NONE,property-constraint,named-query-element,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-named-query-element,related-lookup,uses,OUT,ONE2MANY,${direction},${direction},NONE,NONE,related-lookup,named-query-element,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-newvce,l-interface,hasLInterface,OUT,MANY2MANY,${direction},${direction},NONE,NONE,l-interface,newvce,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-oam-network,complex,definedFor,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},oam-network,complex,org.onap.relationships.inventory.AppliesTo,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},T
-oam-network,service-capability,supportsServiceCapability,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},oam-network,service-capability,org.onap.relationships.inventory.AppliesTo,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},T
-operational-environment,operational-environment,managedBy,OUT,ONE2ONE,NONE,NONE,NONE,NONE,operational-environment,operational-environment,org.onap.relationships.inventory.Uses,OUT,ONE2ONE,NONE,NONE,NONE,NONE,T
-owning-entity,service-instance,owns,OUT,ONE2MANY,NONE,NONE,NONE,NONE,service-instance,owning-entity,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,NONE,NONE,NONE,NONE,T
-p-interface,l-interface,hasLInterface,OUT,MANY2MANY,${direction},${direction},${direction},NONE,l-interface,p-interface,tosca.relationships.network.BindsTo,OUT,MANY2ONE,!${direction},!${direction},!${direction},NONE,T
-p-interface,logical-link,usesLogicalLink,OUT,MANY2ONE,NONE,NONE,${direction},NONE,p-interface,logical-link,tosca.relationships.network.LinksTo,OUT,MANY2ONE,NONE,NONE,${direction},NONE,T
-p-interface,physical-link,usesPhysicalLink,OUT,MANY2MANY,NONE,${direction},NONE,NONE,p-interface,physical-link,tosca.relationships.network.LinksTo,OUT,MANY2ONE,NONE,${direction},NONE,NONE,T
-p-interface,sriov-pf,has,OUT,ONE2ONE,${direction},${direction},NONE,NONE,sriov-pf,p-interface,org.onap.relationships.inventory.BelongsTo,OUT,ONE2ONE,!${direction},!${direction},NONE,NONE,T
-platform,generic-vnf,uses,OUT,MANY2MANY,NONE,NONE,NONE,NONE,platform,generic-vnf,org.onap.relationships.inventory.Uses,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-pnf,lag-interface,has,OUT,ONE2MANY,${direction},${direction},${direction},NONE,lag-interface,pnf,tosca.relationships.network.BindsTo,OUT,MANY2ONE,!${direction},!${direction},!${direction},NONE,T
-pnf,p-interface,hasPinterface,OUT,MANY2MANY,${direction},${direction},${direction},NONE,p-interface,pnf,tosca.relationships.network.BindsTo,OUT,MANY2ONE,!${direction},!${direction},!${direction},NONE,T
-pnf,complex,locatedIn,OUT,MANY2ONE,NONE,NONE,NONE,!${direction},pnf,complex,org.onap.relationships.inventory.LocatedIn,OUT,MANY2ONE,NONE,NONE,NONE,!${direction},T
-pnf,instance-group,isMemberOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,pnf,instance-group,org.onap.relationships.inventory.MemberOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-pnf,zone,isMemberOf,OUT,MANY2ONE,NONE,NONE,NONE,NONE,pnf,zone,org.onap.relationships.inventory.LocatedIn,OUT,MANY2ONE,NONE,NONE,NONE,NONE,T
-port-group,cvlan-tag,hasCTag,OUT,MANY2MANY,${direction},${direction},${direction},NONE,cvlan-tag,port-group,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},!${direction},NONE,T
-project,service-instance,created,OUT,ONE2MANY,NONE,NONE,NONE,NONE,project,service-instance,org.onap.relationships.inventory.Uses,OUT,ONE2MANY,NONE,NONE,NONE,NONE,T
-pserver,lag-interface,hasLAGInterface,OUT,MANY2MANY,${direction},${direction},${direction},NONE,lag-interface,pserver,tosca.relationships.network.BindsTo,OUT,MANY2ONE,!${direction},!${direction},!${direction},NONE,T
-pserver,p-interface,hasPinterface,OUT,MANY2MANY,${direction},${direction},${direction},NONE,p-interface,pserver,tosca.relationships.network.BindsTo,OUT,MANY2ONE,!${direction},!${direction},!${direction},NONE,T
-pserver,availability-zone,existsIn,OUT,MANY2ONE,NONE,NONE,${direction},!${direction},pserver,availability-zone,org.onap.relationships.inventory.MemberOf,OUT,MANY2ONE,NONE,NONE,${direction},!${direction},T
-pserver,cloud-region,locatedIn,OUT,MANY2ONE,NONE,NONE,${direction},NONE,pserver,cloud-region,org.onap.relationships.inventory.LocatedIn,OUT,MANY2ONE,NONE,NONE,${direction},NONE,T
-pserver,complex,locatedIn,OUT,MANY2ONE,NONE,NONE,${direction},!${direction},pserver,complex,org.onap.relationships.inventory.LocatedIn,OUT,MANY2ONE,NONE,NONE,${direction},!${direction},T
-pserver,zone,isMemberOf,OUT,MANY2ONE,NONE,NONE,NONE,NONE,pserver,zone,org.onap.relationships.inventory.LocatedIn,OUT,MANY2ONE,NONE,NONE,NONE,NONE,T
-routing-instance,site-pair,hasSitePair,OUT,MANY2MANY,${direction},${direction},NONE,NONE,site-pair,routing-instance,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-service-instance,allotted-resource,has,OUT,MANY2MANY,${direction},${direction},NONE,NONE,allotted-resource,service-instance,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-service-instance,metadatum,hasMetaData,OUT,MANY2MANY,${direction},${direction},NONE,NONE,metadatum,service-instance,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-service-instance,allotted-resource,uses,OUT,MANY2MANY,NONE,NONE,NONE,NONE,service-instance,allotted-resource,org.onap.relationships.inventory.Uses,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-service-instance,configuration,has,OUT,ONE2MANY,NONE,NONE,NONE,NONE,service-instance,configuration,org.onap.relationships.inventory.Uses,OUT,ONE2MANY,NONE,NONE,NONE,NONE,T
-service-instance,connector,uses,OUT,MANY2MANY,NONE,NONE,NONE,NONE,service-instance,connector,org.onap.relationships.inventory.Uses,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-service-instance,ctag-assignment,uses,OUT,ONE2MANY,NONE,NONE,NONE,NONE,service-instance,ctag-assignment,org.onap.relationships.inventory.Uses,OUT,ONE2MANY,NONE,NONE,NONE,NONE,T
-service-instance,cvlan-tag,hasIPAGFacingVLAN,OUT,MANY2MANY,NONE,NONE,NONE,NONE,service-instance,cvlan-tag,org.onap.relationships.inventory.ComposedOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-service-instance,instance-group,isMemberOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,service-instance,instance-group,org.onap.relationships.inventory.MemberOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-service-instance,logical-link,uses,OUT,MANY2MANY,NONE,${direction},NONE,NONE,service-instance,logical-link,org.onap.relationships.inventory.Uses,OUT,ONE2MANY,NONE,${direction},NONE,NONE,T
-service-instance,pnf,uses,OUT,ONE2MANY,NONE,NONE,NONE,NONE,service-instance,pnf,org.onap.relationships.inventory.ComposedOf,OUT,ONE2MANY,NONE,NONE,NONE,NONE,T
-service-instance,service-instance,dependsOn,OUT,ONE2MANY,NONE,NONE,NONE,NONE,service-instance,service-instance,org.onap.relationships.inventory.ComposedOf,OUT,ONE2MANY,NONE,NONE,NONE,NONE,T
-service-instance,vlan,dependsOn,OUT,ONE2MANY,NONE,NONE,NONE,NONE,service-instance,vlan,org.onap.relationships.inventory.ComposedOf,OUT,ONE2MANY,NONE,NONE,NONE,NONE,T
-service-instance,zone,locatedIn,OUT,MANY2ONE,NONE,NONE,${direction},NONE,service-instance,zone,org.onap.relationships.inventory.LocatedIn,OUT,MANY2ONE,NONE,NONE,${direction},NONE,T
-service-subscription,service-instance,hasInstance,OUT,MANY2MANY,${direction},${direction},!${direction},NONE,service-instance,service-subscription,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},${direction},NONE,T
-site-pair,class-of-service,hasClassOfService,OUT,MANY2MANY,${direction},${direction},NONE,NONE,class-of-service,site-pair,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-site-pair-set,routing-instance,hasRoutingInstance,OUT,MANY2MANY,${direction},${direction},NONE,NONE,routing-instance,site-pair-set,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-sriov-vf,sriov-pf,uses,OUT,MANY2ONE,NONE,NONE,NONE,NONE,sriov-vf,sriov-pf,org.onap.relationships.inventory.Uses,OUT,MANY2ONE,NONE,NONE,NONE,NONE,T
-subnet,host-route,has,OUT,ONE2MANY,${direction},${direction},NONE,NONE,host-route,subnet,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-tenant,service-subscription,relatedTo,OUT,MANY2MANY,NONE,NONE,NONE,NONE,service-subscription,tenant,org.onap.relationships.inventory.Uses,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-tenant,l3-network,usesL3Network,OUT,MANY2MANY,NONE,NONE,NONE,NONE,tenant,l3-network,org.onap.relationships.inventory.Uses,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-tenant,vserver,owns,OUT,ONE2MANY,${direction},${direction},!${direction},${direction},vserver,tenant,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},NONE,${direction},!${direction},T
-vce,entitlement,has,OUT,ONE2MANY,${direction},${direction},NONE,NONE,entitlement,vce,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-vce,license,has,OUT,ONE2MANY,${direction},${direction},NONE,NONE,license,vce,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-vce,port-group,hasPortGroup,OUT,MANY2MANY,${direction},${direction},${direction},NONE,port-group,vce,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},!${direction},NONE,T
-vce,service-instance,hasServiceInstance,OUT,MANY2MANY,NONE,NONE,!${direction},NONE,service-instance,vce,org.onap.relationships.inventory.ComposedOf,OUT,ONE2MANY,NONE,NONE,${direction},NONE,T
-vce,availability-zone,hasAvailabilityZone,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},vce,availability-zone,org.onap.relationships.inventory.Uses,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},T
-vce,complex,locatedIn,OUT,MANY2MANY,NONE,NONE,${direction},!${direction},vce,complex,org.onap.relationships.inventory.LocatedIn,OUT,MANY2MANY,NONE,NONE,${direction},!${direction},T
-vce,vserver,runsOnVserver,OUT,MANY2MANY,NONE,NONE,${direction},NONE,vce,vserver,tosca.relationships.HostedOn,OUT,ONE2MANY,NONE,NONE,${direction},NONE,T
-vf-module,l3-network,uses,OUT,MANY2MANY,NONE,NONE,${direction},NONE,vf-module,l3-network,org.onap.relationships.inventory.DependsOn,OUT,MANY2MANY,NONE,NONE,${direction},NONE,T
-vf-module,vnfc,uses,OUT,ONE2MANY,NONE,${direction},${direction},${direction},vf-module,vnfc,org.onap.relationships.inventory.Uses,OUT,ONE2MANY,NONE,NONE,${direction},${direction},T
-vf-module,volume-group,uses,OUT,ONE2ONE,NONE,NONE,${direction},NONE,vf-module,volume-group,org.onap.relationships.inventory.Uses,OUT,ONE2ONE,NONE,NONE,${direction},NONE,T
-vip-ipv4-address-list,instance-group,isMemberOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,vip-ipv4-address-list,instance-group,org.onap.relationships.inventory.MemberOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-vip-ipv4-address-list,subnet,isMemberOf,OUT,MANY2MANY,NONE,NONE,${direction},!${direction},vip-ipv4-address-list,subnet,org.onap.relationships.inventory.MemberOf,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},T
-vip-ipv6-address-list,instance-group,isMemberOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,vip-ipv6-address-list,instance-group,org.onap.relationships.inventory.MemberOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-vip-ipv6-address-list,subnet,isMemberOf,OUT,MANY2MANY,NONE,NONE,${direction},!${direction},vip-ipv6-address-list,subnet,org.onap.relationships.inventory.MemberOf,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},T
-virtual-data-center,generic-vnf,hasVNF,OUT,MANY2MANY,NONE,NONE,!${direction},NONE,generic-vnf,virtual-data-center,org.onap.relationships.inventory.LocatedIn,OUT,MANY2MANY,NONE,NONE,${direction},NONE,T
-virtual-data-center,logical-link,contains,OUT,MANY2MANY,NONE,NONE,NONE,NONE,logical-link,virtual-data-center,org.onap.relationships.inventory.LocatedIn,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-vlan,l3-interface-ipv4-address-list,hasIpAddress,OUT,MANY2MANY,${direction},${direction},${direction},NONE,l3-interface-ipv4-address-list,vlan,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},!${direction},NONE,T
-vlan,l3-interface-ipv6-address-list,hasIpAddress,OUT,MANY2MANY,${direction},${direction},${direction},NONE,l3-interface-ipv6-address-list,vlan,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},!${direction},NONE,T
-vlan,logical-link,usesLogicalLink,OUT,MANY2MANY,NONE,${direction},${direction},NONE,vlan,logical-link,org.onap.relationships.inventory.Uses,OUT,MANY2MANY,NONE,${direction},${direction},NONE,T
-vlan,multicast-configuration,uses,OUT,MANY2MANY,NONE,NONE,NONE,NONE,vlan,multicast-configuration,org.onap.relationships.inventory.Uses,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-vnfc,l3-interface-ipv4-address-list,hasIpAddress,OUT,ONE2MANY,${direction},${direction},NONE,NONE,l3-interface-ipv4-address-list,vnfc,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-vnfc,l3-interface-ipv6-address-list,hasIpAddress,OUT,ONE2MANY,${direction},${direction},NONE,NONE,l3-interface-ipv6-address-list,vnfc,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-vnfc,instance-group,isMemberOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,vnfc,instance-group,org.onap.relationships.inventory.MemberOf,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-vnfc,vip-ipv4-address-list,uses,OUT,MANY2MANY,NONE,NONE,NONE,NONE,vnfc,vip-ipv4-address-list,org.onap.relationships.inventory.Uses,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-vnfc,vip-ipv6-address-list,uses,OUT,MANY2MANY,NONE,NONE,NONE,NONE,vnfc,vip-ipv6-address-list,org.onap.relationships.inventory.Uses,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-volume-group,tenant,belongsTo,OUT,MANY2MANY,NONE,NONE,${direction},NONE,tenant,volume-group,org.onap.relationships.inventory.DependsOn,OUT,ONE2MANY,NONE,NONE,!${direction},NONE,T
-volume-group,complex,existsIn,OUT,MANY2MANY,NONE,NONE,${direction},!${direction},volume-group,complex,org.onap.relationships.inventory.LocatedIn,OUT,MANY2ONE,NONE,NONE,${direction},!${direction},T
-vpls-pe,lag-interface,hasLAGinterface,OUT,MANY2MANY,${direction},${direction},NONE,NONE,lag-interface,vpls-pe,tosca.relationships.network.BindsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-vpls-pe,p-interface,hasPinterface,OUT,MANY2MANY,${direction},${direction},NONE,NONE,p-interface,vpls-pe,tosca.relationships.network.BindsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-vpls-pe,complex,locatedIn,OUT,MANY2MANY,NONE,NONE,NONE,!${direction},vpls-pe,complex,org.onap.relationships.inventory.LocatedIn,OUT,MANY2ONE,NONE,NONE,NONE,!${direction},T
-vpls-pe,ctag-pool,usesCtagPool,OUT,MANY2MANY,NONE,NONE,NONE,NONE,vpls-pe,ctag-pool,org.onap.relationships.inventory.Uses,OUT,MANY2MANY,NONE,NONE,NONE,NONE,T
-vpn-binding,route-target,has,OUT,ONE2MANY,${direction},${direction},NONE,NONE,route-target,vpn-binding,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-vserver,l-interface,hasLInterface,OUT,MANY2MANY,${direction},${direction},${direction},NONE,l-interface,vserver,tosca.relationships.network.BindsTo,OUT,MANY2ONE,!${direction},!${direction},!${direction},NONE,T
-vserver,vf-module,isPartOf,OUT,MANY2ONE,NONE,NONE,${direction},NONE,vf-module,vserver,org.onap.relationships.inventory.Uses,OUT,ONE2MANY,NONE,NONE,!${direction},NONE,T
-vserver,vnfc,hosts,OUT,MANY2MANY,NONE,NONE,${direction},NONE,vnfc,vserver,tosca.relationships.HostedOn,OUT,ONE2MANY,NONE,NONE,!${direction},NONE,T
-vserver,flavor,hasFlavor,OUT,MANY2ONE,NONE,NONE,${direction},!${direction},vserver,flavor,org.onap.relationships.inventory.Uses,OUT,MANY2ONE,NONE,NONE,${direction},!${direction},T
-vserver,image,hasImage,OUT,MANY2ONE,NONE,NONE,${direction},!${direction},vserver,image,org.onap.relationships.inventory.Uses,OUT,MANY2ONE,NONE,NONE,${direction},!${direction},T
-vserver,pserver,runsOnPserver,OUT,MANY2ONE,NONE,NONE,${direction},!${direction},vserver,pserver,tosca.relationships.HostedOn,OUT,MANY2ONE,NONE,NONE,${direction},!${direction},T
-vserver,snapshot,uses,OUT,ONE2ONE,NONE,NONE,${direction},NONE,vserver,snapshot,org.onap.relationships.inventory.Uses,OUT,ONE2ONE,NONE,NONE,${direction},NONE,T
-vserver,volume,hasVolume,OUT,MANY2MANY,${direction},${direction},${direction},NONE,vserver,volume,tosca.relationships.AttachesTo,OUT,ONE2MANY,${direction},${direction},${direction},NONE,T
-zone,complex,existsIn,OUT,MANY2ONE,NONE,NONE,NONE,!${direction},zone,complex,org.onap.relationships.inventory.LocatedIn,OUT,MANY2ONE,NONE,NONE,NONE,!${direction},T
-,,,,,,,,,allotted-resource,model-ver,org.onap.relationships.inventory.IsA,OUT,Many2One,NONE,NONE,NONE,NONE,T
-,,,,,,,,,generic-vnf,model-ver,org.onap.relationships.inventory.IsA,OUT,Many2One,NONE,NONE,NONE,NONE,T
-,,,,,,,,,l3-network,model-ver,org.onap.relationships.inventory.IsA,OUT,Many2One,NONE,NONE,NONE,NONE,T
-,,,,,,,,,logical-link,model-ver,org.onap.relationships.inventory.IsA,OUT,Many2One,NONE,NONE,NONE,NONE,T
-,,,,,,,,,service-instance,model-ver,org.onap.relationships.inventory.IsA,OUT,Many2One,NONE,NONE,NONE,NONE,T
-,,,,,,,,,vf-module,model-ver,org.onap.relationships.inventory.IsA,OUT,Many2One,NONE,NONE,NONE,NONE,T
-configuration,l-interface,has,OUT,ONE2MANY,NONE,NONE,NONE,NONE,configuration,l-interface,org.onap.relationships.inventory.AppliesTo,OUT,ONE2MANY,NONE,NONE,NONE,NONE,T
-configuration,pnf,has,OUT,ONE2MANY,NONE,NONE,NONE,NONE,configuration,pnf,org.onap.relationships.inventory.AppliesTo,OUT,ONE2MANY,NONE,NONE,NONE,NONE,T
-forwarder,forwarding-path,belongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,forwarder,forwarding-path,org.onap.relationships.inventory.BelongsTo,OUT,MANY2ONE,!${direction},!${direction},NONE,NONE,T
-forwarding-path,service-instance,implements,OUT,MANY2ONE,NONE,!${direction},NONE,NONE,forwarding-path,service-instance,org.onap.relationships.inventory.AppliesTo,OUT,MANY2ONE,NONE,!${direction},NONE,NONE,T
-forwarder,l-interface,forwardsTo,OUT,ONE2ONE,NONE,NONE,NONE,NONE,forwarder,l-interface,org.onap.relationships.inventory.ForwardsTo,OUT,ONE2ONE,NONE,NONE,NONE,NONE,T
-forwarder,p-interface,forwardsTo,OUT,ONE2ONE,NONE,NONE,NONE,NONE,forwarder,p-interface,org.onap.relationships.inventory.ForwardsTo,OUT,ONE2ONE,NONE,NONE,NONE,NONE,T
diff --git a/aai-resources/src/test/resources/edgeMigrationTestRules.json b/aai-resources/src/test/resources/edgeMigrationTestRules.json
deleted file mode 100644
index a18b8a9..0000000
--- a/aai-resources/src/test/resources/edgeMigrationTestRules.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{"rules":
-[{
- "from": "generic-vnf",
- "to": "l-interface",
- "label": "hasLInterface",
- "direction": "OUT",
- "multiplicity": "MANY2MANY",
- "contains-other-v": "${direction}",
- "delete-other-v": "${direction}",
- "SVC-INFRA": "${direction}",
- "prevent-delete": "NONE"
-}]} \ No newline at end of file
diff --git a/aai-resources/src/test/resources/etc/appprops/aaiconfig.properties b/aai-resources/src/test/resources/etc/appprops/aaiconfig.properties
new file mode 100644
index 0000000..bc8b9b9
--- /dev/null
+++ b/aai-resources/src/test/resources/etc/appprops/aaiconfig.properties
@@ -0,0 +1,56 @@
+#
+# ============LICENSE_START=======================================================
+# org.onap.aai
+# ================================================================================
+# Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+#
+# ECOMP is a trademark and service mark of AT&T Intellectual Property.
+#
+
+####################################################################
+# REMEMBER TO THINK ABOUT ENVIRONMENTAL DIFFERENCES AND CHANGE THE
+# TEMPLATE AND *ALL* DATAFILES
+####################################################################
+
+aai.config.checktime=1000
+
+# this could come from siteconfig.pl?
+aai.config.nodename=AutomaticallyOverwritten
+
+aai.server.url.base=https://localhost:8443/aai/
+aai.server.url=https://localhost:8443/aai/v14/
+aai.oldserver.url.base=https://localhost:8443/aai/servers/
+aai.oldserver.url=https://localhost:8443/aai/servers/v2/
+aai.global.callback.url=https://localhost:8443/aai/
+
+aai.notification.current.version=v14
+aai.notificationEvent.default.status=UNPROCESSED
+aai.notificationEvent.default.eventType=AAI-EVENT
+aai.notificationEvent.default.domain=devINT1
+aai.notificationEvent.default.sourceName=aai
+aai.notificationEvent.default.sequenceNumber=0
+aai.notificationEvent.default.severity=NORMAL
+aai.notificationEvent.default.version=v14
+# This one lets us enable/disable resource-version checking on updates/deletes
+aai.resourceversion.enableflag=true
+aai.logging.maxStackTraceEntries=10
+aai.default.api.version=v14
+
+aai.realtime.clients=RO,SDNC,MSO
+
+aai.run.migrations=false
+
+aai.jms.enable=false
diff --git a/aai-resources/src/test/resources/bundleconfig-local/etc/appprops/error.properties b/aai-resources/src/test/resources/etc/appprops/error.properties
index 82e7dcc..828c36c 100644
--- a/aai-resources/src/test/resources/bundleconfig-local/etc/appprops/error.properties
+++ b/aai-resources/src/test/resources/etc/appprops/error.properties
@@ -131,9 +131,6 @@ AAI_7119=5:4:ERROR:7119:500:3002:Unknown host
#--- aaisdnc: 7201-7299
AAI_7202=5:4:ERROR:7202:500:3002:Error getting connection to odl
-AAI_7203=5:4:ERROR:7203:500:3002:Unexpected error calling DataChangeNotification API
-AAI_7204=5:4:ERROR:7204:500:3002:Error returned by DataChangeNotification API
-AAI_7205=5:4:ERROR:7205:500:3002:Unexpected error running notifySDNCOnUpdate
AAI_7206=5:4:ERROR:7206:500:3002:Invalid data returned from ODL
#--- NotificationEvent, using UEB space
diff --git a/aai-resources/src/test/resources/bundleconfig-local/etc/appprops/janusgraph-cached.properties b/aai-resources/src/test/resources/etc/appprops/janusgraph-cached.properties
index 5a52d19..6ab12a0 100644
--- a/aai-resources/src/test/resources/bundleconfig-local/etc/appprops/janusgraph-cached.properties
+++ b/aai-resources/src/test/resources/etc/appprops/janusgraph-cached.properties
@@ -21,13 +21,11 @@
#
query.fast-property=true
-query.smart-limit=false
-
# the following parameters are not reloaded automatically and require a manual bounce
storage.backend=inmemory
storage.hostname=localhost
-#graph.titan-version=1.0.0
+graph.titan-version=1.0.0
#schema.default=none
storage.lock.wait-time=300
@@ -40,4 +38,4 @@ cache.db-cache-time = 180000
cache.db-cache-size = 0.3
#load graphson file on startup
-load.snapshot.file=false
+load.snapshot.file=false \ No newline at end of file
diff --git a/aai-resources/src/test/resources/bundleconfig-local/etc/appprops/janusgraph-realtime.properties b/aai-resources/src/test/resources/etc/appprops/janusgraph-realtime.properties
index 72ced14..d81f37e 100644
--- a/aai-resources/src/test/resources/bundleconfig-local/etc/appprops/janusgraph-realtime.properties
+++ b/aai-resources/src/test/resources/etc/appprops/janusgraph-realtime.properties
@@ -21,13 +21,11 @@
#
query.fast-property=true
-query.smart-limit=false
-
# the following parameters are not reloaded automatically and require a manual bounce
storage.backend=inmemory
storage.hostname=localhost
-#graph.titan-version=1.0.0
+graph.titan-version=1.0.0
#schema.default=none
storage.lock.wait-time=300
diff --git a/aai-resources/src/test/resources/bundleconfig-local/etc/auth/aai_policy.json b/aai-resources/src/test/resources/etc/auth/aai_policy.json
index 9706ce9..9706ce9 100644
--- a/aai-resources/src/test/resources/bundleconfig-local/etc/auth/aai_policy.json
+++ b/aai-resources/src/test/resources/etc/auth/aai_policy.json
diff --git a/aai-resources/src/test/resources/bundleconfig-local/etc/scriptdata/dependencies/vRouterServiceInstanceFile.txt b/aai-resources/src/test/resources/etc/scriptdata/dependencies/vRouterServiceInstanceFile.txt
index a5be791..a5be791 100644
--- a/aai-resources/src/test/resources/bundleconfig-local/etc/scriptdata/dependencies/vRouterServiceInstanceFile.txt
+++ b/aai-resources/src/test/resources/etc/scriptdata/dependencies/vRouterServiceInstanceFile.txt
diff --git a/aai-resources/src/test/resources/inmemory_titan.properties b/aai-resources/src/test/resources/inmemory_titan.properties
deleted file mode 100644
index cf4bbfd..0000000
--- a/aai-resources/src/test/resources/inmemory_titan.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# ============LICENSE_START=======================================================
-# org.onap.aai
-# ================================================================================
-# Copyright © 2017 AT&T Intellectual Property. All rights reserved.
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END=========================================================
-#
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
-#
-
-storage.backend=inmemory
diff --git a/aai-resources/src/test/resources/maputils/testcases/TestCase1.json b/aai-resources/src/test/resources/maputils/testcases/TestCase1.json
deleted file mode 100644
index 1f7a794..0000000
--- a/aai-resources/src/test/resources/maputils/testcases/TestCase1.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "input": {
- "myImage": {
- "imageId": "test-imageId-1",
- "imageName": "test-image-name",
- "imageList": [
- {
- "imageListName": "testListName",
- "imageListId": "testListId",
- "imageListNumber": 200,
- "imageListBoolean": true,
- "imageListNull": null
- }
- ]
- }
- },
- "output": {
- "my-image": {
- "image-id": "test-imageId-1",
- "image-name": "test-image-name",
- "image-list": [
- {
- "image-list-name": "testListName",
- "image-list-id": "testListId",
- "image-list-number": 200,
- "image-list-boolean": true,
- "image-list-null": null
- }
- ]
- }
- }
-} \ No newline at end of file
diff --git a/aai-resources/src/test/resources/maputils/testcases/TestCase2.json b/aai-resources/src/test/resources/maputils/testcases/TestCase2.json
deleted file mode 100644
index 9b8a1e3..0000000
--- a/aai-resources/src/test/resources/maputils/testcases/TestCase2.json
+++ /dev/null
@@ -1,40 +0,0 @@
-{
- "input": {
- "myImage": {
- "imageId": "test-imageId-1",
- "imageName": "test-image-name",
- "imageList": [
- {
- "imageListName": "testListName",
- "imageListId": "testListId",
- "imageArray": [
- [
- {
- "imageNestedArrayElement": "value"
- }
- ]
- ]
- }
- ]
- }
- },
- "output": {
- "my-image": {
- "image-id": "test-imageId-1",
- "image-name": "test-image-name",
- "image-list": [
- {
- "image-list-name": "testListName",
- "image-list-id": "testListId",
- "image-array": [
- [
- {
- "image-nested-array-element": "value"
- }
- ]
- ]
- }
- ]
- }
- }
-} \ No newline at end of file
diff --git a/aai-resources/src/test/resources/payloads/bulk/complex-bulk-process-delete-transactions.json b/aai-resources/src/test/resources/payloads/bulk/complex-bulk-process-delete-transactions.json
index 96a4228..eae7b35 100644
--- a/aai-resources/src/test/resources/payloads/bulk/complex-bulk-process-delete-transactions.json
+++ b/aai-resources/src/test/resources/payloads/bulk/complex-bulk-process-delete-transactions.json
@@ -1,20 +1,20 @@
-{
- "transactions": [
- {
- "delete": [
- {
- "uri": "/cloud-infrastructure/pservers/pserver/pserver-9876543210-77-jenkins/relationship-list/relationship",
- "body": {
- "related-to": "complex",
- "relationship-data": [
- {
- "relationship-key": "complex.physical-location-id",
- "relationship-value": "complex-987654321-77-jenkins"
- }
- ]
- }
- }
- ]
- }
- ]
+{
+ "transactions": [
+ {
+ "delete": [
+ {
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-9876543210-77-jenkins/relationship-list/relationship",
+ "body": {
+ "related-to": "complex",
+ "relationship-data": [
+ {
+ "relationship-key": "complex.physical-location-id",
+ "relationship-value": "complex-987654321-77-jenkins"
+ }
+ ]
+ }
+ }
+ ]
+ }
+ ]
} \ No newline at end of file
diff --git a/aai-resources/src/test/resources/payloads/bulk/pserver-bulk-process-transactions-with-patch.json b/aai-resources/src/test/resources/payloads/bulk/pserver-bulk-process-transactions-with-patch.json
new file mode 100644
index 0000000..b030ae4
--- /dev/null
+++ b/aai-resources/src/test/resources/payloads/bulk/pserver-bulk-process-transactions-with-patch.json
@@ -0,0 +1,25 @@
+{
+ "transactions": [
+ {
+ "put": [
+ {
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-bulk-process-transactions-1-<UUID>",
+ "body": {
+ "hostname": "pserver-bulk-process-transactions-1-<UUID>",
+ "fqdn": "pserver-bulk-process-transactions-1-fqdn"
+ }
+ }
+ ]
+ },
+ {
+ "patch": [
+ {
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-bulk-process-transactions-1-<UUID>",
+ "body": {
+ "fqdn": "NEW"
+ }
+ }
+ ]
+ }
+ ]
+}
diff --git a/aai-resources/src/test/resources/payloads/bulk/single-transaction/invalid-action.json b/aai-resources/src/test/resources/payloads/bulk/single-transaction/invalid-action.json
new file mode 100644
index 0000000..5ed1880
--- /dev/null
+++ b/aai-resources/src/test/resources/payloads/bulk/single-transaction/invalid-action.json
@@ -0,0 +1,19 @@
+{
+ "operations": [
+ {
+ "action": "create",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "destroy",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "fqdn": "patched-fqdn"
+ }
+ }
+ ]
+}
diff --git a/aai-resources/src/test/resources/payloads/bulk/single-transaction/missing-fields.json b/aai-resources/src/test/resources/payloads/bulk/single-transaction/missing-fields.json
new file mode 100644
index 0000000..e0f5514
--- /dev/null
+++ b/aai-resources/src/test/resources/payloads/bulk/single-transaction/missing-fields.json
@@ -0,0 +1,20 @@
+{
+ "operations": [
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>"
+ },
+ {
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "fqdn": "patched-fqdn"
+ }
+ },
+ {
+ "action": "patch",
+ "body": {
+ "fqdn": "patched-fqdn"
+ }
+ }
+ ]
+}
diff --git a/aai-resources/src/test/resources/payloads/bulk/single-transaction/pserver-bulk-limit-exceed.json b/aai-resources/src/test/resources/payloads/bulk/single-transaction/pserver-bulk-limit-exceed.json
new file mode 100644
index 0000000..b758f67
--- /dev/null
+++ b/aai-resources/src/test/resources/payloads/bulk/single-transaction/pserver-bulk-limit-exceed.json
@@ -0,0 +1,308 @@
+{
+ "operations": [
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ }
+ ]
+}
diff --git a/aai-resources/src/test/resources/payloads/bulk/single-transaction/put-patch-same-pserver-put-another-pserver.json b/aai-resources/src/test/resources/payloads/bulk/single-transaction/put-patch-same-pserver-put-another-pserver.json
new file mode 100644
index 0000000..9abc26c
--- /dev/null
+++ b/aai-resources/src/test/resources/payloads/bulk/single-transaction/put-patch-same-pserver-put-another-pserver.json
@@ -0,0 +1,27 @@
+{
+ "operations": [
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-1-<methodName>",
+ "body": {
+ "hostname": "pserver-1-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "patch",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-1-<methodName>",
+ "body": {
+ "fqdn": "patched-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-2-<methodName>",
+ "body": {
+ "hostname": "pserver-2-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ }
+ ]
+}
diff --git a/aai-resources/src/test/resources/payloads/bulk/single-transaction/put-patch-same-pserver.json b/aai-resources/src/test/resources/payloads/bulk/single-transaction/put-patch-same-pserver.json
new file mode 100644
index 0000000..003cb8c
--- /dev/null
+++ b/aai-resources/src/test/resources/payloads/bulk/single-transaction/put-patch-same-pserver.json
@@ -0,0 +1,19 @@
+{
+ "operations": [
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "patch",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "fqdn": "patched-fqdn"
+ }
+ }
+ ]
+}
diff --git a/aai-resources/src/test/resources/payloads/bulk/single-transaction/put-pserver-complex-rel-between-del-existing-gvnf-fail.json b/aai-resources/src/test/resources/payloads/bulk/single-transaction/put-pserver-complex-rel-between-del-existing-gvnf-fail.json
new file mode 100644
index 0000000..7e923d2
--- /dev/null
+++ b/aai-resources/src/test/resources/payloads/bulk/single-transaction/put-pserver-complex-rel-between-del-existing-gvnf-fail.json
@@ -0,0 +1,43 @@
+{
+ "operations": [
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/complexes/complex/complex-<methodName>",
+ "body": {
+ "physical-location-id": "complex-<methodName>",
+ "data-center-code": "code",
+ "identity-url": "N/A",
+ "physical-location-type": "type",
+ "street1": "street",
+ "city": "city",
+ "state": "state",
+ "postal-code": "12345",
+ "country": "NONE",
+ "region": "Earth"
+
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/complexes/complex/complex-<methodName>/relationship-list/relationship",
+ "body": {
+ "related-to": "pserver",
+ "related-link": "/aai/v13/cloud-infrastructure/pservers/pserver/pserver-<methodName>"
+
+ }
+ },
+ {
+ "action": "delete",
+ "uri": "/network/generic-vnfs/generic-vnf/gvnf-<methodName>?resource-version=1",
+ "body": {}
+ }
+ ]
+}
diff --git a/aai-resources/src/test/resources/payloads/bulk/single-transaction/put-pserver-complex-rel-between-del-existing-gvnf.json b/aai-resources/src/test/resources/payloads/bulk/single-transaction/put-pserver-complex-rel-between-del-existing-gvnf.json
new file mode 100644
index 0000000..52c9599
--- /dev/null
+++ b/aai-resources/src/test/resources/payloads/bulk/single-transaction/put-pserver-complex-rel-between-del-existing-gvnf.json
@@ -0,0 +1,43 @@
+{
+ "operations": [
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/complexes/complex/complex-<methodName>",
+ "body": {
+ "physical-location-id": "complex-<methodName>",
+ "data-center-code": "code",
+ "identity-url": "N/A",
+ "physical-location-type": "type",
+ "street1": "street",
+ "city": "city",
+ "state": "state",
+ "postal-code": "12345",
+ "country": "NONE",
+ "region": "Earth"
+
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/complexes/complex/complex-<methodName>/relationship-list/relationship",
+ "body": {
+ "related-to": "pserver",
+ "related-link": "/aai/v13/cloud-infrastructure/pservers/pserver/pserver-<methodName>"
+
+ }
+ },
+ {
+ "action": "delete",
+ "uri": "/network/generic-vnfs/generic-vnf/gvnf-<methodName>?resource-version=0",
+ "body": {}
+ }
+ ]
+}
diff --git a/aai-resources/src/test/resources/payloads/bulk/single-transaction/put-pserver-complex-rel-between.json b/aai-resources/src/test/resources/payloads/bulk/single-transaction/put-pserver-complex-rel-between.json
new file mode 100644
index 0000000..a2ac2c5
--- /dev/null
+++ b/aai-resources/src/test/resources/payloads/bulk/single-transaction/put-pserver-complex-rel-between.json
@@ -0,0 +1,38 @@
+{
+ "operations": [
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/pservers/pserver/pserver-<methodName>",
+ "body": {
+ "hostname": "pserver-<methodName>",
+ "fqdn": "pserver-<methodName>-fqdn"
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/complexes/complex/complex-<methodName>",
+ "body": {
+ "physical-location-id": "complex-<methodName>",
+ "data-center-code": "code",
+ "identity-url": "N/A",
+ "physical-location-type": "type",
+ "street1": "street",
+ "city": "city",
+ "state": "state",
+ "postal-code": "12345",
+ "country": "NONE",
+ "region": "Earth"
+
+ }
+ },
+ {
+ "action": "put",
+ "uri": "/cloud-infrastructure/complexes/complex/complex-<methodName>/relationship-list/relationship",
+ "body": {
+ "related-to": "pserver",
+ "related-link": "/aai/v13/cloud-infrastructure/pservers/pserver/pserver-<methodName>"
+
+ }
+ }
+ ]
+}
diff --git a/aai-resources/src/test/resources/payloads/relationship/complex-bugfix.json b/aai-resources/src/test/resources/payloads/relationship/complex-bugfix.json
index 29fe3d6..9aa41a3 100644
--- a/aai-resources/src/test/resources/payloads/relationship/complex-bugfix.json
+++ b/aai-resources/src/test/resources/payloads/relationship/complex-bugfix.json
@@ -1,16 +1,16 @@
-{
- "physical-location-id" : "complex-987654321-77-jenkins",
- "physical-location-type" : "uug",
- "street1" : "kDv5Ge6dr",
- "city" : "KpEa5IjqY0u82",
- "postal-code" : "6CRqacfEW2",
- "country" : "P0ho",
- "region" : "Sk2QevPYRBjT",
- "ctag-pools" : {
- "ctag-pool" : [ {
- "target-pe" : "5dbe73c6-cedf-4e68-a7c5-699ba6d90e1d",
- "availability-zone-name" : "819ec2fa-fb9f-49f0-8fd8-5feb941aad1f",
- "ctag-pool-purpose" : "4TMeWI"
- } ]
- }
+{
+ "physical-location-id" : "complex-987654321-77-jenkins",
+ "physical-location-type" : "uug",
+ "street1" : "kDv5Ge6dr",
+ "city" : "KpEa5IjqY0u82",
+ "postal-code" : "6CRqacfEW2",
+ "country" : "P0ho",
+ "region" : "Sk2QevPYRBjT",
+ "ctag-pools" : {
+ "ctag-pool" : [ {
+ "target-pe" : "5dbe73c6-cedf-4e68-a7c5-699ba6d90e1d",
+ "availability-zone-name" : "819ec2fa-fb9f-49f0-8fd8-5feb941aad1f",
+ "ctag-pool-purpose" : "4TMeWI"
+ } ]
+ }
} \ No newline at end of file
diff --git a/aai-resources/src/test/resources/payloads/relationship/pserver-bugfix.json b/aai-resources/src/test/resources/payloads/relationship/pserver-bugfix.json
index e78bd7a..461b88c 100644
--- a/aai-resources/src/test/resources/payloads/relationship/pserver-bugfix.json
+++ b/aai-resources/src/test/resources/payloads/relationship/pserver-bugfix.json
@@ -1,4 +1,4 @@
-{
- "hostname" : "pserver-9876543210-77-jenkins",
- "in-maint" : false
+{
+ "hostname" : "pserver-9876543210-77-jenkins",
+ "in-maint" : false
} \ No newline at end of file
diff --git a/aai-resources/src/test/resources/payloads/relationship/pserver-complex-relationship-for-bulk.json b/aai-resources/src/test/resources/payloads/relationship/pserver-complex-relationship-for-bulk.json
index 72982af..44cecda 100644
--- a/aai-resources/src/test/resources/payloads/relationship/pserver-complex-relationship-for-bulk.json
+++ b/aai-resources/src/test/resources/payloads/relationship/pserver-complex-relationship-for-bulk.json
@@ -1,8 +1,8 @@
-{
- "related-to" : "complex",
- "related-link" : "/aai/v11/cloud-infrastructure/complexes/complex/complex-987654321-77-jenkins",
- "relationship-data" : [{
- "relationship-key" : "complex.physical-location-id",
- "relationship-value" : "complex-987654321-77-jenkins"
- }]
+{
+ "related-to" : "complex",
+ "related-link" : "/aai/v11/cloud-infrastructure/complexes/complex/complex-987654321-77-jenkins",
+ "relationship-data" : [{
+ "relationship-key" : "complex.physical-location-id",
+ "relationship-value" : "complex-987654321-77-jenkins"
+ }]
} \ No newline at end of file
diff --git a/aai-resources/src/test/resources/payloads/resource/customer.json b/aai-resources/src/test/resources/payloads/resource/customer.json
new file mode 100644
index 0000000..4ee9f5e
--- /dev/null
+++ b/aai-resources/src/test/resources/payloads/resource/customer.json
@@ -0,0 +1,15 @@
+{
+ "global-customer-id": "customer-987654321-91",
+ "subscriber-name": "subscriber-name-987654321-91",
+ "subscriber-type": "subscriber-type-987654321-91",
+ "service-subscriptions": {
+ "service-subscription": {
+ "service-type": "service-type-987654321-91",
+ "service-instances": {
+ "service-instance": {
+ "service-instance-id": "service-instance-id-987654321-91"
+ }
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/aai-resources/src/test/resources/payloads/templates/pserver-to-cloud-region.json b/aai-resources/src/test/resources/payloads/templates/pserver-to-cloud-region.json
new file mode 100644
index 0000000..d2cbdd3
--- /dev/null
+++ b/aai-resources/src/test/resources/payloads/templates/pserver-to-cloud-region.json
@@ -0,0 +1,12 @@
+{
+ "cloud-region-id": "${cloud-region-id}",
+ "cloud-owner": "${cloud-owner}",
+ "relationship-list": {
+ "relationship": [
+ {
+ "related-to": "pserver",
+ "related-link": "/cloud-infrastructure/pservers/pserver/${hostname}"
+ }
+ ]
+ }
+} \ No newline at end of file
diff --git a/aai-resources/src/test/resources/payloads/templates/pserver-uriencoded.json b/aai-resources/src/test/resources/payloads/templates/pserver-uriencoded.json
new file mode 100644
index 0000000..31d4a3b
--- /dev/null
+++ b/aai-resources/src/test/resources/payloads/templates/pserver-uriencoded.json
@@ -0,0 +1,4 @@
+{
+ "hostname":"${hostname}",
+ "ptnii-equip-name": "some equip name"
+} \ No newline at end of file
diff --git a/aai-resources/src/test/resources/payloads/templates/pserver-with-data.json b/aai-resources/src/test/resources/payloads/templates/pserver-with-data.json
new file mode 100644
index 0000000..2c97b50
--- /dev/null
+++ b/aai-resources/src/test/resources/payloads/templates/pserver-with-data.json
@@ -0,0 +1,4 @@
+{
+ "hostname": "${hostname}",
+ "pserver-id": "${pserver-id}"
+} \ No newline at end of file
diff --git a/aai-resources/src/test/resources/payloads/templates/pserver.json b/aai-resources/src/test/resources/payloads/templates/pserver.json
new file mode 100644
index 0000000..3b3ed24
--- /dev/null
+++ b/aai-resources/src/test/resources/payloads/templates/pserver.json
@@ -0,0 +1,3 @@
+{
+ "hostname": "${hostname}"
+} \ No newline at end of file
diff --git a/aai-resources/src/test/resources/payloads/templates/pserver.xml b/aai-resources/src/test/resources/payloads/templates/pserver.xml
new file mode 100644
index 0000000..2b47e8c
--- /dev/null
+++ b/aai-resources/src/test/resources/payloads/templates/pserver.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<pserver xmlns="http://org.onap.aai.inventory/v11">
+ <hostname>${hostname}</hostname>
+ <ptnii-equip-name>example-ptnii-equip-name-val-35940</ptnii-equip-name>
+ <number-of-cpus>100</number-of-cpus>
+</pserver> \ No newline at end of file
diff --git a/aai-resources/src/test/resources/test_aaiconfig.properties b/aai-resources/src/test/resources/test_aaiconfig.properties
deleted file mode 100644
index 224d593..0000000
--- a/aai-resources/src/test/resources/test_aaiconfig.properties
+++ /dev/null
@@ -1,116 +0,0 @@
-#
-# ============LICENSE_START=======================================================
-# org.onap.aai
-# ================================================================================
-# Copyright © 2017 AT&T Intellectual Property. All rights reserved.
-# ================================================================================
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ============LICENSE_END=========================================================
-#
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
-#
-
-####################################################################
-# REMEMBER TO THINK ABOUT ENVIRONMENTAL DIFFERENCES AND CHANGE THE
-# TEMPLATE AND *ALL* DATAFILES
-####################################################################
-
-aai.config.checktime=1000
-
-# this could come from siteconfig.pl?
-aai.config.nodename=AutomaticallyOverwritten
-
-aai.logging.hbase.interceptor=true
-aai.logging.hbase.enabled=true
-aai.logging.hbase.logrequest=true
-aai.logging.hbase.logresponse=true
-
-aai.logging.trace.enabled=true
-aai.logging.trace.logrequest=false
-aai.logging.trace.logresponse=false
-
-ecm.openstack.tenantid=b0a529aba48440a39e0caf1aea9b27e3
-ecm.serviceid.trinity=UNUSED
-ecm.serviceid.vusp=UNUSED
-
-aai.auth.cspcookies_on=false
-aai.dbmodel.filename=ex5.json
-aai.server.url.base=https://localhost.com:8443/aai/
-aai.server.url=https://localhost.com:8443/aai/v7/
-aai.oldserver.url.base=https://localhost.com:8443/aai/servers/
-aai.oldserver.url=https://localhost.com:8443/aai/servers/v3/
-aai.truststore.filename=aai_keystore
-aai.truststore.passwd.x=
-aai.keystore.filename=aai-client-cert.p12
-aai.keystore.passwd.x=
-
-# the following parameters are not reloaded automatically and require a manual bounce
-storage.backend=hbase
-storage.hostname=ONAPserverTBD
-#schema.default=none
-storage.lock.wait-time=300
-storage.hbase.table=aaigraph-dev1.dev
-storage.hbase.ext.zookeeper.znode.parent=/hbase-unsecure
-# Setting db-cache to false ensure the fastest propagation of changes across servers
-cache.db-cache = false
-#cache.db-cache-clean-wait = 20
-#cache.db-cache-time = 180000
-#cache.db-cache-size = 0.5
-
-# for transaction log
-hbase.table.name=aailogging-dev1.dev
-hbase.notificationTable.name=aainotification-dev1.dev
-hbase.table.timestamp.format=YYYYMMdd-HH:mm:ss:SSS
-hbase.zookeeper.quorum=ONAPserverTBD
-hbase.zookeeper.property.clientPort=2181
-hbase.zookeeper.znode.parent=/hbase-unsecure
-
-aai.precheck.cloudinfrastructure.complex.defaults.physicalLocationType=AAIDefault
-aai.precheck.cloudinfrastructure.complex.defaults.street1=AAIDefault
-aai.precheck.cloudinfrastructure.complex.defaults.city=AAIDefault
-aai.precheck.cloudinfrastructure.complex.defaults.state=NJ
-aai.precheck.cloudinfrastructure.complex.defaults.postalCode=07748
-aai.precheck.cloudinfrastructure.complex.defaults.country=USA
-aai.precheck.cloudinfrastructure.complex.defaults.region=Americas
-
-# single primary server
-aai.primary.filetransfer.serverlist=ONAPserverTBD
-aai.primary.filetransfer.primarycheck=echo:8443/aai/util/echo
-aai.primary.filetransfer.pingtimeout=5000
-aai.primary.filetransfer.pingcount=5
-
-#rsync properties
-aai.rsync.command=rsync
-aai.rsync.options.list=-v|-t
-aai.rsync.remote.user=aaiadmin
-aai.rsync.enabled=y
-
-#Service Specific Data Values
-aai.servicedescription.hostedcomm=HOSTED COMMUNICATIONS
-aai.servicedescription.mobility=MOBILITY
-aai.servicedescription.vusp=VIRTUAL USP
-
-aai.notification.current.version=v7
-aai.notificationEvent.default.status=UNPROCESSED
-aai.notificationEvent.default.eventType=AAI-EVENT
-aai.notificationEvent.default.domain=devINT1
-aai.notificationEvent.default.sourceName=aai
-aai.notificationEvent.default.sequenceNumber=0
-aai.notificationEvent.default.severity=NORMAL
-aai.notificationEvent.default.version=v7
-# This one lets us enable/disable resource-version checking on updates/deletes
-aai.resourceversion.enableflag=true
-aai.logging.maxStackTraceEntries=10
-aai.default.api.version=v7
-
-
diff --git a/aai-resources/src/test/resources/updateEdgeTestRules.json b/aai-resources/src/test/resources/updateEdgeTestRules.json
deleted file mode 100644
index 4da2b59..0000000
--- a/aai-resources/src/test/resources/updateEdgeTestRules.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
- "rules": [
- {
- "from": "generic-vnf",
- "to": "l-interface",
- "label": "hasLInterface",
- "direction": "OUT",
- "multiplicity": "MANY2MANY",
- "contains-other-v": "!${direction}",
- "delete-other-v": "!${direction}",
- "SVC-INFRA": "${direction}",
- "prevent-delete": "NONE",
- "description": "An edge comment",
- "default": "true",
- "newProperty": "newValue"
- },
- {
- "from": "pserver",
- "to": "vnfc",
- "label": "tosca.relationships.HostedOn",
- "direction": "OUT",
- "multiplicity": "MANY2MANY",
- "contains-other-v": "!${direction}",
- "delete-other-v": "!${direction}",
- "SVC-INFRA": "${direction}",
- "prevent-delete": "NONE",
- "description": "A pserver/vnfc edge description",
- "default": "true",
- "newProperty": "newValue"
- },
- {
- "from": "l-interface",
- "to": "logical-link",
- "label": "usesLogicalLink",
- "direction": "OUT",
- "multiplicity": "MANY2MANY",
- "contains-other-v": "!${direction}",
- "delete-other-v": "!${direction}",
- "SVC-INFRA": "${direction}",
- "prevent-delete": "NONE",
- "description": "A l-interface/logical-link(1) edge description",
- "default": "true",
- "newProperty": "newValue"
- },
- {
- "from": "l-interface",
- "to": "logical-link",
- "label": "sourceLInterface",
- "direction": "OUT",
- "multiplicity": "MANY2MANY",
- "contains-other-v": "!${direction}",
- "delete-other-v": "!${direction}",
- "SVC-INFRA": "${direction}",
- "prevent-delete": "NONE",
- "description": "A l-interface/logical-link(2) edge description",
- "default": "true",
- "newProperty": "newValue"
- }
- ]
-} \ No newline at end of file