From 7e69be504213aa92893fd3354a767128b3a583f1 Mon Sep 17 00:00:00 2001 From: Shwetank Dave Date: Tue, 22 Aug 2017 10:36:30 -0400 Subject: Using DbEdgeRules.json files from aai-core jar. Before we were aai_relationship_vxx.json files. Now using the edge rules directly from aai-core jar. Issue-ID: AAI-21 Change-Id: Id62494caabc75bc29e4f3558268ec78897946937 Signed-off-by: Shwetank Dave --- .../schema/RelationshipSchemaLoaderTest.java | 91 + .../openecomp/schema/RelationshipSchemaTest.java | 116 ++ src/test/resources/model/DbEdgeRules_v10.json | 1819 ++++++++++++++++++ src/test/resources/model/DbEdgeRules_v11.json | 1962 ++++++++++++++++++++ src/test/resources/model/DbEdgeRules_v8.json | 1478 +++++++++++++++ src/test/resources/model/DbEdgeRules_v9.json | 1742 +++++++++++++++++ src/test/resources/model/edge_properties_v10.json | 10 + src/test/resources/model/edge_properties_v11.json | 10 + src/test/resources/model/edge_properties_v8.json | 10 + src/test/resources/model/edge_properties_v9.json | 10 + 10 files changed, 7248 insertions(+) create mode 100644 src/test/java/org/openecomp/schema/RelationshipSchemaLoaderTest.java create mode 100644 src/test/java/org/openecomp/schema/RelationshipSchemaTest.java create mode 100644 src/test/resources/model/DbEdgeRules_v10.json create mode 100644 src/test/resources/model/DbEdgeRules_v11.json create mode 100644 src/test/resources/model/DbEdgeRules_v8.json create mode 100644 src/test/resources/model/DbEdgeRules_v9.json create mode 100644 src/test/resources/model/edge_properties_v10.json create mode 100644 src/test/resources/model/edge_properties_v11.json create mode 100644 src/test/resources/model/edge_properties_v8.json create mode 100644 src/test/resources/model/edge_properties_v9.json (limited to 'src/test') diff --git a/src/test/java/org/openecomp/schema/RelationshipSchemaLoaderTest.java b/src/test/java/org/openecomp/schema/RelationshipSchemaLoaderTest.java new file mode 100644 index 0000000..85ef2fe --- /dev/null +++ b/src/test/java/org/openecomp/schema/RelationshipSchemaLoaderTest.java @@ -0,0 +1,91 @@ +package org.openecomp.schema; + +import static org.junit.Assert.*; +import edu.emory.mathcs.backport.java.util.Arrays; +import org.junit.Before; +import org.junit.Test; +import org.openecomp.crud.exception.CrudException; + +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +import static org.junit.Assert.*; + +public class RelationshipSchemaLoaderTest { + + @Before + public void init() { + ClassLoader classLoader = getClass().getClassLoader(); + File dir = new File(classLoader.getResource( "model").getFile()); + System.setProperty("CONFIG_HOME", dir.getParent()); + RelationshipSchemaLoader.resetVersionContextMap(); + } + + @Test + public void loadModels() throws Exception { + RelationshipSchemaLoader.loadModels(); + assertFalse( RelationshipSchemaLoader.getVersionContextMap().keySet().isEmpty()); + } + + @Test + public void loadModelsWithAVersion() throws Exception { + RelationshipSchemaLoader.loadModels("v11"); + assertEquals(1, RelationshipSchemaLoader.getVersionContextMap().keySet().size()); + assertEquals("v11", RelationshipSchemaLoader.getLatestSchemaVersion()); + } + + @Test + public void getSchemaForVersion() throws Exception { + RelationshipSchemaLoader.loadModels("v11"); + String version = RelationshipSchemaLoader.getLatestSchemaVersion(); + RelationshipSchema g = RelationshipSchemaLoader.getSchemaForVersion(version); + assertNotNull(g.lookupRelationType("has")); + } + + @Test + public void getSchemaForVersionFail() throws Exception { + RelationshipSchemaLoader.loadModels(); + try { + RelationshipSchemaLoader.getSchemaForVersion("v1"); + } catch (CrudException e) { + assertEquals(404, e.getHttpStatus().getStatusCode()); + } + } + + @Test + public void setVersionContextMap() throws Exception { + ArrayList jsonString = new ArrayList(); + String rules = "{" + + "\"rules\": [" + + "{" + + "\"from\": \"availability-zone\"," + + "\"to\": \"complex\"," + + "\"label\": \"groupsResourcesIn\"," + + "\"direction\": \"OUT\"," + + "\"multiplicity\": \"Many2Many\"," + + "\"contains-other-v\": \"NONE\"," + + "\"delete-other-v\": \"NONE\"," + + "\"SVC-INFRA\": \"NONE\"," + + "\"prevent-delete\": \"!${direction}\"" + + "}]}"; + String props = "{" + + " \"isParent\":\"java.lang.Boolean\"," + + " \"isParent-REV\":\"java.lang.Boolean\"," + + " \"usesResource\":\"java.lang.Boolean\"," + + " \"usesResource-REV\":\"java.lang.Boolean\"," + + " \"SVC-INFRA\":\"java.lang.Boolean\"," + + " \"SVC-INFRA-REV\":\"java.lang.Boolean\"," + + " \"hasDelTarget\":\"java.lang.Boolean\"," + + " \"hasDelTarget-REV\":\"java.lang.Boolean\"" + + "}"; + jsonString.add(rules); + jsonString.add(props); + RelationshipSchema nRs = new RelationshipSchema(jsonString); + Map versionMap = new HashMap<>(); + versionMap.put("v1", nRs); + RelationshipSchemaLoader.setVersionContextMap(versionMap); + assertNotNull(RelationshipSchemaLoader.getSchemaForVersion("v1").lookupRelationType("groupsResourcesIn")); + } +} \ No newline at end of file diff --git a/src/test/java/org/openecomp/schema/RelationshipSchemaTest.java b/src/test/java/org/openecomp/schema/RelationshipSchemaTest.java new file mode 100644 index 0000000..f575105 --- /dev/null +++ b/src/test/java/org/openecomp/schema/RelationshipSchemaTest.java @@ -0,0 +1,116 @@ +package org.openecomp.schema; + +import org.apache.commons.io.IOUtils; +import org.junit.Test; +import org.openecomp.crud.exception.CrudException; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.Arrays; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.Comparator; +import java.util.concurrent.ConcurrentHashMap; +import java.util.HashMap; +import java.util.Map; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +import static org.junit.Assert.*; + +public class RelationshipSchemaTest { + + final static Pattern rulesFilePattern = Pattern.compile("DbEdgeRules(.*).json"); + final static Pattern propsFilePattern = Pattern.compile("edge_properties_(.*).json"); + final static Pattern versionPattern = Pattern.compile(".*(v\\d+).json"); + + + @Test + public void shouldLoadAllTheVersionsInDirectory() throws Exception { + Map versionContextMap = new ConcurrentHashMap<>(); + loadRelations(versionContextMap); + assertEquals(6, versionContextMap.keySet().size()); + } + + @Test + public void shouldContainValidTypes() throws Exception { + Map versionContextMap = new ConcurrentHashMap<>(); + loadRelations(versionContextMap); + assertTrue(versionContextMap.get("v11").isValidType("groupsResourcesIn")); + assertTrue(versionContextMap.get("v11").isValidType("uses")); + assertFalse(versionContextMap.get("v11").isValidType("has")); + } + + @Test + public void shouldLookUpByRelation() throws Exception { + Map versionContextMap = new ConcurrentHashMap<>(); + loadRelations(versionContextMap); + assertNotNull(versionContextMap.get("v11").lookupRelation("availability-zone:complex:groupsResourcesIn")); + assertTrue(versionContextMap.get("v11") + .lookupRelation("availability-zone:complex:groupsResourcesIn").containsKey("usesResource")); + } + + @Test + public void shouldLookUpByRelationType() throws Exception { + Map versionContextMap = new ConcurrentHashMap<>(); + loadRelations(versionContextMap); + assertNotNull(versionContextMap.get("v11").lookupRelationType("groupsResourcesIn")); + assertTrue(versionContextMap.get("v11") + .lookupRelation("availability-zone:complex:groupsResourcesIn").containsKey("usesResource")); + } + + private void loadRelations(Map map){ + ClassLoader classLoader = getClass().getClassLoader(); + File dir = new File(classLoader.getResource("model").getFile()); + File[] allFiles = dir.listFiles((d, name) -> + (propsFilePattern.matcher(name).matches() || rulesFilePattern.matcher(name).matches())); + + Arrays.stream(allFiles).sorted(Comparator.comparing(File::getName)) + .collect(Collectors.groupingBy(f -> myMatcher(versionPattern, f.getName()))) + .forEach((e, f) -> map.put(e, jsonFilesLoader(f))); + + } + + + private RelationshipSchema jsonFilesLoader (List files) { + List fileContents = new ArrayList<>(); + RelationshipSchema rsSchema = null; + for (File f : files) { + fileContents.add(jsonToString(f)); + } + + try { + rsSchema = new RelationshipSchema(fileContents); + } catch (CrudException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + + return rsSchema; + } + + private String jsonToString (File file) { + InputStream inputStream = null; + String content = null; + HashMap result = null; + + try { + inputStream = new FileInputStream(file); + content = IOUtils.toString(inputStream, "UTF-8"); + } catch (IOException e) { + e.printStackTrace(); + } + + return content; + } + + private String myMatcher (Pattern p, String s) { + Matcher m = p.matcher(s); + return m.matches() ? m.group(1) : ""; + } +} \ No newline at end of file diff --git a/src/test/resources/model/DbEdgeRules_v10.json b/src/test/resources/model/DbEdgeRules_v10.json new file mode 100644 index 0000000..0381090 --- /dev/null +++ b/src/test/resources/model/DbEdgeRules_v10.json @@ -0,0 +1,1819 @@ +{ + "rules": [ + { + "from": "availability-zone", + "to": "complex", + "label": "groupsResourcesIn", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "generic-vnf", + "to": "license-key-resource", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "availability-zone", + "to": "service-capability", + "label": "supportsServiceCapability", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "cloud-region", + "to": "complex", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "cloud-region", + "to": "l3-network", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "cloud-region", + "to": "tenant", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "image", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "flavor", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "availability-zone", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "oam-network", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "dvs-switch", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "volume-group", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "group-assignment", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "snapshot", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "zone", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "complex", + "to": "ctag-pool", + "label": "hasCtagPool", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "complex", + "to": "l3-network", + "label": "usesL3Network", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "ctag-pool", + "to": "availability-zone", + "label": "supportsAvailabilityZone", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "customer", + "to": "service-subscription", + "label": "subscribesTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE" + }, + { + "from": "dvs-switch", + "to": "availability-zone", + "label": "existsIn", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "generic-vnf", + "to": "l-interface", + "label": "hasLInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "availability-zone", + "label": "hasAvailabilityZone", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "generic-vnf", + "to": "lag-interface", + "label": "hasLAGInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "l3-network", + "label": "usesL3Network", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "pserver", + "label": "runsOnPserver", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "generic-vnf", + "to": "vnf-image", + "label": "usesVnfImage", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "generic-vnf", + "to": "vserver", + "label": "runsOnVserver", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "service-instance", + "label": "hasInstance", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "site-pair-set", + "label": "hasSitePairSet", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "network-profile", + "label": "hasNetworkProfile", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "group-assignment", + "to": "tenant", + "label": "has", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "group-assignment", + "to": "pserver", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "image", + "to": "metadatum", + "label": "hasMetaDatum", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "instance-group", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "l3-interface-ipv4-address-list", + "label": "hasIpAddress", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "l3-interface-ipv6-address-list", + "label": "hasIpAddress", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "l-interface", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "logical-link", + "label": "usesLogicalLink", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "lag-interface", + "to": "logical-link", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "vlan", + "label": "hasVlan", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "sriov-vf", + "label": "has", + "direction": "OUT", + "multiplicity": "One2One", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "instance-group", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "instance-group", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l3-network", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l3-network", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "subnet", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "subnet", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "l3-network", + "to": "vpn-binding", + "label": "usesVpnBinding", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "l3-network", + "to": "subnet", + "label": "hasSubnet", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l3-network", + "to": "service-instance", + "label": "hasInstance", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l3-network", + "to": "ctag-assignment", + "label": "hasCtagAssignment", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l3-network", + "to": "network-policy", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l3-network", + "to": "segmentation-assignment", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "l3-network", + "to": "route-table-reference", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "lag-interface", + "to": "lag-link", + "label": "usesLAGLink", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "lag-interface", + "to": "p-interface", + "label": "usesPInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "lag-interface", + "to": "l-interface", + "label": "hasLInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "lag-link", + "label": "usesLAGLink", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "pnf", + "label": "bridgedTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "logical-link", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "model", + "to": "model-ver", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "model-ver", + "to": "model-element", + "label": "startsWith", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "model-element", + "to": "model-ver", + "label": "isA", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "model-ver", + "to": "metadatum", + "label": "hasMetaData", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "model-element", + "to": "model-element", + "label": "connectsTo", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "model-element", + "to": "model-constraint", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "model-element", + "to": "constrained-element-set", + "label": "connectsTo", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "model-constraint", + "to": "constrained-element-set", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "constrained-element-set", + "to": "element-choice-set", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "element-choice-set", + "to": "model-element", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "named-query", + "to": "model", + "label": "relatedTo", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "named-query", + "to": "named-query-element", + "label": "startsWith", + "direction": "OUT", + "multiplicity": "One2One", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "named-query-element", + "to": "named-query-element", + "label": "connectsTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "named-query-element", + "to": "model", + "label": "isA", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "named-query-element", + "to": "property-constraint", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "named-query-element", + "to": "related-lookup", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "instance-group", + "to": "model", + "label": "targets", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "newvce", + "to": "l-interface", + "label": "hasLInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "oam-network", + "to": "complex", + "label": "definedFor", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "oam-network", + "to": "service-capability", + "label": "supportsServiceCapability", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "p-interface", + "to": "l-interface", + "label": "hasLInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "p-interface", + "to": "physical-link", + "label": "usesPhysicalLink", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "p-interface", + "to": "logical-link", + "label": "usesLogicalLink", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "port-group", + "to": "cvlan-tag", + "label": "hasCTag", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "pserver", + "to": "complex", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "pserver", + "to": "cloud-region", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "pserver", + "to": "availability-zone", + "label": "existsIn", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "pserver", + "to": "lag-interface", + "label": "hasLAGInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "pserver", + "to": "p-interface", + "label": "hasPinterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "pserver", + "to": "zone", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "pnf", + "to": "p-interface", + "label": "hasPinterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "pnf", + "to": "lag-interface", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "pnf", + "to": "complex", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "pnf", + "to": "instance-group", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "pnf", + "to": "zone", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "cvlan-tag", + "label": "hasIPAGFacingVLAN", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "pnf", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-subscription", + "to": "service-instance", + "label": "hasInstance", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE" + }, + { + "from": "site-pair-set", + "to": "routing-instance", + "label": "hasRoutingInstance", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "routing-instance", + "to": "site-pair", + "label": "hasSitePair", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "site-pair", + "to": "class-of-service", + "label": "hasClassOfService", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "tenant", + "to": "l3-network", + "label": "usesL3Network", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "tenant", + "to": "service-subscription", + "label": "relatedTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "tenant", + "to": "vserver", + "label": "owns", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "${direction}" + }, + { + "from": "vce", + "to": "availability-zone", + "label": "hasAvailabilityZone", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "vce", + "to": "complex", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "vce", + "to": "port-group", + "label": "hasPortGroup", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vce", + "to": "vserver", + "label": "runsOnVserver", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vce", + "to": "service-instance", + "label": "hasServiceInstance", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE" + }, + { + "from": "virtual-data-center", + "to": "generic-vnf", + "label": "hasVNF", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vlan", + "to": "l3-interface-ipv4-address-list", + "label": "hasIpAddress", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vlan", + "to": "l3-interface-ipv6-address-list", + "label": "hasIpAddress", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vpls-pe", + "to": "complex", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "vpls-pe", + "to": "ctag-pool", + "label": "usesCtagPool", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "vpls-pe", + "to": "p-interface", + "label": "hasPinterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "vpls-pe", + "to": "lag-interface", + "label": "hasLAGinterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "vserver", + "to": "flavor", + "label": "hasFlavor", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "vserver", + "to": "image", + "label": "hasImage", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "vserver", + "to": "l-interface", + "label": "hasLInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vserver", + "to": "pserver", + "label": "runsOnPserver", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "vserver", + "to": "volume", + "label": "hasVolume", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vserver", + "to": "vnfc", + "label": "hosts", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vserver", + "to": "snapshot", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "connector", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "metadatum", + "label": "hasMetaData", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "logical-link", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "vlan", + "label": "dependsOn", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "service-instance", + "label": "dependsOn", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "connector", + "to": "virtual-data-center", + "label": "contains", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "connector", + "to": "metadatum", + "label": "hasMetaData", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "virtual-data-center", + "to": "logical-link", + "label": "contains", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "generic-vnf", + "label": "bridgedTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "pserver", + "label": "bridgedTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "vlan", + "to": "multicast-configuration", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "volume-group", + "to": "complex", + "label": "existsIn", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "volume-group", + "to": "tenant", + "label": "belongsTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "ipsec-configuration", + "to": "vig-server", + "label": "hasVigServer", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "ipsec-configuration", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "vf-module", + "to": "volume-group", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vserver", + "to": "vf-module", + "label": "isPartOf", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vf-module", + "to": "l3-network", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vf-module", + "to": "vnfc", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "${direction}", + "prevent-delete": "${direction}" + }, + { + "from": "generic-vnf", + "to": "vf-module", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "volume-group", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "vnfc", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vlan", + "to": "logical-link", + "label": "usesLogicalLink", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vpn-binding", + "to": "route-target", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "ctag-assignment", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "allotted-resource", + "to": "generic-vnf", + "label": "isPartOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "allotted-resource", + "to": "l3-network", + "label": "isPartOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "allotted-resource", + "to": "instance-group", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "allotted-resource", + "to": "network-policy", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "allotted-resource", + "to": "vlan", + "label": "isPartOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "instance-group", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "instance-group", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "allotted-resource", + "to": "tunnel-xconnect", + "label": "has", + "direction": "OUT", + "multiplicity": "One2One", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "cloud-region", + "label": "existsIn", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "vpn-binding", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "generic-vnf", + "to": "entitlement", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "license", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "vce", + "to": "entitlement", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "vce", + "to": "license", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "zone", + "to": "complex", + "label": "existsIn", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "service-instance", + "to": "allotted-resource", + "label": "has", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "allotted-resource", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + } + ] +} diff --git a/src/test/resources/model/DbEdgeRules_v11.json b/src/test/resources/model/DbEdgeRules_v11.json new file mode 100644 index 0000000..d24acd7 --- /dev/null +++ b/src/test/resources/model/DbEdgeRules_v11.json @@ -0,0 +1,1962 @@ +{ + "rules": [ + { + "from": "availability-zone", + "to": "complex", + "label": "groupsResourcesIn", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from" : "auth-info-item", + "to" : "tenant", + "label" : "defaultTenant", + "direction" : "OUT", + "multiplicity" : "One2One", + "isParent" : "false", + "usesResource" : "false", + "hasDelTarget" : "false", + "SVC-INFRA" : "false" + }, + { + "from": "generic-vnf", + "to": "license-key-resource", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "availability-zone", + "to": "service-capability", + "label": "supportsServiceCapability", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "cloud-region", + "to": "complex", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "cloud-region", + "to": "l3-network", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "cloud-region", + "to": "tenant", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "auth-info-item", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "image", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "flavor", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "availability-zone", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "oam-network", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "dvs-switch", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "volume-group", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "group-assignment", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "snapshot", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "zone", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "complex", + "to": "ctag-pool", + "label": "hasCtagPool", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "complex", + "to": "l3-network", + "label": "usesL3Network", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "ctag-pool", + "to": "availability-zone", + "label": "supportsAvailabilityZone", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "customer", + "to": "service-subscription", + "label": "subscribesTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE" + }, + { + "from": "dvs-switch", + "to": "availability-zone", + "label": "existsIn", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "generic-vnf", + "to": "l-interface", + "label": "hasLInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "availability-zone", + "label": "hasAvailabilityZone", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "generic-vnf", + "to": "lag-interface", + "label": "hasLAGInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "l3-network", + "label": "usesL3Network", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "pserver", + "label": "runsOnPserver", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "generic-vnf", + "to": "vnf-image", + "label": "usesVnfImage", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "generic-vnf", + "to": "vserver", + "label": "runsOnVserver", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "service-instance", + "label": "hasInstance", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "site-pair-set", + "label": "hasSitePairSet", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "network-profile", + "label": "hasNetworkProfile", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "pnf", + "label": "hostedOn", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "group-assignment", + "to": "tenant", + "label": "has", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "group-assignment", + "to": "pserver", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "image", + "to": "metadatum", + "label": "hasMetaDatum", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "instance-group", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "vnfc", + "to": "instance-group", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "l3-interface-ipv4-address-list", + "label": "hasIpAddress", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "l3-interface-ipv6-address-list", + "label": "hasIpAddress", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "l-interface", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "logical-link", + "label": "usesLogicalLink", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "lag-interface", + "to": "logical-link", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "vlan", + "label": "hasVlan", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "sriov-vf", + "label": "has", + "direction": "OUT", + "multiplicity": "One2One", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "instance-group", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "instance-group", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l3-network", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l3-network", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "subnet", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "subnet", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "l3-network", + "to": "vpn-binding", + "label": "usesVpnBinding", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "l3-network", + "to": "instance-group", + "label": "memberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "l3-network", + "to": "subnet", + "label": "hasSubnet", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l3-network", + "to": "service-instance", + "label": "hasInstance", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l3-network", + "to": "ctag-assignment", + "label": "hasCtagAssignment", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l3-network", + "to": "network-policy", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l3-network", + "to": "segmentation-assignment", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "l3-network", + "to": "route-table-reference", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "lag-interface", + "to": "lag-link", + "label": "usesLAGLink", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "lag-interface", + "to": "p-interface", + "label": "usesPInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "lag-interface", + "to": "l-interface", + "label": "hasLInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "lag-link", + "label": "usesLAGLink", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "pnf", + "label": "bridgedTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "logical-link", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "model", + "to": "model-ver", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "model-ver", + "to": "model-element", + "label": "startsWith", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "model-element", + "to": "model-ver", + "label": "isA", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "model-ver", + "to": "metadatum", + "label": "hasMetaData", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "model-element", + "to": "model-element", + "label": "connectsTo", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "model-element", + "to": "model-constraint", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "model-element", + "to": "constrained-element-set", + "label": "connectsTo", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "model-constraint", + "to": "constrained-element-set", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "constrained-element-set", + "to": "element-choice-set", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "element-choice-set", + "to": "model-element", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "named-query", + "to": "model", + "label": "relatedTo", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "named-query", + "to": "named-query-element", + "label": "startsWith", + "direction": "OUT", + "multiplicity": "One2One", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "named-query-element", + "to": "named-query-element", + "label": "connectsTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "named-query-element", + "to": "model", + "label": "isA", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "named-query-element", + "to": "property-constraint", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "named-query-element", + "to": "related-lookup", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "instance-group", + "to": "model", + "label": "targets", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "newvce", + "to": "l-interface", + "label": "hasLInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "oam-network", + "to": "complex", + "label": "definedFor", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "oam-network", + "to": "service-capability", + "label": "supportsServiceCapability", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "p-interface", + "to": "l-interface", + "label": "hasLInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "p-interface", + "to": "physical-link", + "label": "usesPhysicalLink", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "p-interface", + "to": "logical-link", + "label": "usesLogicalLink", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "port-group", + "to": "cvlan-tag", + "label": "hasCTag", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "pserver", + "to": "complex", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "pserver", + "to": "cloud-region", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "pserver", + "to": "availability-zone", + "label": "existsIn", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "pserver", + "to": "lag-interface", + "label": "hasLAGInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "pserver", + "to": "p-interface", + "label": "hasPinterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "pserver", + "to": "zone", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "pnf", + "to": "p-interface", + "label": "hasPinterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "pnf", + "to": "lag-interface", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "pnf", + "to": "complex", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "pnf", + "to": "instance-group", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "pnf", + "to": "zone", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "zone", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "cvlan-tag", + "label": "hasIPAGFacingVLAN", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "pnf", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-subscription", + "to": "service-instance", + "label": "hasInstance", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE" + }, + { + "from": "site-pair-set", + "to": "routing-instance", + "label": "hasRoutingInstance", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "routing-instance", + "to": "site-pair", + "label": "hasSitePair", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "site-pair", + "to": "class-of-service", + "label": "hasClassOfService", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "tenant", + "to": "l3-network", + "label": "usesL3Network", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "tenant", + "to": "service-subscription", + "label": "relatedTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "tenant", + "to": "vserver", + "label": "owns", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "${direction}" + }, + { + "from": "vce", + "to": "availability-zone", + "label": "hasAvailabilityZone", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "vce", + "to": "complex", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "vce", + "to": "port-group", + "label": "hasPortGroup", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vce", + "to": "vserver", + "label": "runsOnVserver", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vce", + "to": "service-instance", + "label": "hasServiceInstance", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE" + }, + { + "from": "virtual-data-center", + "to": "generic-vnf", + "label": "hasVNF", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vlan", + "to": "l3-interface-ipv4-address-list", + "label": "hasIpAddress", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vlan", + "to": "l3-interface-ipv6-address-list", + "label": "hasIpAddress", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vpls-pe", + "to": "complex", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "vpls-pe", + "to": "ctag-pool", + "label": "usesCtagPool", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "vpls-pe", + "to": "p-interface", + "label": "hasPinterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "vpls-pe", + "to": "lag-interface", + "label": "hasLAGinterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "vserver", + "to": "flavor", + "label": "hasFlavor", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "vserver", + "to": "image", + "label": "hasImage", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "vserver", + "to": "l-interface", + "label": "hasLInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vserver", + "to": "pserver", + "label": "runsOnPserver", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "vserver", + "to": "volume", + "label": "hasVolume", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vserver", + "to": "vnfc", + "label": "hosts", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vserver", + "to": "snapshot", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "connector", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "metadatum", + "label": "hasMetaData", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "logical-link", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "vlan", + "label": "dependsOn", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "service-instance", + "label": "dependsOn", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "connector", + "to": "virtual-data-center", + "label": "contains", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "connector", + "to": "metadatum", + "label": "hasMetaData", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "virtual-data-center", + "to": "logical-link", + "label": "contains", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "generic-vnf", + "label": "bridgedTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "pserver", + "label": "bridgedTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "vlan", + "to": "multicast-configuration", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "volume-group", + "to": "complex", + "label": "existsIn", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "volume-group", + "to": "tenant", + "label": "belongsTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "ipsec-configuration", + "to": "vig-server", + "label": "hasVigServer", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "ipsec-configuration", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "vf-module", + "to": "volume-group", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vserver", + "to": "vf-module", + "label": "isPartOf", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vf-module", + "to": "l3-network", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vf-module", + "to": "vnfc", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "${direction}", + "prevent-delete": "${direction}" + }, + { + "from": "generic-vnf", + "to": "vf-module", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "volume-group", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "vnfc", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vlan", + "to": "logical-link", + "label": "usesLogicalLink", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vpn-binding", + "to": "route-target", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "ctag-assignment", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "allotted-resource", + "to": "generic-vnf", + "label": "isPartOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "allotted-resource", + "to": "l3-network", + "label": "isPartOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "allotted-resource", + "to": "instance-group", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "allotted-resource", + "to": "network-policy", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "allotted-resource", + "to": "vlan", + "label": "isPartOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "allotted-resource", + "to": "l-interface", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "instance-group", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "instance-group", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "allotted-resource", + "to": "tunnel-xconnect", + "label": "has", + "direction": "OUT", + "multiplicity": "One2One", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "cloud-region", + "label": "existsIn", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "vpn-binding", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "generic-vnf", + "to": "entitlement", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "license", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "vce", + "to": "entitlement", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "vce", + "to": "license", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "zone", + "to": "complex", + "label": "existsIn", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "service-instance", + "to": "allotted-resource", + "label": "has", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "allotted-resource", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "allotted-resource", + "to": "vpn-binding", + "label": "belongsTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "allotted-resource", + "to": "allotted-resource", + "label": "bindsTo", + "direction": "OUT", + "multiplicity": "One2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "complex", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "generic-vnf", + "to": "ctag-pool", + "label": "usesCtagPool", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "p-interface", + "to": "sriov-pf", + "label": "has", + "direction": "OUT", + "multiplicity": "One2One", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "sriov-vf", + "to": "sriov-pf", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + } + ] +} diff --git a/src/test/resources/model/DbEdgeRules_v8.json b/src/test/resources/model/DbEdgeRules_v8.json new file mode 100644 index 0000000..6d5b06f --- /dev/null +++ b/src/test/resources/model/DbEdgeRules_v8.json @@ -0,0 +1,1478 @@ +{ + "rules": [ + { + "from": "availability-zone", + "to": "complex", + "label": "groupsResourcesIn", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "generic-vnf", + "to": "license-key-resource", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "availability-zone", + "to": "service-capability", + "label": "supportsServiceCapability", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "cloud-region", + "to": "complex", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "cloud-region", + "to": "l3-network", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "cloud-region", + "to": "tenant", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "image", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "flavor", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "availability-zone", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "oam-network", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "dvs-switch", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "volume-group", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "group-assignment", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "snapshot", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "complex", + "to": "ctag-pool", + "label": "hasCtagPool", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "complex", + "to": "l3-network", + "label": "usesL3Network", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "ctag-pool", + "to": "availability-zone", + "label": "supportsAvailabilityZone", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "customer", + "to": "service-subscription", + "label": "subscribesTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE" + }, + { + "from": "dvs-switch", + "to": "availability-zone", + "label": "existsIn", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "generic-vnf", + "to": "l-interface", + "label": "hasLInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "availability-zone", + "label": "hasAvailabilityZone", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "generic-vnf", + "to": "lag-interface", + "label": "hasLAGInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "l3-network", + "label": "usesL3Network", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "pserver", + "label": "runsOnPserver", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "generic-vnf", + "to": "vnf-image", + "label": "usesVnfImage", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "generic-vnf", + "to": "vserver", + "label": "runsOnVserver", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "service-instance", + "label": "hasInstance", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "site-pair-set", + "label": "hasSitePairSet", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "network-profile", + "label": "hasNetworkProfile", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "group-assignment", + "to": "tenant", + "label": "has", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "group-assignment", + "to": "pserver", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "image", + "to": "metadatum", + "label": "hasMetaDatum", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "l3-interface-ipv4-address-list", + "label": "hasIpAddress", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "l3-interface-ipv6-address-list", + "label": "hasIpAddress", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "logical-link", + "label": "usesLogicalLink", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "vlan", + "label": "hasVlan", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "sriov-vf", + "label": "has", + "direction": "OUT", + "multiplicity": "One2One", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l3-network", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l3-network", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "subnet", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "subnet", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "l3-network", + "to": "vpn-binding", + "label": "usesVpnBinding", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "l3-network", + "to": "subnet", + "label": "hasSubnet", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l3-network", + "to": "service-instance", + "label": "hasInstance", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l3-network", + "to": "ctag-assignment", + "label": "hasCtagAssignment", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l3-network", + "to": "network-policy", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l3-network", + "to": "segmentation-assignment", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "l3-network", + "to": "route-table-reference", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "lag-interface", + "to": "lag-link", + "label": "usesLAGLink", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "lag-interface", + "to": "p-interface", + "label": "usesPInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "lag-interface", + "to": "l-interface", + "label": "hasLInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "lag-link", + "label": "usesLAGLink", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "pnf", + "label": "bridgedTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "logical-link", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "model", + "to": "model-element", + "label": "startsWith", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "model-element", + "to": "model", + "label": "isA", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "model", + "to": "metadatum", + "label": "hasMetaData", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "model-element", + "to": "model-element", + "label": "connectsTo", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "model-element", + "to": "model-constraint", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "model-element", + "to": "constrained-element-set", + "label": "connectsTo", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "model-constraint", + "to": "constrained-element-set", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "constrained-element-set", + "to": "element-choice-set", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "element-choice-set", + "to": "model-element", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "named-query", + "to": "model", + "label": "relatedTo", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "named-query", + "to": "named-query-element", + "label": "startsWith", + "direction": "OUT", + "multiplicity": "One2One", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "named-query-element", + "to": "named-query-element", + "label": "connectsTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "named-query-element", + "to": "model", + "label": "isA", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "named-query-element", + "to": "property-constraint", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "named-query-element", + "to": "related-lookup", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "newvce", + "to": "l-interface", + "label": "hasLInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "oam-network", + "to": "complex", + "label": "definedFor", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "oam-network", + "to": "service-capability", + "label": "supportsServiceCapability", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "p-interface", + "to": "l-interface", + "label": "hasLInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "p-interface", + "to": "physical-link", + "label": "usesPhysicalLink", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "p-interface", + "to": "logical-link", + "label": "usesLogicalLink", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "port-group", + "to": "cvlan-tag", + "label": "hasCTag", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "pserver", + "to": "complex", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "pserver", + "to": "cloud-region", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "pserver", + "to": "availability-zone", + "label": "existsIn", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "pserver", + "to": "lag-interface", + "label": "hasLAGInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "pserver", + "to": "p-interface", + "label": "hasPinterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "pnf", + "to": "p-interface", + "label": "hasPinterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "pnf", + "to": "lag-interface", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "pnf", + "to": "complex", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "service-instance", + "to": "cvlan-tag", + "label": "hasIPAGFacingVLAN", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-subscription", + "to": "service-instance", + "label": "hasInstance", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE" + }, + { + "from": "site-pair-set", + "to": "routing-instance", + "label": "hasRoutingInstance", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "routing-instance", + "to": "site-pair", + "label": "hasSitePair", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "site-pair", + "to": "class-of-service", + "label": "hasClassOfService", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "tenant", + "to": "l3-network", + "label": "usesL3Network", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "tenant", + "to": "service-subscription", + "label": "relatedTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "tenant", + "to": "vserver", + "label": "owns", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "${direction}" + }, + { + "from": "vce", + "to": "availability-zone", + "label": "hasAvailabilityZone", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "vce", + "to": "complex", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "vce", + "to": "port-group", + "label": "hasPortGroup", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vce", + "to": "vserver", + "label": "runsOnVserver", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vce", + "to": "service-instance", + "label": "hasServiceInstance", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE" + }, + { + "from": "virtual-data-center", + "to": "generic-vnf", + "label": "hasVNF", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vlan", + "to": "l3-interface-ipv4-address-list", + "label": "hasIpAddress", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vlan", + "to": "l3-interface-ipv6-address-list", + "label": "hasIpAddress", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vpls-pe", + "to": "complex", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "vpls-pe", + "to": "ctag-pool", + "label": "usesCtagPool", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "vpls-pe", + "to": "p-interface", + "label": "hasPinterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "vpls-pe", + "to": "lag-interface", + "label": "hasLAGinterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "vserver", + "to": "flavor", + "label": "hasFlavor", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "vserver", + "to": "image", + "label": "hasImage", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "vserver", + "to": "l-interface", + "label": "hasLInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vserver", + "to": "pserver", + "label": "runsOnPserver", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "vserver", + "to": "volume", + "label": "hasVolume", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vserver", + "to": "vnfc", + "label": "hosts", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vserver", + "to": "snapshot", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "connector", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "metadatum", + "label": "hasMetaData", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "logical-link", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "vlan", + "label": "dependsOn", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "service-instance", + "label": "dependsOn", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "connector", + "to": "virtual-data-center", + "label": "contains", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "connector", + "to": "metadatum", + "label": "hasMetaData", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "virtual-data-center", + "to": "logical-link", + "label": "contains", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "generic-vnf", + "label": "bridgedTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "pserver", + "label": "bridgedTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "vlan", + "to": "multicast-configuration", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "volume-group", + "to": "complex", + "label": "existsIn", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "volume-group", + "to": "tenant", + "label": "belongsTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "ipsec-configuration", + "to": "vig-server", + "label": "hasVigServer", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "ipsec-configuration", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "vf-module", + "to": "volume-group", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vserver", + "to": "vf-module", + "label": "isPartOf", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vf-module", + "to": "l3-network", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vf-module", + "to": "vnfc", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "${direction}", + "prevent-delete": "${direction}" + }, + { + "from": "generic-vnf", + "to": "vf-module", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "volume-group", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "vnfc", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vlan", + "to": "logical-link", + "label": "usesLogicalLink", + "direction": "OUT", + "multiplicity": "One2One", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + } + ] +} diff --git a/src/test/resources/model/DbEdgeRules_v9.json b/src/test/resources/model/DbEdgeRules_v9.json new file mode 100644 index 0000000..88801e4 --- /dev/null +++ b/src/test/resources/model/DbEdgeRules_v9.json @@ -0,0 +1,1742 @@ +{ + "rules": [ + { + "from": "availability-zone", + "to": "complex", + "label": "groupsResourcesIn", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "generic-vnf", + "to": "license-key-resource", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "availability-zone", + "to": "service-capability", + "label": "supportsServiceCapability", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "cloud-region", + "to": "complex", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "cloud-region", + "to": "l3-network", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "cloud-region", + "to": "tenant", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "image", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "flavor", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "availability-zone", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "oam-network", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "dvs-switch", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "volume-group", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "group-assignment", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "snapshot", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "${direction}" + }, + { + "from": "cloud-region", + "to": "zone", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "complex", + "to": "ctag-pool", + "label": "hasCtagPool", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "complex", + "to": "l3-network", + "label": "usesL3Network", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "ctag-pool", + "to": "availability-zone", + "label": "supportsAvailabilityZone", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "customer", + "to": "service-subscription", + "label": "subscribesTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE" + }, + { + "from": "dvs-switch", + "to": "availability-zone", + "label": "existsIn", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "generic-vnf", + "to": "l-interface", + "label": "hasLInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "availability-zone", + "label": "hasAvailabilityZone", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "generic-vnf", + "to": "lag-interface", + "label": "hasLAGInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "l3-network", + "label": "usesL3Network", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "pserver", + "label": "runsOnPserver", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "generic-vnf", + "to": "vnf-image", + "label": "usesVnfImage", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "generic-vnf", + "to": "vserver", + "label": "runsOnVserver", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "service-instance", + "label": "hasInstance", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "site-pair-set", + "label": "hasSitePairSet", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "network-profile", + "label": "hasNetworkProfile", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "group-assignment", + "to": "tenant", + "label": "has", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "group-assignment", + "to": "pserver", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "image", + "to": "metadatum", + "label": "hasMetaDatum", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "l3-interface-ipv4-address-list", + "label": "hasIpAddress", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "l3-interface-ipv6-address-list", + "label": "hasIpAddress", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "logical-link", + "label": "usesLogicalLink", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "vlan", + "label": "hasVlan", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "l-interface", + "to": "sriov-vf", + "label": "has", + "direction": "OUT", + "multiplicity": "One2One", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "l3-network", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "l3-network", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l3-interface-ipv4-address-list", + "to": "subnet", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "l3-interface-ipv6-address-list", + "to": "subnet", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "l3-network", + "to": "vpn-binding", + "label": "usesVpnBinding", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "l3-network", + "to": "subnet", + "label": "hasSubnet", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l3-network", + "to": "service-instance", + "label": "hasInstance", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l3-network", + "to": "ctag-assignment", + "label": "hasCtagAssignment", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l3-network", + "to": "network-policy", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "l3-network", + "to": "segmentation-assignment", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "l3-network", + "to": "route-table-reference", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "lag-interface", + "to": "lag-link", + "label": "usesLAGLink", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "lag-interface", + "to": "p-interface", + "label": "usesPInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "lag-interface", + "to": "l-interface", + "label": "hasLInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "lag-link", + "label": "usesLAGLink", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "pnf", + "label": "bridgedTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "logical-link", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "model", + "to": "model-ver", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "model-ver", + "to": "model-element", + "label": "startsWith", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "model-element", + "to": "model-ver", + "label": "isA", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "model-ver", + "to": "metadatum", + "label": "hasMetaData", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "model-element", + "to": "model-element", + "label": "connectsTo", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "model-element", + "to": "model-constraint", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "model-element", + "to": "constrained-element-set", + "label": "connectsTo", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "model-constraint", + "to": "constrained-element-set", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "constrained-element-set", + "to": "element-choice-set", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "element-choice-set", + "to": "model-element", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "named-query", + "to": "model", + "label": "relatedTo", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "named-query", + "to": "named-query-element", + "label": "startsWith", + "direction": "OUT", + "multiplicity": "One2One", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "named-query-element", + "to": "named-query-element", + "label": "connectsTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "named-query-element", + "to": "model", + "label": "isA", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "named-query-element", + "to": "property-constraint", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "named-query-element", + "to": "related-lookup", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "instance-group", + "to": "model", + "label": "targets", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "newvce", + "to": "l-interface", + "label": "hasLInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "oam-network", + "to": "complex", + "label": "definedFor", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "oam-network", + "to": "service-capability", + "label": "supportsServiceCapability", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "p-interface", + "to": "l-interface", + "label": "hasLInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "p-interface", + "to": "physical-link", + "label": "usesPhysicalLink", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "p-interface", + "to": "logical-link", + "label": "usesLogicalLink", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "port-group", + "to": "cvlan-tag", + "label": "hasCTag", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "pserver", + "to": "complex", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "pserver", + "to": "cloud-region", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "pserver", + "to": "availability-zone", + "label": "existsIn", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "pserver", + "to": "lag-interface", + "label": "hasLAGInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "pserver", + "to": "p-interface", + "label": "hasPinterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "pserver", + "to": "zone", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "pnf", + "to": "p-interface", + "label": "hasPinterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "pnf", + "to": "lag-interface", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "pnf", + "to": "complex", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "pnf", + "to": "instance-group", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "pnf", + "to": "zone", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "cvlan-tag", + "label": "hasIPAGFacingVLAN", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "pnf", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-subscription", + "to": "service-instance", + "label": "hasInstance", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE" + }, + { + "from": "site-pair-set", + "to": "routing-instance", + "label": "hasRoutingInstance", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "routing-instance", + "to": "site-pair", + "label": "hasSitePair", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "site-pair", + "to": "class-of-service", + "label": "hasClassOfService", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "tenant", + "to": "l3-network", + "label": "usesL3Network", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "tenant", + "to": "service-subscription", + "label": "relatedTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "tenant", + "to": "vserver", + "label": "owns", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "${direction}" + }, + { + "from": "vce", + "to": "availability-zone", + "label": "hasAvailabilityZone", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "vce", + "to": "complex", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "vce", + "to": "port-group", + "label": "hasPortGroup", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vce", + "to": "vserver", + "label": "runsOnVserver", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vce", + "to": "service-instance", + "label": "hasServiceInstance", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE" + }, + { + "from": "virtual-data-center", + "to": "generic-vnf", + "label": "hasVNF", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "!${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vlan", + "to": "l3-interface-ipv4-address-list", + "label": "hasIpAddress", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vlan", + "to": "l3-interface-ipv6-address-list", + "label": "hasIpAddress", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vpls-pe", + "to": "complex", + "label": "locatedIn", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "vpls-pe", + "to": "ctag-pool", + "label": "usesCtagPool", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "vpls-pe", + "to": "p-interface", + "label": "hasPinterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "vpls-pe", + "to": "lag-interface", + "label": "hasLAGinterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "vserver", + "to": "flavor", + "label": "hasFlavor", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "vserver", + "to": "image", + "label": "hasImage", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "vserver", + "to": "l-interface", + "label": "hasLInterface", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vserver", + "to": "pserver", + "label": "runsOnPserver", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "vserver", + "to": "volume", + "label": "hasVolume", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vserver", + "to": "vnfc", + "label": "hosts", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vserver", + "to": "snapshot", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "connector", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "metadatum", + "label": "hasMetaData", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "logical-link", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "vlan", + "label": "dependsOn", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "service-instance", + "label": "dependsOn", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "connector", + "to": "virtual-data-center", + "label": "contains", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "connector", + "to": "metadatum", + "label": "hasMetaData", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "virtual-data-center", + "to": "logical-link", + "label": "contains", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "generic-vnf", + "label": "bridgedTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "pserver", + "label": "bridgedTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "vlan", + "to": "multicast-configuration", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "volume-group", + "to": "complex", + "label": "existsIn", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "!${direction}" + }, + { + "from": "volume-group", + "to": "tenant", + "label": "belongsTo", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "ipsec-configuration", + "to": "vig-server", + "label": "hasVigServer", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "ipsec-configuration", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "vf-module", + "to": "volume-group", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vserver", + "to": "vf-module", + "label": "isPartOf", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vf-module", + "to": "l3-network", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vf-module", + "to": "vnfc", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "${direction}", + "prevent-delete": "${direction}" + }, + { + "from": "generic-vnf", + "to": "vf-module", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "volume-group", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "vnfc", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "vlan", + "to": "logical-link", + "label": "usesLogicalLink", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "${direction}", + "SVC-INFRA": "${direction}", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "ctag-assignment", + "label": "uses", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "allotted-resource", + "to": "generic-vnf", + "label": "isPartOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "allotted-resource", + "to": "l3-network", + "label": "isPartOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "allotted-resource", + "to": "instance-group", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "allotted-resource", + "to": "vlan", + "label": "isPartOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "instance-group", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "instance-group", + "label": "isMemberOf", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "allotted-resource", + "to": "tunnel-xconnect", + "label": "has", + "direction": "OUT", + "multiplicity": "One2One", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "cloud-region", + "label": "existsIn", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "logical-link", + "to": "vpn-binding", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "generic-vnf", + "to": "entitlement", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "generic-vnf", + "to": "license", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "vce", + "to": "entitlement", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "vce", + "to": "license", + "label": "has", + "direction": "OUT", + "multiplicity": "One2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "zone", + "to": "complex", + "label": "existsIn", + "direction": "OUT", + "multiplicity": "Many2One", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "!${direction}" + }, + { + "from": "service-instance", + "to": "allotted-resource", + "label": "has", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "${direction}", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + }, + { + "from": "service-instance", + "to": "allotted-resource", + "label": "uses", + "direction": "OUT", + "multiplicity": "Many2Many", + "contains-other-v": "NONE", + "delete-other-v": "NONE", + "SVC-INFRA": "NONE", + "prevent-delete": "NONE" + } + ] +} diff --git a/src/test/resources/model/edge_properties_v10.json b/src/test/resources/model/edge_properties_v10.json new file mode 100644 index 0000000..7cbddae --- /dev/null +++ b/src/test/resources/model/edge_properties_v10.json @@ -0,0 +1,10 @@ +{ + "isParent":"java.lang.Boolean", + "isParent-REV":"java.lang.Boolean", + "usesResource":"java.lang.Boolean", + "usesResource-REV":"java.lang.Boolean", + "SVC-INFRA":"java.lang.Boolean", + "SVC-INFRA-REV":"java.lang.Boolean", + "hasDelTarget":"java.lang.Boolean", + "hasDelTarget-REV":"java.lang.Boolean" +} diff --git a/src/test/resources/model/edge_properties_v11.json b/src/test/resources/model/edge_properties_v11.json new file mode 100644 index 0000000..ce0e6d5 --- /dev/null +++ b/src/test/resources/model/edge_properties_v11.json @@ -0,0 +1,10 @@ +{ + "isParent": "java.lang.Boolean", + "isParent-REV": "java.lang.Boolean", + "usesResource": "java.lang.Boolean", + "usesResource-REV": "java.lang.Boolean", + "SVC-INFRA": "java.lang.Boolean", + "SVC-INFRA-REV": "java.lang.Boolean", + "hasDelTarget": "java.lang.Boolean", + "hasDelTarget-REV": "java.lang.Boolean" + } \ No newline at end of file diff --git a/src/test/resources/model/edge_properties_v8.json b/src/test/resources/model/edge_properties_v8.json new file mode 100644 index 0000000..7cbddae --- /dev/null +++ b/src/test/resources/model/edge_properties_v8.json @@ -0,0 +1,10 @@ +{ + "isParent":"java.lang.Boolean", + "isParent-REV":"java.lang.Boolean", + "usesResource":"java.lang.Boolean", + "usesResource-REV":"java.lang.Boolean", + "SVC-INFRA":"java.lang.Boolean", + "SVC-INFRA-REV":"java.lang.Boolean", + "hasDelTarget":"java.lang.Boolean", + "hasDelTarget-REV":"java.lang.Boolean" +} diff --git a/src/test/resources/model/edge_properties_v9.json b/src/test/resources/model/edge_properties_v9.json new file mode 100644 index 0000000..2ffcabb --- /dev/null +++ b/src/test/resources/model/edge_properties_v9.json @@ -0,0 +1,10 @@ +{ + "isParent":"java.lang.Boolean", + "isParent-REV":"java.lang.Boolean", + "usesResource":"java.lang.Boolean", + "usesResource-REV":"java.lang.Boolean", + "SVC-INFRA":"java.lang.Boolean", + "SVC-INFRA-REV":"java.lang.Boolean", + "hasDelTarget":"java.lang.Boolean", + "hasDelTarget-REV":"java.lang.Boolean" +} -- cgit 1.2.3-korg